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


von Philipp B. (philipp_burch)


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:
1
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

von Jörg G. (joergderxte)


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

von Philipp B. (philipp_burch)


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:
1
avr-objdump -d $(TARGET_OUTPUT_FILE) > $(TARGET_OUTPUT_FILE).lss

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
Noch kein Account? Hier anmelden.