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