mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehler im AVR Studio "unable to bin line xx."


Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bei einem Projekt im AVR-Studio bekommen ich beim Start der Simulation 
eine Fehlermeldung (Pop-Up), mit der ich nicht viel anfangen kann:
"One or more breakpoints or tracepoints could not be set and have been 
disabled. the Program has been stopped at the reset vector. Do you want 
to continue execution".
Im Message-Fenster erscheint zusätzlich die Meldung:
"Debugger: 'Break at line main.c:346' has been disabled. Unable to bind 
line 346 in file "main.c" to a program memory address."

Der Build-Prozess  läuft problemlos durch, es sind auch noch reichlich 
Ressourcen vorhanden.

Im disassemblierten Code fehlt mir auch die Variablenzuweisung, die ich 
in der benannten Zeile (main.c: Zeile 346) vorgenommen habe. Wenn ich 
diese Zeile lösche, erneut kompiliere und dann einen hex-Vergleich mir 
dem bisherigen hex durchführe, finde ich keine Unterschiede.
Das AVR-Studio/WinAVR scheint hier ein Problem mit dem kompilieren zu 
haben ohne es zu merken.

Dabei sollte "my_mode = 20;" (das ist die fragwürdige Zeile) doch eine 
Operation sein, die das AVR-Studio noch nicht an seine Grenzen bringt 
...

Ich verwende das AVR-Studio V4.13SP2 mit WinAVR vom 21.12.07 für einen 
ATMEGA8515@8MHz. Das Problem tritt auch auf verschiedenen Rechnern auf.

Kann mir jemand einen Tipp geben, wo ich einen Fehler gemacht haben 
könnte?

Danke + Gruß
Philipp

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schon mal die Optimierung ausgeschaltet?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns ganz ohne Optimierung nicht geht (wg. delay.h), probiers mal mit 
Stufe 1.


Ansonsten ist das kein Problem des Compilers. In den höheren 
Optimierungsstufen gibt es eben keine 1:1-Zuordnung von C-Zeilen und 
Assembler-Abschnitten mehr. Und auf Zeilen, die sich im Assembler nicht 
klar widerfinden lassen (bzw. für die dann keine Debug-Info vorhanden 
ist), lässt sich auch kein Breakpoint setzen.

Oliver

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Tipps!

Die einfache Zuweisung "my_mode = 20;" hat der Complier wegoptimiert, da 
die Variable im Anschluss wieder beschrieben wird, ohne davor gelesen zu 
werden. Ich hatte die Zeile nur zum Test eingebaut. Mit anderen 
Befehlen, die zu diesem Moment gerechnet werden müssen und kein 
Optimierungspotatial bieten, ist alles i.O.

Gruß
Philipp

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.