AvrA
The assembler that comes with the GCC tool chain is generalized against itself and therefor can not be used to assemble code written for atmels native assembler. When working with new processors this is problematic since the code samples are often the best points of reference. There is good news and bad news here.
The good news
The good news is that there is an assembler avra that is in the public domain that assembles the atmel source. (avra.sourceforge.com?)
The bad news
The bad news is that the last stable version is missing most of the new parts and the developers are in the middle of retooling big chunks of the code.
The ugly
Last fall I blew up the last of the tiny 15s that I sampled a few years ago. When I went to order replacements the tiny45s were cheaper and they had more features. In order to get this to work I had to add the parts to both avrdude and avra. The avra source had not been generalized very well and there were some major annoyances but the resulting code worked. Once I moved from the tiny15 to the 45 I was able to program in C (footnote 1) so I didnt think much about it.
Six Months Later.
At some point in december I built avr from the latest source and it threw a bunch of buss errors. I didnt care (because my patched/stable version “Worked for me”) until I started working with putting together a complete tool chain for the AVR on OSX . At this point I looked at the best way to get all of the current devices into the stable branch of the assembler. Looking at the Partsdescriptionsfiles directory I discovered that I could parse the XML files and create the appropriate device_list table for device.c I wrote a php (cause thats what I was working in) and a tcl parser because some of the other tools that need to be created shoudl be written in tcl.
The resulting device.c file has been roled into a the stable branch of the avra assembler and a new(old) version was created 1.0.2 and I have been invited to help with the development of the current branch.
Footnotes
- (and when I found that I had to patch that chain as well boy howdy I was pissed).