60
Keil uVision3 -Uvod Programiranje mikrokontrolera u asembleru predstavlja optimalan nacin programiranja sa stanovišta iskorišćenja ograničenih ugrađenih resursa, kao na primer, programske memorije i dr. S druge strane za složenije projekte program napisan u asembleru može biti komplikovan za čitanje i razumevanje. Zato se danas mikrokontroleri programiraju u višim programskim jezicima, a najpoznatiji i najčešce korišćeni je programski jezik C.Pretpostavkom da student poseduje osnovna znanja o programskom jeziku C i njegovim osnovnim strukturama podataka. Takođe, pretpostavlja se znanje tzv. ANSI C-a. Efikasnost programiranja je povećana i zbog upotrebe elemenata strukturalnog programiranja i širokog skupa operatora.U odnosu na ANSI ( American National Standards Institute) C programski jezik, C za mikrokontrolere je prilagođena varijanta koja koristi specijalizovan kompajler(prevodlac). Primer specijalizovanog kompajlera je C51 kompajer koji se koristi za prevođenje programa kod mikrokontrolera baziranih na 8051 mikroprocesorima. C jezik sam po sebi nije u mogucnosti da obavlja operacije (kao što su ulaz i izlaz), te su ove mogucnosti obezbeđene kao deo standardne biblioteke. Zbog toga što su ove funkcije odvojene od samog jezika, C je naročito pogodan za generisanje programa lako prenosivih izmedu različitih platformi. Ukratko, interakcija programa sa okolinom u programskom jeziku C je sadržana u njegovoj standardnoj biblioteci, a C51 kompajler je specijalizovan za ugrađene (embedded) mikroprocesore. -Proširenja za standardni ANSI C jezik U cilju što lakšeg rada sa 8051 mikroprocesorima, C51 kompajler koristi brojne nove ključne rječi koje ne postoje u standardnom C jeziku. Ukratko ćemo objasniti značenje najviše korišcenih kljucnih riječi. -Arhitektura 8051 podržava nekoliko fizički odvojenih memorijskih prostora i dejelova za smeštanje programa. Svaki memorijski prostor nudi određene prednosti i mane. Postoje memorijski prostori koji omogućavaju: Čitanje ali ne i upis upis i čitanje upis i čitanje ali brže u odnosu na ostale memorije Programska (code) memorija ima samo mogucnost čitanja i može biti po realizaciji unutrašnja, spoljašnja i kombinacija ove dve memorije. Programskoj memoriji se može pristupiti pomoću memorijskog tipa code definisanog u okviru C51 standardne biblioteke. Unutrašnja memorija za podatke se nalazi na samom čipu i u nju se može i upisivati i čitati. -Memoriji za podatke se brzo pristupa jer se koristi 8-bitna adresa. Za pristup internoj memoriji se koriste tri razlicita memorijska tipa: data - oznacava da se pristupa internoj memoriji podataka uz direktno adresiranje,što omogucava brz pristup (128B). idata - označava da se pristupa celoj memoriji za podatke (256B) uz indirektno adresiranje. bdata – označava da se pristupa lokacijama ukupne velicine od 16 bajtova koje se mogu adresirati po bitovima. Za razliku od unutrašnje, spoljašnja memorija za podatke je sporija, jer se pristup vrši preko pokazivaca na podatke. Maksimalno je podržano 64k spoljašnje memorije za podatke. Vrlo je važno da se shvati da se ovaj adresni prostor ne mora koristiti samo za pristupanje memoriji. Hardverski dizajn može i mapirati odredene periferne sklopove unutar memorijskog prostora C51. Kompajler nudi dva memorijska tipa za pristup spoljašnjoj memoriji za podatke: -1-

keil u vision 3

Embed Size (px)

DESCRIPTION

dsdasdas

