mikrocontroller.net

Forum: Compiler & IDEs Was bedeutet _GNU_ASSEMBLER_ ?


Autor: andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich beschäftige mich gerade mit gcc und MSP430 und bin im Netz und in 
diversen Makefiles auf "-D_GNU_ASSEMBLER_" gestoßen.

Z.b.

msp430-gcc -x assembler-with-cpp -D_GNU_ASSEMBLER_ -mmcu=msp430x1121 -c 
file.s -o file.o

Mir ist klar, das es sich hier expliziet um "_GNU_ASSEMBLER_" handelt, 
selbst dazu gibts keine Beschreibung im GCC. Weiss jemand, was diese 
Anweisung bedeutet bzw. wo ich was drüber lesen kann?

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal in file.s. Da werden wohl Unterschiede gemacht in Befehlen, 
Direktiven, etc. anhängig davon, ab der GNU-Assembler (msp430-as) am 
Werke ist oder nicht.

Johann

Autor: andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eben nicht, da taucht nix auf. Das sieht so aus, als würde man das 
"-D_GNU_ASSEMBLER_" provesorisch einfügen, nach dem Motto "sicher ist 
sicher". Ich würde aber erstmal wissen, was der Ausdruck bewirkt.

Autor: LTC3813 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du rufst den GCC (msp430-gcc) mit einem Assembler File file.s wesshalb 
du das _GNU_ASSEMBLER brauchst. Alternativ kannst du anstelle des GCC 
direkt den Assembler aufrufen msp430-as ...

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
andi wrote:
> eben nicht, da taucht nix auf. Das sieht so aus, als würde man das
> "-D_GNU_ASSEMBLER_" provesorisch einfügen, nach dem Motto "sicher ist
> sicher". Ich würde aber erstmal wissen, was der Ausdruck bewirkt.

-D findest du in der gcc-Doku.
   http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Prepro...

 Es Definiert das Makro GNU_ASSEMBLER, d.h. es kann mit
#ifdef _GNU_ASSEMBLER_
// resp.
#if defined (_GNU_ASSEMBLER_)
abgetestet werden.

foo-gcc delegiert .s-Dateien automatisch an den Assembler (foo-as), die 
Dateien werden allerdings nicht präprzessiert.
   http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Overal...
 Präprozesst werden nur .S Dateien, was aber je nach OS Verwirrung wegen 
Groß/Kleinschreibung gibt.

Mit -x kann man explizit angeben, wie eine Datei zu handhaben ist. Man 
kann damit auch eine C++ Datei .text nennen oder eine Assembler-Datei 
.c++; oder eben eine Assebler-Datei, wo erst der Präprozessor drüber 
soll, nach -x assembler-with-cpp (cpp="C pre processor", nicht "C++" 
;-)) angeben.

Johann

Autor: andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke Johann, jetzt habe ich die Stelle in der gcc-Doku gefunden.

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.