Atmel-Studio, kein Bootloader: Wie Reset-Vektor für Debugger einstellen?

OP #4488192
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
Gast
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
OP
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.