Ich habe das folgende Programm in AVR-Assembly:
.DEF WR = R16
.ORG 0
SER WR
OUT 0x24, WR
Wenn ich aufrufe avr-as beeep.s
, wo beeep.s den vorherigen Code enthält, bekomme ich eine Fehlermeldung:
beeep.s: Assembler messages:
beeep.s:1: Error: unknown pseudo-op: `.def'
beeep.s:5: Error: constant value required
beeep.s:5: Error: register number above 15 required
beeep.s:6: Error: constant value required
Ich kann die Ursache meines Fehlers nicht finden... Was habe ich falsch gemacht?
Ändern .DEF
mit .EQU
:
.EQU WR, R16
.ORG 0
SER WR
OUT 0x24, WR
Wie auf http://www.nongnu.org/avr-libc/user-manual/assembler.html beschrieben , sollte man NICHT avr-as direkt verwenden, sondern stattdessen avr-gcc verwenden.
Beispiel: avr-gcc -mmcu=atmega8 -x assembler-with-cpp example.s
Siehe Hinweis [2] des Beispielprogramms auf der Seite, um zu sehen, wie man dem Register einen symbolischen Namen zuweist.
Eugen Sch.
avrasm
mit GNU geschrieben wurdeas
, die anscheinend andere Anweisungen haben (die keine Maschinenanweisungen, sondern "Pseudo-Ops" sind).Spirin
Eugen Sch.
Spirin
.dev
in dieser Anleitung eingestellt, und die gleiche Fehlermeldung kommt wenn ich.DEV
durch ersetze.dev
...Eugen Sch.
Spirin
Eugen Sch.
Spirin
Eugen Sch.
Spirin