www.mikrocontroller.net

Forum: Compiler & IDEs Direktive für Assembler-Code


Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hiho,

mit welcher Compiler-Direktive veranlasst man GCC eine Assembler-Datei 
zu erstellen?

Danke für Hilfe!
Peter

Autor: notker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit der Kommandozeilen-Option "-S".

Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Notker,

muß man das als Compiler flag setzen?
Ich habs probiert, aber er hat einen Fehler ausgespuckt.

Grüße,
Peter

Autor: BAB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie es notker schon sagt in der kommadozeile hinter dem make.exe...ich 
habs leier noch nie gemacht kann dir also nichts weiter darüber sagen...

Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab das jetzt probiert ("-S" in der Kommandozeile),
aber so wirklich funktioniert hat das nicht... er kompiliert und linkt 
nach wie vor brav zu einem ".hex"-File.
Weiß jemand Rat?

Grüße,
Peter

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht hinter die make.exe, sondern hinter den avr-gcc-Aufruf (bzw. ins 
Makefile). Oder du disassemblierst dein Programm einfach nach dem 
Kompilieren:

avr-objdump -DS test1.elf > test1.lst

Autor: Notker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit ich das in Erinnerung habe, entsteht aber sowieso als 
Zwischenprodukt ein kommentiertes Assemblerlisting (xyz.lst). Wenn es 
nur zu Kontrollzwecken dienen soll, hat man hier was man sucht. Die 
entsprechenden C-Befehle stehen als Kommentare mit dabei.

Autor: Notker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wer das mal ausprobieren möchte, der genaue Syntax lautet wie 
folgt:

z.B. für eine Source test.c

avr-gcc -S -mmcu=at90s2313 test.c

Gross-/Kleinschreibung unbedingt beachten und den entsprechenden AVR-Typ 
angeben!
Danach findet man eine Datei namens test.s (entsprechend dem Beispiel) 
im Verzeichnis, die den Assembler-Quellcode enthält. Wenn man es noch 
etwas genauer wissen will, kann man noch den Parameter -fverbose-asm 
angeben, dann sieht man auch die default-Parameter, die bei der 
Übersetzung beim avrgcc gesetzt wurden. Den Assembler-Code kann man, je 
nach Geschmack etwas bearbeiten und dann mit avr-as.exe zum fertigen 
Produkt assemblieren. Es ist aber zu beachten, dass der avr-as (soweit 
mir bekannt) einen anderen Syntax hat als z.B. der wavrasm von Atmel.

Notker

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.