Gast
#1864455
Habe eine Problem mit dem Interrupt im selbst geschriebenen Bootloader... Es sieht so aus, also ob der ATMega640 resetet sobald ein interrupt auslösst... Wenn ich den Bootloader auf Startadresse 0 ins Flash schreibe funktioniert alles mit den interrupts. Schreibe ich den Bootloader aber in den defür vorgehenen Bereich im Flash (mit -Wl,--section-start=.text=0x7000) auf die adresse 0x7000, resetet er sich immer... gemäss Datanblatt hab ich die rücksprungadresse der interrupts in den Bootloaderbereich verschoben mit: MCUCR = SpeichereMCUCRL |(1<<IVCE); MCUCR = SpeichereMCUCRL |(1<<IVSEL); Um timingfehler beim setzen von IVSEL Auszuschliessen habe ich die Optimierung im Compiler ausgeschaltet... wenn ich versuchsweise eine endlosschleife im interrupt mache, resetet der ATMega trotzdem... sprich es sieht so aus, als ob dieser die ISR nie durchläuft... (BOOTRST Bit ist entsrpchende gesetzt) Jemand eine Idee was ich falsch mache?