avra
avra copied to clipboard
Assembler for the Atmel AVR microcontroller family
I attempted to use the apt-get repo for `avra` and there were missing includes. `m328Pdef.inc` to be specific. I had to uninstall and clone this repo to get a package...
Forward references should be allowed in expressions - as an argument to a mnemonic or macro, and - as an argument to any directive except conditionals, `.byte`, `.csegsize`, and `.org`...
When immediate instruction (ldi, andi, etc) has second operand with inversion operator and MSB of its expression is set, for example, **~(128)**, this produces _constant out of range_ warning. Result...
The following log illustrates the issue. ``` [src]$ ../../avra/src/avra LCDDriver.asm --max_errors 100 AVRA: advanced AVR macro assembler (version 1.4.2) Pass 1... Pass 2... m32U4def.inc(44) : PRAGMA PARTINC directive currently ignored...
For compatibility with AVRASM2 all expressions should be 64 bit internally, so that the following is equal ```assembly .device atmega168 .equ F_CPU = 16000000 .macro delay1 .set cycles = @0...
For compatibility with AVRASМ2 аn expression with a parenthesis around should not require to be separated via whitespace from the previous token ```assembly .device atmega168 .macro DEST .dw @0 .endmacro...
The register names are case insensitive, e.g. `R0` and `r0` are equal. Thus it makes sense that their aliases are also. (amforth contains such examples)