hallo liebe Programmierer, ich versuche mich gerade das erste mal mit dem Debugger im AVR-Studio. ich habe ein Projekt, das ohne Optimierung nicht mehr in meinen Controller passt. Ist es wirklich richtig, dass bei eingeschalteter Optimierung der Instruktion Pointer im c File nicht mehr zu sehen ist, wenn man zB. step into aufruft ? Wenn ja, wie kann man denn dann das Projekt debuggen ??? Danke schon im voraus Gruß Mattias
In den höheren Optimierungsstufen gibt es keine 1:1 -Zuordnung von C-Quellcode und Assemblertext, und gerade beim WinAVR führt das dann dazu, daß der Debugger macnhmal ziemlich sinnlos in der Gegend rumsteht. Versuch es mal mit -O1. Das sollte auch schon kleineren Code erzeugen, ist aber etwas debugger-freundlicher. Ansonsten bleibt nur noch, das Programm in Module zu zerlegen, und diese einzeln zu debuggen, oder auf einen größeren Controller auszuweichen. Oliver
1. Im Debugger läßt sich auch auf Assembler-Darstellung umschalten. Dann funktioniert die gesamte Anzeigerei. 2. Wähle einen "größeren" Processor aus, der die benötigten Spezialregister mit gleichem Namen besitzt wie der von Dir eigentlich eingesetzte. Den Debugger im AVR-Studio läßt Du gegen den größeren Processor arbeiten - mit -O0. Wenn Du Das Programm dann für die reale Hardware compilierst, dann setzt Du die Compile-Optionen auf den echten Zielprocessor. Beispiele für 2: - ATMEGA 48 - 88 - 168 - ATMEGA 164 - 324 -644 Viel Erfolg! Bernhard
Debuggen von Code, der mit anderen als den später tatsächlich auf dem Controller eingesetzten Optionen compiliert wurde, ist für'n A***. Gerade die Optimierungen fördern so einige Fehler im Code zutage, die man ohne gar nicht bemerkt.
Hallo Bernhard, das ist eine gute Idee, werde ich gleich mal probieren. Gruß Mattias und nochmals danke....
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.