Gast
#612568
Hallo, ich bin dabei einen Bootloader in C mit WinAVR zu schreiben (ATmega32), der über UART-Interrupts das neue (zu flashende) Programm erhält. Dazu habe ich die beiden BOOTSZ Bits (Häkchen nicht gesetzt) in PonyProg nicht gesetzt, damit die Boot-Reset-Adresse auf $7000(Bytes) / $3800(Words) zeigt. Desweiteren habe ich im Code IVSEL gesetz, nachdem ich zuvor IVCE gesetzt habe. Dadurch sollte die Interrupt-Vektor-Tabelle auf den Start der Boot-Flash-Sektion gelegt sein. GICR = (1<<IVCE); GICR = (1<<IVSEL); Als drittes sind im Makefile die zwei folgenden Zeilen um den Code an die Stelle $7000 zu bekommen. BOOTBLOCKSTARTADDRESS = 0x7000 LDSECTION = --section-start=.text=$(BOOTBLOCKSTARTADDRESS) Problem ist, daß bei Interrupts des UARTS der ATmega32 hängen bleibt. Hat jemand eine Idee, woran das liegen könnte?