Forum: Mikrocontroller und Digitale Elektronik Atmel-Studio, kein Bootloader: Wie Reset-Vektor für Debugger einstellen?


von Peter M. (peter0)


Lesenswert?

Hallo zusammen,

ich stehe gerade auf dem Schlauch. Ich habe ein Atmel-Studio 6, das über 
einen AVR-Dragon an einer Schaltung mit ATMega324P hängt. Ich habe mit C 
programmiert.

An Stelle 0x0000 steht ein Sprung auf einen Startup-Code, der Status- 
und Stackpointer sowie Speicher auf vordefinierte Werte und weiteren 
Speicher auf 0 initialisiert und anschließend (per CALL) main() 
anspringt.

Ich benutze via Dragon den Debugger, untere anderem dessen 
Reset-Funktion (Shift-F5). Nun ist mir aufgefallen, dass diese 
Reset-Funktion nach 0x3C00 springt. Das ist solange kein Problem, wie 
von dort bis zum Ende nur Nullen sind. Das sind alles NOPs, über die der 
µC irgendwann per PC-Überlauf bei 0 ankommt und somit den normalen 
Reset-Vorgang (wie oben beschrieben) durchführt.

Nun ist mein Projekt soweit angewachsen, dass eben keine Nullen mehr ab 
0x3C00 stehen – und schwupps geht Shift-F5 in die Hose, weil es mitten 
im Code einer meiner Funktionen landet.

Ich vermute, dass die Sache mit 3C00 so gemeint ist, dass dort ein 
Bootloader-Code, oder so, steht. Wie verklickere ich dem Atmel-Studio, 
dass er mit Shift-F5 bitteschön bei 0 und nicht bei 3C00 anfangen soll, 
weil dort eben kein Bootloader ist?

Danke – Peter

von spess53 (Gast)


Lesenswert?

Hi

>Wie verklickere ich dem Atmel-Studio,
>dass er mit Shift-F5 bitteschön bei 0 und nicht bei 3C00 anfangen soll,
>weil dort eben kein Bootloader ist?

BOOTRST-Fuse

The Reset Vector can also be moved to the start of the Boot Flash 
section by programming the BOOTRST Fuse, see ”Memory Programming” on 
page 293.

MfG Spess

von Peter M. (peter0)


Lesenswert?

Hmgrmpf – das war's!

Welcher Effekt dazu geführt hatte, dass beim Debuggen das Programm in 
eine zufällig ab 3C00 stehende Endlosschleife führte (nämlich Warten auf 
das Ende einer nicht gestarteten SPI-Transaktion), während es beim Lauf 
ohne Debugger immer normal startete, ist für mich nun erstmal nur noch 
von akademischem Interesse.
Dieses Verhalten ließ mich nicht an die Fuse denken.

Danke – Peter

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.