Forum: Compiler & IDEs gcc-as __AVR_HAVE_MUL__


von Sebastian K. (seplog)


Lesenswert?

Hey,

Irgendwie stehe ich gerade auf dem Schlauch und ich weiß nicht woran es 
liegt. Ich habe hier folgendes Code-Snippet.
1
.ifdef __AVR_HAVE_MUL__
2
.global mul16
3
mul16:
4
    ...
5
    ret
6
.endif
Übersetze ich das für den ATtiny13A (wo es ja ausgeblendet sein soll) 
funktioniert das. Übersetze ich das für den ATmega88PA bekomme ich eine 
Fehlermeldung.
1
invalid identifier for ".ifdef"
2
".endif" without ".if"

ich habe es auch schon mit
1
.if defined( __AVR_HAVE_MUL__ )
probiert. Aber auch das geht nicht. Ich habe keine weiteren Includes und 
arbeite mit dem AVR Studio 6.1. Das hat die gcc-3.4.2 toolchain.
Wie mache ich das richtig, bzw was mache ich falsch?

Grüße
Sebastian

von Sebastian K. (seplog)


Lesenswert?

Ha, das ja gemein vom GCC. Hab es nun raus gefunden und anscheinend hing 
es an der Endung. Die Datei war in meinem Verzeichnisbaum als mul16.s 
angelegt. Dafür wird aber anscheinen nicht der Präprozessor aufgerufen. 
Nachdem ich nun meine Quelldatei in mul16.asm umbenannt habe, läuft auch 
alles!

Warum fällt einem so etwas erst immer auf, wenn man schon was 
geschrieben hat. Aber trotzdem danke! ;)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sebastian Koschmieder schrieb:
> Dafür wird aber anscheinen nicht der Präprozessor aufgerufen.

Yep.

> Nachdem
> ich nun meine Quelldatei in mul16.asm umbenannt habe, läuft auch alles!

Regulärer Suffix wäre mul16.S gewesen (ein großes ,S'), oder halt
mit -x assembler-with-cpp die automatische Entscheidung anhand des
Suffix überschreiben.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Meinst du nicht #ifdef bzw. #if anstatt .ifdef bzw. .if?


Jörg Wunsch schrieb:
> Regulärer Suffix wäre mul16.S gewesen (ein großes ,S'), oder halt
> mit -x assembler-with-cpp die automatische Entscheidung anhand des
> Suffix überschreiben.

Zudem wird auch .sx wie .S behandelt.

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.