Title: ARM7 PROCESOR
1ARM7 PROCESOR
Mladenovic Aleksandar
Pavlovic Bojan
Dejkovic Davor
Milenkovic Miloš
2Arhitektura ARM procesora
- Student Aleksandar
Mladenovic - Broj indeksa 10017
3Arhitektura ARM procesora
- U vreme kada se pojavio ARM cip, 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šcene
na RISC I arhitekturi su - Rad sa registarskim prozorima
- Odloženo grananje
- Izvršenje svih instrukcija u jednom ciklusu
4Registri ARM7 procesora Skup instrukcija
jednog procesora definiše operacije koje
programer koristi da promeni stanje sistema.
Stanje cine vrednosti podataka koji se cuvaju 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 okoncanju.
Promena stanja se odnosi samo na programsko
vidljive, a ne nevidljive registre.To znaci da su
bitne samo vrednosti koje se cuvaju u vidljivim
registrima.
Slika 1. Vidljivi registri ARM7 procesora
5- Statusni registar tekuceg programa (CPSR) se
koristi za cuvanje statusnih markera. Ovi markeri
se postavljaju nakon izvršenja aritmeticko-logicki
h operacija. Sadržaj ovih bitova definiše režim
rada procesora,nacin prihvatanja prekida i stanje
nakon izvršenja operacija. - Registri R0 do R12 su registri opšte namene, R13
se koristi kao pokazivac magacina, R14 kao
registar za povezivanje podprograma, a R15 kao
programski brojac.
ARM je arhitektura tipa Load - Store. To
znaci da sve aritmeticko-logicke instrukcije
manipulišu nad sadržajem registara, a jedine dve
instrukcije pomocu kojih se vrši obracanje
memoriji su operacije Load i Store. Pomocu Load
se dobavlja podatak iz memorije u registar, a
pomocu Store sadržaj registra se smešta u
memoriju.
6- Sve ARM instrukcije su 32-bitne.
- Najznacajnije osobine skupa instrukcija ARM
procesora su sledece - ucitaj-smesti arhitektura.
- 3-adresne instrukcije za obradu podataka.
- uslovno izvršenje svake od instrukcija.
- ukljucenje vrlo jakih višestrukih ucitaj-smesti
instrukcija registara - mogucnost da se izvedu opšte operacije pomeranja
kao i opšte aritmeticko-logicke operacije u
jednoj instrukciji, koja se izvršava u jednom
taktnom ciklusu. - proširenje na otvoreni skup instrukcija preko
skupa instrukcija koprocesora, Å¡to ukljucuje i
dodavanje novih registara i tipova podataka
programerskom modelu. - 16-bitna predstava skupa instrukcija velike
gustine u Thumb arhitekturi.
7Razvojni alati ARM-a
- 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 pomoc
AMR-ovog simbolickog debuggera (ARMsd koji može
da napuni, izvrši i debagira programe bilo na
hardveru kakav je ARM Development Board ili
koristeci softversku emulaciju pomocu ARMulatora)
.
8- ARM-ov C kompajler je kompatibilan sa ANSI
standardom za C i podržan je od strane
odgovarajucih 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 cak i
optimizovan, pa zatim dat na asembliranje. -
- Kompajleru se može pridružiti i Thumb kod.
Slika 2 Struktura ARM C kompajlera
9- 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 simbolicka referenciranja izmedu objektnih
fajlova i poziva objektne module iz biblioteka po
potrebi programa. Može asemblirati razlicite
komponente programa na veci broj razlicitih
nacina, zavisno od toga da li se program izvršava
u RAM ili ROM memoriji, da li je potrebno
preklapanje ,itd. - ARM simbolicki 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 ploca. Sistem mora podržavati
odgovarajuce 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 razlicitih jezgra ARM
procesora na softverski nacin na nekom drugom
racunaru. Može raditi sa razlicitim nivoima
preciznosti.
10Organizacija 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 izmedu 1983. i
1985. Tro-stepeni protocni sistem (pipeline) koji
su ovi procesori koristili je postepeno
usavršavan, a tehnologija CMOS procesa je znatno
smanjila velicinu cipova, pa su se performanse
ovih jezgara drasticno povecale. -
- U datom trenutku, moguce je da
se izvršavaju 3 instrukcije, od kojih se svaka
nalazi na razlicitom stepenu. Kada procesor
izvodi jednostavne instrukcije za obradu
podataka, protocni sistem (pipeline) omogucava da
se po jedna instrukcija izvrši u 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. -
- Od 1995. se pojavilo još par
novih ARM jezgara koja su imala daleko bolje
performanse zbog uvodenja peto-stepene protocne
obrade kao i zasebnih memorija za instrukcije i
podatke obicno u formi razdvojenih keš memorija
medusobno povezanih preko jedinstvene memorije za
instrukcije i podatke.
11Tro-stepena protocna ARM organizacija
- ARM procesori do verzije ARM7 koriste tro-stepenu
protocnu obradu kod koje se identifikuju sledeci
stepeni - Fetch (pribavljanje)-instrukcija se pribavlja iz
memorije i smešta u instrukcioni protocni system - Decode (dekodiranje)- vrši se dekodiranje
instrukcije a upravljacki signali staze podataka
se pripremaju za naredni ciklus - Execute (izvršenje)- instrukcija se izvršava od
strane staze podataka, citaju se sadržaji
registarske banke, pomera se operant,rezultat
koji generiše ALU se upisuje u odredišni registar.
Slika 3 Tro-stepena protocna obrada
12- Osnovne komponente ARM-a su
- Registarska banka - koristi se za cuvanje stanja
procesora. Banka ima dva porta za citanje i jedan
port za upis. Portovi se mogu koristiti za
pristup bilo kom registru. Postoji i dodatni port
za citanje i port za upis kojima se pristupa
registru R15, programskom brojacu. Dodatni port
za upis u R15 omogucava njegovo ažuriranje nakon
Å¡to se pribavljena instrukcija adrese
inkrementira, dok port za citanje obezbeduje da
se nastavi sa fazom pribavljanja nakon Å¡to je
adresa izdata. - Barrel pomerac - može da pomera ili rotira bilo
koji operant proizvoljan broj bit pozicija. - Aritmeticko-logicka jedinica (ALU) - obavlja
aritmeticke i logicke funkcije iz repertoara
skupa naredbi. - Adresni registar i inkrementer - selektuje i cuva
sve memorijske adrese i generiše sekvencijalne
adrese kada je to potrebno. - Registri podataka - cuvaju podatke koji se
prenose ili dobavljaju iz memorije. - Dekoder instrukcija i upravljacka logika.
13Peto-stepeni ARM processor
-
- ARM procesori se realizuju i kao
petostepeno protocni. Kod ovih procesora postoje
sledeci stepeni - Fetch
- Decode
- Execute
- Buffer/data- pristupa se memoriji za podatke
kada se to zahteva od strane instrukcije. Inace
ALU rezultat se baferuje i prosleduje se i
sledecem stepenu taktnog ciklusa. - Write-back- rezultati generisani od strane
instrukcije upisuju se u registarsko polje
ukljucujuci i podatke koji se dobavljaju iz
memorije. -
- Ovakav petostepeni protocni sistem
korišcen je od strane velikog broja RISC
procesora i predstavlja klasicno rešenje za
ovakav tip procesora.
Slika 4. Struktura peto-stepenog jezgra ARM-a
14ARM jezgra procesora
- ARM7TDMI
- ARM7TDMI ima jezgra sa naslabijim
performansama. Koristi se kod velikog broja
aplikacijama a tipicna je ona koja se koristi za
mobilni digitalni telefon. -
- Jezgro procesora cini ARM integer
jezgro koje koristi 3 protocna stepena sa
sledecim 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 polurec i
jedan bajt, kao i skup instrukcija Thumb. - Sadrži EMbeddedICE modul koji podržava
otklanjanje grešaka u programu kod ambedet
sistema -
15Slika 5. Organizacija procesora ARMI7TDMI
Kod otklanjanja grešaka u hardveru
pristup procesoru se ostvaruje preko JTAG porta
za pristup, pri cemu je JTAG logika sastavni deo
procesora.
16Hardverski interfejs
Jako veliki broj signala može dovesti do
pogrešnog zakljucka jer se njima pretpostavlja
složeno ponašanje koje se nadovezuje na suštinsku
jednostavnost bazicnog ARM interfejsa.
Medu signalima interfejsa dominiraju signali sa
magistrala podataka i adresa, tako da ce
jednostavni memorijski interfejs koristiti ove
signale kao i par kontrolnih signala.
Ostali signali su namenjeni nekim drugim
funkcijama poput debug-ovanja na cipu, JTAG
boundary scan-u, i nekim drugim.
Slika 6 Signali ARM7TDMI hardverskog interfejsa
17 Signali interfejsa prikazani su u grupama
po funkcijama, i uloga svake grupe je opisana
sa odgovarajucim informacijama o pojedinacnim
signalima.
- Kontrola takta -Sve promene stanja unutar
procesora se kontrolišu memorijskim taktom, mclk.
Iako se ovim taktom može upravljati eksterno i
time naciniti da procesor ceka na pristup,
jednostavnije je imati samostalan takt i
koristiti signal za preskakanje taktnih ciklusa.
- Memorijski interfejs - Memorijski interfejs
obuhvata 32-bitnu adresu (A(310)), dvosmernu
magistralu podataka (D(310)), posebne magistrale
za prijem i slanje podataka (Dout(310)) i
(Din(310)), kao i deset kontrolnih signala. - MMU interfejs - Interfejs signali ka MMU
daju informacije koje se koriste za kontrolu
pristupa odredenim oblastima memorije. Signal
ukazuje da li se procesor nalazi u korisnickom
(0) ili u povlašcenom (1) nacinu rada, tako da
se nekim oblastima memorije ne može pristupiti.
18Stanje - Tbit izlaz daje informaciju okruženju o
tome da li procesor trenutno izvršava ARM ili
Thumb instrukcije.Konfiguracija - bigend menja
red bitova izmedu Little- i Big-endian. Ovaj ulaz
konfiguriše nacin na koji procesor radi i ne
ocekuje se od njega da se dinamicki menja, iako
se po potrebi može menjati tokom faze takta
2.Prekidi - Dva ulaza za prekide mogu biti
asinhrona u odnosu na takt procesora jer prolaze
kroz leceve za sinhronizaciju pre ulaska u
kontrolnu logiku procesora. Brzi zahtev za prekid
ima veci prioritet od normalnog zahteva za
prekid.Inicijalizacija - reset startuje
procesor iz poznatog stanja kada izvršavanje
pocinje sa adrese 0000000016. ARM7TDMI jezgro
signalizira kada je u ciklusu zapisivanja pomocu
signala . Tamo gde je eksterna magistrala
podataka dvosmerna, enout se koristi za
omogucavanje pristupa signalu dout (310) na
magistralu. Ponekad je poželjno odložiti
operaciju zapisivanja kako bi drugi uredaji mogli
koristiti magistralu. Ostali signali za
kontrolumagistrala su , enin , enout , abe, ale,
tbe, busen, highz, busdis, i ecapclk i izvode
razlicite operacije.
19Podrška za debugovanje - Ugradeni ICE modul
sadrži tacke prekida registre za posmatranje
stanja koji omogucavaju kodu da se zaustavi kako
bi se izvršilo debug-ovanje. Ove registre
kontroliše JTAG test port korišcenjem lanca za
skeniranje. Kada se dode do tacke prekida ili
pregleda stanja, procesor se zaustavlja i prelazi
u stanje debug-ovanja. U tom stanju se mogu
ispitivati vrednosti registra procesora.
Vrednosti registara ce biti prosledene na
magistralu podataka odakle mogu biti uzorkovane i
ponovo pomerene.
Interfejs za debug-ovanje - Interfejs za
debug-ovanje povecava funkcionalnost koju daje
integrisana ugradena ICE makro celija 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.
Interfejs koprocesora - Dodatni signal koji daje
koprocesor je koji pokazuje da li ce se u
memorijskom pristupu pribaviti instrukcija ili
podatak. Ovo se može koristiti za pracenje
izvršenja ARM instrukcije.
JTAG interfejs - JTAG kontrolni signali se
povezuju na test kontroler preko svojih pinova
20Boundary scan - ARM7TDMI celija sadrži potpun
JTAG TAP kontroler za dodatnu ugradenu ICE
funkcionalnost jre je ovaj TAP kontroler u stanju
da podrži bilo koje olakšice prilikom skeniranja
kojima se pristupa preko JTAG porta. Signali
drivesb, ecapclkbs, icapclkbs, , pclkbs,
rstclkbs, sdinbs, sdoutbs, shclkbs i shclk2bs u
interfejsu su zato moguci kako bi se dozvolile
dodatne putanje za skeniranje koje ce se dodati
sistemu.
ARM7TDMI u sintezi - Proces sinteze podržava
brojne opcije u varijacijama u funkcionalnosti
jezgra procesora. Ovo ukljucuje -
izostavljanje ugradene ICE celije - zamenu
kompletnog 64-bitnog množaca jednostavnijim i
manjim množacem koji podržava - samo ARM
instrukcije množenja koje daju 32-bitni rezultat.
Jezgro ARM7TDMI procesora je našlo razne
primene u sistemima sa jednostavnom
konfiguracijom memorije. To znaci da se puno
koristi u sistemima koji poseduju par kilobajta
jednostavnog RAM-a na cipu. Tipican primer takvog
sistema je mobilni telefon. Tu se objedinjuju
moderni hardver za obradu digitalnih signala i
odgovarajuca memorija. Zato je ARM7TDMI postao
najkorišceniji procesor za funkcije kontrole i
korisnickog interfejsa.
21ARM8TDMI
ARM8 jezgro je nastalo u kompaniji ARM Limited u
periodu izmedu 1993. i 1996. kako bi ispunilo
zahteve za ARM jezgrom koje ce 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 sledece
nacine - Povecavanjem taktne frekvencije. Ovo zahteva
pojednostavljenje logike u svakom protocnom
stepenu (pipelinu) Å¡to povlaci povecanje broja
protocnih stepena - Smanjenjem CPI taktnih ciklusa po instrukciji.
Ovo zahteva smanjenje broja komunikacionih kanala
koje zauzimaju instrukcije, ili smanjenje
zavisnosti medu instrukcijama tako da one ne
izazivaju zastoje u komunikacionim kanalima. - Najbolja je kombinacija oba metoda.
22 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 omoguciti maksimalno korišcenje
propusnog opsega memorije. Zatim se integer
jedinici prosleduje po jedna instrukcija u svakom
taktu zajedno sa vrednošcu programskog brojaca za
datu instrukciju. Jedinica za pribavljanje je
takode zadužena za predikciju grananja, i koristi
staticko predvidanje kod odredivanja smera
grananja (za grananja unazad se predvidaju da ce
se desiti, dok se grananja unapred predvidaju kao
nece se desiti).
Slika 7 Organizacija procesora ARM8TDMI
ARM processor koristi peto-stepenu
protocnu obradu pri cemu jedinica za unapred
pribavljanje instrukcija odgovara prvom stepenu
protocne obrade dok se integer jedinici
pridružuju ostala 4 stepena.
23ARM9TDMI
ARM9TDMI jezgro poseduje funkcionalnost
ARM7TDMI jezgra ali sa znacajno 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 cipu. Poboljšanja u
performansama su ostvarena nakon prihvatanja
petostepenog protocnog sistema (pipelina) cime se
obezbedilo povecanje pobudne taktne frekvencije
kao i korišcenje posebnih memorijskih portova za
pristup instrukcijama i podacima cime se znacajno
poboljšao CPI. Ima odvojene portove za
instrukcije i podatke. U osnovi je moguce
povezati ove portove na jedinstvenu memoriju, ali
je posledica toga smanjenje performansi tako da
se povezivanje ne izvodi. Pravi se za
vece radne frekvencije u poredenju sa ARM7TDMI
jezgrom, tako da sve aplikacije koje koriste
ARM9TDMI jezgro imaju složenije i brže memorijske
podsisteme.
ARM procesori se primenjuju u
Industrijskoj kontroli,medicinskim sistemima
kontroli pristupa,komunikacionim
skretnicama,ugradjenim modemima i u primenama
opšte namene.
24Skup instrukcija ARM
- Student Davor Dejkovic
- Broj indeksa 9885
251. Tipovi podataka sa kojima ARM manipuliše
- ARM procesori podržavaju šest tipova podataka
- 8-bitne oznacene i neoznacene bajtove.
- 16-bitne oznacene i neoznacene polureci poredane
na granice od dva bajta. - 32-bitne oznacene i neoznacene reci poredane na
granice 4 bajta.
262. Tipovi instrukcija procesora ARM
- Procesor ARM podržava sledece tipove instrukcija
- Instrukcije za pribavljnje podataka i memorisanje
- Instrukcije za razmene sadržaja memorije i
registra - Instrukcije pristupa status registara
- Instrukcije za obradu podataka
- Razlicite aritmeticke instrukcije
- Instrukcije množenja
- Instrukcije grananja
- Instrukcije za generisanje softverkoih prekida
- Instrukcije koprocesora
27Instrukcije za pribavljnje podataka i memorisanje
- Ova grupa instrukcija se može podeliti na
- Instrukcije za prenos podataka tipa jedna rec ili
neoznaceni bajt - (Ove instrukcije su najfleksibilniji nacin
za prenos (premeštanje) bajtova ili reci podataka
izmedu registara ARM i memorije. Premeštanje
velikih blokova podataka je obicno bolje izvesti
korišcenjem višestrukih instrukcija za prenos
registara, dok najnoviji ARM procesori takode
podržavaju instrukcije za premeštanje polureci i
oznacenih bajtova). - Instrukcije za prenos podataka tipa polureci i
oznacenih bajtova - Višestruke instrukcije za ucitavanje i smeštanje
- (Ove ARM instrukcije omogucavaju da se bilo
koji podskup (ili svi) od 16 registara koji su
vidljivi u tekucem režimu rada mogu smestiti u
memoriju ili procitati iz nje. Jedan oblik ove
instrukcije omogucava operativnom sistemu da
napuni ili memoriše register korisnickog nacina
rada kao i da zapamti i obnovi stanje korisnickig
procesa, a takode da omoguci CPSR registru da
obnovi stanje koje se cuva 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).
28Binarno kodiranje instrukcije za transfer
podataka od jedne reci ili neoznacenog bajta
29- Asemblerski format
- Pre-indeksirani format instrukcije
- LDR STRltcondgt B Rd, Rn, ltoffsetgt
! - Post-indeksirani oblik
- LDR STRltcondgt B T Rd, Rn,
ltoffsetgt - Primeri
- LDR r1, r0 ucitaj r1 iz
adrese u r0 - LDR r8, r3, 4 ucitaj r8 iz
adrese u r3 4 - STR r2, r1, 0x100 smesti r2 na
adresu u r1 0x100 - LDRB r5, r9 ucitaj bajt
u r5 iz r9 - LDRB r3, r8, 3 ucitaj bajt
u r3 iz r8 3 - LDR r11, r1, r2 ucitaj r11
iz adrese u r1 r2 - STRB r10, r7, -r4 smesti bajt
iz r10 na adresu u r7 - r4 - LDR r11, r3, r5, LSL 2 ucitaj r11
iz r3 (r5 x 4) - LDR r1, r0, 4 ! ucitaj r1 iz
r0 4, zatim r0 r0 4
30Binarno kodiranje instrukcije za transfer
podataka polureci i oznacenih bajtova
31- Asemblerski formati
- Pre-indeksiran oblik
- LDR STRltcondgtH SH SB Rd, Rn,
ltoffsetgt ! - Post-indeksiran oblik
- LDR STRltcondgtH SH SB Rd, Rn,
ltoffsetgt - Primeri
- LDRH r1, r0 ucitaj polurec u
r1 iz r0 - LDRH r8, r3, 2 ucitaj polurec u
r8 iz r3 2 - LDRH r12, r13, -6 ucitaj polurec u
r12 iz r13 - 6 - STRH r2, r1, 0x80 smesti polurec
iz r2 u r1 0x80 - LDRSH r5, r9 ucitaj oznacenu
polurec u r5 iz r9 - LDRH r11, r1, r2 ucitaj polurec u
r11 iz adrese u r1 r2 - LDRSH r1, r0, 2 ! ucitaj oznacenu
polurec r1 iz r0 2, - zatim r0 r0 2
- LDRSB r7, r6, -1 ! ucitaj oznacen
bajt u r7 iz r6 - 1, - zatim r6 r6 -1
32Binarno kodiranje višestruke instrukcije za
ucitavanje i smeštanje
33- Asemblerski format
- Uobicajeni oblik instrukcije je
- LDM STMltcondgtltadd modegt Rn!,
ltregistersgt - U ne-korisnickom nacinu rada CPSR se može
obnoviti pomocu - LDMltcondgtltadd modegt Rn!, ltregisters
pcgt - Korisnicki registri se mogu sacuvati ili obnoviti
pomocu - LDM STMltcondgtltadd modegt Rn, ltregisters
- pcgt - Primeri
-
- Da bi se sacuvlo 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šcenje kao pokazivac magacina. - Da bi obnovili stanje radnih registara i obavili
povratak koristi se instrukcija - LDMFD r13!, r0 - r2, pc
34Instrukcije za razmenu sadržaja memorije i
registra
- Ove Instrukcije kombinuju ucitavanje i smeštanje
reci ili neoznace-nog bajta u jednoj instrukciji.
Obicno - se dva prenosa kombinuju u jednu memorijsku
operaciju koja se ne može razdvojiti spoljašnjim - memorijskim pristupom (npr. pomocu DMA od
kontrolera). Tako se instrukcija može koristiti
kao osnova - mehanizam semafora kako bi se obezbedila uzajamna
iskljucivost u pristupu strukturama podaka koji
su - deljivi izmedu veceg broja procesa, procesora ili
procesora i DMA kontrolera. - Binarno kodiranje Instrukcije za razmenu sadržaja
memorije i registra
35- Asemblerski format
- SWPltcondgt B Rd, Rm, Rn
- Primeri
- SWP r12, r10, r9 ucitaj r12 iz adrese
r9 i - smesti r10 na adresu
r9 - SWPB r3, r4, r8 ucitaj bajt u r3 iz
adrese r8 i - smesti bajt iz r4 na
adresu r8 - SWP r1, r1, r8 zameni vrednosti u r1
i adresu u r2
36Instrukcije pristupa status registara
- Ova grupa instrukcija se može podeliti na
- Instrukcije za prenos stanja statusnog registara
u registre opšte namene - (U slucaju da je potrebno sacuvati ili
modifikovati sadržaj CPSR ili SPSR registra
tekuceg nacina rada, njihovi sadržaji moraju se
prvo preneti u registar opšte namene, zatim da se
modifikuju selektovani in a kraju da se povratna
vrednost smesti u statusni registar. Ove
instrukcije obavljaju prvi korak u zadatoj
sekvenci) - Instrukcije za prenosa registara opšte namene u
statusni registar - (U slucaju da je potrebno zapamtii ili
modifikovati sadržaj CPSR ili SPSR tekuceg nacina
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).
37Binarno kodiranje instrukcije prenosa status
registara u registre opšte namene
- Asemblerski format
- MRSltcondgt Rd, CPSR SPSR
- gde je Rd odredišni registar
- CPSR - Current Program Status Register
- SPSR - Saved Program Status Register
- Primeri
- MRS r0, CPSR prebaci CPSR u r0
- MRS r3, SPSR prebaci SPSR u r3
38Binarno kodiranje instrukcije prenosa registara
opšte namene u status registar
39- Asemblerski format
- MSRltcondgt CPSR_fSPSR_f, lt32-bit
immediategt - MSRltcondgt CPSR_ltfieldgtSPSR_ltfieldgt, Rm
- gde je ltfieldgt jedno od
- c kontrolno polje PSR70.
- x polje proširenja PSR158 (ne
koristi se kod trenutnih ARM) - s polje statusa PSR2316 (ne koristi
se kod trenutnih ARM) - f polje flegova PSR3124
- Primer
- Za postavljanje N, Z, C, i V flegova
- MSR CPSR_f, f0000000 postavi
sve flegove - Za postavljanje C flega, i ocuvanje 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
40Instrukcije za obradu podataka
- Instrukcije procesora ARM koje se koriste za
obradu podataka omogucavaju programeru da - izvodi aritmeticke i logicke operacije nad
podacima u registrima. Ovim instrukcijama su - tipicno potrebna dva operanda i one generišu
jedinstven rezultat. - Ova grupa instrukcija se može podeliti na
- Aritmeticke operacije
- Logicke operacije
- Operacije premeštanja sadržaja registara
- Operacije poredenja
- Neposredni operandi
- Pomereni registarski operandi
41Binarno kodiranje instrukcije za obradu podataka
42- Asemblerski format
- Opšti format asemblerskih instrukcija iz ove
grupe je sledeceg oblika - ltopgtltcondgt s Rd, Rn, lt32-bit immediategt
- ltopgtltcondgt s Rd, Rn, Rm, ltshiftgt
- Kod monadickih operacija kakve su MOV, MVN
izostavlja se Rn tako da je format sledeceg - oblika
- ltopcode1gtltcondgt s Rd, ltshifter operandgt
- ltopcode1gt MOV MVN
- Kod instrukcija uporedivanja kakve su CMP, CMN,
TST, TEQ postavljaju se samo flegovi, ne - specificira se registar Rd pa je format sledeceg
oblika - ltopcode2gtltcondgt Rn, ltshifter operandgt
- ltopcode2gt CMP CMN TST TEQ
- Kod tro-operandskih instrukcija format je oblika
- ltopcode3gtltcondgt s Rd, Rn ltshifter operandgt
- ltopcode3gt ADD SUB RSB ADC SBC RSC
AND BIC EOR ORR
43- Aritmeticke operacije
- Ove instrukcije izvode binarne aritmeticke
operacije (dodavanje oduzimanje, ili inverzno
oduzimanje tj. - oduzimanje sa izmenjenim redosledom operanada)
nad dva 32-bitna operanda. Operandi mogu biti
neoznacene - ili oznacene celobrojne vrednosti u dvojicnom
komplermentu. Ulazni prenos kada se koristi
predstavlja tekucu - 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.
- Logicke operacije
- Ove instrukcije izvode logicke operacije Bulove
algebre za svaki par bitova ulaznih operanada
44- 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 r2
- MVN r0, r2 r0 not r2
- MVN mnemonik znaci kopiranje koplementarne
vrednosti u odredišni registar - Operacije poredenja
- Ove instrukcije ne generišu rezultat (koji je
zbog toga izostavljen iz formata asemblerskog
jezika) vec samo - postavljaju flegove (N, Z, C i V) registra CPSR.
- CMP r1, r2 postavi cc
na r1 - r2 - CMN r1, r2 postavi cc na r1
r2 - TST r1, r2 postavi cc na r1
and r2 - TEQ r1, r2 postavi cc na r1
xor r2 - Mnemonici oznacavaju poredenje (CMP),
poredenje sa negacijom (CMN), testiranje
sadržaja bita (TST) i - test nejednakost (TEQ).
45Razlicite aritmeticke instrukcije
- Prebrojavanje pocetnih nula (CLZ(Count Leading
Zeros) - Korisna je za ponovnu normalizaciju brojeva i
mnogo je efikasnija nego samo korišcenje nekih
drugih - ARM instrukcija.
- Asemblerski format
- CLZltcondgt Rd, Rm
- Rd oznacava odredišni registar, a Rm izvorni
registar - Primer
- MOV r0, 100
- CLZ r1, r0 r1 23
- Binarno kodiranje instrukcije brojanja pocetnih
nula
46Instrukcije množenja
- ARM instrukcije množenja daju proizvod u vidu dva
32-bitna binarna broja koja se cuvaju 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. - Binarno kodiranje instrukcije množenja
47- Asemblerski format
- Instrukcije koje daju 32 bita najmanje vrednosti
u proizvodu su - MULltcondgt s Rd, Rm, Rs
- MLAltcondgt s Rd, Rm, Rs, Rn
- Veoma važna instrukcija koja se koristi kod
digitalnog procesiranja signala je množenje sa
akumulacijom. U - jednom konkretnom primeru ona je sledeceg oblika
- MLA r4, r3, r2, r1 r4
(r3 x r2 r1) - Primeri
-
- MUL r4, r2, r1 r4 dobija
vrednost r2 pomnožena sa r1 - MULS r4, r2, r1 r4 r2 x
r1, postavi N I Z flegove - MLA 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 r3 - UMULL r6, r8, r0, r1 r8, r6 r0
x r1 - UMLAL r5, r8, r0, r1 r8, r5 r0
x r1 r8, r5
48Instrukcije grananja
- U ovu instrukcija spadaju
- Grananje sa linkom
- (Instrukcije grananja i grananja sa linkom
su standardni nacini 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). - Grananje sa linkom i razmenom
- (Ove instrukcije su dostupne kod ARM cipova
koji podržavaju 16-bitni Thumb skup instrukcija,
i jedan su od mehanizama za prebacivanje
procesora u režim rada kada bi izvršavao thumb
instrukcije ili za povratak na ARM ili Thumb
rutine). - Format asemblera
- BLXltcondgt Rm
- BLX lttarget addressgt
- BL ltcondgt lttarget
addressgt - lttarget addressgt je obicno labela u asemlerskom
kodu. Asembler generiše ofset (koji ce biti - razlika izmedu adrese reci mete i adrese
instrukcije grananja plus 8) i postavlja H bit
ako je potrebno.
49- Binarno kodiranje granjanja i grananje sa linkom
- Binarno kodiranje granjanja (sa opcionim linkom)
i instrukcijom razmene
50Instrukcije za generisanje softverkoih prekida
- Ova grupa instrukcija se može podeliti na
- Softverski prekid (SWI)
- (Instrukcija softverskog prekida se koristi
za poziv operativnog sistema i cesto se naziva
poziv supervizoru. Ona postavlja procesor u
supervizorski režim rada i zapocinje izvršenje
instrukcija sa adrese 0x08). - Instrukcija prekidna tacka
- (Instrukcije prekidne tacke se koriste za
debagiranje softvera one uzrokuju da procesor
prekine sa normalnim izvršenjem instrukcija i
prede na izvršenje odgovarajucu proceduru za
debagiranja.)
51- Binarno kodiranje softverskg prekida
- Format asemblera
- SWIltcondgt lt24-bit immediategt
- Primer
- Za prikazivanje karaktera A
- MOV r0, A
prebaci A u r0 . . - SWI SWI_WriteC . . Å¡tampaj
- Binarno kodiranje instrukcije tacke prekida
52- 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 - moguce.
- Binarno kodiranje instrukcije koprocesorske
oeracije podataka - Asemblerski format.
- CDPltcondgt ltCPgt, ltCop1gt, CRd,
CRn, CRm, ltCop2gt - Primer
53- Prenos podataka koprocesoru
- Instrukcije za prenos podataka
koprocesora su slicne instrukcija koje prenose
neposredni offset kod - podataka tip rec i instrukcije koje se
koriste za prenos neoznacenih bajtova. Ofset je
sada ogranicen na 8 bitova, a ne na 12 bitova. - Binarno kodiranje
instrukcije prenosa podataka koprocesora
54- Primeri
- LDC p6, CR1, r4 ucitaj iz memorije u
koprocesor 6 - ARM registar 4
sadrži adresu - ucitaj u CP regisar
1 - LDC p6, CR4, r2, 4 ucitaj iz memorije u
koprocesor 6 - ARM registar r2 4
je adresa - ucitaj 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 8 - STC p8, CR9, r2, -16 smesti iz
koprocesora 8 u memoriju - ARM registar r2 cuva
adresu - posle transfera r2
r2 - 16 - smesti od CP
registar 9
55- Prenos registara koprocesora
- Ove instrukcije omogucavaju da se
celobrojne vrednosti generisane od strane
koprocesora prenese direktno u ARM registar, ili
u ARM-ov marker registar. - Binarno enkodiranje instrukcije prenosa registra
koprocesora - Asemblerski format
- Prenos iz ARM registra u koprocesor
- MRCltcondgt ltCPgt, ltCop1gt, Rd, CRn,
CRm, ltCop2gt - Prenos u koprocesor iz ARM registra
- MCRltcondgt ltCPgt, ltCop1gt, Rd, CRn,
CRm, ltCop2gt - Primeri
- MRC p15, 5, r4, c0, c2, 3 koprocesor 15
prebacuje u ARM registar
56 Hardver i Softver Proces
kreiranja
- Student Bojan Pavlovic
- Broj indeksa 10035
57 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 sledecom opremom in-circuit
emulatorima (ICE), logickim analizatorima i
osciloskopima. Debagiranje u kasnijoj fazi
projektovanja, , kada je pritisak na projektante
zbog definisanog roka najveci, 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.
58Tri komponente SoC verifikacije
- Pre nego Å¡to predemo na detaljan opis izrade
hardvera i softvera i proucimo njihovu
povezanost, vredno je sagledati tri komponente
SoC verifikacije. Da bi kreirali koherentnu
metodologiju za hardversku i softversku
verifikaciju, inžinjeri moraju razumeti
specificne alate u svakoj oblasti kao i njihovu
medusobnu povezanost. - Ove tri komponente su
- Verifikaciona platforma
- Hardverski verifikacioni alati i tehnike
- Softverski alati i tehnike za debagiranje
59 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
cipa ili ploce isto kao Å¡to softverski program
opisuje rad mikroprocesora ili embedded sistema.
HDL-ovi sadrže kljucne reci, 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. Takode se
koriste za modeliranje memorije i drugih
digitalnih kola.
     Â
60Verifikaciona PlatformaÂ
- Verifikacija platforme je metod koji se koristi
za opis hardverskog dizajna.Njena alternativna
imena su izvršna mašina ili virtuelni prototip. - Cetri posebne metode se mogu identifikovati
i koristiti za rad hardvera - Logicka simulacija
- Ubrzana simulacija
- Emulacija
- Hardverski prototip
61- Logicki simulator se najcesce koristi za
simulaciju ponasanja hardveerskih dizajna. - Logicki simulatori mogu da se realizuju na dva
nacina - Simulatori koji koriste interpreterski kod
- Simulatori koji koriste kompajlirani kod
62- Ubrzana simulacija se odnosi na proces
mapiranja odredjenog dela dizajna koji se moze
sintetizovati na hardversku platformu.
Ubrzana simulacija obezbedjuje bolje performance
jer ne vodi racuna o simulacionim dogadjajima
iniciranih od strane logickog simulatora a vrsi
njihovu procenu koriscenjem hardvera za paralelno
procesiranje.
63 Cilj ubrzavanja je povecanje performansi.
Krajnje performanse su zasnovane na brzini
akceleracione platforme i procentu simulacije
koji se može izvršavati u oviru akceleracionog
hardvera. Odnos procenta simulacije u radnoj
stanici nasuprot procenta dizajna u sistemu za
ubrzanje (akceleratoru) odreduje krajnje
performanse.
64 Emulacija se odnosi na proces mapiranja citavog
dizajna na hardversku platformu projektovanu u
cilju povecanja performansi sistema. Ne postoji
stalna veza izmedu emulatora i radne stanice
tokom izvršenja programa, a emulator ne prihvata
ulaz od radne stanice.Nepostojanje veze sa radnom
stanicom obezbedjuje hardverskoj platformi da
radi punom brzinom i da ne postoji cekanje za
bilo kakvom komunikacijom.
65- Postoji mnogo razlicitih definicija o
tome Å¡ta zapravo termin emulacija znaci, 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 impulsi 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 impulsi se generisu od strane testbench-a
koji se izvršava na radnoj stanici
66- In-circuit se odnosi na korišcenje spoljašnjeg
hardvera spregnutog sa emulatorom u svrhu
obezbedjenja realisticnijeg okruženja dizajna
koji se simulira. - Ovaj hardver je obicno u formi Å¡tampanih kola
koje se nekad nazivaju ciljne ploce ili ciljni
sistem,dok se test oprema povezuje na emulator.
Moguca je i emulacija bez ciljnog 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.
67- Dijagrami koji prikazuju emulaciju koja ne
koristi ciljni sistem i in-circuit - emulaciju su prikazani na sledecim slikama
68- Hardverski prototip se izvodi kao hardver po
porudzbini ili hardver koji se moze višestruko
koristiti za realizaciju hardverske
reprezentacije sistema. Prototip predstavlja
reprezentaciju krajnjeg sistema a prednost mu je
ta što se moze lakše konstruisati, a samim tim je
i pre dostupan od konacnog proizvoda.
69Programerski 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
dopunjavanje svih arhitekturnih nivoa koji se
nalaze ispod njega. -
70- Osim mikroprocesora, softverske inženjere
interesuje memorijska mapa embedded sistema.Kod
32-bitnog adresnog prostora, postoji fizicka
memorija od 4 GB-a koja može biti prihvacena. - Embedded sistemi koriste samo podskup ovog
fizickog adresnog prostora, a memorijska mapa
definise gde su locirani razliciti tipovi
memorije i drugi hardversko upravljacki registri.
Memorijska mapa takode odreduje šta se dešava
ukoliko se pristupa adresama koje ne pripadaju
fizickom prostoru.
71- Standardni tipovi 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.
72Hardverski pogled na svet
- Hardverski inžinjeri imaju drugaciji pogled na
embedded sisteme. - Unutrašnji rad CPU-a je manje važan za
hardverske inžinjere, a sprezanje sa magistralom
je ono Å¡to njih interesuje.Za hardverske
inžinjere, mikroprocesor nije ništa drugo nego
generator transakcione magistrale.
73Softverski razvojni alati
-
- 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
produktivnost. - Revizija izvornog koda
- Kontrolna revizija je sredstvo pomocu koga
se zapisuju promene koje se izvode u toku razvoja
softvera.Koristeci reviziju moguce je pomocu
funkcije undo i 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. -
-
74- Kompajler je alatka za prevodenje visih
programskih jezika (C/C) i asemblerskih fajlova
u program koji se moze izvrsavati. Ovaj format
se zove mašinski jezik i cuva se u fajlu koji se
zove izvršni fajl. - Debugger
- Nažalost, svi programi ne rade korektno iz
prvog puta. Cak i da program izgleda kao da radi
korektno, nemoguce 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.
75-
- Simulator modelira interni rad procesora.
Procesorski simulatori se cesto 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. -
76Povezivanje softvera za debagiranje
- JTAG
- Jedan od standardnih debagera koji se koristi
za povezivanje sa CPU-m je JTAG. JTAG je poznat
kao standard IEEE 1149.1 , nazvan boundary scan,
a koristi se za testiranje kola na stampanim
plocama. - 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 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
implementiralo JTAG debagiranje, mikroprocesor
treba da sadrži specijano implementiran hardver.
77- STAB
- Kod procesora koji nemaju izvedenu
hardversku podrsku za debagiranje, - softerski debager mora da komunicira sa embedded
sistemom pomocu stub-a. - Stab 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. - Stab izvrsava dibagerske zahteve kao sto su
citanje registara i memorija i predaje rezultate
debageru preko komunikacionog kanala. - On takode koristi usluzne rutine kako bi
zaustavio rad procesora kakav je slucaj kada
korisnik koristi opciju CTRLTab. -
78- Direktna konekcija
- Kada se koristi ISS(simulator skupa instrukcija)
tada nema potrebe bilo za JTAG konekcijom ili
stab-om izmedu softver debagera i embedded
sistema. - Posto je ISS softverski model,debager može sa
lakocom 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 u specijalni rezim rada za
debagiranje.Na ovaj nacin se dobija najtacnija i
najrealisticnija slika o tome kako embedded
sistem radi.
79Tipovi embedded softvera
- Pet razlicitih tipova embedded softvera se
mogu identikovati.Obim softvera(broj linija) se
povecava po sledecem redosledu - Softver za inicajilizaciju sistema i nivo za
apstrakciju hardvera (HAL) - Hardversko-dijagnosticki test program
- Operativni sistem za rad u realom vremenu (RTOS)
- Pokretacki programi RTOS-a
- Aplikacioni softver
80 Hardverska razvojna sredstva
- 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.
- Kontrola revizije izvornog koda
- Od samog pocetka 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 srecu
se sa istim tipom okruženja i moraju koristiti
alate za kontrolu revizije kako bi upravljali
projektima.
81 Lint alati obezbedjuju jednostavnu analizu
koda radi nalazenja standardnih grešaka. Alati to
cine tako što išcitavaju izvorni kod. Koreni
Lint-a datiraju od ranijih dana karakteristicni
za koriscenje programskog jezika C, kao sredstvo
za nalaženje grešaka pre njegovog
izvrsenja.Standardna Lint provera ukljucuje
proveru neiskorišcenih deklaracija, nalazenje
nekonzistentnih tipova,koriscenje promenjljive
predefinicije,kod koji postoji ali se ne
izvrsava, ignorisanje povratnih vrednosti,
izvršni putevi bez povratka,beskonacna petlja i
nedosledni case iskazi.
- Pokrivenost koda
-
- Pokrivenost koda je još jedna tehnika
pozajmljena od softverskog inžinjerstva.
Pokrivenost meri velicinu koda koji se koristi
tokom izvodenja testova. Na osnovu rezultata
pokrivenosti se mogu razviti dodatni testovi za
povecanje pokrivenosti. Indirektno ce znaciti da
povecanje pokrivenosti znaci povecanje kvaliteta
proizvoda. Za HDL dizajn postoje tri razlicite
velicine pokrivenosti koje se mere. To su
pokrivenost iskaza, pokrivenost grananja i FSM
pokrivenost.
82- Tvrdenja
- Popularnost korišcenja tvrdenja za
specifikaciju namene dizajna i osobine dizajna
jako brzo raste. Tvrdenja su vrlo jak alat za
medusobnu proveru dizajna i pretpostavljenog
ponašanja. Takode 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. - Tvrdenja pružaju zajednicki format višestrukim
alatima. - Tvrdenja olakšavaju debug-ovanje i smanjuju vreme
simulacije - Tvrdenja verifikuju interfejse izmedu blokova
- Tvrdenja su dobra vežba RTL kodiranja
83- 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
drugacije od debug-ovanja softvera. Hardverski
inženjeri prvenstveno rade u batch okruzenju. - Uobicajen alat za debug-ovanje hardvera je
osciloskop. Hardverski inženjeri rade
posmatrajuci vrednosti signala tokom perioda
vremena simulacije.Današnji alati za posmatranje
talasnih oblika pamte podatke u kompresovanom
obliku zbog maksimalnih performansi i minimalne
velicine 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 kolicinama
podataka koje treba upamtiti, ali postaje veliki
za velike simulatore. Za takve simulacije moraju
biti korišceni odgovarajuci formati sa nekim
stepenom kompresije.
84- Osnovni nacin debug-ovanja je posmatranje
talasnih oblika. Koristeci informacije detekcije,
inženjeri moraju pregledati logicke signale u
razlicitim vremenskim trenucima tokom procesa
simulacije. Zatim moraju pronaci Å¡ta ne radi
ispravno. - Ovaj proces tipicno zahteva puno radnih
sati za odredivanje pravilnog rada dizajna.
Gomilanje nepotrebnih talasnih oblika može takode
drasticno smanjiti performanse simulacije i kao
rezultat dati velike fajlove. Inženjeri zato
moraju izdvojiti vreme pre simulacije za
odredivanje perioda u kojima ce biti generisani
fajlovi koji pamte talasne oblike. Takode moraju
biti odredeni i delovi dizajna za koje ce talasni
oblici biti upamceni. -
85- Definisanje debug-ovanja
- Ono što mnogi inženjeri nazivaju
debug-ovanje je ustvari kombinacija dve zasebne
aktivnosti detekcije i debug-ovanja. - Detekcija je proces odredivanja postojanja
problema u dizajnu ili testu. Mnogi projekti
koriste simulaciju kao osnovni nacin za detekciju
problema.Prilikom simulacije postoji mnogo nacina
za prikazivanje postojanja problema. Dva najcešca
nacina su pomocu display iskaza, i poredenje
vrednosti u memoriji sa ocekivanim rezultatima.
Nedostatak display iskaza može znaciti i problem
sa rezultatom testa. Tvrdenja su bolji nacin za
detekciju grešaka. - 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
mehanicki proces u poredenju sa detekcijom, jer
je potreban inženjer koji ce provesti odredeno
vreme kako bi pronašao šta je ispravno a šta
nije. Odredivanje pravilnog ponažanja zahteva
dobro poznavanje dizajna i njegovog rada. Veci
broj bržih racunara ne mogu pomoci pri procesu
debug-ovanja. Alati mogu pomoci prilikom
unapredenja procesa tako što olakšavaju
razumevanje dizajna, i tako što pružaju bolji
pregled rezultata simulacije.
86Opis Starter Kit-a
- Student Miloš Milenkovic
- Broj indeksa 9989
87Opis Starter Kit-a
- Testiranje karakteristika gradivnih blokova
sistema je danas jednostavno moguce korišcenjem
development kit-ova - Development kit ima ugradene gradivne blokove
(periferije) kojima se može pratiti ucitavanje i
izvršavanje neke aplikacije. - Objasnicemo strukturu i mogucnosti jednog starter
kit-a, proizvod firme Hitex, koji je namenjen za
testiranje rada sistema zasnovanih na
mikrokontroleru tipa LPC2138.
88ARM starter kit
- Ovaj starter kit poseduje sve sastavne delove
koji su potrebni za izvršavanje odredenih
aplikacija. Najvažniji delovi su - JTAG debugger za ARM7-9
- razvojna ploca
- Quick start vodic za rad
- CD sa instalacijom programa firme Hitex za ARM
- kablovi za napajanje i povezivanje JTAG-a
Slika 1 Izgled starter kit-a za ARM
89- Povezivanje razvojnog sistema sa PC-mašinom se
ostvaruje kao sto je prikazano na slici 2 - Povezivanje se izvodi pomocu
- USB kabla koristi se za povezivanje JTAG
debugger-a sa PC-mašinom - 20-pinskog kabla koji povezuje JTAG konektor
lociran na razvojnoj ploci sa Tantino interfejsom - USB porta lociranog na razvojnoj plocici MCB2130
sa PC mašinom preko USB kabla. Preko ove veze
razvojna plocica dobija napajanje.
Slika 2 Nacin povezivanja razvojnog sistema
90- Ostali tehnicki detalji koji se odnose na
razvojnu plocicu
MCB2130 su prikazani u Tabeli 1
PARAMETAR OPIS
Napon napajanja 5 V (preko USB magistrale)
Struja napajanja tipicno 65 mA, maksimalno 120 mA
Frekvencija kristala 12 MHz (max 60 MHz)
CPU Phillips LPC21xx
Periferali 2 x RS232 interfejs (COM0 i COM1) 1 x JTAG interfejs 1 x analogni izlaz (povezan na zvucnik standardno) 1 x analogni ulaz (povezan na potenciometar standardno) 1 x ETM interfejs (opciono)
Tabela 1 Tehnicke karakteristike razvojne
plocice MCB2130
91Kljucne karakteristike starter kit-a su sledece
- Moguce je obavljati emulaciju u realnom vremenu.
- Sistem ima mogucnost pracenja stanja signala na
paralelnim ulazima. - U zavisnosti od ugradjenog tipa mikrokontrolera,
brza flash memorija moze biti kapaciteta 32, 64
ili 512 kB. - Memorijski bafer za razmenu podataka sa drugim
uredjajima je obima 128 bitova. - Procesor je u stanju da izvrsava kako 32-bitne
kodove, tako i 16-bitne. - Kod aplikacija koje imaju kritican obim koda
koristi se alternativni 16-bitni Thumb nacin rada
procesora. Kod ovakvih rešenja se obim koda
smanjuje za vise od 30, a gubici u performansama
su minimalni.
92 Na slici 3 je izgled IC pakovanja
mikrokontrolera iz serije
LPC2134 / 2136 / 2138
Slika 3 IC pakovanje mikrokontrolera
93- Slika 4 prikazuje fizicki izgled plocice MCB 2130
u Å¡tampanoj formi, i raspored osnovnih gradivnih
blokova
Slika 4 Fizicki izgled razvojne plocice
94- Ostali sastavni delovi razvojne plocice su
- a) kristalni oscillator
- b) CPU LPC2138
- c) pobudni drajverski stepen za LED diode
- d) potenciometar kojim se kontroliše rad
ugradenog - zvucnika
95 Blok-Å¡ema sistema koja se odnosi na razvojnu
plocicu je prikazana na slici 5.
Slika 5 Blok Å¡ema sistema
96- CPU Integrisano kolo LPC2138 je proizvod firme
Phillips. Ovaj mikrokontroler poseduje 64-pina.
Baziran je na procesoru ARM7. - LPC2138 poseduje dva dvosmerna U / I porta
- Postoje dva pina za prikljucenje oscilatora (12
MHz), jedan za reset, jedan za dovod frekvencije
od 32.768 MHz, i dvanaest za napajanje (slika 6).
Slika 6 Blok Å¡ema CPU
97- Kratkospajaci njihovo postavljanje definiše
konfiguraciju razvojne plocice. Ukupno postoje
dvanaest (oznaceni sa