Gast
#845911
Hallo Forum, ich bin am verzweifeln: Beim AVR Assembler v2.1.14 (AVR Studio) gibt es die ASM Direktive .message <string> und die Präprozessor-Direktive #message <TOKEN>, um Nachrichten beim build auszugeben. (analog auch mit warning und error in . und #) Nun würde ich gerne eine Zahl, die durch den Assembler aus .equ's oder #defines berechnet wird über message ausgeben. .message will nur String, und #message ein TOKEN Nach stundenlanger Suche bin ich nur auf C-bezogene Lösungen dieses Problems gestoßen: #define STR2(x) #x #define STR(x) STR2(x) #define ZAHL 100 #define STR_ZAHL STR(ZAHL) .warning STR_ZAHL (#warning STR_ZAHL ergibt selbes ergebnis) Nur der AVR ASM Preprocessor gibt dann einfach nur "ZAHL" aus, warum auch immer (Bug?) Da es die Stringificate Direktive # nur im Preprocessor gibt, kann ich auch nur mit #define's arbeiten, da die equ's und dergleichen erst nach dem Preprocessor ausgewertet werden. Eine Expression-Function wie INT() für Expressions in ASM direktiven gibt es für Stringificate auch nicht, (was könnte nützlicher sein) Wenn ich versuche .message mit irgendetwas anderem als ".." zu füttern gibts Errors. Gibt es für dieses stupide Problem wirklich keine Lösung bei AVR ASM? Eigentlich will ich sowas wie: .equ Const = A+B .message Const