Jemand eine Idee wie man im Atmel Studio ein Offset für den Debugger einstellt? Das Problem ist das Atmel Studio den Code nicht zuordnen kann da die Adressen um den bootloader verschoben sind. So lassen sich keine breakpoints etc. setzen.
Und wieso ist der Code "verschoben"? Wenn das sauber im Linker-Script beschrieben ist, dann muss doch nix "verschoben" werden?
Das linker script macht was es soll leider weiß Atmel Studio davon nichts. Die Adressen sind Reverse zum Code nicht mehr festzustellen. So das ein debugging nur auf ASM Ebne möglich ist. Breakpoints kann man nicht setzen da die Adressen nicht mehr passen. Diese sind ja um den bootloader verschoben. Das hochladen per Debug funktioniert ja ohne den bootloader zu überschreiben. der Code wird oberhalb des bootloaders in den flash geschrieben. Ähnliches würde passieren wenn der gcc etwas wegoptimiert. Der Sinnlose Code ist zwar in der Quelle noch vorhanden aber nicht im Flash. Somit kann man an dieser stelle im Quelltext auch keinen breakpoint setzten.
Marco H. schrieb: > Das linker script macht was es soll leider weiß Atmel Studio davon > nichts. Wie kann das sein? Über das Linker-Script werden die Adressen im Code (d.h. in der ELf-Datei) überhaupt erst berechnet, bei korrektem Script mit Offset. Wo bekommt das Atmel Studio denn seine falschen Adressen her, wenn nicht aus dem Kompilat, wo aber die richtigen Adressen drin stehen?
Ich denke auch das hier ein Effekt völlig falsch zugeordnet wird. Das Applikation Immage um einen Bootloader zu verschieben ist gängige Praxis. Bei den Cortexen und Co geht das meiner Meinung nicht anderst. Bei den 32bittigen AVR32 hat Atmel extra ein Trampoline.S Assembler Datei dazugpackt, welche 1) als Platzhalter für das Bootloader Image dient. 2) diesen Bereich auch überspringt so dass die App gestartet wird Ähliches mach ich bei meinen Cortex Projekten auch. Wenn eine Release gebaut werden muss, wird das Bootloader Image mit SREC_CAT zusammengeklebt.
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.