AVRA Extended

The AVRA open source macro assembler is a fair alternative for hobbyists developing for AVR microcontrollers. For others the official full blown IDE is also available from MICROCHIP for download.

I stated using the official AVRA macro assembler, but soon enough I hit the wall when I wanted to write an include file with macros calculating delay cycles for busy-wait loops. It turns out that the official AVRA macro assembler comes with a serious limitation. That is, it comes with 32 integers for expression values, while the AVRSAM2 -the official macro assembler from Atmel- has 64 bit integers for the same.

Another oddity is that it blurs the boundaries between the preprocessor- and assembler directives. Also lacks support for function-like preprocessor macros, like #define SQR(X) ((X)*(X)).

So I decided to contribute and implement some missing features. After submitting the PRs, I had to realize that the origin seems to be abandoned and not being maintained any more.

Finally I continued to work on my fork and implemented those parts which I was lacking. All is on the devel branch.

Check out the change log. My repo can be found here.

ARVA Change log

Release 1.4.2b (2024-04-26, by Imre Horvath)

  • Add 64 bit expressions
  • Add preprocessor directives #define and #undef to define and undefine object- and function-like preprocessor macros
  • Add preprocessor operator ## to concatenate preprocessor tokens
  • Implement .undef assembler directive
  • Update makefile for macOS
  • Add the command line option -W to the help text
  • Add tests for the new features
AVRA Extended