www.mikrocontroller.net

Forum: Compiler & IDEs Debugger und Otimierung


Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bernhard R. (barnyhh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard,
das ist eine gute Idee, werde ich gleich mal probieren.
Gruß Mattias
und nochmals danke....

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.