TVZ Mechatronics Team


Zagreb University of Applied Sciences, Professional Study in Mechatronics

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.

  1. Potrebno je preuzeti najnoviju inačicu Keil razvojnog okruženja s Keil službene internet stranice.
  2. Instalirati Keil uVision 5 razvojno okruženje na računalo.
  3. Otvoriti Keil 5 i kliknuti na ikonu Pack Installer kao što je prikazano ispod: /media/uploads/dfraj/keil5_pack_installer.png
  4. 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, pod Devices 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 samo Keil::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. /media/uploads/dfraj/keil_5_install_lpc1768_pack.jpg 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 kategorijom KEIL->NXP LPC1700 Series Device Support, Drivers and Examples for MCB1700.
  5. 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.

program za preuzimanje

Napomena

$K\ARM\ARMCC\bin\fromelf.exe --bin --output=@L.bin !L

Kreiranje novog projekta u Keil razvojnom okruženju

  1. 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 odabrati New uVision Project te će vam se zatim otvoriti novi prozor u kojem je potrebno definirati naziv i putanju gdje će projekt biti spremljen. /media/uploads/dfraj/keil5_new_project.png /media/uploads/dfraj/2_save_project.jpg
  2. 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 upisati lpc1768 te odabrati navedeni mikroupravljač s liste. Konačno potrebno je potvrditi odabir klikom na OK. /media/uploads/dfraj/3_select_mcu.jpg
  3. Zatim se otvara Manage Run-Time Environment prozor na kojem je potrebno označiti biblioteku (engl. library) CORE pod kategorijom CMSIS i biblioteku Startup pod kategorijom Device. 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 biblioteke Startup 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. /media/uploads/dfraj/4_cmsis_startup.jpg
  4. 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 tabom Target potrebno je provjeriti je su li vrijednosti u Vašem projektu jednake ovima koji su naznačeni na slici. /media/uploads/dfraj/5_target_options.png /media/uploads/dfraj/6_settings.jpg
  5. Odabirom taba Output možete odrediti želite li za Vaš projekt generirati .hex datoteku označavanjem checkbox-a pokraj opcije Create HEX File kao što je pirkazano na slici. /media/uploads/dfraj/7_output_hex_file.jpg
  6. U tabu Linker potrebno je označiti checkbox pokraj opcije Use Memory Layout from Target Dialog. /media/uploads/dfraj/keil5_linker_options.jpg
  7. 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 opciju CMSIS-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 na Settings te nakon otvaranja novog prozora, pod tabom Debug u kategoriji Debug -> Connect & Reset Options -> Reset u padajućem izborniku odabrati opciju VECTRESET. Nakon što ste podesili postavke, potrebno je dvaput potvrditi odabir klikom na OK.
    /media/uploads/dfraj/8_debug_options.jpg /media/uploads/dfraj/9_additional_debug_options.jpg
  8. 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 mapu Source Group 1 te odabrati opciju Add New Item to Group ‘Source Group 1 kao što je prikazano na sljedećoj slici. /media/uploads/dfraj/10.png
  9. 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) ili C (.c) tipa datoteke. Za potrebe ove vježbe odaberite C++ tip datoteke te zatim unesite naziv datoteke (main) pokraj opcije Name: i kliknite na Add. /media/uploads/dfraj/keil5_create_new_source.jpg
  10. 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 ikone Build ili kraće, pritiskom tpke F7. Na sljedećoj slici označena su dva prozora razvojnog okruženja. Prvi je prozor Project u kojem se nalazi prije navedeno stablo direktorija u kojem su prikazane sve datoteke koje se nalaze u Vašem projektu. Drugi prozor je Build Output prozor, na kojem se ispisuju informacije o upozorenjima i/ili greškama prilikom prevođenja programa. /media/uploads/dfraj/11_compile.jpg
  11. 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 tipku Ctrl+F5. U debug načinu rada, osim osnovnog prozora s Vašim programom, otvaraju se dva nova prozora. Prvi je prozor Registers 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. /media/uploads/dfraj/keil5_start_debug_session.png /media/uploads/dfraj/13_debugging_window.jpg

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.

  1. Modificirajte program tako da blinka samo jedna od 3 preostale LED-ice (samo jedna LED-ica može blinkati).
  2. 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.


All wikipages