AVR Dragon - Debugovanje
Indeks članka
AVR Dragon
Poveziavnje i programiranje
Debugovanje
Sve strane

Sada ćemo pokazati kako se vrši debugovanje korsiteći AVR Dragon. S obzirom da se radi o debugWIRE interfejsu, ništa nije potrebno mijenjati u povezivanju AVR Dragona i vanjskog uređaja sa atmelovim mikrokontrolerom, tj. veza ostaje ista kao i za programiranje mikrokontrolera.

U cilju demonstracije debugovanja koristiće se modifikovani programski kod iz prethodnog članka koji vrši demonstraciju poziva vanjskog prekida.

Programski kod je sljedeći:

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

// Prekidna rutina za prekidac

ISR(PCINT1_vect)
{

    if(PIND & (1<<PD4)) //Ako je led upaljena, ugasi
        PORTD &= ~(1<<PD4);
    else
        PORTD |= (1<<PD4); //Ako je led ugašena upali

    if(PCIFR & (1<<PCIF1)) //Ako je fleg postavljen, poništi
        PCIFR |= (1<<PCIF1);

   
}

int main(void)
{

    // inicijalizacija prekidaca
    PORTC |= (1<<PC4);// pull-up zbog prekidaca na masu
    PCICR |= (1<<PCIE1); // tip prekida Pin Change Interrupt
    PCMSK1 |= (1<<PCINT12); // pin na kome se poziva prekid

    // inicijalizacija za led diodu
    DDRD |= (1<<PD4);
    PORTD |= (1<<PD4); // upali Led diodu
   
    sei(); //omoguci globalni prekid

    // startuj beskonacnu petlja
        while(1);
}

Prevođenjem programskog koda i programiranjem fleša koristeći prethodno pokazan način izvršeno je programiranje mikrokontrlera Atmega88. Potrebno je napomenuti da je u programu izbačen dio koji se odnosi na kašnjenje u cilju eliminisanja efekta vibracije kontakata prekidača.
Ulaz u debug-mod vrši se programiranjem bit-osigurača DWEN. Prema tome, potrebno je kliknuti na Fuses, označiti (čekirati) bit-osigurač DWEN i kliknuti na dugme Program, nakon čega se otvara prozor sa upozorenjem da se omogućavanjem debugWIRE interfejsa onemogućava ISP interfejs, kao što je pirkazano na sljedećoj slici (slika 9):

 

Slika_9

Slika 9

 

Klikom na dugme Yes i zatvaranjem prozora, ulazi se u mod za debugovanje. Sada se mogu podesiti željene prekidne tačke tako što se kursor dovede na mjesto prekidne tačke i klikne se na Debug->Toggle Breakpoint, nakon čega se pojavljuje crvena tačka sa lijeve strane. Postavljanjem prekidnih tačaka može se pokrenuti debugovanje, klikom na Debug->Start Debugging. Na desnoj strani AVR Studia može se pratiti stanje u unutrašnjosti mikrokontrolera, tj. stanje u registrima, tajmerima, procesoru i slično.

Na sljedećoj slici (slika 10) prikazane su postavljene prekidne tačke i stanje registara koji se prate.

 

 Slika_10

 Slika10 (klikni na sliku da uvećaš)

 

Klikom na dugme Step into ili na dugme F11 na tastaturi prelazi se na sljedeću naredbu i prati se stanje željenih registara ili promjenljivih. U trenutku poziva prekida kursor automatski skače na prekidnu rutinu kao što se vidi na sljedećoj slici (slika 11):

 

Slika_11

Slika 11

 

Klikom na F11 prolazi se kroz sve naredbe u prekidnoj rutini. Na ovaj način vrši se debugovanje i kontrola rada mikrokontrolera koristeći debugWIRE interfejs.

Nakon završetka debugovanja potrebno je obratiti pažnju na način izlaska iz ovog moda. Zaustavljanjem debugovanja još uvijek je aktivan debugWIRE interfejs, tj. ne može se izvršiti programiranje mikrokontrolera koristeći ISP interfejs, jer je bit-osigurač DWEN programiran. Izlazak iz moda za debugovanje vrši se tako što se u toku rada debugovanja, znači ne stopira se debugovanje nego se odmah klikne na Debug->AVR Dragon Options ili ako je ta opcija neaktivna (onemogućena) tada se prvo klikne na Break (pauza) i onda na AVR Dragon Options, nakon čega se otvara prozor prikazan na sljedećoj slici (slika 12).

 

Slika_12

Slika 12

 

Na ovom prozoru potrebno je kliknuti na dugme Disable degugWIRE, nakon čega se otvara prozor sa potvrdom da li želimo napustiti debugWIRE. Klikom na YES izlazi se iz moda za debugovanje i vraća se u početno stanje.

 

Slika_13

Slika 13

 

Ovdje je ukratko opisana primjena AVR Dragona za programiranje i degubovanje atmelovog mikrokontrolera Atmega88 koji se nalazio u vanjskom uređaju, a koji ima ISP konekotr. Na sličan način može se vršiti programiranje i degubovanje svih mikrokontrolera koje podržava AVR Dragon. Više informacija o karakteristikama AVR Dragona i njegove primjene koristeći druge načine programiranja i debugovanja mogu se naći na atmelovom sajtu www.atmel.com.