Assember for the Atmel AVR microcontroller family
AVRA is an assembler for Atmel AVR microcontrollers, and it is almost compatible with Atmel's own assembler, AVRASM32. AVRA is written in ANSI C.
There are some differences between the original Atmel assembler AVRASM32 and AVRA. Basically, AVRA is designed to replace AVRASM32 without special changes in your current Atmel AVR Studio enviroment. Command line options have been adapted as far as possible. Jumping to fault-containing lines directly by double-clicking on the error message in the output window does work as with AVRASM32.
.define, .undef, .ifdef, .ifndef, .if, .else, .endif, .elif, .elseif, .warning
Specifying an eeprom file (-e) is not supported. All eeprom data is put out into a file called program.eep.hex and is always in Intel hex format. Other hex file formats are currently not supported.
This makes sure that directives like .ifdef and .undef are working as you probably expect. If you are familiar with the C programming language, you should get easily into AVRA.
AVRA has some new features for writing flexible macros. This should increase the ability to reuse code, e.g., build your own library.
AVRA creates a coff file everytime assembly is sucessful. This file allows AVR Studio or any coff compatible debugger to simulate or emulate the program.
This helps you tracking versions of your software and can also be used to generate customer specific serial numbers.
Since AVRA is written in ANSI C, it should be possible to compile it on most system platforms. If you have problems compiling AVRA, please open an issue in the tracker.
The initial version of AVRA was written by John Anders Haugum. He released all versions until v0.7. Tobias Weber later took over, followed by Burkhard Arenfeld (v1.2) then Jerry Jacobs (v1.3).
After a long 8 years of inactivity, Virgil Dupras took over, preparing a v1.4 release and onwards.
See AUTHORS for a complete list of contributors.
To build the avra
executable, cd into the project's root directory and run
make
. A src/avra
binary will be produced. You can install it with make install
.
By default, make runs under the linux
OS, which assumes a typical GNU
toolchain. If that doesn't work for you, look at the available platforms
available in src/makefiles
and override OS
when you call make
. Note that
those platforms aren't all well tested. Please open an issue in the tracker if
you notice a platform not working.
See USAGE.md.
See CHANGELOG.md.