Hallo, Der beiliegende Code wurde mit ICCAVR für einen ATMEGA128 kompiliert und funktioniert problemlos. Die Funktion soll aus dem Flash Daten auslesen und über die serielle Schnittstelle versenden. Wenn ich jedoch das ganze mit AVR-GCC kompiliere, sendet er falsche daten. Woran kann das liegen? Kann mir jemand Helfen? Wie siehts denn mit dem AVR-GCC bzgl. RAMPZ-Problematik aus? Herzlichen Dank für eure Hilfe. Gruß, Leo
Um mit AVR-GCC auf den Flash zuzugreifen, gibt es spezielle Funktionen: pgm_read_byte(...), pgm_read_word(...) usw.
Vgl. avr-libc Dokumentation zu "program-space-string-utilities" und "bootloader-support". Code ist anhand der Makros in den Header-Dateien pgmspace.h und boot.h nachvollziehbar. Zur "RAMPZ-Problematik" siehe u.a. die Funktionen pgm_read_*_far.
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.