Avarice
Avarice on Atmelin AVR-mikroprosessoreiden JTAG-liitännän käyttöön tarkoitettu ohjelma, jolla voi siirtää ohjelmia mikrokontollerille ja debugata siellä ajettavia ohjelmia. Debuggaaminen tapahtuu GDB-debuggerin kautta, jolle avarice tekee pienen palvelimen haluttuun porttiin. GDB:ta ja avaricea ei välttämättä tarvitse ajaa samassa koneessa.
Debuggaus
Käännä aluksi ohjelma debuggaussymbolien kanssa ja lataa se kontrolleriin valmiiksi. GDB:ta varten tarvitset lisäksi saman ohjelman ELF-binäärin, jonka esimerkiksi AVR-GCC oletuksena lähdekoodista tekee.
Avaricen ajaminen vaatii yleensä root-oikeudet. Pääkäyttäjänä aja seuraava komento:
avarice -j /dev/ttyUSB0 :4242
Yhdistää itsensä /dev/ttyUSB0 -sarjaportissa olevaan JTAG-liitäntään ja kuuntelee GDB:lta tulevia yhteyksiä portissa 4242. Ohjelma tulostaa muutaman rivin tietoa toiminnastaan, ja kertoo lopuksi odottavansa GDB:n yhteydenottoa: Waiting for connection on port 4242.
Nyt voit yhdistää AVR:aa varten käännetyn GDB:n (löytyy todennäköisesti Avaricen tarjoavista jakeluista valmiiksi paketoituna) Avariceen. Käynnistä ensiksi GDB:
avr-gdb ./ohjelma
GDB:n yhdistämiseksi Avariceen aja GDB:ssa ensin komento
target remote localhost:4242
Tarvittaessa korvaa localhost etäkoneella tai 4242 jollain muulla portilla, mikäli avarice pyörii jossain muualla tai portiksi valittiin joku muu kuin 4242.
Normaalista GDB:n käytöstä poiketen ohjelma on jo valmiiksi ajossa, joten run-komentoa ei pidä antaa. Ohjelma on kuitenkin aluksi pysäytettynä, joten tässä vaiheessa voi asetella breakpointteja ja muuten säädellä. Kun haluat ohjelman käyntiin, aja komento continue.