Citation preview

  • Keil uVision3 -Uvod Programiranje mikrokontrolera u asembleru predstavlja optimalan nacin programiranja sa stanovita iskorienja ogranienih ugraenih resursa, kao na primer, programske memorije i dr. S druge strane za sloenije projekte program napisan u asembleru moe biti komplikovan za itanje i razumevanje. Zato se danas mikrokontroleri programiraju u viim programskim jezicima, a najpoznatiji i najece korieni je programski jezik C.Pretpostavkom da student poseduje osnovna znanja o programskom jeziku C i njegovim osnovnim strukturama podataka. Takoe, pretpostavlja se znanje tzv. ANSI C-a. Efikasnost programiranja je poveana i zbog upotrebe elemenata strukturalnog programiranja i irokog skupa operatora.U odnosu na ANSI ( American National Standards Institute) C programski jezik, C za mikrokontrolere je prilagoena varijanta koja koristi specijalizovan kompajler(prevodlac). Primer specijalizovanog kompajlera je C51 kompajer koji se koristi za prevoenje programa kod mikrokontrolera baziranih na 8051 mikroprocesorima. C jezik sam po sebi nije u mogucnosti da obavlja operacije (kao to su ulaz i izlaz), te su ove mogucnosti obezbeene kao deo standardne biblioteke. Zbog toga to su ove funkcije odvojene od samog jezika, C je naroito pogodan za generisanje programa lako prenosivih izmedu razliitih platformi. Ukratko, interakcija programa sa okolinom u programskom jeziku C je sadrana u njegovoj standardnoj biblioteci, a C51 kompajler je specijalizovan za ugraene (embedded) mikroprocesore. -Proirenja za standardni ANSI C jezik U cilju to lakeg rada sa 8051 mikroprocesorima, C51 kompajler koristi brojne nove kljune rjei koje ne postoje u standardnom C jeziku. Ukratko emo objasniti znaenje najvie koricenih kljucnih rijei. -Arhitektura 8051 podrava nekoliko fiziki odvojenih memorijskih prostora i dejelova za smetanje programa. Svaki memorijski prostor nudi odreene prednosti i mane. Postoje memorijski prostori koji omoguavaju: itanje ali ne i upis upis i itanje upis i itanje ali bre u odnosu na ostale memorije Programska (code) memorija ima samo mogucnost itanja i moe biti po realizaciji unutranja, spoljanja i kombinacija ove dve memorije. Programskoj memoriji se moe pristupiti pomou memorijskog tipa code definisanog u okviru C51 standardne biblioteke. Unutranja memorija za podatke se nalazi na samom ipu i u nju se moe i upisivati i itati. -Memoriji za podatke se brzo pristupa jer se koristi 8-bitna adresa. Za pristup internoj memoriji se koriste tri razlicita memorijska tipa: data - oznacava da se pristupa internoj memoriji podataka uz direktno adresiranje,to omogucava brz pristup (128B). idata - oznaava da se pristupa celoj memoriji za podatke (256B) uz indirektno adresiranje. bdata oznaava da se pristupa lokacijama ukupne velicine od 16 bajtova koje se mogu adresirati po bitovima. Za razliku od unutranje, spoljanja memorija za podatke je sporija, jer se pristup vri preko pokazivaca na podatke. Maksimalno je podrano 64k spoljanje memorije za podatke. Vrlo je vano da se shvati da se ovaj adresni prostor ne mora koristiti samo za pristupanje memoriji. Hardverski dizajn moe i mapirati odredene periferne sklopove unutar memorijskog prostora C51. Kompajler nudi dva memorijska tipa za pristup spoljanjoj memoriji za podatke: -1-

  • xdata - da se moe pristupiti bilo kojoj lokaciji unutar memorijskog prostora (64k) i koristi se kod large memorijskog modela. pdata - oznacava de se pristupa samo jednoj stranici velicine 256 bajta od spoljanje memorije za podatke. Ovaj tip se koristi kod compact memorijskog modela. Udaljena memorija (far memory) oznaava proireni adresni prostor kod veine 8051varijanti. C51 kompajler koristi genericki trobajtni pokazivac za pristup ovom proirenom adresnom prostoru. Dva C51 memorijska tipa, far i const far, slue za pristup promjenljivama u proirenom RAM prostoru i konstantama u proirenom ROM prostoru. Memorijski model odreduje tip memorije u upotrebi za argumente funkcija, automatske promjenljive i deklaracije koje ne koriste eksplicitno navedeni tip memorije. C51koristi tri memorijska modela: Small Model - Kod ovog modela, sve promenljive, podrazumevano, se nalaze u unutranjoj memoriji za podatke 8051 sistema tj. koristi se data memorijski tip. Kod ovog modela, promenljivama se pristupa na efikasan nacin. Medutim, sviobjekti koji nisu eksplicitno postavljeni u nekom drugom memorijskom prostoru,moraju da se uklope u okviru unutranjeg RAM-a koji je sam po sebi vrlo mali. Compact Model - Kod ovog modela, podrazumevamo, sve promenljive se nalaze u jednoj stranici spoljanje memorije za podatke tj. koristi se memorijski tip pdata. Ovaj model moe obezbediti maksimalno 256 bajtova promenljivih, jer se koristi indirektno adresiranje kroz registre R0 i R1. Large Model - Kod ovog modela, sve promjenljive se nalaze u spoljanjoj memoriji za podatke (do 64k prostora) tj. koristi se xdata memorijski tip. Pristup memoriji kod ovog modela ja u odnosu na ostale modele najsporiji i neefikasan, narocito kod promjenljivih koje sadre nekoliko bajtova. Evo nekoliko primera za korienje navedenih memorijskih tipova: unsigned char bdata bdata_var; unsigned char code code_constant; unsigned char data fast_variable; unsigned char far far_variable; unsigned char idata variable; unsigned char pdata variable; unsigned char xdata variable; -Familija 8051 mikrokontrolera sadri poseban memorijski prostor za pristup specijalnim funkcijskim registrima (Special Function Registers - SFRs). Ovi registri se koriste u programu za kontrolu tajmera, brojaa, serijskog ulaza i izlaza, ulazno-izlaznih portova i periferija. Nalaze se na adresama od 0x80 do 0xFF (128 bajta) i moe im se pristupati bitski, bajtovski, ili na nivou rei. Svi nazivi ovih registara su predefinisani u okviru C51 kompajlera. C51 kompajler obezbeduje pristup specijalnim registrima preko tipova podataka: sfr - deklarie se u istom stilu kao i druge C promenljive. Portovi P0, P1, P2 i P3 koriste ovaj tip. Ovaj tip se ne moe definisati u okviru tela funkcije. sfr P0 = 0x80; /* Port-0, address 80h */ sfr P1 = 0x90; /* Port-1, address 90h */ sfr P2 = 0xA0; /* Port-2, address 0A0h */ sfr P3 = 0xB0; /* Port-3, address 0B0h */ sfr16 - neki od specijalnih registara su 16-bitni. Na primjer, 8052 koristi adrese 0xCC i 0xCD za donji i gornji bajt tajmera/brojaca 2. sfr16 T2 = 0xCC; /* Timer 2: T2L 0CCh, T2H 0CDh */ sfr16 RCAP2 = 0xCA; /* RCAP2L 0CAh, RCAP2H 0CBh */ sbit - zadaci koji se reavaju 8051 mikrokontrolerima esto zahtjevaju jednobitne promenljive. Zato C51 podrava jednobitni tip podataka koji omoguava pristup specijalnim jednobitnim registrima. sbit EA = IE^7; /*oznacava dozvolu prekida */ sfr PSW = 0xD8; /*specijalni registri */ sfr IE = 0xA8; /*sa mogucnoci bitskog adresiranja u tri varijante*/ -2-

  • sbit OV = PSW^2; /*varijanta 1 sbit name = sfr-name ^ bit-position*/ sbit CY = PSW^7; sbit EA = IE^7; sbit OV = 0xD0^2; /*varijanta 2 sbit name = sbit-address ^ bit-position*/ sbit CY = 0xD0^7; sbit EA = 0xA8^7; sbit OV = 0xD2; /*varijanta 3 sbit name = sbit-address*/ sbit CY = 0xD7; sbit EA = 0xAF; Pored ovih tipova specifinih za 8051 mikrokontrolere, ostali tipovi u standardnom ANSI C-u su takoe podrani od strane C51 kompajlera.

    -Struktura C programa za mikrokontrolere familije 8051 -Prvi red programa ( sadri direktivu #include za itanje (ubacivanje) izvornog fajla sa deklaracijama za odgovarajuci mikrokontroler. U toku kompajliranja, fajl naveden u direktivi #include se ubacuje u osnovni fajl (u ovom slucaju u main.c). Pored #include znaajna direktiva je i #define kojom se definie makro ili konstanta. Na primer: #include //ukljucenje matematickih funkcija #include //ukljucenje adresa portova, registara i specijalnih bita u memoriji #define PI 3.14159 /* definisanje konstante PI, sada se u programu svuda pie PI a kompajler zna da je to broj 3.14159 */ #define Timer0H 0xE4 //Konstanta u kodu Timer0H se zameni sa vrednocu =0xE4 #define Timer0L 0xF0 -Treba zapaziti da je u programu main.c promenljiva i definisana kao unsigned char, to znai da je osmobitna. Kako port P1 ima osam noica, vrednost koja mu se pridruuje mora biti osmobitna tj. u intervalu od 0 do 255. Pojedinim noicama porta P1 pristupa se pisanjem P1^x gde x oznacava broj noice (npr. P1^2=0), gde je x u opsegu od 0 do7.Ovo je bio jednostavan primer programa napisanog u C programu. Moemo primetiti da se telo programa izvrava u okviru beskonane petlje, to znai da e se program na mikrokontroleru u normalnim okolnostima izvravati do trenutka kada se prekine napajanje. Ovakav nain programiranja nije obavezan, ali je poeljan u smislu da na pravi nain opisuje osnovnu upotrebu mikrokontrolera u kontrolnim i nadzornim sistemima u realnom vremenu. -3-

  • - Vision3 prua vam:menu bar naredbu za ulazak, alat bar gde moete brzo odabrati naredbe i prozori za izvorne datoteke, dijaloke okvire, i prikazuje informacije. Vision3 Vam omoguava istovremeno otvaranje i pregled vie izvornih datoteka. Kod Vision3 postoji: -Build Mode: Omoguava vam prevoenje aplikacija i datoteka i generisanje izvrnog programa. -Debug Mode:Nudi vam program za pronalaenje greaka na va zahtev. Sledea slika prikazuje tipinu konfiguraciju Vision3 u Debug Mode.

    Project Workspace(radni proctor projekta) vam daje pristup: -Datoteci i grupi u okviru projekta. -CPU registrima -Alatima -Tekstualnim predlozima za najee koriene blokove teksta. Funkcija u projektu za brzu navigaciju Output Window(izlazni prozor) daje poruke o greci i brz pristup Memory Window(memorijski prozor) daje pristup memoriji Watch & Call Stack prozor vam omoguava pregled i izmenu programa i prikazuje trenutnu funkciju poziva stabla. Radni prozor se koristi za ureivanje datoteka, Peripheral Dialog e vam pomoi da proverite status periferija. Kada koristite Keil Vision3, projekt razvoja ciklusa je otprilike isti kao to je za bilo koji drugi softver . 1-Izradi projekt,odaberi ciljni ip iz baze podataka i konfigurii(podesi) postavke alata. 2-Napravi source(izvornu) datoteku u C. 3-Izradi dokumentaciju korienjem projekt menadera. 4-Ispravi greke u izvornu datoteku. 5-Ispitaj povezane aplikacije. -4-

  • -Sledei blok dijagram ilustruje potpuni Vision3 softver.Svaka komponenta je opisana u nastavku.

    Vision3 IDE

    - Vision3 IDE kombinuje projektni menadment,interaktivni editor za ispravljanje greaka,mogunost itanja i on-line pomo. Pomou Vision3 stvaramo svoje izvorne datoteke i organizujemo ih u projekt koji definie ciljnu aplikaciju. Vision3 automatski kompajlira,prikuplja i povezuje aplikacije. C & prevodilac makroasembler -Source datoteke stvorene od strane Vision3 i IDE se proputa delje ka viem programskom jeziku ili kompajleru. Asemblerski prevodilac na osnovu izvorne datoteke stvara ciljnu datoteku. Manager -Menager vam omoguava da izradite dokumentaciju iz datoteka kreirane od strane prevodioca i asemblera. Dokumentacija je posebno formirana. Kada se pristupi povezivanju biblioteka,koriste se samo oni moduli koji su potrebni za stvaranje programa.

    -5-

  • Linker/ Locator -Linker / Locator stvara izvrnu datoteku programa pomou objekt modula i one koju su stvarali prevodilac i asembler. Izvrna datoteka programa (koja se naziva i apsolutni objekt modul) ne sadri prenosivi kod ili podatak. Kod i podaci imaju svoja memorijska mesta. Ovaj program izvrnu datoteku koristi: -Za jedan program Flash ROM memorije ili drugih ureaja, -S in-circuit emulator program za testiranje. - Vision3 program za pronalaenje greaka Debugger -Program za pronalaenje greaka je prvenstveno brz i pouzdan program. Program za pronalaenje greaka ukljuuje high-speed simulator da vam simulira jedan mali deo na ipu, ukljuujui i spoljne ureaje. Atributi u ipu koji koristite automatski se konfiguriu kada odaberete ureaj iz ureaja baze podataka. Vision3 program za pronalaenje greaka nudi nekoliko naina da testirate svoj program na pravi hardver.

    -Preice koje se koriste za rad u Vision3 File Menu Toolbar Shortcut Description

    New...

    Ctrl+N Kreirajte novi izvor ili tekstualnu datoteku

    Open

    Ctrl+O Otvori postojeu datoteku Close Zatvori aktivne datoteku Save

    Ctrl+S Sauvaj aktivan fajl

    Save as... Spremi i preimenuj aktivnu datoteku Save All

    Spremi sve otvorene izvorne i tekstualne datoteke,

    ukljuujui i projekt Device Database Sauvati baze podataka License Management

    odravanja i pregled instalirani softver komponente

    Print Setup... Postavljanje tampaa Print

    Ctrl+P Ispii aktivnu datoteku

    Print Preview Prikaz stranice u pogledu 1 .. 10 Otvori zadnju korienu datoteku Exit Zatvorite Vision3

    -6-

  • Edit Menu Toolbar Shortcut Description

    Home Pomakni pokaziva na poetak linije

    End Pomaknite pokaziva na kraj linije Ctrl+Home Pomakni pokaziva na poetak

    datoteke Ctrl+End Pomaknite pokaziva na kraj

    datoteke Ctrl+Left

    Arrow Pomaknite pokaziva jednu re levo

    Ctrl+Right Arrow

    Pomakni kursor jednu re desno Ctrl+A Selektuj ceo tekst u trenutnu

    datoteku

    Pomaknite pokaziva nazad na mesto pre 'nai' ili 'idite na liniju'

    Pomaknite pokaziva prema napred na lokaciji nakon 'nai' ili 'idite na liniju'

    Undo

    Ctrl+Z Otvori postojeu datoteku Redo

    Ctrl+Y Zatvorite aktivnu datoteku

    Cut

    Ctrl+X Iseci selektovani tekst

    Copy

    Ctrl+C Kopiraj selektovani tekst

    Paste

    Ctrl+V Zalepi kopirani ili iseeni tekst Indent Selected Text

    Uvuci odabrani tekst desno

    Unindent Selected Text

    Uvuci odabrani tekst levo

    Toggle Bookmark

    Ctrl+F2 Pomeri oznaku na trenutnu liniju

    Goto Next Bookmark

    F2 Pomaknite pokaziva na sledei bookmark

    Goto Previous Bookmark

    Shift+F2 Pomaknite pokaziva na prethodni bookmark

    Clear All Bookmarks

    Ctrl+Shift+F2 Obrii sve oznake u aktivnoj datoteci

    Find

    Ctrl+F Pronai tekst u aktivnoj datoteci F3 Ponovi pretragu teksta napred Shift+F3 Ponovi pretragu teksta unazad Ctrl+F3 Nai re ispod kursora Replace Ctrl+H Promeni odreeni tekst

  • Find in Files...

    Shift+Ctrl+F Trai tekst u nekoliko datoteka

    Incremental Find

    Ctrl+I Pronaite na slovo-po-slovo osnovi Outlining naredbe za opis izvornog koda Advanced Izdava naredbe Configuration

    Promena boje, fontova, preica

    Outlining Menu Toolbar Shortcut Description

    Collapse Selection Sakrij trenutno odabrani tekst. Collapse All Definitions Blokiraj i sakrij trenutni blok. Collapse Current Block Sakrij sve procedure. Collapse Current Procedure Sakrij trenutnu proceduru. Stop Current Outlining Uklanja informacije o trenutnom poloaju. Stop All Outlining Uklanja sve informacije za ceo dokument.

    Advanced Menu Toolbar Shortcut Description

    Goto Matching Brace Ctrl+E Nai podudaranja velike,male ili srednje zagrada

    Tabify Selection Zamenite mesta petlje u odabranom tekstu.

    Untabify Selection Zamenite petlju sa odabranim tekstom.

    Make Uppercase Shift+Ctrl+U Pretvorite odabrani tekst u velika slova.

    Make Lowercase Ctrl+U Pretvorite odabrani tekst u mala slova.

    Delete Horizontal White Space Izbrisati ili razdvojiti prostor u odabranom tekstu.

    Comment Selection

    Pretvara svaki odabrani red u tekst komentar

    Uncomment Selection

    Pretvara svaki komentar na normalan tekst.

    Increase Line Indent with Text... Poveava put crtanja svake odabrane linije

    Decrease Line Indent with Text... Smanjuje put crtanja svake odabrane linije.

  • Cut current Line Ctrl+L Iseci tekst u trenutnom redu -Izbor tekstualnih naredbi Na primer, Ctrl + strelica udesno pomera kursor na sledeu re, a Shift + Ctrl + strelica udesno bira tekst od trenutne pozicije kursora na poetku sledee rei. . Da biste odabrali ... S miem To Select... With the Mouse

    Any amount of text

    Povucite nad tekst

    A word Dvaput kliknite na re A line of text Pomerite pokaziva na levo od reda sve dok se ne promeni u pravo-strelica

    pokazuje i kliknite Multiple lines of text

    Pomerite pokaziva na levo od reda sve dok se ne promeni u pravo-strelica pokazuje i povucite gore ili dole

    A vertical block of text

    Pritisnite i drite Alt i povucite

    View Menu Toolbar Shortcut Description

    Status Bar prikazati ili sakriti Status bar File Toolbar prikazati ili sakriti datoteku toolbar Build Toolbar prikazati ili sakriti na Build toolbar Debug Toolbar prikazati ili sakriti Debug toolbar Project Workspace

    prikazati ili sakriti projekta Workspace

    Output Window

    prikazati ili sakriti izlazni prozor

    Source Browser

    prikazati ili sakriti prozor preglednika

    Disassembly

    prikazati ili sakriti rastavljeni prozor

    Watch & Call Stack Window

    prikazati ili sakriti na Watch & Call Stack prozor

    Memory Window

    prikazati ili sakriti Memory prozor

    Code Coverage Window

    prikazati ili sakriti Code Coverage prozor

    Performance Analyzer Window

    prikazati ili sakriti izvedbu Analyzer prozor

    Logic Analyzer Window

    prikazati ili sakriti Logic Analyzer prozor

    Symbol Window prikazati ili sakriti Analyzer prozor Serial Window #1

    prikazati ili sakriti serijski WINDOW # 1

    Serial Window #2

    prikazati ili sakriti serijski WINDOW # 2

    Serial Window #3

    prikazati ili sakriti serijski WINDOW # 3

  • Toolbox

    Prikazati ili sakriti traku s alatima na Toolbox

    Periodic Window Update ispravljanje prozora dok radite Include Dependencies prikazati ili sakriti zaglavlje datoteke od izvorne

    datoteke u projektu

    Project Menu Toolbar Shortcut Description

    New... Napravite novi projekt ili Multi-Project Workspace datoteku

    Import Vision1 Project... Promenitineki Vision projekt File

    Open Project... Otvori postojei projekt Close Project Zatvori trenutni projekt Manage Odravati projekt

    komponente ili multi-radni projekt

    - Components, Environment, Books...

    Postavi projekat komponente (ciljeve, grupa, datoteka), konfigurisati alat,upravljanje

    - Multi-Project Workspace Odravati Vision projekt koji pripada nekom multi-radnom projektu

    Select Device for Target Odaberite ureaj iz baze podataka

    Remove Item Ukloni datoteku iz projekta Options for Target Promeni alat opcije za

    odreene grupe ili datoteke

    Alt+F7 Promeni alat mogunosti za

    trenutne ciljeve

    Odaberite trenutnii cilj

    Clean target Obrii srednji fajl u ciljnom projektu

    Build target

    F7 Prevedi izmenjene datoteke i izgraditi aplikaciju

    Rebuild all target files

    prevesti sve izvorne datoteke i izgraditi aplikaciju

    Batch Build naredbe Execute graditi na odabrani projekt / ciljeva, multi-projekta radnog

  • prostora. Translate...

    Ctrl+F7 Prevedi trenutnu datoteku

    Stop Build

    Prekini trenutni proces

    1 .. 10 Otvori najvei poslednji korien fajl projekta

    Debug Menu Toolbar Shortcut Description

    Start/Stop Debug Session

    Ctrl+F5 zaustaviti Vision3 Debug Mode Go

    F5 Pravac do sledee aktivne take prekida

    Step

    F11 Izvriti jedan korak u funkciji

    Step Over

    F10 Izvriti jedan korak preko funkcije

    Step Out of current Function

    Ctrl+F11 Odravati komponente projekta (ciljevi, grupa, datoteka), konfigurisati alat za okruenje, upravljanje

    Run to Cursor Line

    Izvri do trenutnog pokazivaa linija Stop Running

    ESC Odaberite CPU iz ureaja baza podataka

    Breakpoints...

    Otvorite dijaloku taku prekida Insert/Remove Breakpoint

    Pomeri taku prekida na trenutne linije

    Enable/Disable Breakpoint

    Alt+F7 Omoguiti / iskljuiti taku prekida na trenutne linije

    Disable All Breakpoints

    Iskljuiti sve take prekida u program Kill All Breakpoints

    F7 Odstrani sve take prekida u program

    Show Next Statement

    Prikazati sledeu izvrnu izjavu / instrukcija

    Enable/Disable Trace Recording

    Ctrl+F7 Omogui snimanje za pregled instrukcija View Trace Records

    Proveri prevremeno izvrenje instrukcija

    Execution Profiling Postavite izvrenje profiliranja do isteka vremena ili pojave poziva

    Setup Logic Analyzer Otvori dijalog za logiki analizator Memory Map... Otvorite dijaloki plan memorije Performance Analyzer... Otvori podeavanja za analizu Inline Assembly... Otvorite dijaloki inline asemblera Function Editor (Open Ini File)... Uredi debug funkcije i program za

  • pronalaenje greaka

    Debug Menu Toolbar Shortcut Description

    Download

    Pozvati Flash za konfigurusanje opcija

    Erase Izbrisati Erase u Flash ROM (dostupno samo za neke ureaje).

    Configure Flash Tools... Otvorite dijaloku opciju za cilj.

    Debug Menu Toolbar Shortcut Description

    Reset CPU

    Postaviti CPU u poetni poloaj

    Interrupts, I/O-Ports, Serial, Timer, A/D Converter, D/A Converter, I2C Controller, CAN Controller, Watchdog

    Otvoriti dijaloki prozor za upozoravanje periferija.Ovaj prozor zavisi od CPU i baza podataka e se razlikovati.

    Tools Menu Toolbar Shortcut Description

    Setup PC-Lint Konfigurisati PC za Gimpel softver Lint Obrada za vreme tekueg editora fajla Lint all C Source Files Obrada preko C izvorne datoteke projekta Customize Tools Menu... Dodaj korisnika programa na izbornik Alata -12-

  • SVCS Menu Toolbar Shortcut Description

    Configure Version Control... Konfiguracija komandi vaeg SVCS Window Menu Toolbar Shortcut Description

    Cascade Prilagoditi prozore kako bi se oni preklapali Tile Horizontally Prilagoditi prozore kako se oni ne bi preklapali Tile Vertically Prilagoditi prozore kako se oni ne bi preklapali Arrange Icons urediti ikone na dnu prozora Spilt Razdvojiti aktivni prozor u delove Close All Zatvori sve aktivne prozore 1 - 9 aktiviraj odabrane prozore Help Menu Toolbar Shortcut Description

    Vision Help Otvoriti Vision pomo za pomo datoteci

    Open Books Window Otvori radni prostor Simulated Peripherals for '...' Pruite informacije o periferijama

    simulirane od odabranih ureaja Internet Support Knowledgebase Open www.keil.com / support koji daje

    odgovore na uobiajena pitanja Contact Support otvorite web-based obrazac za zahtjev za

    tehniku podrku Check for Update Provjerite www.keil.com dostupne

    novosti za program Tip of the Day... Prikai korisne savete i trikove About Vision... Prikaz verzija brojevi i informacije o

    licenci

    -13-

  • -Status Bar -Status Bar prikazan na ekranu prikazuje poruke i informacije o trenutnim Vision komandama i druge informacije kako je objanjeno u nastavku:

    Debug Channel prikazuje aktivan alat za ispravljanje i prikazuje ime ili simulacije kada je program testiran. Vreme izvrenja prikazuje vreme trajanja simulacije. Pozicija kursora pokazuje trenutnu poziciju u editor datoteci (L: broj linija, C: broj kolona). Keyboard Editor prikazuje informacije: CAP:tipka je trenutno unutar tastature za velika slova. NUM: tipka je trenutno u NUM LOCK statusu. SCRL: tipka je trenutno u zakljuanom stanju. OVR: oznaava pisanje preko editor naina koji zamenjuje znakove kao to ste upisali. R / W itanje / pristup pisanju;R / O read-only pristup-spreava modifikacije iz teksta. -Koristite Simulator i Vision3 program za pronalaenje greaka kao i software-proizvoda koji simulira samo najbolje osobine,bez da zapravo ciljate hardver.

    -14-

  • -Logiki analizator - Vision3 Logic Analyzer daje grafiki prikaz promene vrednosti varijable(promenljive) ili VTREGs koje ste naveli.

    Logic Analyzer prozor sadri u vrhu granice nekoliko tastera i polja za prikaz. Instalacijski ... dialog definie varijable(promenljive) signala za snimanje i konfigurie prikaz izlaza. Neke konfiguracijske postavke mogu biti promijenjen iz menija koji se otvara s desnim klikom na signal ime(name). Vreme polja prikazuje: -Min Time: Vreme poetka signala -Max Time: Vreme zavretka signala -Raspon: Vremensko rastojanje od trenutnog prikaza. -Grid: Vremensko rastojanje od jedne linije. - Zoom pokazuje kompletan sadraj signala.Zoom je promene prikaza na izbor koji ste prethodno oznaili miem povlaenjem dok drite tipku SHIFT. -Kod otvara prozor ili rastavljanje na broj pozicija koje uzrokuje signal u pomeranju. -Postava Min / Max konfigurie se za prikaz raspona signala. Auto konfigurira, max. / Min. vrednosti temelji se na vrednosti iz trenutnog snimanja. Undo vraa prethodne postavke pre Auto. -Logic Analyzer vam omoguava da pregledate ili promeniti podatke koristei sledee naredbe kursor mia i: Postavite kursor u skladu s miem i kliknite. Pokaziva linije prikazuje sve varijable(promenljive) vrednosti u odabrana vremena.Okvir informacija pokazuje signal delta vrednosti i temelji se na trenutnu poziciju kursora linije.

    -15-

  • -Memorijski prozor Memory prozor prikazuje sadraj u raznim podrujima memorije. Do etiri razliita podruja moe se pregledati u razliitim stranicama. U kontekstu meni vam omoguava izbor dozvoljenog izlaznog formata.

    U polje Adresa, Memory Window, moete uneti bilo koji izraz koji ocenjuje poetak adresa iz podruja koje elite prikazati. Da biste promenili sadraj memorije, dvaput kliknite na vrednosti. To otvara jedan okvir koji vam omoguuje da unesete nove memorijske vrednosti. -Memorijska karta Omoguava da odredite memorijsko podruje koje va ciljni program koristi za podatke i izvrenje programa. Obino se ne zahtijeva karta dodatnih adresa. Potrebna je samo karta za memorijska podruja u kojima se pristupa bez izriite deklaracije varijable(promenljive), tj. memorije preslikavaju I / O prostor. -16-

  • -Serijski prozor Vision3 nudi dva serijska prozora za serijski ulaz i izlaz. Serijski izlaz podataka iz simuliranog CPU je prikazan u ovom prozoru.

    Ovo Vam omoguava simulaciju CPU's UART bez potrebe za spoljnim hardverom. Za serijski izlaz e isto tako biti dodeljen PC COM port koristei naredbu dodeliti u Output Window - Command stranicu. -17-

  • -Stvaranje jednog projekta u uVision 3 Pokrenite Keil uVison3 program.

    -18-

  • Kreirajte novi dizajn projekta.Odaberite novi projekt iz padajueg menija

    Nakon to ste kliknuli na save(sauvaj),otvara se prozor koji e vas pitati koji ip elite koristiti. Na primer, ako elite koristiti CC1010 iz Chipcon, morate odabrati Chipcon CC1010 i sl. Pobrinite se da "Koristite proirena povezivanja". Odaberite Philips P89LPC935 mikrokontroler kao cilj

    -19-

  • Pojavie se novi prozor koji e vas pitati da li elite kopirati standard 8051 kod pokretanja u folder projekta. Osim ako ste stari korisnik, trebate kliknuti No,u suprotnom kliknite Yes.

    Moete sada izraditi projekt, ali ne postoji izvorni kod. Program bi trebao izgledati ovako:

    -20-

  • Sada morate stvoriti datoteku koja sadri C kod nae aplikacije i dodati ga grupi odnosno Group Source. Napravi novu datoteku. Sauvaj datoteku kao lab1.c.

    Dodaj u lab1.c datoteku na Source Group 1 folder. Kliknite desnim tasterom mia na Source Group 1 folder i odaberite "Add Files na grupu".

    Kliknite na dodaj(add),kako bi dodali fajl u grupu Pisanje C k^da u LED flash-u i izrada projekta.

    -21-

  • Koristite 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajueg menija Project. Sada imate izvorni kod koji je dodat grupi.

    -22-

  • -Simulacija Pre simulacije kliknite na Target 1 i desnim klikom mia odaberite opcije za Target 1,da bi se osigurala brzina za ciljni sklop. Brzina zavisi od tipa mikrokontrolera.MCB900 koristi 7.373MHz RC oscilator. Izaberite ciljno polje i postavite kristal (XTAL) na frekvenciji 7,373 MHz.

    -23-

  • Da biste pokrenuli simulaciju odaberite Start / Stop Debug Sesion opciju iz padajueg menija Debug. .

    Prozor projekta uVision sada sadri pod-prozore. Radni prozor pokazuje trenutni sadraj najvanijih registara. Takoe se prikazuje vreme izvravanja koda u sekundama. Editor prozor pokazuje C kod,a disassembly prozor pokazuje kodove koji grade ceo projekt. Tokom naih simulacija elimo imati mogunost nadziranja statusa Port 2 pin 0. Zaokruivanje pina znai da je na visokoj logici(1). Prazno polje na pinu je niska logika(0). Alternativa je metoda za dodavanje varijable(promenljive) na prozor. Idite na periferije(peripherals) i odaberite odgovarajuu IO port.

    -24-

  • Pritisnite F11 da dalje pratite korak po korak,mali uti pokaziva e ukazivati na instrukciju u svakoj liniji programa. -25-

  • -Programiranje u MCB900-u Mi smo sada spremni za ubacivanje koda u flash memoriju mikroprocesora. Pobrinite se da MCB900 ima serijski prikljuak na PC. Programiranje je proces prenoenja heksadecimalne vrednosti jedne datoteke iz raunara u MCB900 mikrokontroler putem RS232 konektora. Mi moramo obezbediti da se prenese svaka heksadecimalna vrednost u datoteci koja je stvorena za vreme dok se gradio proces. Odaberite opciju project,zatim u tom padajuem meniju izaberite "Opcije za Target 'Target 1'. Odaberite zlaz(output) na kartici i zaokruite 'Kreiraj Hex File' okvir. Nakon toga se vri re-izgradnja projekta.

    Da bi program prebacili potreban je: Reset jamper Na Pokreni jamper Off Program se prebacuje odabirom Download Flash iz padajueg menija. Kada se programiranje zavri promenite jamper postavke kao to sledi: Reset jamper Off Pokreni jamper Na -Koritenje ISD51 U-System programa za pronalaenje greaka On komunicira (obino preko serijskog porta) s Vision3 programom za pronalaenje greaka i omoguava da preuzmete i ispravljanje vaih programa u realnom vremenu. ISD51 je deo za Vision program za pronalaenje greaka koristei 8051's on-chip UART i omoguava vam da vidite u memoriji,namestite taku prekida,ispravljanje greaka i obavljanje brojnih operacija. -26-

  • A51 izvorni kod mora biti povezan s vaim zahtevanim kodom.Sledite sedee korake: 1. Kopirajte datoteke ISD51.A51 i ISD51.H iz c: \ Keil \ c51 \ ISD51 \ primeri \ Philips LPC9xx u Va folder projekta. 2. Dodaj datoteke ISD51.A51 i ISD51.H na izvor grupe vaeg projekta. 3. Ukljuite sledei komentar na vrhu vae C datoteke: - # include "ISD51.H" 4. Dodajte sledei kod na vrhu svoje glavne () funkcije u C datoteci. Ovaj kod e podesiti serijski port,brzinu prenosa podataka i prekid e postaviti program za pronalaenje

    greaka. P1M1 = 0; / / Initialise serijski port BRGR0 = 0xF0; / * 9600 bod, 8 bita, bez pariteta, 1 stop bit * / BRGR1 = 0x02; BRGCON = 0x03; SCON = 0x52; / * omoguiti serijski uart & prijemnik * / EA = 1; / * globalno omogui prekid ogranienja* / / / Initialise ISD51 ISDwait ();

    Nakon izgrade vaeg projekta odaberite preuzmi(Download)iz padajueg menija Flash. Da bi preuzeli postavite jamper opcije kao to sledi: Reset jamper Na Pokreni jamper Off -27-

  • Program za pronalaenje greaka koristi Keil ISD51 U-system program za pronalaenje greaka. Da biste to uinili odaberite opciju za Target 'Target 1' desnim klikom na Target1 u project workspace. Odaberite ienje polja(debug) i konfiguriite(podesite) program za pronalaenje greaka kao to je prikazano u nastavku:

    Za pregled memorije podataka ili spoljne memorije, idite na View->Memory prozoru. Da biste pogledali kod memorije, idite u okvir za adresu i upiite C:Na primer,za poetak od 0x40, upiite C: 0X40.(0-40linije koda). Da biste pogledali podatke memorije, idite u okvir za adresu i upiite D: Na primer, za poetak od 0x40, tip D: 0X40. (0-40linije koda). Da biste pogledali spoljne memorije, idite u okvir za adresu i upiite X: Na primer, za poetak od 0x40, tip X: 0X40.(0-40linije koda).

    -28-

  • -Za ispravljanje na serijskom portu, idite na Periferije->Serijski( Peripherals->Serial.) Zatim ete videti sledei prozor:

    -Za ispravljanje vremena,idite na Periferije->tajmer (Peripherals->Timer) i otvorie se sledei prozor:

    -29-

  • -Da bi videli tablicu prekida,idite na Periferije->Prekid(Peripherals->Interrupt) Zatim ete videti sledei prozor:

    -Za izlazak iz debug naina rada,idite na Debug->Stop Debug Sesion.

    -30-

  • -Stvaranje jednog projekta u uVision 3 Pokrenite Keil uVison3 program.

    -31-

  • Kreirajte novi dizajn projekta.Odaberite novi projekt iz padajueg menija

    -32-

  • Otvorie vam se sledei prozor koji vas pita da sauvate(save) kod vaeg projekta npr.na desktopu.Napiete ime projekta npr.displej.

    -33-

  • Nakon to ste kliknuli na save(sauvaj),otvara se prozor koji e vas pitati koji ip elite koristiti. Na primer, ako elite koristiti CC1010 iz Chipcon, morate odabrati Chipcon CC1010 i sl. Pobrinite se da "Koristite proirena povezivanja". U ovom sluaju odaberite Atmel AT89S8253 mikrokontroler kao cilj

    AT89S8253 je processor visokih performansi,male potrosnje snage. Komponenta je napravljena u Atmel korporaciji i kompatibilna je sa nadaleko poznatim i popularnim procesorom 80C51.Repogramiranje memorije je moguce pomocu SPI serijskog ulaza ili pomocu konvekcionalnog programatora memorija.Kombinovanjem razlicitih 8-bitnih CPU-a sa ugradjenom programibilnom fles memorijom na monolitnom cipu, Atmel AT89S8253 je fleksibilan processor koji je zahvaljujuci niskoj ceni nasao veliku primenu kod mnogih kontrolnih aplikacija i programa. AT89S8253 ukljucuje standardne osobine poput 12 k bytes flash memory,2 k bytes EEPROM,256 bytes RAM memorije,32 I/O linije,programabilni clock/tajmer,dvostruki pokazivac,tri 16 bit-na clock/counter,6 vektorske arhitekture prekida sa 2 nivoa, potpuni serijski ulaz,eksterni sopstveni oscilator,i elektricno kolo sata.Ustvari AT89S8253 (uz pomoc staticke logike) se koristi za operacije niskih frekvencija,potpomognut sa 2 softverska moda. IDLE mod zaustavlja CPU dok dopustajuci RAM ,clock/counter,serijski port i sistem prekida se koriste za nastavak funkcionisanja.Niski mod cuva RAM sadrzaj ali i zamrzava oscilator iskljucujuci sve ostale funkcije u kolu sve dok naidje sledeci spoljasnji prekid ili hardverski reset.FLASH memorija se moze menjati pomocu serijskog SPI pristupa.Zadrzavanje Reset opcije SPI omogucava da memorija bude upisana ili procitana od stane bita koji su bili aktivni. -34-

  • Ima 32 ulazno/izlazna pina, rasporeena u 4 porta sa po osam pinova. Poseduje watchdog tajmer, tri 16-bitna tajmera/brojaa, devet izvora prekida i ugraen oscilator (kvarcni oscilator se vezuje na pinove XTAL1 i XTAL2). Radi smanjenja potronje, pored normalnog moda rada, mikrokontroler moe da radi u Idle modu ili Power-down modu. Pojavie se novi prozor koji e vas pitati da li elite kopirati standard 8051 kod pokretanja u folder projekta. Osim ako ste stari korisnik, trebate kliknuti No,u suprotnom kliknite Yes.

    -35-

  • Moete sada izraditi projekt, ali ne postoji izvorni k^d.

    -36-

  • Koristite 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajueg menija Project.Sada imate izvorni k^d koji je dodat grupi.

    -37-

  • Zatim kliknite na oznaenu ikonicu koja vam slui za kreiranje novog fajla.Otvorie vam se nova radna povrina Text 1.

    -38-

  • U radnoj povrini Text 1 napiite k^d vaeg projekta.

    -39-

  • Zatim sauvajte k^d opcijom Save iz padajueg menija File.

    -40-

  • Naravno sauvajte k^d pod ekstenzijom src. Ekstenzija sauvanog fajla zavisi od toga u kom je programu pisan. Ekstenzija src. pokazuje da je kod pisan u programskom jeziku C.

    -41-

  • Sledee ta treba uraditi jeste da se taj fajl doda u prozoru Project Workspace 1 to desnim klikom na Source Group 1,pa na opciju Add Files Group.

    -42-

  • Pronaite gde vam je smeten taj fajl i kliknite na Add.

    Zatim idite na opciju 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajueg menija Project. -43-

  • Pojavie vam se sledei prozor.Ako postoje greke u programu,kao to je ovde sluaj pisae vam u Output Window(izlazni prozor) kakva je greka i u kom se redu nalazi.

    -44-

  • Po ispravljanju greaka ponovo idite na opciju 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajueg menija Project, i dobiete naredni prozor. Potrebno je da pie 0 Errors (s).

    -45-

  • Pre simulacije kliknite na Target 1 i desnim klikom mia odaberite opcije za Target 1,da bi se osigurala brzina za ciljni sklop. Brzina zavisi od tipa mikrokontrolera. Za ovaj sluaj izaberite 24.0 MHz ciljno polje i postavite kristal (XTAL) na frekvenciji 24.0 MHz.

    -46-

  • Da biste pokrenuli simulaciju odaberite Start / Stop Debug Sesion opciju iz padajueg menija Debug.

    -47-

  • Prozor projekta uVision sada sadri pod-prozore. Radni prozor pokazuje trenutni sadraj najvanijih registara. Takoe se prikazuje vreme izvravanja koda u sekundama. Editor prozor pokazuje C k^d,a disassembly prozor pokazuje kodove koji grade ceo projekt. Tokom naih simulacija elimo imati mogunost nadziranja statusa Port 2 pin 0. Zaokruivanje pina znai da je na visokoj logici(1). Prazno polje na pinu je niska logika(0). Alternativa je metoda za dodavanje varijable(promenljive) na prozor.

    -48-

  • Za ispravljanje programa idite na korak Debug Step Over. Step Over The command e ispravljati jedan red ili celi potprogram, zavisno od toga gde je pokaziva postavljen.. Pritisnite F11 i pojavie se mali uti pokaziva koji vam omoguava da prtite korak po korak-svaku liniju programa.

    -49-

  • Programiranje je proces prenoenja heksadecimalne vrednosti jedne datoteke iz raunara u mikrokontroler putem RS232 konektora. Mi moramo obezbediti da se prenese svaka heksadecimalna vrednost u datoteci koja je stvorena za vreme dok se gradio proces. Odaberite opciju project,zatim u tom padajuem meniju izaberite "Opcije za Target 'Target 1'. Odaberite zlaz(output) na kartici i ekirajte 'Create Hex File' okvir.

    Sada koristite 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajueg menija Project. -50-

  • Sada idete na opciju Open file iz padajueg menija File da bi ste videli generisani HEX fajl,naravno on je snimljen tamo gde vam je izvorni kod pa se moe pokrenuti i otuda. Za tip fajla(Files of type) izaberite svi fajlovi(All files).

    -51-

  • Sledee ta treba uraditi jeste da ekirate odnosno oznaite fajl sa ekstenzijom .hex. To vam je generisani HEX fajl,odnosno heksadecimalna vrednost koju treba prebaciti u mikrokontroler.

    -52-

  • Ovde se vidi dobijeni HEX fajl.

    -53-

  • PUNJENJE HEX FAJLA U MIKROKONTROLER Programiranje je proces prenoenja heksadecimalne vrednosti jedne datoteke iz raunara u mikrokontroler putem RS232 konektora. Hex fajl upisujemo u mikrokontroler na nain koji je opisan u slikovito prikazanom postupku koji sledi. Za upis hex fajla koristimo atmelov softver koji se moze download-ovati sa njihovog sajta. Vri se serijsko programiranje prikljuivanjem programatora na pinove 5 i 6 porta P1 mikrokontrolera.

    -54-

  • -Sledei korak je izbor ATMEL-ovog mikrokontrolera,a kako smo mi koristili AT89S8253 biramo njega, to je prikazano na sledeoj slici:

    Kad se otvori folder AT89 dobija se sledei prozor.

    -55-

  • Posle izbora komponente u prozoru softvera se moze videti prazan buffer mikrokontrolera koji je prikazan na sledeoj slici:

    -56-

  • Zatim vrimo uitavanje hex fajla na sledei nain:

    -57-

  • Upis u mikrokontroler vrimo na sledei nain koji je prikazan na slici:

    -58-

  • SADRAJ: -UVOD---------------------------------------------------------------------------- 1 - PROIRENJA ZA STANDARDNI ANSI C JEZIK-------------------1 - STRUKTURA C PROGRAMA ZA MIKROKONTROLERE FAMILIJE 8051------------------------------------------------------------------3 -PREICE KOJE SE KORISTE U KEIL UVISION-u------------------6 -STATUS BAR-------------------------------------------------------------------14 -LOGIKI ANALIZATOR---------------------------------------------------15 -MEMORIJSKI PROZOR----------------------------------------------------16 -SERIJSKI PROZOR----------------------------------------------------------17 -GENERISANJE HEX FAJLA IZ PRIMERA KOJI SE NALAZE U PAKETU PROGRAMA I SIMULACIJA-------------------------------18 -STVARANJE PROJEKTA U KEIL U VISION3------------------------31 KREIRANJE PROJEKTA-------------------------------------------31-45 SIMULACIJA PROJEKTA-----------------------------------------46-48 ISPRAVLJANJE GREAKA U PROGRAMU----------------------49 GENERISANJE HEX FAJLA---------------------------------------50-53 PUNJENJE HEX FAJLA U MIKROKONTROLER-----------54-58

  • Univerzitet u Niu Elektronski Fakultet Katedra za elektroniku

    KEIL U VISION 3

    Student: Zoran Jovanovi 11178