mikrocontroller.net

Forum: Compiler & IDEs Code::Blocks und avr-gcc: Listfile erzeugen


Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

nachdem ich auf Linux umgestiegen bin, musste ich endlich weg von 
AVRStudio, was ich bisher keine Sekunde bereut habe. Jetzt bin ich 
allerdings an einem Punkt angelangt, an dem es wieder einmal sinnvoll 
wäre, das Assemblerlisting des Compilers zu prüfen. Im WinAVR-Plugin für 
AVRStudio gab es damit ja die nette Option "Generate List file", was 
auch immer funktionierte. In Code::Blocks (Auch da gibt's ja sowas wie 
ein Plugin für den avr-gcc) gibt's das in der Form allerdings nicht.
Ich habe mich nun also etwas mehr mit den Kommandozeilenoptionen für 
GCC/GAS vertraut gemacht. So wie ich das sehe, brauche ich sowas:
avr-gcc ... -Wa,-ahl=listing.lss
Soweit so gut, wenn ich das bei den Build options für den Compiler 
angebe, erzeugt er die Datei zwar, allerdings natürlich nur für die 
zuletzt kompilierte Quelldatei (Oder anders gesagt: Alle vorhergehenden 
werden überschrieben). Mittels $(FILE) müsste man da ja eigentlich auf 
das aktuelle Kompilierungselement zugreifen können, doch leider liefert 
diese Variable offensichtlich immer einen leeren String, ich bekomme 
damit nur eine einzige Datei mit dem Name ".lss". Ausserdem wäre es mir 
lieber, so wie bei WinAVR nur ein einziges Listfile zu bekommen. Doch 
wie muss die Kommandozeile dafür aussehen? Der Assembler wird ja 
eigentlich für jede Quelldatei einmal gestartet, hat also gar nie 
Zugriff auf das ganze Programm. Oder?

Danke und Gruss,
Philipp

Autor: Jörg G. (joergderxte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal das Makefile von WinAVR an (d.h. die Vorlage, die MFile 
mitbringt). Falls du gerade nicht an winavr rankommst, findest du mfile 
hier: http://www.sax.de/~joerg/mfile/ Da ist auch die Vorlage dabei, 
falls du mfile nicht benutzen willst.

hth, Jörg

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg G. schrieb:
> Schau dir mal das Makefile von WinAVR an (d.h. die Vorlage, die MFile
> mitbringt). Falls du gerade nicht an winavr rankommst, findest du mfile
> hier: http://www.sax.de/~joerg/mfile/ Da ist auch die Vorlage dabei,
> falls du mfile nicht benutzen willst.
>
> hth, Jörg

Ah, danke!

Das macht nicht der Assembler, sondern avr-objdump nach dem Kompilieren.
Folgende Zeile in den Post-Build-Steps produziert ein wunderschönes 
Listfile:
avr-objdump -d $(TARGET_OUTPUT_FILE) > $(TARGET_OUTPUT_FILE).lss

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.