Hallo zusammen, ich bin gerade dabei mich bei beinem EVK1100 board von atmel mit AVR32 Studio einzuarbeiten. Da habe ich einen Beispielcode bei dem ich etwas kontrollieren möchte! Und zwar gibt es diese Methode: int spi_initMaster(volatile avr32_spi_t *spi, const spi_options_t *options) { ..... } Der Pointer *spi müsste meiner Ansicht nach die Startaddresse des SPI bereichs sein, also laut Datenblatt 0xFFE00400. Wie kann ich das jetzt kontrollieren? Ich habe es so probiert: int spi_initMaster(volatile avr32_spi_t *spi, const spi_options_t *options) { int test; printf(test,"%p",(void *)spi); } Da motzt er zum einen rum:'sprintf' makes pointer from integer without a cast und zum anderen kommt ein total unsinniger Wert = 4 raus, was nicht sein kann. Weiß jemand wie ich das richtig machen kann? Gruß und Danke Stefan
sprintf produziert einen string, den du weiß Gott wo in den Speicher
schreibst.
> sprintf(test,"%p",(void *)spi);
test muss hier ein char* sein.
Sollte der erste Parameter von sprintf nicht ein Zeiger auf einen Speicherbereich sein, in dem der String landet?
Hm hat leider auch nicht funktioniert, aber ich habs jetzt anders rausbekommen. Ich kann mit dem Mauscursor drüberfahren, dann zeigt er mir die Adresse an. Und meine Vermutung war richtig! Aber würde mich trotzdem noch interessieren wie das geht. Also er hat immer noch den gleichen Fehler gebracht mit dem *char pointer. PS: hatte mich oben verschrieben! In meinem Code ist es printf.
> Aber würde mich trotzdem noch interessieren wie das geht. Also er hat > immer noch den gleichen Fehler gebracht mit dem *char pointer. > > PS: hatte mich oben verschrieben! In meinem Code ist es printf. Wer weiß, welchen Code du nun tatsächlich ausprobiert hast. Mit sprintf so:
1 | char buf[20]; |
2 | sprintf(buf,"%p",spi); |
und mit printf so:
1 | printf("%p",spi); |
Okay vielen Dank!!! Hat funktioniert! Schönen Abend noch! Gruß Stefan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.