YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

ELEKTRONSKI FAKULTET U NIŠU

SEMINARSKI RAD

ARM7 PROCESOR

Predmet: Mikroprocesorska sistemi

Profesor:Prof.dr. Mile Stojčev

Studenti:Aleksandar Mladenović 10017Davor Dejković 9885Bojan Pavlović 10035Miloš Milenković 9989

Niš, oktobar 2006.

Page 2: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

SADRŽAJ

Uvod..........................................................................................................................4

1. Arhitektura ARM procesora .............................................................................5 1.1 Arhitekturalno nasleđe .....................................................................................5 1.2 Pogled programera na ARM model .................................................................5 1.3 Razvojni alati ARM .........................................................................................7 2. Organizacija i implementacija ARM ....................................................................9 2.1 Trostepeni komunikacioni kanal (pipeline) ...................................................10 2.2 Peto-stepeni ARM processor .......................................................................12

3. ARM jezgra procesora ......................................................................................14 3.1 ARM7TDMI .................................................................................................14

3.1.1 Hardverski interfejs ...................................................................................15 3.1.2 Kontrola takta ............................................................................................15 3.1.3 Memorijski interfejs ..................................................................................15 3.1.4 MMU interfejs ...........................................................................................17 3.1.5 Stanje .........................................................................................................17 3.1.6 Konfiguracija .............................................................................................17 3.1.7 Prekidi .......................................................................................................18 3.1.8 Inicijalizacija .............................................................................................18 3.1.9 Podrška za debug-ovanje ...........................................................................18 3.1.10 Interfejs za debug-ovanje ........................................................................19 3.1.11 Interfejs koprocesora ...............................................................................19 3.1.12 JTAG interfejs .........................................................................................19 3.1.13 TAP informacije ......................................................................................19 3.1.14 Boundary scan .........................................................................................19 3.1.15 ARM7TDMI u sintezi .............................................................................20

3.2 ARM8TDMI .................................................................................................21 3.3 ARM9TDMI .................................................................................................22

4. Skup instrukcija ARM .........................................................................................23 4.1 Tipovi podataka sa kojima ARM manipuliše ...............................................235. Tipovi instrukcija procesora ARM ....................................................................23

5.1 Instrukcije za pribavljnje podataka i memorisanje ....................................235.1.1 Instrukcije za prenos podataka tipa jedna reč ili neoznačeni bajt ..............235.1.2 Instrukcije za prenos podataka tipa polureči i označenih bajtova ..............265.1.3 Višestruke instrukcije za učitavanje i smeštanje ........................................28

1

Page 3: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

5.2 Instrukcije za razmene sadržaja memorije i registra .................................295.3 Instrukcije pristupa status registara ............................................................30

5.3.1 Instrukcije za prenos stanja statusnog registara u registre opšte namene ..30 5.3.2 Instrukcije za prenosa registara opšte namene u statusni registar ..............315.4 Instrukcije za obradu podataka ....................................................................33

5.4.1 Aritmetičke operacije .................................................................................365.4.2 Logičke operacije .......................................................................................375.4.3 Operacije premeštanja sadržaja registara ...................................................375.4.4 Operacije poređenja ....................................................................................375.4.5 Neposredni operandi ...................................................................................385.4.6 Pomereni registarski operandi ....................................................................38

5.5 Različite aritmetičke instrukcije ...................................................................395.5.1 Prebrojavanje početnih nula (CLZ(Count Leading Zeros) ........................39

5.6 Instrukcije množenja .....................................................................................405.7 Instrukcije grananja .......................................................................................42

5.7.1 Grananje sa linkom (B, BL) .......................................................................425.7.2 Grananje sa linkom i razmenom (BX, BLX) ...............................................43

5.8 Instrukcije za generisanje softverkoih prekida.............................................455.8.1 Softverski prekid (SWI) .............................................................................455.8.2 Instrukcija prekidna tačka (BKPT – samo za v5T arhitekturu) ..................47

5.9 Instrukcije koprocesora .................................................................................475.9.1 Operacije podataka koprocesora .................................................................475.9.2 Prenos podataka koprocesoru .....................................................................485.9.3 Prenos registara koprocesora ......................................................................50

6. Hardver i Softver Proces kreiranja ...................................................................526.1 Verifikaciona Platforma ....................................................................................52

6.2 Programerski pogled na svet...........................................................................576.3 Hardverski pogled na svet ..............................................................................596.4 Softverski razvojni alati ..................................................................................59

6.4.1 Editor ...........................................................................................................596.4.2 Revizija izvornog koda ................................................................................596.4.3 Kompajler ....................................................................................................606.4.4

Debager ........................................................................................................606.4.5 Simulator .....................................................................................................606.4.6 Razvojna ploča ............................................................................................616.4.7 Integrisana razvojan sredina (IDE) ..............................................................61

6.5 Povezivanje softvera za debagiranje ..............................................................616.5.1 JTAG ...........................................................................................................626.5.2 STUB ...........................................................................................................626.5.3 Direktna

konekcija .......................................................................................626.6 Tipovi softvera .................................................................................................63

6.6.1 Inicijalizacija sistema i HAL ......................................................................636.6.2 Dijagnostički test program ..........................................................................636.6.3 Operativni sistem za rad u realnom vremenu (RTOS) ................................646.6.4 Pokretacki programi i aplikacioni softver ..................................................64

6.7 Proces razvoja softvera ...................................................................................64

2

Page 4: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

6.8 Hardverska razvojna sredstva .......................................................................646.8.1 Editor ...........................................................................................................656.8.2 Kontrola revizije izvornog koda ..................................................................656.8.3 Alati ……….......……………......…....................…………………............656.8.4 Pokrivenost koda …...........……………….................………….................666.8.5 Alati za debag-ovanje ……...………….........................……......................666.8.6 Programski jezici za verifikaciju ……....….....….............………………...676.8.7 Tvrdjenja …………………………….…..............

………………...............676.8.8 Definisanje debag-ovanja ….......................................................……........676.8.9 Memorijski modeli …………..............................................…....................686.8.10 Mikroprocesorski model……….....……….......................……….............696.8.11 Proces dizajniranja hardvera .….....………......................…………..........706.8.12 Pregled mikroprocesora……………….....…......................………...........706.8.13 Interakcija hardvera i softvera……….....…............………………...........71

7.Opis Starter Kit-a....................................................................................................73 7.1. Kratak uvod ...................................................................................................73 8. ARM starter kit ....................................................................................................74

8.1 Opšti opis .........................................................................................................76 CPU .......................................................................................................................82 Kratkospajači .........................................................................................................83 Napajanje (USB plug) ...........................................................................................86JTAG .....................................................................................................................87 LM386 NF pojačavač ............................................................................................88Pobuda LED dioda ................................................................................................89Tasteri ....................................................................................................................91Kolo za prilagođenje MAX563 .............................................................................91

9. Povezivanje sistema i kreiranje aplikacije .........................................................94Zaključak....................................................................................................................98Dodatak A - Prikaz detaljne šeme mikrokontrolera LPC 2138 ............................99Literatura..................................................................................................................102

3

Page 5: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Uvod

ARM procesor pripada RISC familiji procesora. RISC koncept potiče iz 80-tih godina i programa istraživanja sa Univerziteta Stanford i Berkeley.

ARM je razvijen na Kembridžu u Acorn kompaniji iz Engleske u periodu od 1983. do 1985. Bio je to prvi RISC mikroprocesor koji je razvijen za komercijalnu namenu. Jedan od nedostataka RISC dizajna bio je taj da su programi koji su se izvršavali na njima bili veliki. Ovo je posledica kompajlera koji su morali da generišu duže sekvence od prostijih instrukcija da postignu iste rezultate kao CISC. Današnji računari su prividno (interno) dvoadresni, a eksterno jednoadresni, jer asemblerske instrukcije imaju samo jedan memorijski argument, a ostalo su konstante i lokalni registri.

Nijedan procesor nije posebno primenljiv bez odgovarajuće podrške koju mu pružaju hardver i softver, kao i razvojni alati. ARM je opremljen alatom koji sadrži: emulator za izvođenje skupa instrukcija za hardversko modeliranje i softversko testiranje, asembler, C i C++ kompajlere, linker i simbolički debuger.

Za razumevanje hardversko/softverske ko-verifikacije neophodno je razumeti princip rada alata kao i proces koji se koristi za razvoj hardvera i softvera. Do skora, integracija softvera sa hardverom se izvodila u laboratorijiskom okruzenju konstrukcijom hardvera i pokretanjem softvera. Debagiranje se izvodilo opremom kao što su : in-circuit emulatori (ICE), logički analizatori i osciloskopi. Debagiranje u kasnijoj fazi projektovanja, kada je pritisak na projektante zbog definisanog roka najveći, je naporan i stresan zadatak. Ko-verifikacijom menja se ovakav pristup jer se koristi virtuelni prototip hardvera koji se izvršava na softveru pre nego sto je prototip dostupan.

Testiranje karakteristika gradivnih blokova sistema je danas jednostavno moguće korišćenjem development kit-ova. To su sistemi za razvoj projektovani po određenom standardu. Oni su u stanju da ispitaju realne karakteristike određenih komponenti, kao na primer mikrokontrolera. Dobar development kit sadrži funkcio-nalni primer uređaja koji želimo projektovati i na kome možemo testirati kreirani kod, kao i odgovarajuće integrisano razvojno okruženje (Integrated Development Environment - IDE). U sastavu ovakvog IDE okruženja se obicno nalazi editor, debugger, simulator, asembler i kompajler (u najvećem broju slučajeva C kompajler). Development kit ima ugradjene gradivne blokove (periferije) kojima se može pratiti učitavanje i izvršavanje neke aplikacije. Ti gradivni blokovi su memorija, portovi za komunikaciju, delovi za hardversku konfiguraciju... Moraju postojati i kablovi i alati za povezivanje i download koda u procesor.

U nastavku teksta bice objašnjena arhitektura, struktura i mogućnosti jednog starter kit-a kao i njegov skup komandi namenjenih za testiranje rada sistema zasnovanih na mikrokontroleru tipa LPC2138.

4

Page 6: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

1. Arhitektura ARM procesora

1.1 Arhitekturalno nasleđe

U vreme kada se pojavio ARM čip, jedino raspoložive RISC arhitekture su bile RISC I razvijen na Berkeley-u i MIPS na Stanfordu.

ARM arhitektura je prihvatila brojne osobine RISC I dizajna, ali je brojne odbacila. One koje su se i dalje koristile su bile:

Napuni - smesti arhitektura (load-store) 32-bitni fiksni format instrukcija Tro-adresni format instrukcija

Osobine koje je ARM odbacio, a bile su korišćene na RISC I arhitekturi su:

Rad sa registarskim prozorima Odloženo grananje Izvršenje svih instrukcija u jednom ciklusu

1.2 Pogled programera na ARM model

Skup instrukcija jednog procesora definiše operacije koje programer koristi da promeni stanje sistema. Stanje čine vrednosti podataka koji se čuvaju u vidljivim registrima procesora i u sistemskoj memoriji. Svaka instrukcija izvršava definisanu transformaciju procesora iz stanja koje je bilo pre instrukcije, u stanje po njenom okončanju. Promena stanja se odnosi samo na programsko vidljive, a ne nevidljive registre.To znači da su bitne samo vrednosti koje se čuvaju u vidljivim registrima.

5

Page 7: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Programersko vidljivi registri ARM7 procesora prikazani su na slici 1.

Slika 1. Registri ARM7 procesora

Statusni registar tekućeg programa (CPSR) se koristi za čuvanje statusnih markera. Ovi markeri se postavljaju nakon izvršenja aritmetičko-logičkih operacija. Sadržaj ovih bitova definiše režim rada procesora,način prihvatanja prekida i stanje nakon izvršenja operacija. Registri R0 do R12 su registri opšte namene, R13 se koristi kao pokazivač magacina,R14 kao registar za povezivanje podprograma, a R15 kao programski brojač.

Memorija se vidi kao linearno polje bajtova numerisanih od nule pa sve do . Procesor može da manipuliše sa podacima tipa bajt (8 bita), polureči (16

bitova) ili reč(32 bita). Reči su uvek poravnjane na granici 4 bajta.

ARM je arhitektura tipa Load - Store. To znači da sve aritmetičko-logičke instrukcije manipulišu nad sadržajem registara, a jedine dve instrukcije pomoću kojih se vrši obraćanje memoriji su operacije Load i Store. Pomoću Load se dobavlja podatak iz memorije u registar, a pomoću Store sadržaj registra se smešta u memoriju.

6

Page 8: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

ARM procesor podržava i zaštićeni tj. supervizorski režim rada. Mehanizam zaštite obezbeđuje da se na nivou aplikacionih programa ne može upravljati sistemskim resursima, a time narušiti integritet u radu sistema.

Sve ARM instrukcije su 32-bitne. Najznačajnije osobine skupa instrukcija ARM procesora su sledeće:

učitaj-smesti arhitektura. 3-adresne instrukcije za obradu podataka. uslovno izvršenje svake od instrukcija. uključenje vrlo jakih višestrukih učitaj-smesti instrukcija registara mogućnost da se izvedu opšte operacije pomeranja kao i opšte

aritmetičko-logičke operacije u jednoj instrukciji, koja se izvršava u jednom taktnom ciklusu.

proširenje na otvoreni skup instrukcija preko skupa instrukcija koprocesora, što uključuje i dodavanje novih registara i tipova podataka programerskom modelu.

16-bitna predstava skupa instrukcija velike gustine u Thumb arhitekturi.

ARM upravlja U/I periferijama (disk kontrolerima, mrežnim interfejsima...) kao memorijski mapiranim uređajima sa podrškom za prekide. Unutrašnji registri u ovim uređajima se javljaju kao lokacije koje se mogu adresirati unutar memorijske mape ARM-a. Registri mogu biti čitani ili zapisivani pomoću istih učitaj – smesti instrukcija kao i bilo koja druga memorijska lokacija.

1.3 Razvojni alati ARM-a

Razvoj softvera za ARM je podržan odgovarajućim izborom alata koje je razvila kompanija ARM Limited, ali postoji i mnogo drugih dostupnih alata nezavisnih od ove kompanije.

Pošto se ARM koristi kao embedded kontroler kod kojih ciljni hardver nije projektovan da predstavlja podlogu za razvoj softvera, ovi alati su namenjeni za razvoj drugih arhitektura kakve su platforme PC-a na kojima se izvršavaju Windows programi ili radne stanice koje rade pod UNIX-om.Struktura razvojnog sredstva ARM je prikazana na slici2. C-ovi ili izvorni asemblerski fajlovi se kompajliraju ili asembliraju u ARM objektni format (.aof), koji se nakon toga povezuju u ARM-ov fajl format (aif.).

Na osnovu formatovih fajlova kreiraju se tabele za otklanjanje grešaka u programu uz pomoć AMR-ovog simboličkog debuggera(ARMsd koji može da napuni, izvrši i debagira programe bilo na hardveru kakav je ARM Development Board ili koristeći softversku emulaciju pomoću ARMulatora) .

7

Page 9: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 2 : Struktura ARM C kompajlera

ARM-ov C kompajler je kompatibilan sa ANSI standardom za C i podržan je od strane odgovarajućih biblioteka standardnih funkcija. Kompajler koristi ARM standard za poziv procedure za sve spoljašnje dostupne funkcije. Može mu se narediti da generiše asemblerski izvorni izlazni kod umesto ARM-ovog objektnog formata tako da kod može biti ispitan, ili čak i optimizovan, pa zatim dat na asembliranje.Kompajleru se može pridružiti i Thumb kod.

ARM asembler je pravi makro asembler koji proizvodi ARM objektni izlazni format koji se može linkovati sa izlazom iz C kompajlera.

Linker prihvata jedan ili više objektnih fajlova i kombinuje ih u izvršivi program. On rešava simbolička referenciranja između objektnih fajlova i poziva objektne module iz biblioteka po potrebi programa. Može asemblirati različite komponente programa na veći broj različitih načina, zavisno od toga da li se program izvršava u RAM ili ROM memoriji, da li je potrebno preklapanje ,itd.

asm sourceC librariesC source

.aof

linker object libraries

.aif

assemblerC compiler

ARMsdsystem model

ARMulator developmentboard

debug

8

Page 10: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

ARM simbolički debuger je ulazni interfejs koji pomaže pri debugovanju programa koji se ili emuliraju (u ARMulatoru) ili izvršavaju na nekom ciljnom sistemu. Primer takvog hardvera je razvojna ploča. Sistem mora podržavati odgovarajuće protokole za debugovanje bilo preko serijske linije za prenos podataka ili preko JTAG test interfejsa.

ARMulator (ARM emulator) je programski paket koji modelira ponašanje različitih jezgra ARM procesora na softverski način na nekom drugom računaru. Može raditi za različitim nivoima preciznosti:

modeliranje sa preciznim instrukcijama daje tačno ponašanje stanja sistema bez obraćanja pažnje na precizne karakteristike tajminga kod procesora.

modeliranje sa preciznim ciklusom izvršenja daje tačno ponašanje procesora na bazi ciklus-po-ciklus, i time dozvoljava da se ustanovi tačan broj taktnih ciklusa koji je potreban programu.

modeliranje sa preciznim tajmingom predstavlja predaju signala sa korektnim vremenom u okviru ciklusa pružajući mogućnost da se vodi računa o logičkim kašnjenjima .

2. Organizacija i implementacija ARM-a

Organizacija jezgra ARM procesora ARM6 i ARM7 se jako malo promenila u odnosu na prve 3-mikronske procesore u tehnologiji razvijene u Acorn-u između 1983. i 1985. Tro-stepeni protočni sistem (pipeline) koji su ovi procesori koristili je postepeno usavršavan, a tehnologija CMOS procesa je znatno smanjila veličinu čipova, pa su se performanse ovih jezgara drastično povećale. Osnovni principi operacija su ostali uglavnom isti.

Od 1995. se pojavilo još par novih ARM jezgara koja su imala daleko bolje performanse zbog uvođenja peto-stepene protočne obrade kao i zasebnih memorija za instrukcije i podatke obično u formi razdvojenih keš memorija međusobno povezanih preko jedinstvene memorije za instrukcije i podatke.

9

Page 11: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

2.1 Tro-stepena protočna ARM organizacija

Osnovne komponente ARM-a su:

Registarska banka-koristi se za čuvanje stanja procesora. Banka ima dva porta za čitanje i jedan port za upis. Portovi se mogu koristiti za pristup bilo kom registru. Postoji i dodatni port za čitanje i port za upis kojima se pristupa registru R15, programskom brojaču. Dodatni port za upis u r15 omogućava njegovo ažuriranje nakon što se pribavljena instrukcija adrese inkrementira, dok port za čitanje obezbeđuje da se nastavi sa fazom pribavljanja nakon što je adresa izdata.

Barrel pomerač- može da pomera ili rotira bilo koji operant proizvoljan broj bit pozicija.

Aritmetičko-logička jedinica (ALU) - obavlja aritmetičke i logičke funkcije iz repertoara skupa naredbi.

Adresni registar i inkrementer- selektuje i čuva sve memorijske adrese i generiše sekvencijalne adrese kada je to potrebno.

Registri podataka- čuvaju podatke koji se prenose ili dobavljaju iz memorije.

Dekoder instrukcija i upravljačka logika.

10

Page 12: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Organizacija ARM koju čine 3 protočna stepena prikazana je na slici 3.

Slika 3 : Trostepena protočna obrada

ARM procesori do verzije ARM7 koriste tro-stepenu protočnu obradu kod koje se identifikuju sledeći stepeni:

Fetch (pribavljanje)-instrukcija se pribavlja iz memorije i smešta u instrukcioni protočni system

Decode (dekodiranje)- vrši se dekodiranje instrukcije a upravljački signali staze podataka se pripremaju za naredni ciklus

Execute (izvršenje)- instrukcija se izvršava od strane staze podataka, čitaju se sadržaji registarske banke, pomera se operant,rezultat koji generiše ALU se upisuje u odredišni registar.

U datom trenutku, moguće je da se izvršavaju 3 instrukcije, od kojih se svaka nalazi različitom stepenu. Kada procesor izvodi jednostavne instrukcije za obradu podataka, protočni sistem (pipeline) omogućava da se po jedna instrukcija izvrši u

11

Page 13: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

svakom taktnom ciklusu. Jednoj instrukciji je potrebno tri taktna ciklusa da bi se izvršila, tako da ona ima kašnjenje od tri ciklusa. Stvarni propusni opseg je ipak jedna instrukcija po ciklusu.

2.2 Peto-stepeni ARM processor

Arm procesori se realizuju i kao petostepeno protočni. Kod ovih procesora postoje sledeći stepeni:

Fetch Decode Execute Buffer/data- pristupa se memoriji za podatke kada se to zahteva od strane

instrukcije. Inače ALU rezultat se baferuje i prosleđuje se i sledećem stepenu taktnog ciklusa.

Write-back- rezultati generisani od strane instrukcije upisuju se u registarsko polje uključujući i podatke koji se dobavljaju iz memorije.

Ovakav petostepeni protočni sistem korišćen je od strane velikog broja RISC procesora i predstavlja klasično rešenje za ovakav tip procesora.

12

Page 14: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Na slici 4 prikazana je struktura peto-stepenog ARM procesora.

Slika 4. Struktura petostepenog jezgra ARM-a

13

Page 15: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

3. ARM jezgra procesora

Postoji veći broj ARM jezgara koji se međusobno razlikuju po broju protočnih stepeni, mogućnosti procesiranja,skupu instrukcija, itd. U daljem tekstu biće dat kratak pregled mogućnosti ovih procesora.

3.1 ARM7TDMI

ARM7TDMI ima jezgra sa naslabijim performansama. Koristi se kod velikog broja aplikacijaa a tipična je ona koja se koristi za mobilni digitalni telefon.

Organizacija procesora ARM7TDMI je prikazana na slici 5. Jezgro procesora čini ARM integer jezgro koje koristi 3 protočna stepena i sledećim proširenjima:

primenjuje i izvršava ARM arhitekturu verzije 4T sa podrškom koja podržava 64-bitne rezultate množenja, operacija Load i Store tipa polureč i jedan bajt, kao i skup instrukcija Thumb.

Sadrži EMbeddedICE modul koji podržava otklanjanje grešaka u programu kod ambedet sistema

Kod otklanjanja grešaka u hardveru pristup procesoru se ostvaruje preko JTAG porta za pristup, pri čemu je JTAG logika sastavni deo procesora.

Slika 5. Organizacija procesora ARMI7TDMI

14

Page 16: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

3.1.1 Hardverski interfejs

Jako veliki broj signala može dovesti do pogrešnog zaključka jer se njima pretpostavlja složeno ponašanje koje se nadovezuje na suštinsku jednostavnost bazičnog ARM interfejsa. Među signalima interfejsa dominiraju signali sa magistrala podataka i adresa, tako da će jednostavni memorijski interfejs koristiti ove signale kao i par kontrolnih signala. Ostali signali su namenjeni nekim drugim funkcijama poput debug-ovanja na čipu, JTAG boundary scan-u, i nekim drugim.

Na slici 6 su signali interfejsa prikazani u grupama po funkcijama, i uloga svake grupe je opisana ispod sa odgovarajućim informacijama o pojedinačnim signalima.

3.1.2 Kontrola takta

Sve promene stanja unutar procesora se kontrolišu memorijskim taktom, mclk. Iako se ovim taktom može upravljati eksterno i time načiniti da procesor čeka na pristup, jednostavnije je imati samostalan takt i koristiti signal za preskakanje taktnih ciklusa. Pošto je unutrašnji takt ustvari logička AND funkcija signala mclk i

, to znači da se signal može menjati samo kada je nivo mclk nizak. eclk takt predstavlja takt koji koristi jezgro procesora, tako da normalno

oslikava ponašanje mclk nakon što se uvede signal , ali takođe i oslikava ponašanje debug takta kada se radi u debug načinu rada.

3.1.3 Memorijski interfejs

Memorijski interfejs obuhvata 32-bitnu adresu (A(31:0)), dvosmernu magistralu podataka (D(31:0)), posebne magistrale za prijem i slanje podataka (Dout(31:0)) i (Din(31:0)), kao i deset kontrolnih signala.

predstavlja ciklus procesora u kome se zahteva pristup memoriji seq znači da će memorijska adresa biti dosledna (ili čak i ista) onoj koja

je korišćena u prethodnom ciklusu lock označava da bi procesor trebalo da zadrži pristup magistrali kako bi

se osigurala tačnost faza čitanja i upisa SWAP instrukcije. označava ciklus čitanja ili upisivanja koje izvršava procesor mas(1:0) kodira dužinu memorijskog pristupa, i označava da li se radi o

pristupu dužine bajta, polureči ili reči. bl(3:0) su eksterno kontrolisane dozvole za svaki od četiri bajta na

magistrali ulaznih podataka. One olakšavaju memorisanje podataka manjih od 32 bita.

15

Page 17: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Signali ARM7TDMI hardverskog interfejsa su prikazani na slici 6.

Slika 6: Signali ARM7TDMI hardverskog interfejsa

Signali koji označavaju tip memorijskog ciklusa, i seq se rano izdaju kako bi se kontrolnoj logici memorije dalo što je moguće više vremena da odluči kako da postupi sa pristupom memoriji. Kada sekvencijalni ciklus sledi nesekvencijalni, nova adresa će biti ona adresa iz nesekvencijalnog ciklusa uvećana za jednu reč (četiri bajta). U slučaju da sekvencijalni ciklus sledi unutrašnji ciklus ili transfer ciklus

16

Page 18: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

registra koprocesora, adresa iz prethodnog ciklusa se neće menjati. U tipičnoj organizaciji memorije se može koristiti slučaj inkrementiranja adresa zajedno sa informacijom o prethodnoj adresi kako bi se memorija pripremila za brzi sekvencijalni pristup, a tamo gde adresa ostaje nepromenjena ovo se može koristiti za početak potpunog memorijskog pristupa u ciklusu (zato što nijedan drugi ciklus ne koristi memoriju).

3.1.4 MMU interfejs

Interfejs signali ka MMU daju informacije koje se koriste za kontrolu pristupa određenim oblastima memorije. Signal ukazuje da li se procesor nalazi u korisničkom ( =0) ili u povlašćenom ( =1) načinu rada, tako da se nekim oblastima memorije ne može pristupiti. Takođe se mogu koristiti drugačije tabele prevođenja za korisnički kod i kod supervizora (mada se to retko čini). Tamo gde su potrebne detaljnije informacije o načinu rada, (4:0) oslikava (invertovano) poslednjih pet bitova CPSR iako se upravljanje memorijom na ovom nivou retko koristi. Detaljnije informacije o načinu rada se verovatno najviše koriste pri debug-ovanju.

Kada pristup nije dozvoljen to se predstavlja signalom na abort ulazu. Tajming abort signala je takav da on mora biti validan na kraju ciklusa zajedno sa podacima. Obustavljen pristup memoriji uzrokuje da procesor uzme prethodno pripremljene podatke (prefetch) ili da obustavi proces, zavisno od vrednosti tokom pristupa.

MMU takođe može koristiti signal kada se želi pristupiti samo izvršnim oblastima memorije. Ovakav metod se ne koristi previše u ARM sistemima.

3.1.5 Stanje

Tbit izlaz daje informaciju okruženju o tome da li procesor trenutno izvršava ARM ili Thumb instrukcije.

3.1.6 Konfiguracija

bigend menja red bitova između Little- i Big-endian. Ovaj ulaz konfiguriše način na koji procesor radi i ne očekuje se od njega da se dinamički menja, iako se po potrebi može menjati tokom faze takta 2.

3.1.7 Prekidi

17

Page 19: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Dva ulaza za prekide mogu biti asinhrona u odnosu na takt procesora jer prolaze kroz lečeve za sinhronizaciju pre ulaska u kontrolnu logiku procesora. Brzi zahtev za prekid ima veći prioritet od normalnog zahteva za prekid .

Ulaz isync omogućava premošćavanje sinhronizacije prekida u slučaju da okruženje daje ulaze koji su već sinhronizovani sa mclk, što uklanja sinhronizaciono kašnjenje usled prekida.

3.1.8 Inicijalizacija

startuje procesor iz poznatog stanja kada izvšavanje počinje sa adrese 00000000 .

ARM7TDMI jezgro signalizira kada je u ciklusu zapisivanja pomoću signala . Tamo gde je eksterna magistrala podataka dvosmerna, se koristi za

omogućavanje pristupa signalu dout(31:0) na magistralu. Ponekad je poželjno odložiti operaciju zapisivanja kako bi drugi uređaji mogli koristiti magistralu. Signal za omogućavanje korišćenja magistrale podataka dbe se može koristit za osiguranje da će ostati neaktivan pod takvim okolnostima. Jezgro se mora stopirati (korišćenjem ili produžavanjem takta) sve dok maagistrala ne postane dostupna. dbe ima spoljašnji tajming koji zahteva eksterna logika.

Ostali signali za kontrolu magistrala su , , abe, ale, tbe, busen, highz, busdis, i ecapclk i izvode različite operacije.

3.1.9 Podrška za debug -ovanje

ARM7TDMI primenjuje ARM arhitekturu za debug-ovanje opisanu ranije. Ugrađeni ICE modul sadrži tačke prekida registre za posmatranje stanja koji omogućavaju kodu da se zaustavi kako bi se izvršilo debug-ovanje. Ove registre kontroliše JTAG test port korišćenjem lanca za skeniranje. Kada se dođe do tačke prekida ili pregleda stanja, procesor se zaustavlja i prelazi u stanje debug-ovanja. U tom stanju se mogu ispitivati vrednosti registra procesora. Vrednosti registara će biti prosleđene na magistralu podataka odakle mogu biti uzorkovane i ponovo pomerene. Pristup grupama registara zahteva takve instrukcije koje će dovesti do promene načina rada. Inspekcija stanja sistema se obavlja tako što ARM pristupa memorijskim lokacijama velikom brzinom i zatim se vraća u stanje debug-ovanja.

3.1.10 Interfejs za debug - ovanje

18

Page 20: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Interfejs za debug-ovanje povećava funkcionalnost koju daje integrisana ugrađena ICE makro ćelija tako što dozvoljava da se spoljašnji hardver poveže zbog debug-ovanja (putem dbgen), i dozvoljava asinhroni zahtev za debug-ovanjem (preko dbgrq) ili zahtev sinhronizovan sa instrukcijom (breakpt). Spoljašnji hardver se obaveštava o debug stanju procesora putem dgback signala. Interni signal za debug-ovanje se vodi na dbrqi.

Spoljašnji događaji mogu doprineti okidanju tačaka osmatranja stanja preko extern0 i extern1.

Kada je predajni bafer za komunikaciju prazan, to se signalizira putem commtx, dok se prazan prijemni bafer signalizira preko commrx.

Procesor pomoću signalizira da li se instrukcija koja se trenutno nalazi u fazi izvršenja izvršava ili ne. Instrukcija se ne izvrši ako ne zadovolji uslov stanja koda.

3.1.11 Interfejs koprocesora

, cpa i cpb signali interfejsa koprocesora su već opisani ranije. Dodatni signal koji daje koprocesor je koji pokazuje da li će se u memorijskom pristupu pribaviti instrukcija ili podatak. Ovo se može koristiti za praćenje izvršenja ARM instrukcije.

Kada ne postoji potreba za povezivanjem koprocesora, cpa i cpb bi trebalo da budu na visokom logičkom nivou. To će dovesti do toga da sve instrukcije koprocesora dođu u nedefinisano stanje.

3.1.12 JTAG interfejs

JTAG kontrolni signali se povezuju na test kontroler preko svojih pinova.

3.1.13 TAP informacije

Ovi signali se koriste za dodavanje novih lanaca za skeniranje na JTAG sistem, uz signale za boundary scan.

tapsm(3:0) pokazuje stanje TAP kontrolera; ir(3:0) daje sadržaj registra TAP instrukcija; screg(3:0) je adresa sken registra koji je TAP kontroler trenutno odabrao, tclk i tclk2 formiraju nepreklapajući par taktova za kontrolu lanaca za skeniranje, dok

pokazuje kada se serijski podaci izdaju preko tdo.

3.1.14 Boundary scan

ARM7TDMI ćelija sadrži potpun JTAG TAP kontroler za dodatnu ugrađenu ICE funkcionalnost jre je ovaj TAP kontroler u stanju da podrži bilo koje olakšice

19

Page 21: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

prilikom skeniranja kojima se pristupa preko JTAG porta. Signali drivesb, ecapclkbs, icapclkbs, , pclkbs, rstclkbs, sdinbs, sdoutbs, shclkbs i shclk2bs u interfejsu su zato mogući kako bi se dozvolile dodatne putanje za skeniranje koje će se dodati sistemu.

3.1.15 ARM7TDMI u sintezi

Standardno ARM7TDMI jezgro procesora je “hard” makroćelija, što znači da se isporučuje kao deo fizičkog lejauta prilagođeno odgovarajućoj tehnologiji procesa. ARM7TDMI-S je sintetišuća verzija ARM7TDMI, koja se isporučuje kao moduo višeg jezičkog nivoa koja se može sintetizovati korišćenjem odgovarajuće biblioteke ćelija u nekoj tehnologiji. Zato je lakše povezati ovakav modul na novu tehnologiju procesa, nego “hard” makroćeliju.

Proces sinteze podržava brojne opcije u varijacijama u funkcionalnosti jezgra procesora. Ovo uključuje:

izostavljanje ugrađene ICE ćelije; zamenu kompletnog 64-bitnog množača jednostavnijim i manjim

množačem koji podržava samo ARM instrukcije množenja koje daju 32-bitni rezultat.

Bilo koja od ovih opcija će za rezultat dati manju sintetisanu makroćeliju koja ima smanjenu funkcionalnost. Kompletna verzija je 50% veća i manje efikasna po pitanju snage od “hard” makroćelije.

ARM7TDMI jezgro izdaje novu adresu čim je to moguće kako bi se maksimalno povećalo vreme za obradu informacija. To vreme za obradu koriste jedinica za upravljanje memorijom ili memorijski kontroler. U jednostavnijim sistemima gde je adresna magistrala povezana direktno na ROM ili SRAM je potrebno zadržati staru adresu do kraja taktnog ciklusa. Jezgro uvodi kontrolisano leč kolo kojim se može zapamtiti adresa ako je to potrebno ili ako se zahteva eksternom logikom.

Jezgro ARM7TDMI procesora je našlo razne primene u sistemima sa jednostavnom konfiguracijom memorije. To znači da se puno koristi u sistemima koji poseduju par kilobajta jednostavnog RAM-a na čipu. Tipičan primer takvog sistema je mobilni telefon. Tu se objedinjuju moderni hardver za obradu digitalnih signala i odgovarajuća memorija. Zato je ARM7TDMI postao najkorišćeniji procesor za funkcije kontrole i korisničkog interfejsa.

Uz odgovarajuće tehnologije procesa su dobijene jako velike efikasnosti snage pomoću ARM7TDMI jezgara. Jedan primer koji koristi 0.25 -sku tehnologiju i napon napajanja od 0.9V može imati 12.000 MIPS/W.

20

Page 22: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

3.2 ARM8TDMI

ARM8 jezgro je nastalo u kompaniji ARM Limited u periodu između 1993. i 1996. kako bi ispunilo zahteve za ARM jezgrom koje će imati bolje performanse od onih koje je postizalo dotadašnje ARM7 jezgro. Danas su ga nasledila ARM9 i ARM10 jezgra ali je njegov dizajn izazvao veliko interesovanje.

Performanse procesora su poboljšane na sledeće načine: Povećavanjem taktne frekvencije. Ovo zahteva pojednostavljenje logike

u svakom protočnom stepenu (pipelinu) što povlači povećanje broja protočnih stepena

Smanjenjem CPI taktnih ciklusa po instrukciji. Ovo zahteva smanjenje broja komunikacionih kanala koje zauzimaju instrukcije, ili smanjenje zavisnosti među instrukcijama tako da one ne izazivaju zastoje u komunikacionim kanalima. Najbolja je kombinacija oba metoda.

Na slici 7 je data organizacija ARM8 procesora:

Slika 7: Organizacija procesora ARM8

ARM8 procesor se sastoji iz jedinice za pribavljanje instrukcija i integer staze podataka. Jedinica za pribavljanje je zadužena za pribavljanje instrukcija iz memorije i njihovo baferovanje u unapred zadati redosled. Taj redosled mora omogućiti maksimalno korišćenje propusnog opsega memorije. Zatim se integer jedinici

21

Page 23: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

prosleđuje po jedna instrukcija u svakom taktu zajedno sa vrednošću programskog brojača za datu instrukciju. Jedinica za pribavljanje je takođe zadužena za predikciju grananja, i koristi statičko predviđanje kod određivanja smera grananja (za grananja unazad se predviđaju da će se desiti, dok se grananja unapred predviđaju kao ‘neće se desiti’).

AMR processor koristi petostepenu protočnu obradu pri čemu jedinica za unapred pribavljanje instrukcija odgovara prvom stepenu protočne obrade dok se integer jedinici pridružuju ostala 4 stepena. Organizacija ARM 8 procesora je prikazana na slici 7, a čine je sledeći stepeni:

1. Instruction prefetech - unapred pribavljanje instrukcije2. Instruction decode and register read – dekodiranje instrukcije i čitanje

stanja registra3. Execute (shift and ALU) – izvršenje (pomeranje i ALU operacija)4. Data memory access – pristup memoriji za podatke5. Write-back results – upis rezultata

3.3 ARM9TDMI

ARM9TDMI jezgro poseduje funkcionalnost ARM7TDMI jezgra ali sa značajno poboljšanim performansama. Poput ARM7TDMI jezgra (na suprot od ARM8 jezgra) ovo novo jezgro podržava Thumb skup instrukcija i EmbeddedICE modul za podršku debugovanja na samom čipu. Poboljšanja u performansama su ostvarena nakon prihvatanja petostepenog protočnog sistema (pipelina) čime se obezbedilo povećanje pobudne taktne frekvencije kao i korišćenje posebnih memorijskih portova za pristup instrukcijama i podacima čime se značajno poboljšao CPI.

ARM9TDMI jezgro ima odvojene portove za instrukcije i podatke. U osnovi je moguće povezati ove portove na jedinstvenu memoriju, ali je posledica toga smanjenje performansi tako da se povezivanje ne izvodi. ARM9TDMI se pravi za veće radne frekvencije u poređenju sa ARM7TDMI jezgrom, tako da sve aplikacije koje koriste ARM9TDMI jezgro imaju složenije i brže memorijske podsisteme.

Maksimalna brzina takta koju ARM jezgro može podržati je određena najsporijom logičkom putanjom u bilo kojem od komunikacionih kanala.

ARM procesori se primenjuju u : Industrijskoj kontroli,medicinskim sistemima kontroli pristupa,komunikacionim skretnicama,ugradjenim modemima i u primenama opšte namene.

4. Skup instrukcija ARM

4.1 Tipovi podataka sa kojima ARM manipuliše

22

Page 24: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Tipovi podataka: ARM procesori podržavaju šest tipova podataka: 8-bitne označene i neoznačene bajtove. 16-bitne označene i neoznačene polureči; poređane na granice od dva

bajta. 32-bitne označene i neoznačene reči; poređane na granice 4 bajta.

(Neki stariji ARM procesori ne podržavaju polureči kao i označene bajtove). ARM instrukcije su 32-bitne reči i tako moraju biti poređane. Thumb instrukcije su dužine polureči i moraju biti poređane na granice 2 bajta.

5. Tipovi instrukcija procesora ARM

Procesor ARM podržava sledeće tipove instrukcija:

Instrukcije za pribavljnje podataka i memorisanje Instrukcije za razmene sadržaja memorije i registra Instrukcije pristupa status registara Instrukcije za obradu podataka Različite aritmetičke instrukcije Instrukcije množenja Instrukcije grananja Instrukcije za generisanje softverkoih prekida Instrukcije koprocesora

U nastavku ovog teksta biće dat pregled sintakse svake od instrukcija kao i odgovarajući primer u cilju pojašnjenja efekta izvršenja instrukcije.

5.1 Instrukcije za pribavljnje podataka i memorisanje

5.1.1 Instrukcije za prenos podataka tipa jedna reč ili neoznačeni bajt

Ove instrukcije su najfleksibilniji način za prenos (premeštanje) bajtova ili reči podataka između registara ARM i memorije. Premeštanje velikih blokova podataka je obično bolje izvesti korišćenjem višestrukih instrukcija za prenos registara, dok najnoviji ARM procesori takođe podržavaju instrukcije za premeštanje polureči i označenih bajtova. Način kodiranja je prikazan na slici 1.

23

cond 0 1 RnLWBUP# Rd offset

31 28 27 26 25 24 23 22 21 20 19 16 15 12 11 0

izvorišni/odredišni registar

bazni registar

učitavanje/smeštanje

write-back (auto-index)

neoznačen bajt/reč

gore/dole

pre-/post-index

Page 25: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 1. Binarno kodiranje instrukcije za transfer podataka od jedne reči ili neoznačenog bajta

Asemblerski format:

Pre-indeksirani format instrukcije:

LDR | STR{<cond>} {B} Rd, [Rn, <offset>] {!}

Post-indeksirani oblik:

LDR | STR{<cond>} {B} {T} Rd, [Rn], <offset>

Korisna pc relativna forma adresiranja je oblika:

LDR | STR{<cond>} {B} Rd, LABEL

LDR je registar učitavanja, STR je registar smeštanja, opcioni ‘B’ bira prenos neoznačenog bajta, inicijalno je reč. <offset> može biti #+/- <12-bitna vrednost> ili +/- Rm (, shift) gde specifikator pomeraja je indentičan za instrikcije koje specificiraju podatke, izuzev što nisu dostupne vrednosti pomeraja navedene u registru. ! bira ponovno zapisivanje. T fleg bira korisnički progled memorije.

Opis. Ove instrukcije formiraju adresu pristupa na taj način što baznom registru (Rn)

dodaju (U=1) ili oduzimaju (U=0) neoznačenu neposrednu vrednost ili (po

24

12-bit immediate

11 0

#shift Sh

0 Rm

11 7 6 5 4 3 0

25 7 6

0

1

25 7 6

konstanta dužine pomeraja

tip pomeranja

Page 26: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

mogućnosti skaliran) registarski ofset. Izračunata bazna adresa se koristi za punjenje (L=1) ili smeštanje (L=0) neoznačenog bajta (B=1) ili reči (B=0) u registar ili iz registra (Rd), iz ili u memoriju. Kada se bajt učita u registar on se nulama proširuje do dužine od 32 bita. Kada se bajt smešta u memoriju, osam bitova najmanje težine registra se smeštaju na adresiranoj lokaciji.

Pre-indeksirani adresni način rada (P=1) koristi izračunatu adresu kod operacija punjenje ili memorisanje, a zatim kada se zahteva ponovni upisi (W=1), ažurira bazni registar na izračunatu vrednost. Post-indeksirani (P=0) adresni način rada koristi nemodifikovani bazni registar radi preenosa, a zatim ažurira bazni registar da izračuna adresu u zavisno od stanja W bit. Postavljanje W=1 uzrokuje da procesor zahteva pristup memoriji u korisničkom režimu rada, što omogućava operativnom sistemu da prihvati korisnički pogledu kao i metode prevođenja i zaštite.

Primeri:

LDR r1, [r0] ; učitaj r1 iz adrese u r0LDR r8, [r3, #4] ; učitaj r8 iz adrese u r3 + 4LDR r12, [r13, #-4] ; učitaj r12 iz r13 - 4STR r2, [r1, #0x100] ; smesti r2 na adresu u r1 + 0x100

LDRB r5, [r9] ; učitaj bajt u r5 iz r9LDRB r3, [r8, #3] ; učitaj bajt u r3 iz r8 + 3STRB r4, [r10, #0x200] ; smesti bajt iz r4 u r10 + 0x200LDR r11, [r1, r2] ; učitaj r11 iz adrese u r1 + r2STRB r10, [r7, -r4] ; smesti bajt iz r10 na adresu u r7 - r4LDR r11, [r3, r5, LSL #2] ; učitaj r11 iz r3 + (r5 x 4)LDR r1, [r0, #4] ! ; učitaj r1 iz r0 + 4, zatim r0= r0 + 4STRB r7, [r6, #-1] ! ; smesti bajt iz r7 u r6 - 1, zatim r6= r6 - 1

LDR r3, [r9], #4 ; učitaj r3 iz r9, zatim r9= r9 + 4STR r2, [r5], #8 ; smesti r2 u r5, zatim r5= r5 + 8

LDR r0, [r1], r2 ; učitaj r0 iz r1, zatim r1= r1 + r2

5.1.2 Instrukcije za prenos podataka tipa polureči i označenih bajtova

Raniji ARM procesori nisu podržavali ovakve instrukcije. Adresni načini rada dostupni kod ovih instrukcija su podskup instrukcija koji monipulišu su označenim bajtovima ili rečima.

Način kodiranja je prikazan na slici 2.

25

cond

P0 0 0 U # W 1S H1Rn Rd offsetH

offsetLL

31 28 27 25 24 23 22 21 20 19 16 15 12 11 8 7 6 5 4 3 0

Page 27: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 2. Binarno kodiranje instrukcije za transfer podataka polureči i označenih bajtova

Asemblerski formati:

Pre-indeksiran oblik:

LDR | STR{<cond>}H |SH |SB Rd, [Rn, <offset>] {!}

Post-indeksiran oblik:

LDR | STR{<cond>}H |SH |SB Rd, [Rn, <offset>]

gde je <offset> #+/-<8-bit immediate>, ili +/-Rm, a bira tip podataka. U suprotnom je format asemblera isti kao i za prenos reči i neoznačenih bajtova.

Opis. Ove instrukcije su veoma slične instrukcijama koje manipulišu sa neoznačenim

bajtovima ili rečima, ali u ovom slučaju neposredni ofset je limitiran na osam bitova, a skalirani registarski ofset nije dostupan.

U tabeli 1. je prikazan način kodiranja tipova podataka, definisanjem stanja bita S i H.

S H tip podataka

26

izvorišni/odredišni registar

bazni registar

učitavanje/smeštanje

write-back (auto-index)

gore/dole

pre-/post-index

Imm[7:4] Imm[7:4]

Imm[7:4]Imm[7:4]

11 8

0

3 0

11 8 3 0

25 7 6

0

25 7 6

ofset registar

Page 28: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

1 0 označen bajt 0 1 neoznačena polu-reč 1 1 označena polu-reč

Tabela 1. kodiranje tipa podataka

Pošto ne postoji razlika između memorisanja označenih i neoznačenih podataka, jedini bitni oblici ovog formata instrukcija su:

LOAD označenog bajta, označene polureči ili neoznačene polureči. STORE polureči.

Neoznačena vrednost se proširuje nulama do dužine od 32 bita kada se obavlja operacija LOAD. Označena vrednost se proširuje do 32 bita korišćenjem principa proširenje znaka.

Primeri:

LDRH r1, [r0] ; učitaj polureč u r1 iz r0LDRH r8, [r3, #2] ; učitaj polureč u r8 iz r3 + 2LDRH r12, [r13, #-6] ; učitaj polureč u r12 iz r13 - 6STRH r2, [r1, #0x80] ; smesti polureč iz r2 u r1 + 0x80LDRSH r5, [r9] ; učitaj označenu polureč u r5 iz r9LDRH r11, [r1, r2] ; učitaj polureč u r11 iz adrese u r1 + r2LDRSH r1, [r0, #2] ! ; učitaj označenu polureč r1 iz r0 + 2, ; zatim r0= r0 +2LDRSB r7, [r6, #-1] ! ; učitaj označen bajt u r7 iz r6 - 1, ; zatim r6= r6 -1LDRH r3, [r9], #2 ; učitaj polureč u r3 iz r9, zatim r9= r9 +2STRH r2, [r5], #8 ; učitaj polureč iz r2 u r5, zatim r5= r5 +8

Lista instrukcija:

LDR Load WordLDRB Load ByteLDRBT Load Byte with User Mode PrivilegeLDRH Load Unsigned HalfwordLDRSB Load Signed ByteLDRSH Load Signed HalfwordLDRT Load Word with User Mode PrivilegeSTR Store WordSTRB Store ByteSTRBT Store Byte with User Mode PrivilegeSTRH Store HalfwordSTRT Store Word with User Mode Privilege

27

Page 29: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

5.1.3 Višestruke instrukcije za učitavanje i smeštanje

Ove ARM instrukcije omogućavaju da se bilo koji podskup (ili svi) od 16 registara koji su vidljivi u tekućem režimu rada mogu smestiti u memoriju ili pročitati iz nje. Jedan oblik ove instrukcije omogućava operativnom sistemu da napuni ili memoriše register korisničkog načina rada kao id a zapamti i obnovi stanje korisničkig procesa, a takođe da omogući CPSR registru da obnovi stanje koje se čuva u SPSR, a deo je povratne informacije programa za obradu izuzetaka. Ove instrukcije se koriste za ulazak i povratak iz procedura radi smeštanja i obnavljanja stanja radnih registara.

Način kodiranja je prikazan na slici 3.

Slika 3. Binarno kodiranje višestruke instrukcije za učitavanje i smeštanje

Asemblerski format:

Uobičajeni oblik instrukcije je:

LDM | STM{<cond>}<add mode> Rn{!}, <registers>

gde <add mode> navodi jedan od adresnih načina rada. Bitovi u instrukciji odgovaraju mehaničkom pogledu opisanom u navedenoj tabeli, gde ‘inkrementiranje’ odgovara U=1, a prefiks ‘pre’ odgovara vrednosti P=1. ‘!’ navodi auto-indeksiranje (W=1), dok su <registri> lista registara i opsega registara u zagradama, npr. {r0, r3-r7, pc}.

U ne-korisničkom načinu rada CPSR se može obnoviti pomoću:

LDM{<cond>}<add mode> Rn{!}, <registers + pc>^

28

cond P Rn1 0 0 U S W L register list

31 28 27 25 24 23 22 21 20 19 16 15 0

bazni registar

učitavanje/smeštanje

write-back (auto-index)

vrati PSR i forsiraj korisnički bit

gore/dole

pre-/post-index

Page 30: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Lista registara mora sadržati PC. Korisnički registri se mogu sačuvati ili obnoviti pomoću :

LDM | STM{<cond>}<add mode> Rn, <registers - pc>^

Primeri:

Da bi se sačuvlo stanje tri radna registra i povratne adrese nakon ulaska u subrutinu potrebno je izvršiti instrikciju:

STMFD r13!, {r0 - r2, r14}

Ovo pretpostavlja da je r13 inicijalizovan za korišćenje kao pokazivač magacina. Da bi obnovili stanje radnih registara i obavili povratak koristi se instrukcija:

LDMFD r13!, {r0 - r2, pc}

5.2 Instrukcije za razmene sadržaja memorije i registra

Ove instrukcije kombinuju učitavanje i smeštanje reči ili neoznače-nog bajta u jednoj instrukciji. Obično se dva prenosa kombinuju u jednu memorijsku operaciju koja se ne može razdvojiti spoljašnjim memorijskim pristupom (npr. pomoću DMA od kontrolera).Tako se instrukcija može koristiti kao osnova mehanizam semafora kako bi se obezbedila uzajamna isključivost u pristupu strukturama podaka koji su deljivi između većeg broja procesa, procesora ili procesora i DMA kontrolera.

Način kodiranja je prikazan na slici 4.

Slika 4. Binarno kodiranje memorije zamene i instrukcije registra

Asemblerski format:

29

31 28 27 23 22 21 20 19 16 15 12 11 4 3 0

cond B Rn0 0 0 1 0 0 0 Rd Rm0 0 0 0 1 0 0 1

source register destination register

base register

unsigned byte/word

Page 31: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

SWP{<cond>} {B} Rd, Rm, [Rn]

Opis. Ova Instrukcija puni reč (B=0) ili neoznačeni bajt (B=1) u Rd sa memorijske

lokacije koju adresira registar Rn, i smešta isti tip podataka iz registra Rm u istu memorijsku lokaciju. Rd i Rm mogu biti isti registar (ali moraju biti različiti od Rn), i u tom slučaju se razmenjuju vrednosti registara i memorije. ARM izvršava posebno operaciju čitanja memorije, a zatim cikluse memorijskog zapisiva-nja, ali aktivira lok signal kako bi ukazala da će momorijski system biti zauzet u toku trajanja dva ciklusa po magisrali.

Primeri:

SWP r12, r10, [r9] ; učitaj r12 iz adrese r9 i ; smesti r10 na adresu r9SWPB r3, r4, [r8] ; učitaj bajt u r3 iz adrese r8 i ; smesti bajt iz r4 na adresu r8SWP r1, r1, [r8] ; zameni vrednosti u r1 i adresu u r2

5.3 Instrukcije pristupa status registara

5.3.1 Instrukcije za prenos stanja statusnog registara u registre opšte namene

U slučaju da je potrebno sačuvati ili modifikovati sadržaj CPSR ili SPSR registra tekućeg načina rada, njihovi sadržaji moraju se prvo preneti u registar opšte namene, zatim da se modifikuju selektovani i na kraju da se povratna vrednost smesti u statusni registar. Ove instrukcije obavljaju prvi korak u zadatoj sekvenci.

Način kodiranja je prikazan na slici 5.

Slika 5. Binarno kodiranje instrukcije prenosa status registara u registre opšte namene

Asemblerski format:

MRS{<cond>} Rd, CPSR|SPSR

30

cond R0 0 0 1 0 Rd 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1

31 28 27 23 22 21 16 15 12 11 0

odredišni registar

SPSR/CPSR

Page 32: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

gde je Rd odredišni registarCPSR - Current Program Status RegisterSPSR - Saved Program Status RegisterOpis. CPSR (R=0) ili tekući način rada SPSR (R=1) se kopira u odredišni registar

(Rd). Kopiraju se svih 32 bita.

Primeri:

MRS r0, CPSR ; prebaci CPSR u r0 MRS r3, SPSR ; prebaci SPSR u r3

5.3.2 Instrukcije za prenosa registara opšte namene u statusni registar

U slučaju da je potrebno zapamtii ili modifikovati sadržaj CPSR ili SPSR tekićeg načina rada, njihovi sadržaji se prvo moraju preneti u registar opšte namene, zatim da se odabrani bitovi modifikuju, a onda se povratna vrednost smešta u statusni registar. Ove instrukcije obavljaju poslednji korak u zadatoj sekvenci.

Način kodiranja je prikazan na slici 6.

31

cond #0 0 1 01 0 R field 1 1 1 1 1

operands

31 28 27 26 25 24 23 22 21 20 19 16 15 12 11 0

maska polja

SPSR/CPSR

#rot 8-bit immediate

0 0 0 0 0 0 0 0 Rm

11 8 7 0

11 4 3 0

25 7 6

0

0

25 7 6

konstanta poravnanja

registar operanda

Page 33: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 6. Binarno kodiranje instrukcije prenosa registara opšte namene u status registar

Opis. Operand, koji može biti registar (Rm) ili rotirana 8-bitna neposredna vrednost

specificirana na isi način kao i neposredni oblik operanda dva u instrukcijama za procesiranje podataka se kopira u maskirano polje CPSR (R=0) ili u tekući režim rada SPSR (R=1).

Maskirano polje uprvlja ažuriranjem četvoro-bajtnog polja unutar PSR registra. Bit 16 u instrukciji određuje da li se PSR(7:0) ažurira, bit 17 kontroliše PSR(15:8), bit 18 kontroliše PSR(23:16), dok bit 19 kontroliše PSR(31:24).

Asemblerski format: MSR{<cond>} CPSR_f|SPSR_f, #<32-bit immediate> MSR{<cond>} CPSR_<field>|SPSR_<field>, Rm

gde je <field> jedno od: c – kontrolno polje – PSR[7:0]. x – polje proširenja – PSR[15:8] (ne koristi se kod trenutnih ARM) s – polje statusa – PSR[23:16] (ne koristi se kod trenutnih ARM) f – polje flegova – PSR[31:24]

Primer:

Za postavljanje N, Z, C, i V flegova:

MSR CPSR_f, #&f0000000 ; postavi sve flegove

Za postavljanje C flega, i očuvanje N, Z i V:

MRS r0, CPSR ; prebaci CPSR u r0 ORR r0, r0, #&20000000 ; postavi bit 29 od r0 MSR CPSR_f, r0 ; prebaci natrag u CPSR

Za promenu iz supervizor načina rada u IRQ način (za inicijalizaciju IRQ pokazivača steka):

MRS r0, CPSR ; prebaci CPSR u r0 BIC r0, r0, #&1f ; obriši dno, 5 bita ORR r0, r0, #&12 ; postavi bitove na IRQ mod MSR CPSR_c, r0 ; prebaci natrag u CPSR

32

Page 34: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

5.4 Instrukcije za obradu podataka

Instrukcije procesora ARM koje se koriste za obradu podataka omogućavaju programeru da izvodi aritmetičke i logičke operacije nad podacima u registrima. Ovim instrukcijama su tipično potrebna dva operanda i one generišu jedinstven rezultat. Karakteristična operacija je dodavanje dve vrednosti kako bi se dobio jedinstven rezultat koji je jednak njihovoj sumi.

Neka od pravila koja se primenjuju na ARM instrukcije za obradu podataka su sledeća:

svi operandi su 32-bitni, čuvaju se u registrima ili su specificirani kao neposredne konstante u okviru same instrukcije.

rezultat (ako postoji) je 32-bitni i smešta se u registar (ovde postoji izuzetak: duge instrukcije množenja daju 64-bitni rezultat).

svaki od registarskih operanada i kao i registar u kome se čuvaju rezultati nezavisno se specificiraju u instrukciji. To znači da ARM koristi troadresni format za ove instrukcije.

ARM-ove instrukcije za obradu podataka se koriste za modifikaciju vrednosti u registrima. Operacije koje se podržavaju su aritmetičke i logičke. One se izvršavaju nad 32-bitnim podacima. Jedan od operanada se može pomeriti ili rotirati “na putu” ka ALU-u čime se omogućava istovremeno izvršenje operacija ADD i SHIFT.Način kodiranja ovih instrukcija prikazan je na slici 1.(ovaj format ne važi za instrukciju MUL). Način kodiranja je prikazan na slici 7.

33

cond 0 0 # opcode S Rn Rd operand 2

31 28 27 26 25 24 21 20 19 16 15 12 11 0

odredišni registar

registar prvog operanda

postavljanje uslovnog koda

aritmetička/logička

#rot 8-bit immediate

11 8 7 0

#shift Sh

0 Rm

11 7 6 5 4 3 0

konstanta poravnanja

konstanta dužine pomeraja

tip pomeranja

registar drugog

1

25 7 6

25 7 6

Page 35: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 7. Binarno kodiranje instrukcije za obradu podataka

ARM instrukcije za obradu podataka koriste troadresni format, što znači da se dva izvorna operanda i odredišni registar specificiraju nezavisno. Jedan izvorni operand je uvek registar, drugi može biti registar, pomereni registar ili neposredna vrednost. Pomeraj koji se odnosi na drugi operand, u slučaju da je on registar, može biti logički ili aritmetički pomeraj ili operacija rotiranja, a može biti iznos specificiran bilo kao neposredna vrednost ili preko sadržaja četvrtog registra.

Kada se instrukcijom ne zahteva dostupnost svim operandima (npr. MOV ignoriše Rn, dok CMP ignoriše Rd) neiskorišćeno registarsko polje se treba postaviti na vrednost 0. Asembler to radi automatski.

U tabeli 2. su date instrukcije za obradu podataka.

Opcode [24:21] Mnemonic Meaning Effect

0000 AND Logical bit-wise AND Rd :=Rn AND Op20001 EOR Logical bit-wise exclusive OR Rd :=Rn EOR Op20010 SUB Subtract Rd :=Rn - Op20011 RSB Reverse subtract Rd :=Op2 - Rn0100 ADD Add Rd :=Rn + Op20101 ADC Add with carry Rd := Rn + Op2 + C0110 SBC Subtract with carry Rd :=Rn - Op2 + C - 10111 RSC Reverse subtract with carry Rd :=Op2 - Rn + C - 11000 TST Test Scc on Rn AND Op21001 TEQ Test equivalence Scc on Rn EOR Op21010 CMP Compare Scc on Rn - Op21011 CMN Compare negated Scc on Rn + op21100 ORR Logical bit-wise OR Rd :=Rn OR Op21101 MOV Move Rd :=Op21110 BIC Bit clear Rd :=Rn AND NOT Op21111 MVN Move negated Rd :=NOT Op2

34

RmSh

0Rs 1

11 8 7 6 5 4 3 0

registarska dužina pomeraja

0

Page 36: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Tabela 2. ARM istrukcije za obradu podataka

Kada je S-bit (bit 20) postavljen tada se izvršenjem ovih instrukcija postavljaju markeri uslova (flegovi) CPU-a. Kada je S=0, i kada Rd nije r15, markeri uslova ostaju nepromenjeni. Značenje markera je sledeće:

N fleg se postavlja ako je rezultat negativan; u suprotno se briše. Z fleg se postavlja ako je rezultat nula, u suprotnom se briše. C fleg se postavlja kada postoji prenos na izlazu ALJ i javlja se kada se

izvršava aritmetička operacija (ADD, ADC, SUB, SBC, RSB, RSC, CMP, CMN) ili kada postoji prenos na izlazu pomerača. Ako se pomeraj ne zahteva sadržaj C se ne menja.

V fleg ostaje nepromenjen kod izvršenja ne-aritmetičkih operacija. Postavlja se kod izvršenje aritmetičkh operacija ako postoji premašaj sa bit pozicije 30 na bit poziciju 31, inače se briše. Postavljenje ovog markera je od značaja samo kod izvršenja aritmetičkih operacija koje manipulišu sa vrednostima u prezentaciji komplementa dvojke.

Asemblerski format:

Opšti format asemblerskih instrukcija iz ove grupe je sledećeg oblika:

<op>{<cond>} {s} Rd, Rn, #<32-bit immediate><op>{<cond>} {s} Rd, Rn, Rm, {<shift>}

Kod monadičkih operacija kakve su MOV, MVN izostavlja se Rn tako da je format sledećeg oblika:

<opcode1>{<cond>} {s} Rd, <shifter operand><opcode1> := MOV | MVNKod instrukcija upoređivanja kakve su CMP, CMN, TST, TEQ postavljaju se

samo flegovi, ne specificira se registar Rd pa je format sledećeg oblika:

<opcode2>{<cond>} Rn, <shifter operand><opcode2> := CMP | CMN | TST | TEQ

Kod tro-operandskih instrukcija format je oblika:

<opcode3>{<cond>} {s} Rd, Rn <shifter operand><opcode3> := ADD | SUB | RSB | ADC | SBC | RSC | AND | BIC | EOR | ORR

U konkretnom slučaju <shift> specificira tip pomeranja (LSL, LSR, ASL, ASR, ROR, RRX). U svim slučajevima sem u RRX veličina pomeraja može biti ili 5-bitna ili specificirana sadržajem registra Rs. Rn se odnosi na prvi izvorni registarski operand, a Rd na odredišni registarski operand.

Opis.

35

Page 37: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Tipična ARM instrukcija za obradu podataka je na asemblerskom jeziku je oblika:

ADD r0, r1, r2 ; r0 :=r1 + r2

Nakon tačka-zarez sledi komentar.Ovaj primer pribavlja vrednosti dva registra (r1 i r2), sabira ih, a rezultat smešta

u treći registar (r0). Vrednosti u izvornim registrima su 32-bitne i mogu biti neoznačene celobrojne vrednosti ili označene celobrojne vrednosti komplementa dvojke. Sabiranje može dovesti do prenosa, ili do internog premašaja.

Primetimo da se pri pisanju asemblerskog izvornog koda mora obratiti posebna pažnja na pravilan redosled zapisivanja operanada. To znači: prvo registar u koji se smešta rezultat, zatim prvi operand i tek onda drugi operand (iako se za komutativne operacije može zameniti redosled prvog i drugog operanda ako su oba registri). Kada se izvrši ova instrukcija jedina promena stanja sistema je vrednost odredišnog registra r0 (i opciono N, Z, C i V flegovi u registar CPSR).

5.4.1 Aritmetičke operacije

Ove instrukcije izvode binarne aritmetičke operacije (dodavanje oduzimanje, ili inverzno oduzimanje tj. oduzimanje sa izmenjenim redosledom operanada) nad dva 32-bitna operanda. Operandi mogu biti neoznačene ili označene celobrojne vrednosti u dvojičnom komplermentu. Ulazni prenos kada se koristi predstavlja tekuću vrednost C bita registra CPSR.

ADD r0, r1, r2 ; r0 := r1 + r2 ADC r0, r1, r2 ; r0 := r1 + r2 + C SUB r0, r1, r2 ; r0 := r1 - r2 SBC r0, r1, r2 ; r0 := r1 - r2 + C - 1 RSB r0, r1, r2 ; r0 := r2 - r1 RSC r0, r1, r2 ; r0 := r2 - r1 +C - 1

‘ADD’ prdstavlja sabiranje, ‘ADC’ je sabiranje sa prenosom, ‘SUB’ je oduzimanje, ‘SBC’ je oduzimanje sa pozamljivanjem, ‘RSB’ je oduzimanje sa inverznim redosledom a ‘RSC’ oduzimanje sa inverznim redosledom i pozamljivanjem.

5.4.2 Logičke operacije

Ove instrukcije izvode navedene logičke operacije Bulove algebre za svaki par bitova ulaznih operanada, tako da je u prvm slučaju r0(i):=r1(i) AND r2(i) od 0 do 31, uključujući i 31, i gde je r0(i) i-ti bit r0.

AND r0, r1, r2 ; r0 := r1 and r2ORR r0, r1, r2 ; r0 := r1 or r2EOR r0, r1, r2 ; r0 := r1 xor r2BIC r0, r1, r2 ; r0 := r1 and not r2

36

Page 38: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Mnemonici AND, ORR, EOR se odnose na logičke operacije I, ILI, isključivo ILI. Mnemonik BIC se odnosi na ‘brisanje bita’ gde svaka ‘1’ u drugom operandu briše odgovarajući bit u prvom operandu.

5.4.3 Operacije premeštanja sadržaja registara

Ove instrukcije ignorišu prvi operand koji se izostavlja iz formata asem-blerskog jezika, i kopiraju drugi operand u krajnje odredište.

MOV r0, r2 ; r0 := r2MVN r0, r2 ; r0 := not r2

‘MVN’ mnemonik znači ‘kopiranje koplementarne vrednosti’ u odredišni registar.

5.4.4 Operacije poređenja

Ove instrukcije ne generišu rezultat (koji je zbog toga izostavljen iz formata asemblerskog jezika) već samo postavljaju flegove (N, Z, C i V) registra CPSR.

CMP r1, r2 ; postavi cc na r1 - r2CMN r1, r2 ; postavi cc na r1 + r2TST r1, r2 ; postavi cc na r1 and r2TEQ r1, r2 ; postavi cc na r1 xor r2

Mnemonici označavaju ‘poređenje’ (CMP), ‘poređenje sa negacijom’ (CMN), testiranje sadržaja bita (TST) i ‘test nejednakost’ (TEQ).

5.4.5 Neposredni operandi

Ako umesto sabiranja sadržaja dva registra želimo da saberemo neku konstantu sa sadržajem registra tada će drugi operand biti neposredna vrednost koje se definiše kao konstanta kojoj prethodi znak #:

ADD r3, r3, #1 ; r3 := r3 + 1 AND r8, r7, #&ff ; r8 := r7[7:0]

Prvi primer ilustruje da iako se koristi troadresni format izvornšni i odredišni operandi ne moraju da budu isti. Drugi primer pokazuje da se neposredna vrednost može specificurati u heksa-decimalnom obliku (osnove 16) tako što se navede znak & ispred #.

5.4.6 Pomereni registarski operandi

37

Page 39: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

ADD r3, r2, r1, LSL #3 ; r3 := r2 + 8 x r1

Naglasimo da je ovo jedinstvena ARM instrukcija, koja se izvršava u jednom taktnom ciklusu. Većina procesora u svom repertoaru poseduje operaciju pomeranja kao zasebnu instrukciju, ali ih ARM kombinuje sa opštim operacijama ALJ u jedinstvenu instrukciju.

‘LSL’ označava ‘logičko pomeranje u levo za navedeni broj bitova’ što je u datom primeru tri. Može se navesti bilo koji broj od 0 do 31 iako se korišćenje 0 poistovećuje sa izostavljanjem pomeraja. # označava ternutnu vrednost. Dostupne operacije pomeranja su:

LSL: logičko pomeranje u levo za zadati broj od 0 do 31 mesta; slobodni bitovi najmanje težine na kraju reči se dopunjavaju nulama.

LSR: logičko pomeranje udesno; slobodni bitovi najveće težine na početku reči se dopunjavaju nulama.

ASL: aritmetičko pomeranje u levo, sionim za LSL. ASR: aritmetičko pomeranje u desno za 0 do 32 mesta; popunjavaju se

prazna mesta na delu reči koja ima najveću težinu nulama ako je izvorni operand pozitivan, ili jedinicama ako je izvorni operand bio negativan.

ROR: rotiranje desno za 0 do 32 mesta. Bitovi koji se nalaze na delu najmanje težine u reči i koji “otpadaju” sa kraja se koriste kako bi se popunila prazna mesta na delu reči koja ima najveću težinu.

RRX: rotiranje u desno sa proširenjem za jedno mesto; upražnjeni bit (bit 31) se popunjava starom vrednošću C flega i operand se pomera jedno mesto udesno. Odgovarajućom primenom uslovnih kodova se koristi 33-bitno rotiranje operanda i C flega.

Takođe je moguće koristiti vrednost registra kako bi se naveo broj bitova za koji bi trebalo pomeriti drugi operand:

ADD r5, r5, r3, LSL r2 ; r5 := r5 + r3 x

5.5 Različite aritmetičke instrukcije

5.5.1. Prebrojavanje početnih nula (CLZ(Count Leading Zeros) – arhitektura samo za v5T)

Korisna je za ponovnu normalizaciju brojeva i mnogo je efikasnija nego samo korišćenje nekih drugih ARM instrukcija.

Način kodiranja je prikazan na slici 8.

38

cond Rd Rm0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1

31 28 27 16 15 12 11 4 3 0

izvorni registar

odredišni registar

Page 40: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika8. Binarno enkodiranje instrukcije brojanja početnih nula

Asemblerski format:

CLZ{<cond>} Rd, Rm

Rd označava odredišni registar, a Rm izvorni registar

Opis. Instrukcija postavlja Rd na broj nula na mestima najveće težine u odnosu na

mesto bita najveće težine koji ima vrednost 1 u Rm. Ako je Rm jednak nuli Rd će biti postavljen na vrednost 32.

Primer:

MOV r0, #&100 CLZ r1, r0 ; r1 := 23

5.6 Instrukcije množenja

ARM instrukcije množenja daju proizvod u vidu dva 32-bitna binarna broja koja se čuvaju u registrima. Množenje dve 32-bitne celobrojne vrednosti dobija se 64-bitni rezultat, kod koga se 32 bita manje težine smeštaju u odredišni registar rezultata dok se ostali zanemaruju.

Neki oblici instrukcije, dostupni samo na nekim verzijama procesora, smeštaju kompletan rezultat u dva nezavisno navedena registra; ostali oblici smeštaju samo 32 bita najmanje vrednosti u jedan registar.

Način kodiranja je prikazan na slici 9.

Slika 9. Binarno kodiranje instrukcije množenja

39

cond 0 0 0 0 mul S Rd/RdHi

RsRn/RdLo

1 0 0 1 Rm

31 28 27 24 23 21 20 19 16 15 12 11 8 7 4 3 0

Page 41: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Asemblerski format:

Instrukcije koje daju 32 bita najmanje vrednosti u proizvodu su:

MUL{<cond>} {s} Rd, Rm, Rs MLA{<cond>} {s} Rd, Rm, Rs, Rn

Naredne instrukcije daju kompletan 64-bitni rezultat:

<mul>{<cond>} {s} RdHi, RdLo, Rm, Rs

gde je <mu1> jedan od tipova 64-bitnog množenja (UMULL, UMLAL, SMULL, SMLAL). U tabeli 3. su prikazane instrukcije množenja.

Opcode[23:21] Mnemonic Meaning Effect

000 MUL Multiply (32-bit result) Rd :=(Rm*Rs) [31:0]001 MLA Multiply-accumulate (32-bit result) Rd :=(Rm*Rs+Rn) [31:0]100 UMULL Unsigned multiply long RdHi:RdLo :=Rm*Rs101 UMLAL Unsigned multiply-accumulate long RdHi:RdLo +=Rm*Rs110 SMULL Signed multiply long RdHi:RdLo :=Rm*Rs111 SMLAL Signed multoply-accumulated long RdHi:RdLo +=Rm*Rs

Tabela 3. Instrukcije množenja

Opis.

‘RdHi:RdLo’ je 64-bitni broj formiran nadovezivanjem RdHi (32 bita najveće vrednosti) i RdLo (32 bita najmanje vrednosti). ‘(31:0) vrši odabir samo 32 bita najmanje vrednosti rezultata.

Jednostavno dodeljivanje vrednosti se označava sa ‘:=’ Nagomilavanje (dodavanje desne strane levoj) se označava sa ‘+=’

S bit kontroliše postavljanje markera uslova uz ostale instrukcije za obradu podataka. U slučaju da je ovaj bit postavljen u nekoj instrukciji:

N fleg je postavljen na vrednost bita 31 iz Rd za varijante koje daju 32-bitni rezultat, ili na bit 31 RdHi za dugačke forme.

Z fleg se postavlja ako su Rd ili RdHi i RdLo nule. C fleg se postavlja na nebitnu vrednost. V fleg se ne menja.

Veoma važna instrukcija koja se koristi kod digitalnog procesiranja signala je: množenje sa akumulacijom. U jednom konkretnom primeru ona je sledećeg oblika:

40

Page 42: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

MLA r4, r3, r2, r1 ; r4 := (r3 x r2 +r1)

Množenje konstantom se može obaviti tako što se konstanta učita u registar a zatim se iskoristi jedna od pomenutih instrukcija, ali je efikasnije koristiti kratke nizove instrukcija za obradu podataka koje koriste operacije pomeranja i sabiranje ili oduzimanje. Na primer, za množenje r0 sa 35 se koristi sledeća sekvenca:

ADD r0, r0, r0, LSL #2 ; r0’ := 5 x r0 RSB r0, r0, r0, LSL #3 ; r0” := 7 x r0’ (=35 x r0)

Postoje neke važne razlike u odnosu na ostale aritmetičke instrukcije: drugi izvorišni operand neposredne vrednosti se ne podržava. Odredišni registar treba biti različit od prvog izvorišnog. ako je postavljen ‘S’ bit tada će se V fleg postavljati (kao i kod logičke

instrukcije) dok će vrednost C flega biti beznačajna.

Primeri:

MUL r4, r2, r1 ; r4 dobija vrednost r2 pomnožena sa r1MULS r4, r2, r1 ; r4 := r2 x r1, postavi N I Z flegoveMLA r7, r8, r9, r3 ; r4 := r8 x r9 + r3 SMULL r4, r8, r2, r3 ; r4 := bitovi 0 do 31 od r2 x r3 ; r8 := bitovi 32 do 63 od r2 x r3UMULL r6, r8, r0, r1 ; r8, r6 := r0 x r1UMLAL r5, r8, r0, r1 ; r8, r5 := r0 x r1 + r8, r5

5.7 Instrukcije grananja

5.7.1 Grananje sa linkom (B, BL)

Instrukcije grananja i grananja sa linkom su standardni načini za promenu toka izvrešenja sekvenci instrukcija. ARM standardno izvršava instrukcije sa sekvencijalnim redosledom adresa u memoriji, a koristi uslovno izvršenje sa grananjem tamo gde je to potrebno.Standardne instrukcije iz ove grupe su Branch i Branch sa linkom. Način kodiranja ovih instrikcije je prikazan na slici.

Način kodiranja je prikazan na slici 10.

41

cond 1 0 1

L 24-bit signed word offset

31 28 27 25 24 23 0

Page 43: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 10. Binarno kodiranje granjanja i grananje sa linkom

Format asemblera: B{L} {<cond>} <target address>

‘L’ specificira grananje i granjanje sa link varijantom. Ako ‘L’ ne postoji generiše se grananje bez linka. ‘<cond>’ bi trebalo da bude jedna od mnemonika navedena u tabeli ARM uslovnih kodova, a ako se ovo polje izostavi podrazumeva se ‘AL’. ‘<target address> je običo labela u asemblerskom kodu; asembler će generisati ofset.

Opis. Instrukcije Brandh i Branch with Link uzrokuju da procesor počne sa

izvršavanjem instrukcija sa adrese koja je se dobija izračunavanjem sledećim izračunavanjem: 24-bitni offset specificiran instrukcijom znakovno se proširuje, pomerajući ga dva mesta ulevo kako bi se dobio offset reči, a zatim se sabira sa sadržajem programskog brojača koji sadrži adresu instrukcije grananja plus 8 bajtova. Opseg instrukcija grananja je +/- 32 MB.

Branch with Link kod koje je postavljen bit 24(bit L), takođe kopira adresu instrukcijesledeći grananje na koje ukazuje link (r14) tekućeg procesorsog režima rada. Ovo se obično koristi za poziv podprograma, gde se povratna adresa čuva u link registru.

Oba oblika instrukcije se mogu izvršavati uslovno ili bezuslovno.

Primeri:

Bezuslovni skok:

B LABEL ; bezuslovni skok . . . .LABEL . . ; . . ovde

Izvršavanje petlje 10 puta:

MOV r0, #10 ; inicijalizacija brojača petlje LOOP . . SUBS r0, #1 ; smanjenje countersetting CCs BNE LOOP ; ako je brojač <> 0 ponoviti petlju . . . . ; . . u suprotnom ispustiti kroz Poziv subrutini:

. .

42

Page 44: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

BL SUB ; grananje i veza do subrutine SUB . . ; povratak ovde . . SUB . . ; tačka ulaza subrutine MOV PC, r14 ; povratak

Uslovni poziv subrutini:

. . CMP r0, #5 ; ako je r0 < 5 BLLT SUB1 ; pozovi SUB1 BLGE SUB2 ; u suprotnom pozovi SUB2

5.7.2 Grananje sa linkom i razmenom (BX, BLX)

Ove instrukcije su dostupne kod ARM čipova koji podržavaju 16-bitni Thumb skup instrukcija, i jedan su od mehanizama za prebacivanje procesora u režim rada u kada bi izvršavao thumb instrukcije ili za povratak na ARM ili Thumb rutine. Slične Thumb instrukcije uzrokuju da se procesor vrati u 32-bitni ARM režim

Način kodiranja je prikazan na slici 11.

(1)BX| BLX Rm

(2) BLX label

Slika 11. Binarno kodiranje granjanja (sa opcionim linkom) i instrukcijom razmene

Format asemblera:

1: B{L}X{<cond>} Rm 2: BLX <target address>

<target address> je obično labela u asemlerskom kodu. Asembler generiše ofset (koji će biti razlika između adrese reči mete i adrese instrukcije grananja plus 8) i postavlja H bit ako je potrebno.

43

cond 1L0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 Rm

31 28 27 6 5 4 3 0

1 1 1 1 1 0 1 H 24-bit signed word offset

31 28 27 25 24 23 0

Page 45: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Opis. U prvom formatu je ciljna adresa grananja cpecificirana u registru Rm. Bit(0) u

Rm se kopira u T bit CPSR dok se bitovi (31:1) premeštaju u PC: Ako je Rm(0) jednak 1, procesor prelazi u izvršenje Thumb režim rada i

počinje sa izvršenjem adrese specificiran sa adresom u Rm počevši od granice polu-reči.

Ako je Rm(0) jednak 0, procesor nastavlja sa izvršenjem ARM instrukcija i počinje sa izvršenjem adrese specificiran sa adresom u Rm počevši od granice reči.

Kod drugog formata je ciljna adresa grananja i adresa koja se dobija izračunavanjem proširenjem znaka 24-bitnog ofseta cpecificiran instrukcijom. Zatim se vrši određeno pomeranje u levo i dodaje vrednost PC koji sadrži adresu BX instrukcije plus osam bajtova. H bit (bit 24) se takođe dodaje bitu 1 rezultujuće adrese, što omogućava adresiranje neparne polureči u slučaju kada ciljna instrukcija pripada Thumb instrukcijama. Opseg instrukcija grananja je +/- 32 MB.

Oba formata instrukcije Branch sa Linkom, koja imaju postavljen L bit (bit 5) u prvom formatu, takođe kopira adresu instrukcije koja sledi nakon instrukcije grananja u link registar (r14) tekućeg programskog režima rada. Ova instrukcija se standardno za pamćenje povratne adrese pri pozivu Thumb podprogram. Ako se koristi BX kao mehanizam povratka iz podprograma, stanje registra semože zapamtiti zajedno sa povratnom adresom tako da se isti mehanizam može koristiti od strane ARM-ovog ili Thum-ovog pozivnog programa kada se izvršava ARM ili Thumb podprogram.

Instrukcije formata (1) se mogu izvršavati uslovno ili bezuslovno, dok se instrukcije formata (2) izvršavaju bezuslovno.

Primeri:

Bezuslovni skok: BX r0 ; grananje na adresu u r0, ; unesi Thumb stanje ako je r0[0] =1

Poziv thumb subrutini:

CODE32 ; ARM kod prati . . BLX TSUB ; pozovil Thumb subrutinu . . CODE16 ; start Thumb koda TSUB . . ; Thumb subrutina BX r14 ; vrati se u ARM kod

Lista Instrukcija:

44

Page 46: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

B. BL Branch, and Branch with LinkBLX Branch with Link and ExchangeBX Branch and Exchange

5.8 Instrukcije za generisanje softverkoih prekida

5.8.1 Softverski prekid (SWI)

Instrukcija softverskog prekida se koristi za poziv operativnog sistema i često se naziva ‘poziv supervizoru’. Ona postavlja procesor u supervizorski režim rada i započinje izvršenje instrukcija sa adrese 0x08.

Način kodiranja je prikazan na slici 12.

Slika 12. Binarno kodiranje softverskg prekida

Format asemblera: SWI{<cond>} <24-bit immediate>

Opis. 24-bitno polje u kome se čuva neposredna vrednost ne utiče na rad instrukcije

ali se može interpretirati od strane sistemskog koda.Ako se ispuni uslov instrukcija uzrokuje da se uđe u supervizorski režim rada.

Akcije koje preduzima procesor su:1. pamti se adresa instrukcije nakon SWI u r14_svc.2. pamti se CPSR u SPSR_svc.3. ulazi se u supervizorski režim rada, brane se IRQ-ovi, ali ne i FIQ-ove

na taj način što se postavljaju CPSR(4:0) na 10011 i CPSR(7) na 1.4. postavlja PC na hex vrednost 08 i započinjanje izvršenja instrukcija koja

se nalazi na tom mestu.

Za povratak instrukciji nakon SWI sistemska rutina mora ne samo kopirati r14_svc u PC, već takođe mora da obnovi stanje CPSR iz SPSR_svc.

45

cond 1 1 1 1 24-bit (interpreted) immediate

31 28 27 24 23 0

Page 47: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Primeri:

Za prikazivanje karaktera ‘A’ :

MOV r0, #’A’ ; prebaci ‘A’ u r0 . . SWI SWI_WriteC ; . . štampaj

Subrutina za prikaz tekstualnog niza nakon poziva:

. . BL STROUT ; izlaz za sledeću poruku = “Hello World” , &0a, &0d, 0 . . ; vrati se ovde . . STROUT LDRB r0, [r14], #1 ; ubaci znak CMP r0, #0 ; proveri krajnji marker SWINE SWI_WriteC ; ako nije kraj, štampaj . . BNE STROUT ; . . i petlja ADD r14, #3 ; poravnjaj do susedne reči BIC r14, #3 MOV pc, r14 ; povratak Okončanje izvršenja korisničkog programa i povratak glavnom programu:

SWI SWI_Exit ; vrati se na monitor

5.8.2 Instrukcija prekidna tačka (BKPT – samo za v5T arhitekturu)

Instrukcije prekidne tačke se koriste za debagiranje softvera; one uzrokuju da procesor prekine sa normalnim izvršenjem instrukcija i pređe na izvršenje odgovarajuću proceduru za debagiranja.

Način kodiranja je prikazan na slici 13.

Slika 13. Binarno kodiranje instrukcije tačke prekida

Asemblerski format: BRK

Opis.

46

1 1 1 0 x x x xx x x x 0 1 1 1x x x x x x x x0 0 0 1 0 0 1 0

31 28 27 20 19 16 15 12 11 8 7 4 3 0

Page 48: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Ova instrukcija uzrokuje da procesor prekine sa radom kada je hardverska jedinica za debagiranje odgovarajuće konfigurisana.

Primeri:

BRK ; !

5.9 Instrukcije koprocesora

5.9.1 Operacije podataka koprocesora

Ove instrukcije se koriste za kontrolu internih operacija nad podacima u koprocesorskim registrima. Standardni formati odgovaraju tipovima troadresih mašina ali su druge interpretacije svih polja u koprocesorskoj instrukciji moguće.

Način kodiranja je prikazan na slici 14.

Slika 14. Binarno kodiranje instrukcije koprocesorske oeracije podataka

Asemblerski format. CDP{<cond>} <CP#>, <Cop1>, CRd, CRn, CRm{, <Cop2>}

Opis. ARM korist ovu instrukciju za rad sa bilo kojim koprocesorom. Ako se ona

prihvata od strane bilo koji koprocesor ARM produžava sa izvrešenjen naredne instrukcije, a ko se ne prihvata ARM generiše nedefinisani izuzetak tipa trap(koji se može koristiti za softversku implementaciju bilo koje koprocesorske instrukcije).

U naormalnoj situaciji koprocesor se identifikuje CP# na taj način što prihvata ovu instrukciju i obavlj operaciju definisanui od starne polja Cop1 i Cop2, korišćenjem CRn i CRm kao izvorne operanade dok rezultat smešta u CRd.

Primeri:

CDP p5, 2, c12, c10, c3, 4 ; koprocesor 5 operacija podataka ; opkod 1 = 2, opkod 2 = 4 ; odredišni registar je 12 ; izvorni registri su 10 i 3

5.9.2 Prenos podataka koprocesoru

47

cond 0Cop21 1 1 0 Cop1 CP#CRdCRn CRm

31 28 27 24 23 20 19 16 15 12 11 8 7 5 4 3 0

Page 49: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Instrukcije za prenos podataka koprocesora su slične instrukcija koje prenose neposredni offset kod podataka tip reč i instrukcije koje se koriste za prenos neoznačenih bajtova. Ofset je sada ograničen na 8 bitova, ane na 12 bitova.

Način kodiranja je prikazan na slici 15.

Slika 15. Binarno kodiranje instrukcije prenosa podataka koprocesor

Asemblerski format:

Prethodno-indeksirani oblik: LDC | STC{<cond>} {L} <CP#>, CRd, [Rn, <offset>] {!}

Naknadno-indeksirani oblik:

LDC | STC{<cond>} {L} <CP#>, CRd, [Rn], <offset>

U oba slučaja LDC odabira učitavanje iz memorije u registar koproce-sora, STC bira smeštanje iz registra koprocesora u memoriju. L fleg, ako je prisutan, bira dugačak tip podataka (N=1)

Opis. Instrukcije se koriste id strane bilo kojih koprocesora koji su povezani na

system. ako je nijedan ne prihvati ovu instrukciju ARM izvršava instrukcioni trep pri čemu softerskim putem emulira rad koprocesora. Kada je prisutan, koprocesor sa koprocesorskim brojem CP# prihvati će ovu instrukciju.

Izračunavanje adrese se obavlja u okviru ARM, korišćenjem baznog registra ARM (Rn) i 8-bitni neposredni ofseta koji se skalira na offset tipa reč njegovim pomeranjem u levo za poziciju dva bita. Adresni način rada i auto-indeksiranje se

48

cond L Rn1 0 1 WNUP CRd CP# 8-bit offset

31 28 27 25 24 23 22 21 20 19 16 15 12 11 8 7 0

izvorni/odredišni registar

bazni registar

učitavanje/smeštanje

write-back (auto-index)

veličina podatka(zavisi od koprocesora)

gore/dole

pre-/post-index

Page 50: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

kontrolišu na isti način kao i instrukcije koje vrše prenos neoznačenog bajta ili reči. Na ovaj način se definiše prva adresa prenosa dok se prenos narednih reči obavlja inkrementiranjem adrese.

Primeri:

LDC p6, CR1, [r4] ; učitaj iz memorije u koprocesor 6 ; ARM registar 4 sadrži adresu ; učitaj u CP regisar 1LDC p6, CR4, [r2, #4] ; učitaj iz memorije u koprocesor 6

; ARM registar r2 + 4 je adresa ; učitaj u CP registar 4

STC p8, CR8, [r2, #4] ! ; smesti iz koprocesora 8 u memoriju ; ARM registar r2 + 4 je adresa ; posle transfera r2= r2 +4 ; smesti od CP registar 8STC p8, CR9, [r2], #-16 ; smesti iz koprocesora 8 u memoriju ; ARM registar r2 čuva adresu ; posle transfera r2= r2 - 16 ; smesti od CP registar 9

5.9.3 Prenos registara koprocesora

Ove instrukcije omogućavaju da se celobrojne vrednosti generisane od strane koprocesora prenese direktno u ARM registar, ili u ARM-ov marker registar.

Način kodiranja je prikazan na slici 16.

Slika 16. Binarno enkodiranje instrukcije prenosa registra koprocesora

Tipične primene su sledeće:

FP-ova FIX operacija koja postavlja integer vrednost u ARM registar.

49

31 28 27 24 23 21 20 19 16 15 12 11 8 7 5 4 3 0

cond L Cop21 1 1 0 Cop1 CP#RdCRn CRm1

učitati iz koprocesora/smestiti u koprocesor

Page 51: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

FP kompariranje koje vraća rezultat operacije kompariranja u ARM-ov marker registar čime se kasnije određuje tok izvrešenja programa.

FLOAT operacija koja pribavlja celobrojnu vrednost iz ARM-og registra, predaje je koprocesorui, gde se konvertuje u FP broj i smešta u koprocesorki registar.

Asemblerski format:

Prenos iz ARM registra u koprocesor:

MRC{<cond>} <CP#>, <Cop1>, Rd, CRn, CRm{, <Cop2>}

Prenos u koprocesor iz ARM registra:

MCR{<cond>} <CP#>, <Cop1>, Rd, CRn, CRm{, <Cop2>}

Opis. Ovu insrukciju koristi bilo koji processor pevezan na system; obično će

koprocesor sa koprocesorskim brojem CP# prihvatiti ovu instrukciju. Ako koprocesor nije prisutan ARM definiše nedifinisani instrukcioni trap. Ako koprocesor prihvati Load od instrukcije koprocesora, on će obaviti operaciju definisanu od strane Cop1 i Cop2 nad izvornim operandima CRn i CRm i smestiti 32-bitni celobrojni rezultat od ARM u registar Rd.

Ako koprocesor prihvati Store koprocesorke instrukcije, onda će prihvatiti 32-bitnu celobrojnu vrednost od ARM-ovog registra Rd i uraditi nešto sa njom.

Ako je PC naveden kao odredišni registar Rd kod insttrrukcije Load iz koprocesorske instrukcije, 4 MS bita 32-bitne celobrojne vrednosti generisane od strane koprocesora se smeštaju u N, Z, C i V flegove registra CPSR.

Primeri:

MRC p15, 5, r4, c0, c2, 3 ; koprocesor 15 prebacuje u ARM registar ; opkod 1= 5, opkod 2= 3 ; ARM odredišni registar= r4 ; koprocesorski izvorni registri su 7 i 12 MCR p14, 1, r7, c7, c12, 6 ; ARM registar prebacuje u koprocesor 14 ; opkod 1= 1, opkod 2= 6 ; ARM izvorni registar= r7 ; koprocesorki odredišni registri su 7 i 12

50

Page 52: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

6. Hardver i Softver Proces kreiranja

Za razumevanje hardversko/softverske ko-verifikacije neophodno je razumeti princip rada alata kao i proces koji se koristi za razvoj hardvera i softvera. Do skora, integracija softvera sa hardverom se izvodila u laboratorijiskom okruzenju konstrukcijom hardvera i pokretanjem softvera. Debagiranje se izvodilo sledećom opremom: in-circuit emulatorima (ICE), logičkim analizatorima i osciloskopima. Debagiranje u kasnijoj fazi projektovanja, , kada je pritisak na projektante zbog definisanog roka najveći, je naporan i stresan zadatak. Ko-verifikacijom menja se ovakav pristup jer se koristi virtuelni prototip hardvera koji se izvrsava na softveru pre nego sto je prototip dostupan.

Tri komponente SoC verifikacije

Pre nego što pređemo na detaljan opis izrade hardvera i softvera i proučimo njihovu povezanost, vredno je sagledati tri komponente SoC verifikacije. Da bi

51

Page 53: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

kreirali koherentnu metodologiju za hardversku i softversku verifikaciju, inžinjeri moraju razumeti specifične alate u svakoj oblasti kao i njihovu međusobnu povezanost. Ove tri komponente su:

1. Verifikaciona platforma2. Hardverski verifikacioni alati i tehnike3. Softverski alati i tehnike za debagiranje

6.1 Verifikaciona Platforma

Verifikacija platforme je metod koji se koristi za opis hardverskog dizajna.Njena alternativna imena su izvršna mašina ili virtuelni prototip.Proces projektovanja hardvera cini u opis hardvera na jedan od dva jezika za opis hardvera (HDLs), Verilog ili VHDL. Ovi na ovim jezicima mogu izvrsavati na bilo kojoj platformi (PC masina,radna stanica itd...)

Četri posebne metode se mogu identifikovati i koristii za rad hardvera:

Logička simulacija Ubrzana simulacija Emulacija Hardverski prototip

Svaka motoda koja opisuje rad hardvera koristi posebne tehnike za debagiranje,pri cemu svaka ima svoje prednosti i nedostatke. Metode se rangiraju u odnosu na najsporije metoda izvrsenja, koje se karakterisu sa najvecom fleksibilnoscu i najboljim debagiranjem, pa do najbržih,koje karakterise najmanja fleksibilnost i najsporije debagiranje.U daljem tekstu dacemo definicije koje se koriste za opis ovih platformi i način na koji one rade.

Jezik za opis hardvera (HDL) se odnosi na namenske jezike projektovane za opis hardvera. Dva jezika koja se danas koriste su Verilog HDL i VHDL. Ovi jezici se koriste da bi opisali rad čipa ili ploče isto kao što softverski program opisuje rad mikroprocesora ili ugrađenog sistema. HDL-ovi sadrže ključne reči, sintaksu i semantiku modela hardverskog kola. Softverski alati mogu koristiti ove modele za simuliranje ponašanja hardvera i za sintezu HDL modela u strukturni prikaz koji se može koristiti za realizaciju hardvera. HDL-ovi se koriste za specifikaciju implementacije ASIC i FPGA kola. Takođe se koriste za modeliranje memorije i drugih digitalnih kola.

U odnosu na prvobitne verzij,oba jezika nastavljaju da se razvijaju.Kod Veriloga je standad IEEE 1364 a kod VHDL-a je IEEE 1076.

S obzirom da se delovi čipa ili sistema najcesce projektuju od strane različitih grupa ili kompanija, prirodno je da se koristi kombinacija oba jezika kada se opisuju slozena resenja. Situacija kada se koriste oba jezika se naizva mesoviiti-jezički projekat, a

52

Page 54: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

simulatori koji mogu simulirati Verilog i VHDL u istoj simulacionoj platformi se nazivaju mešovito-jezički simulatori. Većina logičkih simulatora danas su mešovito-jezički koji su pored toga sposobni da se izvrsavaju na dodatnim jezicima , kao što je SystemC.

Softverski simulatori predstavljaju dogadjajno-inicirani logicki simulatori.Oni se izvrsavaju na radnim stanicama i koriste VHDL ili Verilog kao simulacioni jezik za opis dizajna i testbench-eva.

Najčešći tip digitalnog simulatora je dogadjajno iniciran simulator.Kada se vrednost signala menja, parametri vreme, signal i nova vrednost signala se zajednicki nazivaju dogadjaj.Dogadjaj se planira za izvrsenje kada se on smesti u red cekanja dogadjaja ili u listi dogadjaja.Kada dodje trenutak,logicka vrednost signala se menja.Promena utice na ostale signale koji prihvataju ovaj signal kao ulazni.Svi signali nakojima se ima uticaj moraju se evaluirati zato sto uzrokuje unosenje veceg broja dogadjaja u listi dogadjaja.

Simulator vodi racuna o tekucem vremenu, tekucem vremenskom markeru i lista dogadjaja u kojoj se cuvaju naredni dogadjaji. Za svaki signal,logicki simulator cuva trag logickog stanja kao i amplitude pobunog generatora(izvora signala). Logički simulator se najčešće koristi za simuliciju ponašanja hardverskih dizajna.

Logički simulatori mogu da se realizuju u jedan od sledecih nacina.To su simulatori koji koriste interpreterski kod i simulatori koji koriste kompajlirani kod. Simulator interpreterskog koda koristi HDL model kao podatke, a kompajlira izvršivi model kao deo strukture simulatora, a nakon toga izvršava taj model. Ovakav tip simulatora ima krace vreme kompajliranja, ali duze vreme izvršenja u poređenju sa simulatorom koji koristi kompajlirani kod. Primer simulatora koji koristi interpretirani kod je Verilog-XL.

Simulator koji koristi kompajlirani kod konvertuje HDL model u neku formu (obično C) a zatim koristi zasebni kompajler za kreiranje izvršivog binarnog koda.U ovom slucaju imamo duže vreme kompajliranja, ali i kraće vreme izvršenja u poređenju sa simulatorom koji radi sa interpretirskim kodom. Najveci broj simulatora se kategorizira kao native-code kompajlirani iz razloga sto oni premoscavaju medju prezentaciju(kakva je C) i konvertuju HDL u direktno izvrsivi kod. Simulatori ovakvog tipa imaju najkraće vreme izvršenja. To su hibridni simulatori koji se mogu konfigurisati da rade u interpreterskom ili kompajliranim rezimu rada, zavisno od želje korisnika.

Ubrzana simulacija se odnosi na proces mapiranja odredjenog dela dizajna koji se moze sintetizopvati na hardversku platformu koja je specificno projektovana sa ciljem da se povećju performance tako sto se evaluacija vrsi HDL konstrukcijama koje se paralelno izvrsavaju.Verilog i VHDL su po definiciji paralelni programski jezici s obzirom da oni opisuju hardver koji obavlja veliki broj konkurentnih operacija.Ovakav paralelizam čini ove jezike različitim u odnosu na sekvencijalne programske jezike.

Ubrzana simulacija se bazira na paralelizmu. S obzirom da se logički simulatori izvrsavaju na radnoj stanicami, paralelne konstrukcije se realizuju u CPU-ove skupove instrukcija radnih stanica. Proteklih godina veci broj projektanata je pokušao

53

Page 55: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

da koristi višeprocesorske sisteme ili sistenme zasnovane na vecem broji radnih stanica kako bi iskoristio paraleleizam Veriloga I VHDL-a, sa manjim uspehom.Ubrzana simulacija koja koristi hardver projektovan po porudzbini a ne processor opste namene je daleko bolja za obavljanjae brze simulacije.Kod ubrzane simulacicje postoje dve komponente koje odredjuju ukupno vreme simulacije; Deo simulacije koji se moze preslikati u hardver izrazen po porudzbini i ostali delovi simulacijue koji se ne mogu preslikati u hardver. Ovi delovi se mogu izvrsavati od strabne softverskog simulatora I kordinisano raditi sa hardverskom platformom radi razmene podataka.

Ubrzana simulacija obezbedjuje bolje performance jer ne vodi racuna o simulacionim dogadjajima inicirane od strane logickog simulatora a vrsi njjihovu procenu koriscenjem hardvera za paralelno procesiranje.

Eliminisanjem simulacionim dogadjajima povecavarju se performance. Krajnje performanse su određene procentom simulacije koji se izvršava na logičkom simulatoru I deo koji se izvsava na akceleratoru (koje je nula). Na primer, ako 50% simulacionih događaja se eliminise iz logičkog simulatora i njihovo vreme je nula i proceniti za neko, tada se ukupno vreme simulacije skracuje za pola.

Sema sa ubrzanom simulacijom je prikazana na slici 2-1.

slika 2-1

Cilj ubrzavanja je povećanje performansi. Krajnje performanse su zasnovane na brzini akceleracione platforme i procentu simulacije koji se može izvršavati u oviru akceleracionog hardvera. U jednoj tipičnoj situaciji ubrzanja se neki određeni deo simulacije odvija u radnoj stanici. Odnos procenta simulacije u radnoj stanici

54

Page 56: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

nasuprot procenta dizajna u sistemu za ubrzanje (akceleratoru) određuje krajnje performanse.

Emulacija se odnosi na proces mapiranja čitavog dizajna na hardversku platformu projektovanu u cilju povećanja performansi sistema. Ne postoji stalna veza između emulatora i radne stanice tokom izvršenja programa, a emulator ne prihvata ulaz od radne stanice.Nepostojanje veze sa radnom obezbedjuje hardverskoj platformi da radi punom brzinom i da ne postoji čekanje za bilo kakvom komunikacijom. Postoje tri standardne tehnike koje se koriste za ubrzanu simulaciju i emulaciju. Jedna koristi polja specificno projektovanih procesora za izvršenje programa, a ostale dve koriste FPGA kola za postizanje paralelizma.

Postoji mnogo različitih definicija o tome šta zapravo termin emulacija znači, i u kojoj je vezi sa ubrzanom simulacijom.

Definosacemo emulaciju na osnovu sledecih karakteristika: Ne postoji testbench koji se izvrsava na radnoj stanici Emulator je master a radna stanica je slave. Taktni impulse se generisu od strane emulatora, a ne od radne stanice

Karakteristike ubrzane simulaciju su sledece: Postoji neki testbench koji se izvršava na radnoj stanici (poželjno je što

manje, zbog boljih performansi) Radna stanica je sada master a emulator ili akcelerator je slave Taktni impulse se generisu od strane testbench-a koji se izvršava na

radnoj stanici

In-circuit se odnosi na korišćenje spoljašnjeg hardvera spregnutog sa emulatorom u svrhu obezbedjenja realisticnijeg okruženja dizajna koji se simulira. Ovaj hardver je obično u formi štampanih kola koje se nekad nazivaju ciljne ploce ili ciljni sistem,dok se test oprema povezuje na emulator. Moguća je i emulacija bez ciljne sistema koja se odnosi na izvrsenje bez testbench ulaza iz radne stanice,ali takodje bez ciljnog sistema.Kod simulacije bez ciljnog sistema svo generisanje pobudnih signala (testbench-eva) se vrsi na osnovi sintetizovanih oblika i izvrsavaju se na emulatoru.Kod ovog postupka ubvek postoje nedefinisanosti,imajuci u vidu da tekuci proizvodi obavljaju kako ubrzanu simulaciju tako i emulaciju a komutacija izmedju ova dva rezima rada se obavalj iniciranjem komande.Tako na primer kada smo u emulacionom rezimu rada korisnik moze da pritisne dirku Ctrl+c kako bi stopirao emulator tako da zbog toga mora da postoji povratna veza sa random stanicom.

Neki od emulatora takodje obezbedjuju testhbench-ove koji se mogu sintetizovati ikoriste komande stampanja kakva je s display u Verilog-u sa ciljem da se stampaju poruke na radnoj stanici koje se koriste kod procesa debagiranja;sto ukazuje na potrebu slabe sprege na radnoj stanici.

55

Page 57: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Dijagrami koji prikazuju emulaciju koja ne korist ciljni sistem i in-circuit emulaciju su prikazani na slikama 2-3 i 2-4.

slika 2-3

slika 2-4

Hardverski prototip se izvodi kao hardver po porudzbini ili hardver koji se moze visestruko koristiti za realizaciju hardverske reprezentacije sistema. Prototip predstavlja reprezentaciju krajnjeg sistema a prednost mu jet a sto se moze lakse konstruisati, a samim tim i pre dostupan od konacnog proizvoda. To se postiže pravljenjem kompromisa u zahtevima za krajnji proizvod, kako u performansama tako i u nacinu pakovanja.Standardni kompromis kod realizacije prototipa je ušteda vremena koja se dobija zamenom ASIC kola sa programabilnom logikom. Ovo omogućava da dizajn bude dostupan ranije, ali u jednom izvodjenju koje radi sporije i znatno je gabaritnije.

56

Page 58: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

6.2 Programerski pogled na svet

Softverski inženjer celo resenje vidi preko programskog modela . Programsaki model se koristi da obezbedi podrsku u odredjenim operacijama modela koji su hierarhijski visi od njega a pri tome zahteva implementacije svih arhitekturnih nivoa koji se nalaze ispod njega. Praktično, programski model mikroprocesora sastoji se od ključnih osobina CPU-a potrebne za apstrakciju procesora u cilju razvoja softvera. Kao primer programskog modela, uzet je u obzir ARM9E-S CPU iz familije ARM-a.

Na osnovu tehnickog uputstva moze se zakljuciti da ARM9E-S implementira instrukcije procesora ARMv5TE koje sadrze kako skup 32 bitnih tako i skup 16 bitnih ARM-ovih instriukcija.Detalji skupa instrukcija su vazan deo programskog modela.Takodje u osnovi programskog modela se daju detalji koji se odnose na rezim rada CPU-a,formata memorije,tipova podataka,registarkog skupa opste namene,statusnih registara, i prekida izuzetaka.Svi ovi detalji mikroprocesora su vazni softverskim inzenjerima.

Osim mikroprocesora, softverski inženjeri interesoje memorijska mapa embedded sistema.Kod 32-bitnog adresnog prostora, postoji fizička memorija od 4 GB-a koja može biti prihvaćena.Embedded sistemi koriste samo podskup ovog fizičkog adresnog prostora, a memorijska mapa definise gde su različiti tipovi memorije i drugi hardversko upravljacki registri locirani. Memorijska mapa takođe određuje šta se dešava ukoliko ako se pristupa adresama koje ne pripadaju fizickom prostoru. Slika 2-5 prikazuje primer memorijske mape.

57

Page 59: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 2-5.

Standardni tip memorije kod embedded sistema su ROM u kome se cuva inicijalni softver koji se izvrsava na CPU, fleš memorija, DRAM, SDRAM ili DDR memorija, brza SRAM i deo memojrije u kojima se preslikava periferija. Periferije mogu biti bilo koji namenski hardver koji se softverski programira.To mogu biti UART transmiter,tajmer,JPEG koder/dekoder,itd.

Kombinacija mikroprocesorsko programskog modela,memorijske mape i hardverko upravljacki registri predstavljaju softverko inzenjerski pogled na embedded sistem.

6.3 Hardverski pogled na svet

Hardverski inžinjeri imaju drugačiji pogled na embedded sisteme.Ukazali smo kako su interne operacije mikroprocesora vazne za softverske inzinjere.Unutrašnji rad CPU-a je manje važan za hardverske inžinjere, a sprezanje sa magistralom je ono što njih interesuje. Da bi hardverski dizajn ispravno funkcionisao, logika povezana na mikroprocesor mora da ispunjava sva pravila magistralnog protokola. Ukoliko su ova pravila rada protokola ispoštovana, nije važno ono što softver radi.Za hardverske inžinjer, mikroprocesor nije ništa drugo nego generator transakcione magistrale.

58

Page 60: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Svi mikroprocesori koriste isti tip protokola za upis i citanje u memoriju. Na nivou hardver inžinjeringa, na mikroprocesor se gleda kao na seriju piši-briši memorijeCitanja i upisi se koriste za pribavljanje instrukcija, pristup periferijama, obavljanja DMA penosa i drugih aktivnosti, ali u sustini oni nisu nista drugo nego niz operacija citanja i upis na magistrali.

6.4 Softverski razvojni alati

6.4.1 Editor

Editor u realnosti ne predstavlja neko softversko razvojno sredstvo, ali najveci broj programera trosi vreme koristeci usluge editora (unos programa) u odnosu na druge programe.Iskustvo pokazuje da programeri zele da raspolazu sa zaista dobrim editorima jer od njihove koncepcije u najvecoj meri zavisi produktivnos.

6.4.2 Revizija izvornog koda

Nakon izrade odredjenog softvera sledeci korak je da se ucini pokusaj da se isti namerno ne osteti.Kontrolna revizija je sredstvopomocu koga se u inkrementalnim koracima zapisuju promenekoje se izvode u toku razvoja softvera.Koristeci reviziju moguce je pomocu funkcije undo ispraviti izmene koje mogu da uzrokuju probleme a takodje i da se uvedu ogranicenja koja se odnose na modifikaciju pojedinih fajlova kao i identifikaciju onoga ko je izvrsio promenu.

Ovo je veoma korisno u toku razvoja softvera kada postoji veci broj programera koji rade na razlicitim lokacijama.

Postoje mnogo takvih sistema kontrolne revizije od besplatnih do skupih. Concurent version system(CVS) je de fakto u današnjem svetu.On se izvrsava na vecem broju platforme i obezbeđuje klijent/server rezim rada za korisnike na proizvoljnim lokacijama. Možda nije najbolji, ali je najpoznatiji.

6.4.3 Kompajler

Kompajler je alatka za prevođenje visih programskih jezika (C/C++) i asemblerskih fajlova fajla u program koji se moze izvrsavati. Ovaj format se zove mašinski jezik i čuva se u fajlu koji se zove izvršni fajl.

Embedded sistemi obicno koriste cross kompajler.Cross kompajler se izvrsava na racunaru koji ima razliciti tip procesora od onog koji se koristi u embedded sistemu.Ovo znaci da izvrsivi fajl koji se generise od strane kompajlera ne moze

59

Page 61: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

izvrsiti na masini koja ga je kreirala nego se on mora preneti na embedded sistem kada treba da se izvrsi.

6.4.4 Debugger

Nažalost, svi programi ne rade korektno iz prvog puta ili slobodnije receno 100% od svih programa ne radi korektno. Čak i da program izgleda kao da radi korektno, nemoguće je testirati ga u svakoj situaciji i uslovima, pa tako ne može da se dokaže da uvek radi ispravno. Debugger pomaže softver inžinjerima da pronadju grešake tako da se kod mogao ispravno da radi u veći broj situacija u kojima se nalazi. Debuger dozvoljava softverskim projektantima da pregledaju sekvencu koda, procesore registra i memoriju, i da registruju sta se desilo.

Standardne debugger funkcije obuhvataju:

Registrovanje promene stanja registra Registrovanje promene stanja memorije Prikaz funkcija za prikaz magacina (backtrace) Postavljanje prekidnih tacaka Postavljanje tačaka posmatranja (analizira se stanje podatka) Korak po korak funkcija inicirana C iskazom ili asemblerskom instrukcijom Iniciranje prekida u toku rada procesora

6.4.5 Simulator

Simulator modelira interni rad procesora. Procesorski simulatori su često isporucuju sa softverskim razvojnim alatima koji se koriste za kompajliranje softvera. Alternativno ime za ovaj tip simulatora je simulator skupa instrukcija (ISS). Tipicna aplikacija simulatora omogucava programeru da testira izlaz kompajlera bez da raspolaze CPU-om.

Kada se razvije neki procesor, kompajlirani programi moraju biti verifikovvani kako bi mogli da se izvrsavaju na implementirani procesor.ISS se takodje koristi od strane projektanata mikroprocesora za unakrsnu proveru CPU-ovog dizajna procesora u odnosu na model. Korišćenje simulatora je dobar način za verifikovanje i otklanjanje neispravnosti mikoprocesora.

Softverski inžinjeri takođe koriste simulator za testiranje koda pre nekgo sto je

dostupan CPU ili ploca procesora. U ranijoj fazi projektovanje vrlo je lako izvrsavati inicijalni boot kod na simulatoru sa ciljem da se osiguramo da je CPU dobro postavljen i da dobro radi.

6.4.6 Razvojna ploča

60

Page 62: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Razvojna ploča sadrži procesor(CPU), memoriju i periferije, i mogucnosti da se pune i debagiraju proogrami. Razvojna ploča je u sustini standard za softverske inženjere. Kada neki projekat pocinje ili se uvede novi procesor,softverski inženjeri nabavljaju razvojnu ploču i pocinju sa pisanjem izvrsenja programa sa ciljem da utvrde da li je kompajlirani kod korektan i sve greske u programu ispravljene.Proizvođači mikroprocesora isporucuju ove ploče koje se koriste za evaluaciju CPU-a a osnovna njihova prednost je ta sto je CPU realan,to je pravi da izvrsava stvarne programe i provere su verodostojne.

6.4.7 Integrisana razvojna okruzenja (IDE)

IDE kombinuje sve neophodne funkcije i alate koji su potrebni softverskim projektantima u jedinstveni, integrisani proizvod sadrži editor,pretrazivac izvornog koda,fajl navigator, fajl editor i kreator projekta. Idea se sastoji u tomeda ako se nauci samo jedno sredstvo u znacajnoj meri se olaksava projektovanje i lakse je razumeti princip rada.

6.5 Povezivanje softvera za debagiranje

Softverski debageri povezuje embedded sisteme na razlicite nacine. I pored toga sto su koncepti debagiranja identicni za sve metode povezivanja korisno je da se zna osnovni mehanizam koji debaer koristi za komunikaciju sa mikroprocesorom i memorijom.Oni funkcionišu tako što šalju komande embedded sistemu koji izvrsava operacije CPU-ovim registrima i cita memoriju. Dve najvaznije funkcije su čitanje CPU-ovih registara i citanje memmorije.Pomocu ove informacije debager može da odredi stnje u kome se sistem nalazi. Skoro sve debager komande traže citanje memorije; tipicni primeri su prikazivanje promenljivih i prikaz disambliranih softver instrukcija. Druge debager funkcije se odnose na upis u registar ili izdavanje komande za pocetak i zavrsetak izvrsenja programa.

Za razliku od debagera, program na PC-u ili radnoj stanici, debager embedded sistema se moze izvrsavati na drugoj mašini a ne na embedded procesu. Ovaj koncept se često naziva remote debugging. Ciljani procesor možda neće da radi ispravno niti da ima tastaturu i monitor.

6.5.1 JTAG

Jedan od standardnih debagera koji se koristi za povezivanje sa CPU-m je JTAG-a. JTAG je poznat kao standard IEEE 1149.1 , nazvan boundary scan, a koristi se za testiranje kola na stampanim plocama.On koristi petozilni kabel preko koga prima serisjke podatke i komande od stane uredjaja koji implementira JTAG standard. Kod mikroprocesora se koristi JTAG protokol koji nije namenjen za testiranje veza na stampanoj ploci,nego za slanje i predaju infrmacija od embedded ssistema. JTAG

61

Page 63: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

debager veze omogucavaju spregu izmedju masine koja izvrsava debager program preko konektora na embedded sistem koji implementira zeljene JTAG signale.

Posto serijske JTAG sekvence mogu biti jako dugacke,jedan mali blok se koristi za konverziju komande u serijske signale.Da bi se implementirao JTAG debagiranje, mikroprocesor treba da sadrži specijano implementiran hardver.

6.5.2 Stab

Kod procesore koji nemaju izvedenu hardversku podrsku za debagiranje ,softerski debager mora da komunicira sa embedded sistemom koristeci stub-a. Stub je specijalni program koga korisnik pridodaje embedded softveru za iskljucivu potrebu komuniciranja sa debagerom.Stub softver komunicira sa debagerom uz pomoc komunikacionog kanala kakav je serijski port(RS232) ili Ethernet konekcija.

Stub izvrsava dibagerske zahteve kao sto su citanje registara i memorija i predaje rezultate debageru preko komunikacionog kanala. On takođe koristi usluzne rutine kako bi zaustavio rad procesora kakav je slucaj kada korisnik koristi opciju CTRL+Tab.

Stab je na neki nacin specijalan kod koji se ne postoji u konacnoj verziji embeddedsistema ali je veoma fleksibilno okruzenjeza razvoj softvera.

6.5.3 Direktna konekcija

Kada se koristi ISStada nema potrebe bilo za JTAG konekcijom ili stab-om između softver debagera i embedded sistema. Posto je ISS softverski model, debager može sa lakoćom da pristupi svim traženim informacijama izdavanjem funkcijskih poziva ISS-u.Direktan konekcija je najbolja veza izmedju debagera i embedded sistema.

Svi zahtevi debarega se mogu trenutno ispuniti bez da se udje uspecijalni rezim rada za debagiranje.Na ovaj nacin se dobija najtacnija i najrealisticnija slika o tome kako embedded sistem radi.

6.6 Tipovi softvera

Pet različitih tipova embedded softvera se mogu identikovati.Obim softvera(broj linija) i se povecava po sledecem redosledu:

Softver za inicajilizaciju sistema i nivo za apstrakciju hardvera (HAL) hardversko-dijagnostički test program Operativni sistem za rad u realom vremenu (RTOS)

62

Page 64: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Pokretacki programi RTOS-a Aplikacioni softver

6.6.1 Inicijalizacija sistema i HAL

Prvi softverski zadatak se sastoji u kreiranju i testiranju softvera za inicijalizaciju mikroprocesorskog sistema. Ovaj programse odnosi na konfigurisanje radnih reima CPU-a i periferija (ukljucujuci konfiguraciju kesa,programiranje MMU-a,konfigurisanje kontrolera prekida,postavljanje tajmera i inicijalizacijaDRAM-a.)

Abstrakcija na hardverskom nivou je sledeći nivo softvera koji se koristi sa kodom za inicijalizaciju radi ostvarivanja korektne sprege sa visim nivoima softvera sa ciljem da hardver korektno funkcionise nakon inicijalizacije sistema.

6.6.2 Dijagnostički test program

Nakon sto je obavljena inicijalizacija i HAL procedura, sledeca faza u razvoju softvera se sastoji u razvoju detaljnijih programskih celina koje se odnose na rad hardvera..Obicno su ove celine imale formu hardvera testbencha. Dok su testbench-evi neophodni za stimulaciju eksternih interfejsa kakvi su mrežni protokoli,softver se u ovom slucaju koristi kao testbench za magistralu CPU-a

Počinje se sa memorijskim podsistemom,zatim se testiraju prekidi, a onda se prelazi na testiranje drugih IP blokova kao što su tajmeri, DMA kontrolori, video kontrolori, MPEG dekoderi i drugog specijalnog hardvera.

Većina ovih testova nije sastavni deo konacnog proizvoda, ali je veoma vezan kod realizacije korektnog hardverskog dizajna.

Kreiranje programa ovog tipa omogucava softverskim inzinjerima da dobro razumeju kako hardver radi i koje su njegove specificnosti.Dijagnostike se mogu takodje koristiti kada se pojavi neki kvar.

6.6.3 Operativni sistem za rad u realnom vremenu (RTOS)

Prva pretpostavka softverskog inženjera je da hardver korektno radi . Ovo je tačno ukoliko je dijagnostička procedura korektno prosla.Inicijalno se zatim RTOS puni u hardversku platformu. U toku faze instaliranja softvera moguce je izostaviti instalaciju specificnih pokretackih programa , ali ne i jezgro RTOS-a.

63

Page 65: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

6.6.4 Pokretacki programi i aplikacioni softver

Nakon sto je platforma kompletirana, drajverski uredjaji i aplikacioni softver mogu da se testiraju.NA aplikacionom nivou za hardver se podrazumeva da radi korektno, pa se zadatak sastoji u tome sto je programiranje slicno kao i programiranju na PC-u.Ako aplikacija ne radi dobro,sa sigurnoscu se može reći da problem u softveru , a ne u hardveru.

Aplikacije obično zele da ostvare spregu sa realnim mrežnim saobraćajem,da se sve aktivnosti vide na ekranu, i da se u sto vecoj meri radi sa pokazivačem ili mišem. Tokom razvoja aplikacije, greške u hardveru ili softveru su na nižem nivou pa je zadatak softverskog inženjera da se fokusira na aplikaciju.

6.7 Proces razvoja softvera

Pisanje embedded softvera je razlicito od pisanja programa za radne stanice ili PC masinu. Programski aspekti koji nisu važni za radnu stanicu odjednom postaju važni prilikom rada sa ograničenim okruzenjem kakva je ona tipicna za embedded sisteme.Na primer, posmatramo ogranicenje memorije.Izgled memorije je vazan,isto se odnosi i na obim memorije, kao i gde ce korektni podaci smestiti u memoriji

Ovaj pristup je razlicit od pristupa masini koja radi pod modernim operativnim sistemom sa velikim iznosom virtualne memorije.

6.8 Hardverska razvojna sredstva

Postoje dve osnovne klase alata koji se koriste od strane hardverski inženjera. Postoje oni alati koji se bave implementacijom dizajna i oni koji se bave verifikacijom dizajna. Implementacija je proces opisivanja dizajna i transformisanja opisa dizajna u neophodne formate za izradu čipova ili ploča. Verifikacija je proces u kome se osiguravamo da dizajn radi, da ne nece otkazati, i da ce raditi u skladu sa specifikacijom.U nasem interesu je da sagledamo process verifikacije.

Najstandardnija platforma je Verilog i VHDL simulator koji se izvrsavaju na PC-mašini ili radnoj stanici.Druge platforme pored simulatora i ubrzanog simulatora su in-circuit emulacije.Pored toga postoje i spocijalni hardverski jezici za verifikaciju koji su projektovani sa ciljem da poboljsaju efikasnost i kvalitete verifikacije.

6.8.1 Editor

Kao i softverski inženjeri,najveci broj hardverskih inženjera upoznaje se sa opisom dizajna i testbench-eva koristeci tekst editor.Kada se govori o hardverskim inženjerima, tehnike editovanja su mnogo jednostavnije od onih koje koriste softverski inženjeri.

64

Page 66: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

6.8.2 Kontrola revizije izvornog koda

Od samog početka je razvoj softvera podrazumevao upravljanje velikim brojem tekstualnih fajlova koje kreiraju mnogi inženjeri, i koji se kompajliraju u jedan ili više izvršnih programa. Sa pojavom Verilog i VHDL nacina projektovanja hardverski inženjeri sreću se sa istim tipom okruženja i moraju koristiti alate za kontrolu revizije kako bi upravljali projektima.

Jedna oblast u kojoj se kontrola revizije može razlikovati između hardvera i softvera je količina podataka generisana i smeštena u projektima hardverskog dizajna. Kompajlirani softverski projekti sadrže mnogo objektnih fajlova i određen broj izvršnih fajlova. Medju verzije binarnim fajlovima se ne izvode tako često jer se čak i jako veliki projekat može obnoviti za par sati. Hardverski projekti se razlikuju tako što im je često potrebno nekoliko dana za kreiranje odgovarajućih binarnih fajlova i baza podataka da bi se prešlo sa HDL izvornog koda u layout čipa ili pločice. Ovaj proces uključuje mnoge različite alate i medju fajlove. To sve dovodi do mnogo više podataka i nosi veću odgovornost za memorisanjem ovih podataka korišćenjem alata za kontrolu revizije. Za ove aplikacije je bitno da se pronađe alat koji je u mogućnosti da upravlja velikom količinom binarnih podataka na efikasan nacin.

6.8.3 Alati

Lint alati obezbedjuju jednostavnu analizu koda radi nalazenja standardnih grešaka. Alati to čine tako što iščitavaju izvorni kod.Koreni Lint-a datiraju od ranijih dana karakteristicni za koriscenje programsko jezika C, kao sredstvo za nalaženje grešaka pre njegovog izvrsenja.Standardna Lint provera ukljucuje proveru neiskorišćenih deklaracija, nalazenje nekonzistentnih tipova,koriscenje promenjljive predefinicije,kod koji postoji ali se ne izvrsava, ignorisanje povratnih vrednosti, izvršni putevi bez povratka,beskonačna petlja i nedosledni case iskazi.

Pomenuti koncept analize je proširen na Verilog i VHDL. HDL alati omogucavaju sintaksne provere i provere stila kodiranja za potrebe simulacije i sinteze. Alati takođe mogu detektovati istovremenu pojavu vise ivica impulasa koja dovode do hazarda i analiziraju osobine konacnih automata.. Na ovaj način možemo detaljno ispitati kod pre kompajliranja i procesa simulacije.

Cilj ove vrste alata je postizanje koda većeg kvaliteta i pronalaženje grešaka mnogo ranije analiziranjem dizajna. Sve se to odvija pre simulacije.

6.8.4 Pokrivenost koda

Pokrivenost koda je još jedna tehnika pozajmljena od softverskog inžinjerstva. Pokrivenost meri veličinu koda koji se koristi tokom izvođenja testova. Na osnovu rezultata pokrivenosti se mogu razviti dodatni testovi za povećanje pokrivenosti. Indirektno će značiti da povećanje pokrivenosti znači povećanje kvaliteta proizvoda.

65

Page 67: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Za HDL dizajn postoje tri različite veličine pokrivenosti koje se mere. To su pokrivenost iskaza, pokrivenost grananja i FSM pokrivenost.

Pokrivenost iskaza se drugačije naziva i linijska pokrivenost. Ona meri koliko je iskaza bilo izvršeno. Iskaz je najosnovniji tip mere pokrivenosti koji identifikuje neizvršene linije koda. Za te linije ili treba razviti test, ili taj deo koda može biti uklonjen.

Pokrivenost grananja identifikuje uslove koji su bili zadovoljeni u iskazima prilikom grananja. Ti iskazi mogu biti tipa if-then-elsei iI case. Ovaj tip pokrivenosti pruža više detalja od jednostavne pokrivenosti iskaza i može identifikovati oblasti koje nisu obuhvacene tokom testiranja.

FSM pokrivenost identifikuje ponašanje dizajna tako što identifikuje skup iskaza kao konačni automat i analizira skup FSM prelaza koji tada nastaju. Tako se obezbeđuje da se testira kompletno ponašanje.

Pokrivenost koda je dobar pristup za proveru i testiranje HDL koda, ali ne garantuje da je testirani dizajn korektan. Čak iako se nekorektan dizajn temeljno testira, to ne može pomoći na kraju jer pokrivenost daje mere pri implementaciji i nije povezana sa specifikacijom dizajna.

6.8.5 Alati za debug-ovanje

Za razliku od nekih prethodnih alata, koje su hardverski inženjeri prihvatili od softverskih inženjera, debug-ovanje hardvera je mnogo drugačije od debug-ovanja softvera. Hardverski inženjeri prvenstveno rade u batch okruzenju. Bilo da se radi na velikim simulatorima uz pomoć puno računara, ili na jedinstvenom modulu i simulaciji na lokalnoj radnoj stanici, debug-ovanje se često odvija tehnikama za naknadno procesiranje.To znaci da je korak izvrsenja simulacije i hvatanja rezulltata izdvojen iz koraka interpretacije i koraka koji se odnosi na interpretaciju debugging problema.

Uobičajen alat za debug-ovanje hardvera je osciloskop. Hardverski inženjeri rade posmatrajući vrednosti signala tokom perioda vremena simulacije.Današnji alati za posmatranje talasnih oblika pamte podatke u kompresovanom obliku zbog maksimalnih performansi i minimalne veličine fajlova. IEEE Verilog standard koristi format za fajlove u koje su smešteni talsani oblici, poznat kao VCD. Ovakav format teksta je dobar za male simulacije sa malim količinama podataka koje treba upamtiti, ali postaje veliki za velike simulatore. Za takve simulacije moraju biti korišćeni odgovarajući formati sa nekim stepenom kompresije.

6.8.6 Programski jezici za verifikaciju

Sa povećanjem složenosti dizajna je postalo teško koristiti programske jezike za simulaciju koji bi adekvatno verifikovali dizajn. Zato su predloženi novi programski jezici i razvijeni samo za potrebe verifikacije. Iako ih sada postoji mnogo, jedan od najpoznatijih jezika je danas poznat kao IEEE 1674 standard. Poboljšanje

66

Page 68: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

verifikacije HDL dizajna podrazumeva dodatne osobine u odnosu na one koje pružaju današnji najkorišćeniji programski jezici: Verilog, VHDL ili C. Neki od korisnih aspekata jezika za verifikaciju su:

Lakoća ponovnog korišćenja kodova za višestruke testove Ograničenja za generisanje testova Ugrađena funkcionalna podrška Tipovi podataka koji omogućavaju visok nivo funkcionalnosti i dobar

interfejs sa HDL dizajnom

6.8.7 Tvrđenja

Popularnost korišćenja tvrđenja za specifikaciju namene dizajna i osobine dizajna jako brzo raste. Tvrđenja su vrlo jak alat za međusobnu proveru dizajna i pretpostavljenog ponašanja. Takođe bitni za verifikaciju i sistemske inženjere jer mogu formalno navesti ponašanje sistema i proveriti da li se sistem ponaša u skladu sa specifikacijom.

Tvrđenja pružaju zajednički format višestrukim alatima. Tvrđenja olakšavajudebug-ovanje i smanjuju vreme simulacije Tvrđenja verifikuju interfejse između blokova Tvrđenja su dobra vežba RTL kodiranja

6.8.8 Definisanje debug-ovanja

Ono što mnogi inženjeri nazivaju debug-ovanje je ustvari kombinacija dve zasebne aktivnosti: detekcije i debug-ovanja.

Detekcija je proces određivanja postojanja problema u dizajnu ili testu. Mnogi projekti koriste simulaciju kao osnovni način za detekciju problema. Nedavno su alati za formalnu verifikaciju počeli da budu korišćeni za određivanje problema u dizajnu. Prilikom simulacije postoji mnogo načina za prikazivanje postojanja problema. Dva najčešća načina su pomoču $display iskaza, i poređenje vrednosti u memoriji sa očekivanim rezultatima. Nedostatak $display iskaza može značiti i problem sa rezultatom testa. Tvrđenja su bolji način za detekciju grešaka.

Za povećanje efikasnosti detekcije problema, inženjeri primenjuju više računara i simulatora, ili koriste druge načine za povećanje performansi. Ti načini mogu biti ubrzanje simulacije ili emulacija. Kao dodatak jednostavnim načinima sa dodavanjem hardvera i povećanjem performansi, inženjeri mogu razviti dodatne pametnije testove koji će otkriti probleme brže, ili ranije. Primeri podrazumevaju testove usmerene ka razvijanju dizajna koji ciljaju posebnu oblast, ili korišćenje povratnih informacija od strane koda.

Kada se problem otkrije on mora biti debug-ovan. Debug-ovanje je proces

pronalaženja korena uzroka problema i promene dizajna ili testa kako bi se problem rešio. Debug-ovanje je mehanički proces u poređenju sa detekcijom, jer je potreban inženjer koji će provesti određeno vreme kako bi pronašao šta je ispravno a šta nije. Određivanje pravilnog ponažanja zahteva dobro poznavanje dizajna i njegovog rada.

67

Page 69: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Veći broj bržih računara ne mogu pomoći pri procesu debug-ovanja. Alati mogu pomoći prilikom unapređenja procesa tako što olakšavaju razumevanje dizajna, i tako što pružaju bolji pregled rezultata simulacije.

Osnovni način debug-ovanja je posmatranje talasnih oblika. Koristeši informacije detekcije, inženjeri moraju pregledati logičke signale u različitim vremenskim trenucima tokom procesa simulacije. Zatim moraju pronaći šta ne radi ispravno. Ovaj proces tipično zahteva puno radnih sati za određivanje pravilnog rada dizajna. Gomilanje nepotrebnih talasnih oblika može takođe drastično smanjiti performanse simulacije i kao rezultat dati velike fajlove. Inženjeri zato moraju izdvojiti vreme pre simulacije za određivanje perioda u kojima će biti generisani fajlovi koji pamte talasne oblike. Takođe moraju biti određeni i delovi dizajna za koje će talasni oblici biti upamćeni.

U verifikaciji ugrađenih sistema postoje dve bitne oblasti koje moraju biti dobro shvaćene, i koje će biti razmotrene u naredom delu teksta: memorijski modeli i mikroprocesorski modeli.

6.8.9 Memorijski modeli

Memorijski modeli za diskretne memorijske komponente kao i memorije koje su ugrađene u čipove se koriste u logičkim simulacijama. Softver mora biti preveden iz binarnih formata (kao što je ELF) u neki koji će biti pogodan za učitavanje u memorijske modele. Postoji mnogo različitih vrsta memorijskih modela koji se kreću od onih sa Verilog-a i VHDL-a, pa sve do C jezika. Oni koriste C interfejs logičkog simulatora za komunikaciju sa HDL-om.

Primer jednog jednostavnog memorijskog modela :// Simple read-only memorymodule ROM(A, OE, D);input [13:0] A; // Addressinput OE; // Output enableoutput [7:0] D; // Data outputreg [7:0] D;reg [7:0] Mem [0:(16 * 1024)]; // memory array// Read from memoryalways @(OE or A)beginif (OE)D = Mem[A];elseD = 8'bz;endendmodule

IEEE VCD format koji se koristi za smeštanje podataka talasnih oblika upravlja sadržajem memorija. Za bolje razumevanje aktivnosti memorije mora biti izvršeno posebno manipulisanje. Jedna alternativa je korišćenje odgovarajućeg formata za fajlove u koje se smešta talasni oblik. Taj format mora biti u stanju da prima i smešta istoriju stanja memorije. Većina hardverskih alata za debug-ovanje

68

Page 70: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

koji su u sastavu logičkih simulatora, kao i oni nezavisni alati za debug-ovanje omogućavaju ovakve pogodnosti. Alati pružaju GUI funkcije za prikaz sadržaja memorije onako kako je snimljen u fajlovima koji sadrže talasne oblike. Druga alternativa je korišćenje memorijskih modela koji su zapisani na C jeziku i koji poseduju API za čitanje i zapisivanje sadržaja memorije. Ovo omogućava da grafički alati pregledaju istoriju memorije interaktivno tokom simulacije, kao i nakon simulacije. Takođe se omogućava izmena memorije tokom simulacije korišćenjem GUI.

6.8.10 Mikroprocesorski modeli

Još jedan alat koji koriste hardverski inženjeri je mikroprocesorski model. Dva osnovna modela koja se koriste za hardverski dizajn su model funkcionalne magistrale BFM i potpuni funkcionalni model FFM. FFM model logičke simulacije je neophodan za System-on-chip dizajne. Nemoguće je (ili bar rizično i nepraktično) napraviti ASIC koji će sadržati mikroprocesor bez potpune simulacije čipa. Za korišćenje FFM modela je neophodan odgovarajući softver. Softver mora biti kompajliran na ciljnom sistemu i učitan u memoriju logičkog simulatora. Procesor će tada početi sa pribavljanjem i izvršavanjem instrukcija i tako verifikovati dizajn sistema. FFM modeli dolaze sa najrazličitijim formatima. Najbrži se pišu u C programskom jeziku i koriste jednostavne konstrukcije za komunikaciju sa logičkim simulatorom. Nekada se može desiti da se opisi na gejtovskom ili RTL nivou mikroprocesora koriste kao FFM modeli. To se može koristiti kao stvarna baza podataka dizajna koja če biti iskorišćena za kasniju proizvodnju uređaja.

U oblasti visokih performansi sistema-na-čipu, FFM model nije obično dostupan za mikroprocesore dobrih performansi, poput PowerPC ili MIPS procesora. Da bi zadovoljili ovakve potrebe, hardverski inženjeri su se obratili BFM i hardverskom modelu za verifikaciju. BFM model je manje složen od FFM modela. On samo implementira deo interfejsa magistrale jednog mikroprocesora. Delatnosti na magistrali, poput čitanja i zapisivanja memorije, pribavljanja instrukcija i prekida se simuliraju na nivou zadataka (task-ova). Testbench se koristi za generisanje sekvence mogućih akcija koje procesor može izvesti. BFM model kojim upravlja testbench može ali ne mora oslikati sekvencu akcija koja nastaje kada se softver ugrađenog sistema pusti u rad na ciljnom sistemu, ali je mnogo lakši za rad hardverskim inženjerima. BFM modeli su obično zapisani na C jeziku korišćenjem C interfejsa logičkog simulatora, ili u Verilog-u ili VHDL-u. Skori napredak u protokolima magistrala mikroprocesora čine BFM težim za zapisivanje.

Još jedna tehnika koja se koristi za simulaciju je hardverski model. Koristi se tehnologija koja postoji preko 15 godina. Hardverski model koristi stvarni uređaj koji je smešten u postolje koje je povezano sa logičkim simulatorom. Uređaj tada služi kao sopstveni model. Hardverski modeli mogu biti korišćeni za skoro svaki digitalni uređaj za koji je potreban simulacioni model.

69

Page 71: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Uređaji poput mikroprocesora, digitalnih signal-procesora, čipova za interfejs magistrala, mrežni procesori i sistemski kontroleri su samo neki od uobičajenih. Hardverski modeli se obično razvijaju za one uređaje za koje bi softverski model bio previše složen za pisanje, i tamo gde je neophodna potpuna funkcionalnost.

6.8.11 Proces dizajniranja hardvera

Proces dizajniranja hardvera se sastoji od odlučivanja o arhitekturi i ponašanju dizajna, koji se nastavlja implementacijom pomoću Verilog-a ili VHDL-a na RTL nivou. Sledeći korak je vođenje RTL koda kroz skup koraka za proizvodnju čipova i pločica. Skup koraka koji se mora preći od RTL-a do čipova je jako dobro definisan. Aktivnosti na nivou arhitekture su mnogo manje definisane i mnogo se više međusobno razlikuju

. Sa stanovišta verifikacije, proces mora prvo verifikovati svaki RTL blok onako

kako se proizvede. Zatim se blokovi akumuliraju u podsisteme i sisteme koji se takođe verifikuju celim putem, sve do tačke kada se čitav dizajn verifikuje.

Ključno pitanje u SoC dizajnu je kada potrošiti vreme na hardversku i softversku integraciju. Neki projekti zagovaraju da se ovakva integracija obavi jako rano, u fazi arhitekture, kako bi se osigurali da neće biti pitanja o performansama kasnije. U ovoj ranoj fazi se može koristiti i apstraktni model dizajna kako bi se omogućio način rada softvera sa visokim perforamansama. Neki drugi projekti zagovaraju odlaganje integracije sve dok ne bude spreman RTL kod dizajna i dok svi blokovi ne budu verifikovani zajedno, kao i da svi glavni podsistemi rade.

6.8.12 Pregled mikrkoprocesora

Kao što smo videli ranije, softverski i hardverski inženjeri imaju različite poglede na mikroprocesor. Poželjno je razločiti funkcije mikroprocesora na dva dela: interne operacije i eksterni interfejs. Interne funkcije sadrže:

Skup instrukcija. Ovo podrazumeva format instrukcija koje procesor može izvršavati. Instrukcije mogu biti kodirane na mnogo načina. Za RISC procesore su instrukcije fiksne dužine od 32 ili 16 bitova.

Registri. Kombinacije registara opšte namene, status registara, i programsog brojača.

Keš. Posebna vrsta memorije u koju se smeštaju najčešće korišćeni podaci. Hardver se brine o tome koje podatke treba smestiti u keš memoriju, kao i o stanju keša.

Sistem vodova (pipeline). Različite etape procesiranja instrukcija kako bi se omogućilo povećanje performansi. Ugrađeni RISC procesori koriste tri ili pet stepeni vodova.

Jedinica za upravljanje memorijom (MMU). MMU pruža prevođenje adresa neophodno za implementiranje virtualne memorije. Koristi je

70

Page 72: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

operativni sistem da bi pružio zaštitu sistema od strane nekih programa ili neizvršenih zadataka.

Izvan mikroprocesora postoje instrulcije čitanja i zapisivanja, kao i memorijska mapa koja definiše kojoj memoriji ili registru će se pristupiti. Eksterni interfejs mikroprocesora je glavna briga hardverskih inženjera. Interfejs se sadrži od skupa signala koji prate određeni definisani protokol.

Ovakav eksterni interfejs sadrži: Interfejs memorijske magistrale. Pravila za korišćenje magistrale, čitanje

i zapisivanje podataka sa magistrale. Na ovaj način procesor dobija i šalje signale.

Interfejs magistrala procesora. Nekada se koristi posebni interfejs za komunikaciju sa hardverskim funkcijama koje zahtevaju posebnu pa`nju po pitanju performansi.

Prekidi. Skup signala koji se koristi da bi saopštio mikroprocesoru da je potreban servis. Tipično je postojanje višestrukih izvora prekida koji imaju različite nivoe prioriteta.

6.8.13 Interakcija hardvera i softvera

Da bi se izvršila priprema za tehnike verifikacije hardvera i softvera potrebno je razmotriti metode debug-ovanja koje koriste inženjeri.

Karakteristike debug-ovanja softvera

Potpuno interaktivno Može se izvoditi u laboratoriji sa pločicom koja radi na frekvenciji od

min 25 MHz. Koristi se printif() iskaz za praćenje izvršenja promenljivih Softver za izvršavanje sa debug-erom na izvornom nivou Korišćenje tačaka prekida za prekid izvršenja i proveru memorije

(promenljivih i struktura podataka), steka i sadržaja registara Iterativno podizanje sistema i podešavanje tačaka prekida sve dok se ne

pronađu greške.Karakteristike debug-ovanja hardvera

Izvršavanje logičke simulacije na brzinama 10–100 Hz Iskazi za štampanje poruka (ili nedostatak ovakvih poruka) za otkrivanje

grešaka Korišćenje memorisanih talasnih oblika za pronalaženje vrednosti

signala i grešaka

71

Page 73: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Lista karakteristika prikazuje izazov verifikacije dizajna i sa strane softvera i strane hardvera. Primarna interakcija hardvera i softvera nastaje na granicama magistrala mikroprocesora i u sadržajima programabilnih registara i memorije. Memorija je verovatno najvažnije mesto susretanja hardvera i softvera, a ipak je pogrešno shvaćeno. Na primer, hardverski inženjeri su navikli da učitavaju podatke u memoriju u simulacioni model na startu simulacije korišćenjem određenih komandi. U trenutku kada simulacija počne i reset se obavi, podaci u memoriji su spremni za čitanje ili zapisivanje. Softverski inženjeri imaju drugačiji pristup. Najuobičajeniji način pisanja test programa za ugrađeni sistem je njegovo kompajliranje u fajl izvršnog formata, poput ELF. Zatim se može otići u laboratoriju, uključiti pločica sa mikroprocesorom i povezati softverski debug-er preko JTAG interfejsa. JTAG kabl povezuje pločicu i paralelni port PC-ja. Debug-er se koristi za download ELF fajla u memoriju na pločici, i zatim se može početi sa radom programa. JTAG veza koristi mikroprocesor za izvršavanje dugačkih nizova upisivanja u memoriju preko magistrale procesora, kako bi upisala podatke u memoriju, umesto da učita podatke pre početka rada kao u slučaju simulacije.

7. Opis Starter Kit-a

72

Page 74: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

7.1. Kratak uvod

Sve veća proizvodnja novog hardvera donosi veliki broj neispitanih komponenata koje su lako dostupne svim korisnicima. Njihove karakteristike jesu definisane od strane proizvođača, ali ih je poželjno testirati za neke određene radne uslove. Prva aktivnost koja se odnosi na testiranje predstavlja računar i odgovarajući operativni sistem. Da bi se ovaj zadatak obavio, moraju se posedovati odgovarajuci softverski alati za kreiranje dizajna računara (šeme i izgleda layout-a kola), kao i softverski alati za pisanje kodova i smeštanje u projektovani uređaj.

Testiranje karakteristika gradivnih blokova sistema je danas jednostavno moguće korišćenjem development kit-ova. To su sistemi za razvoj projektovani po određenom standardu. Oni su u stanju da ispitaju realne karakteristike određenih komponenti, kao na primer mikrokontrolera. Dobar development kit sadrži funkcio-nalni primer uređaja koji želimo projektovati i na kome možemo testirati kreirani kod, kao i odgovarajuće integrisano razvojno okruženje (Integrated Development Environment - IDE). U sastavu ovakvog IDE okruženja se obicno nalazi editor, debugger, simulator, asembler i kompajler (u najvećem broju slučajeva C kompajler). Development kit ima ugradjene gradivne blokove (periferije) kojima se može pratiti učitavanje i izvršavanje neke aplikacije. Ti gradivni blokovi su memorija, portovi za komunikaciju, delovi za hardversku konfiguraciju... Moraju postojati i kablovi i alati za povezivanje i download koda u procesor. Sastavni deo dokumentacije je i elek-trična šema razvojnog okruzenja. Mogućnosti development kit-ova obicno su ograni-čene, ali su zadovoljavajuce za početna testiranja većeg broja gradivnih blokova. Cena development kit-ova se kreće tipično do 300 $, mada je za neke procesore daleko veća. Ulaganje u kupovinu development kit-ova je zaista isplativo zbog količine vremena i novca koji se na ovaj način štedi u fazi razvoja sistema.

Sličan sistem za ispitivanje i razvoj mikroracunarskih sistema se naziva starter kit. Ovaj uredjaj takođe poseduje skup komponenata koji je neophodan za ispitivanje rada mikrokontrolera i izvršavanje nekih aplikacija na mikrokontroleru, ali je velika razlika što je specifično realizovan za testiranje jednog tipa kola. Proizvođači starter kit-ova jasno naglašavaju za koji tip mikrokontrolera je namenjen njihov proizvod. To znaci da ne postoji mogućnost ispitivanja nekih drugih tipova mikrokontrolera. Univerzalnost koju smo videli kod development kit-ova u ovakvom slučaju ne postoji.

U nastavku teksta bice objasnjena struktura i mogucnosti jednog starter kit-a, proizvod firme Hitex koji je namenjen za testiranje rada sistema zasnovanih na mikrokontroleru tipa LPC2138.

8. ARM starter kit

Na slici 1 je prikazan izgled starter kit-a, koji je namenjen za testiranje sistema zasnovanih na Phillips LPC2000 cipu iz familije ARM procesora. Starter kit služi za razvoj ARM koda i debug-ovanje programa koje se obavlja uz pomoc posebnog

73

Page 75: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

hardverskog modula nazvanog Tantino. Ovaj starter kit poseduje sve sastavne delove koji su potrebni za izvršavanje određenih aplikacija. Najvažniji delovi su:

o JTAG debugger za ARM7-9o razvojna pločao Quick start vodič za rado CD sa instalacijom programa firme Hitex za ARMo kablovi za napajanje i povezivanje JTAG-a

Ključni deo je svakako JTAG (Joint Test Action Group). To je unverzalni debugger razvijen za 8- 16- i 32-bitne mikrokontrolere. Procesori tipa ARM7-9, locirani na ploči za razvoj i testiranje, standardno se povezuju preko 20-pinskog JTAG konektora. Komunikacija JTAG-a sa PC-mašinom (Personal Computer) se ostvaruje preko komunikacione veze USB 2.0. Download-ovanje programa se vrši brzinom od 100 kB/s. JTAG debugger i HiTop korisnički program komuniciraju preko posebnog interfejs programa nazvanog DAS server lociranog u JTAG Tantino interfejsu. Pomoću JTAG hardvera je, pored debug-ovanja programa, moguće obaviti i programiranje fleš memorije nekog mikrokontrolera.

Povezivanje razvojnog sistema sa PC-mašinom se ostvaruje kao sto je prikazano na slici 2:

74

Slika 1: Izgled starter kit-a za ARM

Page 76: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 2: Način povezivanja razvojnog sistema

Kao što se vidi sa slike 2, povezivanje se ostvaruje pomoću:1. USB kabla: koristi se za povezivanje JTAG debugger-a

sa PC-mašinom2. 20-pinskog kabla koji povezuje JTAG konektor lociran

na razvojnoj ploči sa Tantino interfejsom3. USB porta lociranog na razvojnoj pločici MCB2130 sa

PC mašinom preko USB kabla. Preko ove veze razvojna pločica dobija napajanje.

Ostali tehnički detalji koji se odnose na razvojnu plocu MCB2130 su prikazani u Tabeli 1:

PARAMETAR OPISNapon napajanja 5 V (preko USB magistrale)Struja napajanja tipično 65 mA, maksimalno 120 mAFrekvencija kristala 12 MHz (max 60 MHz)CPU Phillips LPC21xx

Periferali2 x RS232 interfejs (COM0 i COM1)1 x JTAG interfejs1 x analogni izlaz (povezan na zvučnik standardno)1 x analogni ulaz (povezan na potenciometar standardno)1 x ETM interfejs (opciono)

Tabela 1: Tehničke karakteristike razvojne pločice MCB2130

8.1 Opšti opis

75

Page 77: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Starter kit koji je analiziran u ovom radu je zasnovan na mikrokontrolerima LPC2131/2132/2138. Ovi 32/16-bitni mikrokontroleri su deo familije ARM7 procesora. Ključne karakteristike starter kit-a su sledeće:

1. Moguce je obavljati emulaciju u realnom vremenu.2. Sistem ima mogućnost praćenja stanja signala na paralelnim ulazima.3. U zavisnosti od ugradjenog tipa mikrokontrolera, brza flash memorija

moze biti kapaciteta 32, 64 ili 512 kB.4. Memorijski bafer za razmenu podataka sa drugim uredjajima je obima 128

bitova. 5. Procesor je u stanju da izvrsava kako 32-bitne kodove, tako i 16-bitne.6. Kod aplikacija koje imaju kritičan obim koda koristi se alternativni 16-

bitni Thumb način rada procesora. Kod ovakvih rešenja se obim koda smanjuje za vise od 30%, a gubici u performansama su minimalni.

Na slici 3 je izgled IC pakovanja mikrokontrolera. Prikazano pakovanje se odnosi na čipove iz serije LPC2134 / 2136 / 2138.

Slika 3: IC pakovanje mikrokontrolera

76

Page 78: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

U Tabeli 2 je prikazan detaljan opis pinova ovog mikrokontrolera:

Tabela 2: Opis pinova mikrokontrolera

77

Page 79: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Tabela 2: Opis pinova mikrokontrolera

78

Page 80: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Tabela 2: Opis pinova mikrokontrolera

79

Page 81: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Tabela 2: Opis pinova mikrokontrolera

Na ulaze kola, za koje vaze napomene od [1] do [6], moguće je dovesti napone max amplitude 5V. Ovi pinovi su definisani kao digitalni U/I pinovi. Pinovi markirani simbolom [7] koriste se kao digitalni ulazi, a pinovi markirani simbolom [8] su analogni ulazi / izlazi.

80

Page 82: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 4 prikazuje fizički izgled pločice MCB 2130 u štampanoj formi, i raspored osnovnih gradivnih blokova. Za komunikaciju se koriste: komunikacioni portovi COM1 i COM2 i JTAG konektor. Za indikaciju se koriste LED diode, za reset sistema taster RESET. Prihvatanje zahteva za prekid se ostvaruje preko tastera INT, a za napajanje se koristi USB konektor.

Slika 4: Fizički izgled razvojne pločice

Ostali sastavni delovi razvojne pločice su: a) kristalni oscillator; b) CPU LPC2138; c) pobudni drajverski stepen za LED diode; d) potenciometar kojim se kontroliše rad ugrađenog zvučnika (slika 4).

Blok-šema sistema koja se odnosi na razvojnu pločicu je prikazana na slici 5. Više detalja se može naći u dodatku A.

81

Page 83: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 5: Blok šema sistema

CPU – Integrisano kolo LPC2138 (slika 3) je proizvod firme Phillips . Ovaj mikrokontroler poseduje 64-pina. Baziran je na procesoru ARM7. Kao sto se vidi sa slike 6, LPC2138 poseduje dva dvosmerna U / I porta. Port P0 je 32-bitni a P1 16-bitni. Dodatno postoje dva pina za priključenje oscilatora (12 MHz), jedan za reset, jedan za dovod frekvencije od 32.768 MHz, i dvanaest za napajanje (slika 6).

CPU upravlja radom svih komponenata ugradjenih na razvojnoj plocici sa slike 4. Signali koje generiše CPU se direktno vode na prikazane pinove.

Slika 6: Blok šema CPU

82

Page 84: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Kratkospajači – njihovo postavljanje definiše konfiguraciju razvojne pločice. Ukupno postoje dvanaest (označeni sa J1-J13) i imaju sledeće funkcije:

o J1 – ISP (In System Programming): Dozvola rada programiranje-sistema. Kada se J1 postavi, moguće je generisati signal na P1.14 (EINT1) preko RTS linije porta COM0. Kada je RTS aktivan na P0.14 se dovodi nizak nivo signala, što se koristi za ulazak u ISP način rada (slika 7).

Slika 7: Položaj kratkospajača J1, J7 i J10

o J2 – AV: Analogni napon za AIN0. Kratkospajač J2 povezuje potenciometar POT1 na analogni ulaz procesora AVIN (slika 8). Potenciometar upravlja radom zvučnika koji se nalazi na razvojnoj pločici.

Slika 8: Položaj kratkospajača J2

83

Page 85: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

o J3 – 3.3V: Napon napajanja za CPU. Ovim kratkospajačem se povezuje napajanje od 3.3V na CPU (slika 9).

Slika 9: Položaj kratkospajača J3, J4, J5 i J11

o J4 – VBAT: Napon napajanja baterije za CPU. Povezuje napon napajanja baterije VBAT od 3.3V na CPU (slika 9).

o J5 – V3A: Analogni referentni napon za CPU. Povezuje napajanje od 3.3V na referentni analogni ulaz procesora (slika 9).

o J6 – LED: Omogućava LED drajver. Kada je kratkospajač J6 postavljen, LED drajver (kolo IC6) upravlja radom dioda povezanih na pinove Port1.16 – Port1.23 (slika 10).

84

Page 86: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 10: Kratkospajač J6o J7 – INT1: Omogućen taster INT1. Kada je J7 postavljen,

taster INT1 se povezuje na U/I pin procesora P0.14 (EINT1 ulaz). Signal prekida se generiše nakon pritiskanja tastera. Signal prekida je niskog logičkog nivoa (slika 7).

o J8 – ETM: Omogućen ugrađeni modul za praćenje. Kada je J8 postavljen, omogućen je ETM (Embedded Trace Module) - modul praćenja signala na paralelnim ulazima. U ovom slučaju se LED diode na pinovima Port1.16 – Port1.23 ne mogu koristiti jer se ovi pinovi koriste i za ETM signale (slika 11).

Slika 11: Kratkospajač J8

o J9 – JTAG: Omogućen JTAG interfejs. Pomoću ovog kratkospajača se povezuje hardverska komponenta JTAG, pomoću koje se može izvoditi debug-ovanje i ISP programiranje flash memorije (In System Programming) (slika 12).

85

Page 87: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 12: Kratkospajač J9

o J10 – RST: Omogućen reset putem COM0 porta. Kada je J10 postavljen, moguće je generisati Reset signal procesora preko DTR (Data Terminal Ready) signala na portu COM0. Reset se generiše kada je DTR signal aktivan (slika 7).

o J11 – VREF: Referentni napon A/D konvertora. Povezuje 3.3 V napona napajanja VREF sa CPU (slika 9).

o J13 – AOUT: D/A izlaz za zvučnik. Pri postavljenom kratkospajaču J13, AOUT analogni izlaz procesora je povezan na NF pojačavač (slika 13).

Slika 13: Položaj kratkospajača J13

Napajanje ( USB plug ) - izvodi se preko USB kabla povezanog na PC-mašinu. MCB2130 razvojna pločica se napaja naponom u rasponu od 5 do 9 V, ali regulator napajanja IC3 (kolo LD1117S33) smanjuje taj napon i generiše pomenuta 3.3 V jednosmernog napona. Blok dijagram ovog kola je dat na slici 14:

86

Page 88: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Slika 14: Regulator napajanja, kolo LD1117S33

Delovi kola označeni brojevima 1 - 4 predstavljaju:1. naponski generator2. strujni generator3. termička kompenzacija4. termička zaštita

Tabela 3: Električne karakteristike kola regulatora napajanja

87

Page 89: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

JTAG interfejs konektor predstavlja deo razvojnog sistema koji služi za komunikaciju sa PC-mašinom. Na JTAG se preko 20-pinskog konektora povezuje Tantino uređaj koji služi za debug-ovanje programa i programiranje flash memorije na čipu. Pomoću JTAG-a se mogu programirati i uređaji koji se ne nalaze na čipu. Na slici 12 je prikazan izgled JTAG konektora.

Napomene koje se javljaju u Tabeli 4 imaju sledeće značenje:

*) prefiks “n” označava nizak nivo signala na određenom pinu.**) smer “I” označava ulaz u mikrokontroler, što znači izlaz iz JTAG-a; smer

“O” obeležava izlaz iz mikrokontrolera i ulaz za JTAG.

Tabela 4: Signali na pinovima JTAG konektora

Svi signali ulaza i izlaza JTAG-a su kompatibilni za različite napone. U/I naponi koje koristi JTAG hardver su definisani naponom koji se javlja na konektoru VTref.

88

Page 90: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Nivo izlaznog signala iz JTAG-a neće preći 3.6V. Preporučuje se da se u svaku izlaznu liniju mikrokontrolera ubaci redni otpornik od 100 oma.

LM386 NF pojačavač. Na razvojnoj pločici MCB2130 se nalazi zvučnik koji je povezan na analogni izlaz D/A konvertora. Analogni izlazni signal AOUT se pojačava pomoću LM386 NF pojačavača snage, zasnovanog na operacionom pojačavaču. Pojačavač je u detaljnoj šemi u dodatku A predstavljen kao kolo IC4. Gejn NF pojačavača je standardno podešen na vrednost 20, ali se dodavanjem spoljašnjih otpornika između pinova 1 i 8 može povećati u opsegu do čak 200. Blok šema pojačavača LM386 je prikazana na slici 15, a karakteristike u Tabeli 5.

Slika 15: Blok šema kola LM386 pojačavača analognog izlaznog signala

Tabela 5: Tehničke karakteristike pojačavača LM386

89

Page 91: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Pobuda LED dioda. POWER dioda indicira da li je napajanje povezano na razvojnu pločicu. Postoje i diode koje su povezane na osam Port1 pinova P1.16 – P1.23. One se mogu se koristiti za indikaciju statusa programa prilikom testiranja aplikacija. Na pločici se nalazi i kolo za upravljanje radom LED dioda, tzv. LED drajver, koji je na detaljnoj šemi predstavljen kolom IC6 (74LVC244). LED drajver predstavlja pobudni stepen za diode. Njegova blok šema će biti predstavljena na slici 16. U Tabeli 6 su navedeni opisi pinova za kolo 74LVC244. Visok nivo na pinovima dozvole postavlja izlaze ovog kola u stanje visoke impedanse, jer je njihov aktivni nivo nizak.

Slika 16: Pobudni stepen za diode Tabela 6: Opis pinova za kolo 74LVC244

Na slici 17 je prikazana logička šema ulaznih i izlaznih pinova pobudnog stepena dioda.

Slika 17: Logička šema kola 74LVC244

Tehničke karakteristike kola 74LVC244 koje služi za pobudu dioda su prikazane u Tabeli 7:

90

Page 92: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Tabela 7: Tehničke karakteristike kola 74LVC244

Slika 18 prikazuje način povezivanja kola 74LVC244 i CPU.

Slika 18: Povezivanje kola za pobudu LED dioda

Tasteri. Na pločici MCB2130 postoje dva tastera:o RESET taster koji je povezan na reset ulaz mikrokontrolera,o INT1 taster koji je povezan na NMI (Non Masked Interrupt)

– signal za prekid rada mikrokontrolera.

91

Page 93: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Kolo za prilagođenje MAX563. Na ovoj pločici postoje dva serijska porta: COM0 i COM1. MCB2130 podržava serijski UART (Universal Asynchronous Receiver Transmitter). Procesor koristi MAX232 kolo za konverziju logičkih signala na naponske nivoe RS232 serijskog priključka. UART se može koristiti za download nekih alata, poput alata za programiranje flash memorije. Preko COM0 porta je moguće programirati aplikacije, dok je preko COM1 porta moguće praćenje izvršenja aplikacija. Praćenje se izvodi putem serijskog interfejsa računara.

Oba serijska porta su povezana na mikrokontroler preko kola koje na detaljnoj šemi nosi oznaku IC2. To je MAX563 čip koji poseduje dva ulazna i dva izlazna kontakta. Služi za prilagođenje napona i ima izgled kao na slici 19:

Slika 19: Izgled kola MAX563

Tabela 8 prikazuje opis pinova za kolo MAX563:

92

Page 94: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Tabela 8: Opis pinova kola MAX563

Serijski portovi (COM) su konfigurisani kao standardni 3-žični interfejsi. DB9 konektor je tako povezan da šalje handshake signale nazad u PC-mašinu. Na slici 20 su prikazani detalji serijskog porta:

Slika 20: Izgled standardnog DB9 konektora

Pinovi koji postoje na ovakvom serijskom portu imaju sledeća značenja:

o CTS (Clear To Send)– slobodan za prenoso RTS (Request To Send)– zahtev za prenoso GND (Ground)– signal maseo DSR i DCD (Data Set Ready; Data Carrier Detected) – su

povezani u petlju (skup podataka spreman; otkriven nosač podataka)o DTR (Data Terminal Ready) - spreman za prijem podatakao RxD i TxD (Receive Data; Transmit Data) – povezani na

MAX 232 čip (služe za prijem i prenos podataka)

93

Page 95: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

9. Povezivanje sistema i kreiranje aplikacije

U slučaju da HiTop korisnički program startujemo po prvi put, neophodno je proveriti povezanost sistema. To se izvodi odabirom komande System iz menija, a zatim i odgovarajuće naredbe Connect. Po izvršenju ovih komandi naš starter kit je povezan sa PC mašinom.

Kreiranje nove aplikacije.

Odabirom komande Project > New počinjemo sa definisanjem novog projekta. Prvi korak je da projektu dodelimo ime i lokaciju na kojoj će biti smešten.

94

Page 96: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Naredni korak podrazumeva odabir alata koji će biti korišćen za određenu aplikaciju. Za ovaj primer biramo odgovarajući alat u vidu Tantino for ARM 7-9.

Iz niza mikrokontrolera treba zatim odabrati odgovarajućeg proizvođača i tip mikrokontrolera, kao i njegovu konfiguraciju. Za naš slučaj su to ARM, LPC2138, i red bajtova Little Endian.

Pošto se komunikacija sa PC-mašinom vrši preko odgovarajućeg USB porta, u narednom koraku biramo USB način komunikacije i unosimo četvorocifreni serijski broj Tantino uređaja, koji se nalazi na zadnjoj strani.

95

Page 97: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

U slučaju da aktuelna verzija HiTop korisničkog programa nije registrovana, pojaviće se prozor koji nas obaveštava o tome ali je moguće nastaviti rad odabirom opcije I want to continue evaluation.

Startup script nije potrebno unositi već se može preći na sledeći korak.Prilikom podešavanja opcija vezanih za novi projekat, prvo treba odabrati kompajler kojim će se izvršavati program. Za naš slučaj je to GNU C compiler for ARM.

96

Page 98: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Kada smo obavili sve prethodne zadatke, u dijalogu Tool settings vršimo podešavanja kompajlera, asemblera i linkera potrebnih za naš primer. Startup script to automatski obavlja sam, tako da ova podešavanja možemo samo proveriti.

Zatim se u polje Applications unosi primer koji želimo da učitamo odabirom već postojećeg fajla (koristi se opcija Insert).

97

Page 99: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Što se tiče drugih podešavanja, važno je pomenuti sledeće: clock opcija treba da ima podešen Intel-Hex format, kao što je prikazano u narednom koraku:

98

Page 100: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Zaključak

U ovom radu smo razmotrili sve osobine ARM7 procesora. Na početku smo dali pregled ahritekture ARM procesora, kao i njegovo odgovarajuće ahritekturalno nasleđe. Naveli smo tipove organizacije i imlementacije ARM procesora i prikazali njegovu pipeline strukturu. Zatim smo naveli pregled dosadašnjih ARM jezgara procesora i objasnili neke njihove osobine.

Jasno je da nijedan procesor nije posebno primenljiv bez odgovarajuće podrške u vidu hardvera i softvera. Zato smo u drugom delu pažnju posvetili skupu instrukcija ARM procesora. Takođe smo naveli tipove podataka kojima ARM može da manipuliše, kao i tipove instrukcija koje se mogu izvršavati na njemu. Instrukcije su podeljene u odgovarajuće grupe i data su njihova bliža objašnjenja kao i primeri.

Naredni deo prikazuje proces kreiranja hardvera i softvera. Da bi se razumela hardversko/softverska ko-verifikacija neophodno je razumeti princip rada alata, kao i proces koji se koristi za razvoj hardvera i softvera. Zbog toga su navedene potrebne verifikacione platforme, tipovi softvera i softverskih razvojnih alata, kao i hardverska razvojna sredstva. Shvatanje interakcije softvera i hardvera omogućilo je prelazak na završnu fazu rada, to jest prelazak na praktičnu primenu iskustava stečenih do tada.

Poslednji deo ovog rada odnosi se na upoznavanje različitih development kit-ova, ali posebno starter kit-a kompanije Hitex. Zadatak je bio da se daju bliža objašnjenja svih sastavnih delova jednog tipičnog starter kit-a, i da se objasni funkcija pojedinih sastavnih delova razvojnog sistema. Naveli smo detaljne opise kola koja se nalaze na razvojnoj pločici i njihovu namenu. Opisani su i tipovi signala koji se mogu naći na pinovima ovih kola.

Rad završavamo objašnjenjem načina povezivanja razvojne pločice na PC-mašinu, objašnjenjem odgovarajućih podešavanja, kao i navođenjem načina za kreiranje nove aplikacije.

99

Page 101: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Dodatak A

Prikaz detaljne šeme mikrokontrolera LPC 2138

100

Page 102: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

101

Page 103: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

102

Page 104: SADRŽAJ - Embedded Systems Research Group at the ...es.elfak.ni.ac.rs/Files/ARM7 Procesor.doc · Web viewSEMINARSKI RAD ARM7 PROCESOR Predmet: Mikroprocesorska sistemi Profesor:

Mikroprocesorski sistemi ARM7 procesor

Literatura:

Hitex Development Tools: The Insider's Guide to the Philips ARM7-based Microcontrolers, Trevor Martin

Philips Semiconductors: LPC2131 / LPC 2132 / 2138 User Manual, Preliminary release, November 2004.

Jason R. Andrews: Co-Verification of Hardware and Software for ARM SoC design, 2005.

ARM Limited: ARM Architecture Reference Manual, 1996. – 2000.

Philips Electronics: Single-chip 16/32-bit microcontrollers;o 32/64/128/256/512 kB ISP/IAP Flash with 10-bit ADC and DAC

Preliminary Data Sheet, 2005.

Steve Furber: ARM System-on-chip Architecture, Second Edition, New York, 2001.

Hitex Developmnet Tools: Hitex Starter Kit for ARM with MCB2130 o Evaluation Board, 2005.

John Catsoulis: Designing Embedded Hardware, O'Reilly Media, 2005.

Hitex Developmnet Tools: Solutions & Tool Chain for ARM, 2004.

Hitex Developmnet Tools: MCB2130 Evaluation Board / User's Guide, 2005.

103