Razhroščevanje ali po angleško debugging je postopek, ko z ustreznim programskim in po možnosti tudi strojnim orodjem spremljamo izvajanje programa v mikrokontrolerju ter na podlagi podatkov ugotovimo, kje se skriva programski hrošč. V kolikor nimamo na voljo ustrezne strojne opreme, potem poteka razhroščevanje v simulatorju ali s pomočjo izpisa vrednosti spremenljivk bodisi na LCD prikazovalnik ali na terminalsko okno. Tokrat bom pokazal kako z relativno enostavnim strojnim dodatkom dobimo izredno zmogljivo orodje za razhroščevanje AVR mikrokontrolerjev.
Kot sem omenil, je razhroščevanje možno na več načinov. Največkrat uporabljamo princip izpisa ključnih spremenljivk bodisi na LCD ali na terminalsko okno. V kolikor nimamo ustreznega orodja je to seveda čisto simpatičen postopek, ki sem ga s pridom uporabljal tudi sam. Tako vidimo spremembe v vrednosti spremenljivk na realnem mikrokontrolerju, ki sprejema ali oddaja neke podatke. Vendar se zgodi, da tudi takšno spremljanje podatkov ni dovolj in je pač potrebno pogledati, kaj se dogaja v drobovju mikrokontrolerja. Programski hrošči so namreč lahko precej nadležni in se (kot pravi hrošči) skrivajo po programskih luknjah in jih je včasih prav težko izbezati iz njih. Za ta namen ima Atmel na voljo več brezplačnih orodij, ki s pomočjo ustrezne strojne opreme odlično delujejo. Eno takšnih orodij je tudi JTAG ICE, ki ga bom v povezavi z AVR studio programom predstavil. Vse skupaj je seveda teklo na MegaPin razvojni plošči, ki se je resnično izkazala zelo »mega«.
Kaj potrebujemo
Za razhroščevanje v AVR studiu je potrebno nekaj priprav, tako programskih kot strojnih. Izmed strojnih naj omenim JTAG ICE vmesnik, ki ga lahko najdete na več mestih na spletu.
Nastavitve MegaPin
-
Najprej na AVR mikrokontrolerju (npr. ATMega32) nastavimo JTAG vmesnik. To storimo v AVR Studio programu v zavihku Set Fuses
-
Nato na MegaPin odstranimo Jumperja J10 in J11, sklenemo VCC EN in JTAG EN Jumperja
-
Povežemo PORTC s PORTC konektorjem blizu Mega16 JTAG čipa
-
Zaženemo AVR Studio programator s tem, da izberemo JTAG ICE
-
Opomba: USB vmesnik MegaPin plošče mora biti nastavljen na COM1 do COM4, sicer JTAG vmesnik COM vrat ne bo prepoznal!
MEGAPIN – AVR RAZVOJNO ORODJE (vsebuje razhroščevalnik)
Celoten članek je na voljo tukaj: Svet_elektronike_173_marec
Avtor: Jure Mikeln 2010_SE173_29