You are viewing an older revision! See the latest version
Koristenje ARM Keil razvojnog okruzenja
U ovom zadataku potrebno je stvoriti novi projekt u KEIL uVision 5 razvojnom okruženju za LPC1768 Cortex-M3 mikroupravljač. Kao što je navedeno u prijašnjem zadatku KEIL uVision 5 sadrži integrirani dodatak (Pack Installer) za instaliranje osnovnih i dodatnih paketa tj. biblioteka za točno određene serije mikroupravljača.
Prilikom kreiranja projekta za bilo koji ARM-ov mikroupravljač baziran na Cortex-M mikroprocesoru, najprije je potrebno instalirati MDK5 pakete programske podrške za željenu seriju mikroupravlajča. Pakete je moguće dodati samostalno ili preko KEIL razvojnog okruženja (IDE). U nastavku će biti prikazana instalacija paketa programske podrške koristeći KEIL razvojno okruženje.
Instaliranje ARM Keil razvojnog okruženja i LPC1700 paketa programske podrške¶
Napomena
Pri radu na laboratorijskim vježbama cijeli ovaj korak preskačete, budući da su sve predradnje unaprijed odrađene.
- Potrebno je preuzeti najnoviju inačicu Keil razvojnog okruženja s Keil službene internet stranice.
- Instalirati Keil uVision 5 razvojno okruženje na računalo.
- Otvoriti Keil 5 i kliknuti na ikonu
Pack Installer
kao što je prikazano ispod: - Otvoriti će Vam se
Pack Installer
prozor prikazan na sljedećoj slici. Primjetite da je prozor podijeljen na dva dijela: lievi i desni. Na lijevoj polovici, podDevices
u tražilicu upišite lpc1768 te odaberite željeni mikroupravljač s popisa. Sada bi Vam se na desnoj polovici prozora trebali prikazati svi paketi programske podrške dostupni za odabrani mikroupravljač. Za potrebe ovog primjera instalirat ćemo samoKeil::LPC1700_DFP
(engl. Device Family Pack) paket, a ostale pakete možete instalirati po istom principu. Kako bi mogli instalirati navedeni paket potrebno je, pokraj njega, s njegove desne strane kliknuti na tipku install (na slici je na tom mjestu ispisano Up to date ). Nakon toga, primjetit ćete u donjem informacijskom prozoru da se odabrani paket najprije preuzima s interneta te zatim instalira na računalo. Alternativno, moguće je ručno preuzeti i instalirati pakete programske podrške direktno sa stranice MDK5 Software Packs. Potrebno ih je pronaći pod kategorijomKEIL->NXP LPC1700 Series Device Support, Drivers and Examples for MCB1700
. - Nakon završene insalacije paketa pojavit će Vam se prozor s potvrdom za ponovno učitavanje paketa. Potrebno je odabrati
Yes
.
Informacija
Na računalima koje koristite na laboratorijskim vježbama instalirana je inačica 2.2.0. Keil::LPC1700_DFP
paketa. Na novijim inačicama (2.3.0. i 2.4.0.) pojavljivale su se greške prilikom prevođenja i prebacivanja programa na mikroupravljač. To je ispravljeno u najnovijoj inačici 2.5.0.
Napomena
$K\ARM\ARMCC\bin\fromelf.exe --bin --output=@L.bin !L
Kreiranje novog projekta u Keil razvojnom okruženju¶
- Kako bi kreirali novi projekt, potrebno je otvoriti Keil razvojno okruženje te pronaći tab
Project
, odabirom navedenog taba, otvara se padajući izbornik na kojem je potrebno odabratiNew uVision Project
te će vam se zatim otvoriti novi prozor u kojem je potrebno definirati naziv i putanju gdje će projekt biti spremljen. - Nakon što ste odabrali lokaciju na kojoj će Vaš projekt biti spremljen, pojavljuje Vam se dolje prikazani prozor u kojem je potrebno definirati za koji mikroupravljač izrađujete projekt. Najprije je potrebno u padajućem izborniku odabrati
Software Packs
te zatim u tražilicu upisatilpc1768
te odabrati navedeni mikroupravljač s liste. Konačno potrebno je potvrditi odabir klikom naOK
. - Zatim se otvara
Manage Run-Time Environment
prozor na kojem je potrebno označiti biblioteku (engl. library)CORE
pod kategorijomCMSIS
i bibliotekuStartup
pod kategorijomDevice
. Ako je za Vaš projekt potrebna još neka određena kategorija, nju je, kao i prethodne dvije, moguće dodati označavanjem određenih checkbox-eova pokraj njih. Odabirom tj. uvoženjem bibliotekeStartup
automatski se u projekt dodaju datoteke potrebne za pokretanje (engl. startup/boot) našeg odabranog mikroupravljača LPC1768, koje bi inače morali dodavati iz drugih vanjskih izvora. Naknadno dodavanje i brisanje biblioteka može se obaviti u bilo kojem trenutku razvoja projekta. - Sljedeće što je potrebno definirati pri izradi projekta su postavke za naš odabrani mikroupravljač. Stoga je u KEIL-u potrebno odabrati
Options for Target
ikonu kao što je prikazano na slici. Pod prvim tabomTarget
potrebno je provjeriti je su li vrijednosti u Vašem projektu jednake ovima koji su naznačeni na slici. - Odabirom taba
Output
možete odrediti želite li za Vaš projekt generirati .hex datoteku označavanjem checkbox-a pokraj opcijeCreate HEX File
kao što je pirkazano na slici. - U tabu
Linker
potrebno je označiti checkbox pokraj opcijeUse Memory Layout from Target Dialog
. - Pod tabom
Debug
moguće je odabrati hoćemo li otklanjati greške i testirati program (engl. debugging) koristeći simulator ili sklopovski (engl. hardware) debugger. U Vašem slučaju odabrat ćete sklopovski debugger te je pritom u padajućem izborniku potrebno odabrati opcijuCMSIS-DAP Debugger
(engl. CMSIS-DAP - Cortex Microcontroller Software Interface Standard-Debug Access Port), budući da je to debugger koji koristi Vaš mikroupravljač LPC1768. Dodatno, potrebno je kliknuti naSettings
te nakon otvaranja novog prozora, pod tabomDebug
u kategorijiDebug -> Connect & Reset Options -> Reset
u padajućem izborniku odabrati opcijuVECTRESET
. Nakon što ste podesili postavke, potrebno je dvaput potvrditi odabir klikom naOK
.
- U glavnom prozoru KEIL razvojnog okruženja, s lijeve strane u stablu direktorija (engl. Directory tree) u prozoru
Project
potrebno je kliknuti desnim klikom miša na mapuSource Group 1
te odabrati opcijuAdd New Item to Group ‘Source Group 1
kao što je prikazano na sljedećoj slici. - Otvorit će Vam se novi prozor u kojem je potrebno definirati tip datoteke u koju ćemo upisati kôd. Možemo odabrati između
C++
(.cpp) iliC
(.c) tipa datoteke. Za potrebe ove vježbe odaberiteC++
tip datoteke te zatim unesite naziv datoteke (main) pokraj opcijeName:
i kliknite naAdd
. - Sada možete započeti pisati kôd ili u Vašem zadatku, u editor zalijepite programski kôd koji se nalazi nakon 11. točke ovog zadatka. Program možete prevesti odabirom ikone
Translate
i zatim ikoneBuild
ili kraće, pritiskom tpkeF7
. Na sljedećoj slici označena su dva prozora razvojnog okruženja. Prvi je prozorProject
u kojem se nalazi prije navedeno stablo direktorija u kojem su prikazane sve datoteke koje se nalaze u Vašem projektu. Drugi prozor jeBuild Output
prozor, na kojem se ispisuju informacije o upozorenjima i/ili greškama prilikom prevođenja programa. - U zadnjem koraku prikazano je da u
debug
način rada razvojnog okruženja možete ući, a i izaći, odabirom sljedećih opcija:Debug -> Start/Stop Debug Session
ili pritiskom na tipkuCtrl+F5
. Udebug
načinu rada, osim osnovnog prozora s Vašim programom, otvaraju se dva nova prozora. Prvi je prozorRegisters
u kojem su prikazani određeni registri u koje zapisujemo podatke ovisno o našem programu. Na drugom prozoru,Disassembly
, prikazan je asemblerski kôd Vašeg programa.
U nastavku je prikazan kôd koji trebate kopirati u svoj projekt. Prikazani programski kôd ima istu funkcionalnost kao i program iz uvodne vježbe , uz jedinu razliku da vrijeme čekanja između paljenja i gašenja LED1
iznosi 1 sekundu. Vrijeme čekanja moguće je modificirati promjenom vrijednosti do koje broji for petlja.
#include <lpc17xx.h> void delay(void); int main(void){ LPC_GPIO1->FIODIR = 1<<18; // Linija kôda u kojoj konfiguriramo pin, na koji je spojena LED-ica 1, kao izlaz while(1){ LPC_GPIO1->FIOSET = 1<<18; // Postavi pin u visoko stanje, tj. upali LED1 delay(); // funkcija za kasnjenje, umjesto funkcije (wait()) LPC_GPIO1->FIOCLR = 0x40000; // Postavi pin u nisko stanje, tj. ugasi LED1 delay(); } } void delay(void){ unsigned int count,i=0; for(count=0; count < 10000000; count++){ i++; // ako je tjelo for for petlje prazno, prevoditelj će ju ukloniti, stoga je ovdje //postavljen inkrement varijable i } }
Nakon što ste testirali gore prikazani programski kôd, potrebno je proučiti 9. poglavlje korisničkog priručnika za LPC1768 (str. 130), kako bi odredili princip po kojem je napisan gore prikazan programski kôd, tj. čemu služe registri DIR, SET i CLR.
- Modificirajte program tako da blinka samo jedna od 3 preostale LED-ice (samo jedna LED-ica može blinkati).
- Modificirajte program tako da blinkaju 2 ili više LED-ica (gotovo) istovremeno.
Čestitke!
Završili ste sve vježbe iz teme Koristenje ARM Keil razvojnog okruzenja.
Povratak na naslovnu stranicu TVZ Mechatronics Team-a.