Forum: Compiler & IDEs Fehlermeldung: invalid operands (*UND* and *ABS* sections) for `/'


von Jürgen (derkleinemuck)


Lesenswert?

Ich bekomme von Microchip Studio (AVR GCC) folgende Fehlermeldung:
1
invalid operands (*UND* and *ABS* sections) for `/'

wenn ich eine Assemblerdatei in einem Projekt einfüge. Quelle: 
https://github.com/zevero/avr_boot

Die bemängelte Zeile:
1
ldi  r24, lo8(F_CPU / 100000)

F_CPU habe ich probeweise in main.c mit #define und auch im Makefile 
über die Properties-Einstellungen (Compiler/Symbols) angegeben 
("1000000" und auch mit "UL").
Gebe ich den Wert 1000000 direkt ein, klappt es. Aber das ist natürlich 
unschick, da ich die Taktrate nur an einer Stelle eingeben möchte.
Eine Idee dazu?
Danke.

von Oliver S. (oliverso)


Lesenswert?

Eine Definition in main.c nutz natürlich nichts.

Wie hast du das denn in den Properties definiert, und wie sieht damit 
dann der Aufruf des gcc für die Datei aus?

Oliver

von Jürgen (derkleinemuck)


Angehängte Dateien:

Lesenswert?

Anbei die Einstellungen. Im Prinzip habe ich die Dateien aus dem 
genannten Git benutzt. 
https://github.com/zevero/avr_boot/blob/master/main.c 
https://github.com/zevero/avr_boot/blob/master/asmfunc.S

: Bearbeitet durch User
von Johann L. (gjlayde) Benutzerseite


Lesenswert?

UL ist C.  Assembler kennt diese Suffixes nicht.  Warum icht einfach 
1000000?

von Jürgen (derkleinemuck)


Lesenswert?

Johann L. schrieb:
> UL ist C.  Assembler kennt diese Suffixes nicht.  Warum icht
> einfach
> 1000000?

Hatte ich auch probiert. Änderte nichts.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Jürgen schrieb:
> Johann L. schrieb:
>> UL ist C.  Assembler kennt diese Suffixes nicht.  Warum icht
>> einfach
>> 1000000?
>
> Hatte ich auch probiert. Änderte nichts.

Dann assembliere mal zusätzlich mit -save-temps und schau das .s File 
an.  Vielleicht wird's dann klarer.

von Oliver S. (oliverso)


Lesenswert?

Anscheinend werden die in den Properties für den C-Compileraufruf 
definierten defines nicht beim Aufruf des Assemblers benutzt.

Da hilft dann nur ein globales include-File, in dem du F_CPU definierst.

Oliver

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.