Gast
#4566536
Mein C-Programm (avr-gcc) für den ATmega 8515 läuft unzuverlässig bzw. nicht korrekt, sobald das Programm in den Bootloader-Bereich hineinragt. Das Phänomen tritt allerdings nur nach einem Reset des 8515 auf. Sobald ich den Code verkleinere, z.B. indem ich einen konstanten, als PROGMEM deklarierten Byte-Array kürze, verschwindet das Problem komplett. Die entsprechenden Fuses sind auf BOOTSZ1 = BOOTSZ0 = BOOTRST = 1 gesetzt, d.h. der Bootloader ist meinem Verständnis nach deaktiviert. Ich möchte auch keinen Bootloader. Muß ich sonst noch etwas beachten, wenn normaler Anwendungscode im Bootloader-Bereich liegt? Gibt es innerhalb des Programms Restriktionen? Sollten eher ausführbarer Code oder Konstanten (const uint8_t data[] PROGMEM) im Bootloader-Bereich liegen? Kann ich das im Code irgendwie erzwingen, z.B. einfach durch die Reihenfolge? Oder könnten die Probleme daher stammen, daß Avrdude bei der Programmierung irgendwie patzt?
1 | |
Ich verwende den Diamex S2 USB-Programmer und das ISP-Interface des ATmegas.