avra je kvalitní assember kompatibilní s AVRASM1. Je již trochu starší a chybí v něm definice novějších procesorů. Ale i to je řešitelné. Pokud nepoužijeme direktivu .device
musíme se sami ohlídat v používaných prostředích, paměti, instrukcích. Dalším problémem jsou inc soubory s definicemi pro jednotlivé procesory. Tyto jsou v novějších verzích vývojového prostředí pro AVR procesory pouze pro AVRASM2. V první chvíli jsem přišel s jednoduchým řešením které prověří čas a složitější programy. Inc soubory jsem zbavil všech # direktiv. Můžeme je například protlačit filtrem podle následující ukázky.
$
grep -v ^# orig/tn461def.inc >tn461def.inc
Jak jsem zmínil, avra ve verzi 1.2.3.1 nezná v direktivě .device
novější procesory, jako je například výše uvedený ATtiny461. Můžeme si pomoci několika způsoby. Můžeme odstranit direktivy .device
pro procesory s nimiž má avra problém. Můžeme požít podobné procesory. Například pro zmíněný ATtiny461 by připadal v úvahu ATtiny45. Druhou možností je použít novější verzi avra. Já jsem pro vlastní potřebu zasáhl do zdrojových kódů a v dobré víře dle svých nejlepších znalostí provedl úpravy. Tyto jsou k disopzici ke stažení například na Download
FIXME: Doplnit url a dát do něj zdroje/patch.
Jak jsem říkal, čas ukáže, jak mnoho budu lámat avru než zkusím jiný nástroj.
Postup překladu avra ze zdrojů. Stáhneme si zdroje a umístníme do adresáře /usr/local/download
nebo jiného. Zdroje rozbalíme.
#
cd /usr/local/src#
tar xjvf /usr/local/download/avra-1.2.3a-src.tar.bz2
Na mém systému, kde jsem překládal řadu programů mám všechny potřebné nastroje nainstlovány. Takže v tuhle chvíli nevím které všechny to jsou. Určite to budou programy/balíčky jako autoconf, automake samozřejmě gcc
#
cd avra-1.2.3#
./automake-compile
Toť vše. Tedy překladač máme a podáváme li se blíže do výpisu uvidíme že se nainstaloval jako /usr/local/bin/avra
.