AVR-Bootloader-Tutorial - Problem

Gast #2560181
Lesenswert?

Hallo zusammen!

Ich versuche im Moment nach dem Tutorial 
http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung 
den "Hello World"-Bootloader auf dem ATMega16 umzusetzen.


Habe auch im Linker -Ttext=0x3800 eingestellt und die Fuses passend 
programmiert(BOOTSZ1, BOOTSZ0, BOOTRST). Habe testweise per Programmcode 
eine LED eingeschaltet und diesen Code Zeile für Zeile verschoben und so 
herausgefunden, dass der Bootloader anfangs korrekt ausgeführt wird und 
erst beim Code
1
uart_puts("Hallo hier ist der Bootloader\n\r");
nicht mehr korrekt funktioniert, d.h. wenn ich die LED nach dieser Zeile 
anschalten will, dann bleibt sie aus, d.h. der Mikrocontroller erreicht 
diese Zeile vermutlich niemals.


Ich vermute, dass möglicherweise die Interrupt-Vektoren nicht richtig 
verbogen sind, kenne mich auf diesem Gebiet aber noch nicht so gut aus.
Die Interrupt-Vektoren verbiege ich mit dem Code aus dem Tutorial:
1
/* Interrupt Vektoren verbiegen */
2
char sregtemp = SREG;
3
cli();
4
temp = MCUCR;
5
MCUCR = temp | (1<<IVCE);
6
MCUCR = temp | (1<<IVSEL);
7
SREG = sregtemp;

Wäre schön, wenn jemand von euch eine Idee hätte und mir helfen könnte.
Danke im Vorraus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren