Forum: Mikrocontroller und Digitale Elektronik Bootloader Artikel


von Simon (Gast)


Lesenswert?

Hallo,

ich habe mal den Bootloader ausprobieren wollen..

http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung


Ich verwende Ihn mit einer eigenen uart lib.

AN der Stelle
"    uart_puts("Hallo hier ist der echte Bootloader\n\r");
    _delay_ms(2000);
"

sollte ich normal per Uart ein zeichen senden, jedoch wenn ich das tue
geht garnichts mehr, er bleibt stehen sobald das Interrupt 
ISR(USART_RX_vect)
aufgerufen wird.

Ich bin mir sicher ich hab nur irgend was kleines Übersehen.

Dieser Teil wird wie im Artikel angegeben auch benuzt
    /* Interrupt Vektoren verbiegen */
    temp = MCUCR;
    MCUCR = temp | (1<<IVCE);
    MCUCR = temp | (1<<IVSEL);

von Simon (Gast)


Lesenswert?

Ich bin ein Stückchen weiter..

wenn ich die

    temp = MCUCR;
    MCUCR = temp | (1<<IVCE);
    MCUCR = temp | (1<<IVSEL);

weg lasse, dann geht es komischerweise wieder, was mich wundert ist
das trotz dem -TText=1800 paramenter die .lss sowie die .hex identisch 
sind.

Müsste in der .lss nicht zu sehen sein das der Interrupt z.B. für 
USART_RX an einer anderen Adresse sein müsste?


.lss:
  24:  39 c0         rjmp  .+114      ; 0x98 <__vector_18>

von Simon (Gast)


Lesenswert?

Hier ists dabei..

avr-gcc  -mmcu=atmega88pa -Wall -gdwarf-2 -std=gnu99    -Ttext=0x1800 
-DF_CPU=11059200UL -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -MD -MP -MT uart.o -MF dep/uart.o.d  -c 
../uart.c

von Simon (Gast)


Lesenswert?

Ich idiot.. unter Linker options gehört das -TText hinein!

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
Noch kein Account? Hier anmelden.