utorok, 27. decembra 2011

Rýchlokurz do vývojového prostredia AVRStudio a WinAVRRýchlokurz do vývojového prostredia AVRStudio a WinAVR


[2008-02-22] Návod na založenie projektu pre program do mikroprocesora písaný v C, nasledná kompilacia a napalenie do procesora.

Vývojové prostredie AVRstudio

Všeobecný popis:
 avrstudio1.jpg

AVRstudio je vývojové prostredie firmy Atmel, v ktorom je možný kompletný vývoj softvérovej stránky projektu založeného na AVR procesoroch. AVRstudio obsahuje editor na písanie programu v ktorom umožňuje highlighting (farebné rozoznávanie kľúčových slov, komentárov, hodnôt), nastavenie projektu a celého prostredia, kompilátor (môže byť zvolený aj externý napr. pri programovaní v jazyku C), ovládanie bežných programátorov priamo z AVRstudia ,užitočný simulátor AVR procesorov a neoceniteľný debbuger, ktorý pracuje s JTAG rozhraním a umožňuje debuggovanie procesoru priamo v aplikácii a sledovanie/menenie obsahu registrov za behu.
Atmel ponúka toto vývojové prostredie zdarma na stiahnutie na svojej www stránke [1]  a tým robí toto prostredie prístupné každému, kto sa zaujíma o túto oblasť.

Vytvorenie nového projektu:

Postup:

  1. Po spustení AVRstudia nás privíta úvodná obrazovka, v ktorej nám ponúkne vytvorenie nového projektu alebo otvorenie jedného z posledných projektov.  Pre vytvorenie nového projektu klikneme na ikonku New project.


  
  1. Vyberieme si, v čom chceme písať program. Pre tvorbu programu v jazyku C klikneme na AVR GCC (pozor, je treba ho mat nainštalované, buď samostatne alebo ako súčasť WinAVR ). Ak chceme tvoriť v assemblery, tak klikneme na Atmel AVR Assembler. Zvolíme si vhodne meno projektu, hlavného súboru (bude mat koncovku .c) a miesta uloženia. A klikneme na Next.

  
  1. Vyberieme si debuggovaciu platformu. Pre simuláciu na PC zvolíme AVR Simulátor, ak vlastníme a chceme použiť JTAG ICE rozhranie, tak si zvolíme to. Prípadne zvolíme Port na ktorom je pripojený. V okne Device vyberieme typ procesora. My zvolíme ATmega16.A klikneme na Finish, čím sa nám vytvorí projekt. Ak si neskôr nejaký údaj rozmyslíme, ide zmeniť bez opätovného nového vytvárania projektu.




Tvorba programu:
avrstudio5.jpg 



Po úspešnom vytvorení projektu sa nám otvorí už samotné pracovné prostredie.
Vytvorený projekt je potrebné si správne nastaviť cez Project→ Configuration options. Minimálne nastaviť pracovnú frekvenciu procesora aby oneskorovacie slučky boli správne vypočítané. A môžeme pristúpiť k samotnému písaniu programu. Vyskúšajme si napríklad ukážkový program blikania (inkrementovania) na porte A, na ktorý mame pripojene LED. Program napíšte alebo skopírujte do okna editora:

#include <avr/io.h>              //knižnica pre základnú pracu
#include <util/delay.h>           //knižnica pre oneskorenia
int main(void)                    //hlavný program
{
unsigned char num=0,i;            //deklaracia premennej a jej vynulovanie
DDRB= 0xff;                       //nastaví všetky piny portu A ako výstupné
while(1)                                //nekonečný cyklus
       {
       PORTB=num++;               //na port A zapíše premennú num a inkrementuje ju
       for( i=0;i<50;i++)         //vykoná 50x10ms oneskorenie = 0,5s
             {
             _delay_ms(10);
             }
       }
}

Editor pre lepšiu prehľadnosť zobrazuje kľúčové slová modrou a poznámky zelenou farbou. Množstvo ukážkových programov nájdete tiež na [2] a [3].

Preklad zdrojového kódu:

Samotný preklad zdrojového kódu sa urobí pomocou tlačidla F7 alebo cez menuBuild→ Build. Týmto spustime kompilátor. V prípade zdrojového kódu napísaného v jazyku C, AVRstudio zavolá externý kompilátor AVR-gcc. Priebeh a výsledok kompilácie môžeme sledovať v informačnom okne. Najdôležitejšie je sledovať posledný riadok, kde musíme nájsť text „Build succeeded with 0 Warnings...
Ak sa zobrazia chyby je nutné ich opraviť. Ak sa zobrazia varovania, je treba ich skontrolovať, z akého dôvodu vznikli a či sú vôbec pre nás významné.
Obsah informačného okna po kompilácii by mal vyzerať asi takto:

Build started 7.2.2007 at 17:30:16
avr-gcc.exe  -mmcu=atmega16 -Wall -gdwarf-2   -DF_CPU=16000000UL -O0 -fsigned-char -MD -MP -MT Blikanie.o -MF dep/Blikanie.o.d  -c  ../Blikanie.c
avr-gcc.exe -mmcu=atmega16  Blikanie.o     -o Blikanie.elf
avr-objcopy -O ihex -R .eeprom  Blikanie.elf Blikanie.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex Blikanie.elf Blikanie.eep

AVR Memory Usage
----------------
Device: atmega16

Program:    3328 bytes (20.3% Full)
(.text + .data + .bootloader)

Data:          8 bytes (0.8% Full)
(.data + .bss + .noinit)


Build succeeded with 0 Warnings...

Naprogramovanie procesoru:

Pripojíme si AVR programátor k PC (napr. AVR-Prog AVR910). Vyberieme z menu Tools→AVR prog. Tým sa nám spustí program AVRprog pre obsluhu programátora.

§               V okienku Device si vyberieme procesor, ktorý chceme programovať.

§               Cez Advancednastavíme fuse a lock bits podľa datasheetu k danému procesoru.


§               Tlačidlom Browsevyberieme súbor pre Flash pamäť (*.hex) a stlačíme Programv oblasti Flash. Tým sme nahrali samotný program.

§               Ak chceme nahrať aj obsah vnútornej EEPROM, cez Browse vyberieme súbor *.eep a klikneme na Programv oblasti EEPROM.


Použitá literatúra:

§        [1] www stránka výrobcu procesorov www.atmel.com
§        [2] www stránka celá venovaná AVR procesorom www.avrfreaks.net
§        [3] www stránka www.hw.cz