Top Banner
ARM7 PROCESOR ARM7 PROCESOR Mladenović Aleksandar Dejković Davor Milenković Miloš Pavlović Bojan
118

ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Jan 11, 2016

Download

Documents

Vivien Cameron
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

ARM7 PROCESORARM7 PROCESOR

Mladenović Aleksandar

Dejković Davor Milenković Miloš

Pavlović Bojan

Page 2: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Arhitektura ARM procesora

Student: Aleksandar Mladenović

Broj indeksa: 10017

Page 3: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Arhitektura ARM procesoraArhitektura ARM procesora

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 prozorimaRad sa registarskim prozorima

• Odloženo grananje

• Izvršenje svih instrukcija u jednom ciklusu

Page 4: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Registri ARM7 procesoraRegistri ARM7 procesora

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

Slika 1. Vidljivi registri ARM7 procesoraVidljivi registri ARM7 procesora

Page 5: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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č.

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.

Page 6: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Sve ARM instrukcije su 32-bitne.

Najznačajnije osobine skupa instrukcija ARM procesora su sledeće: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.

Page 7: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Razvojni alati ARM-aRazvojni alati ARM-a

Pošto se ARM koristi kao embeddedembedded 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 objektniobjektni 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 ARM Development BoardBoard ili koristeći softversku emulaciju pomoću ARMulatoraARMulatora) .

Page 8: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

asm sourceasm sourceC librariesC librariesC sourceC source

.aof.aof

linkerlinker object librariesobject

libraries

.aif.aif

assemblerassemblerC compilerC compiler

ARMsdARMsdsystem modelsystem model

ARMulatorARMulator developmentboard

developmentboard

debug

Slika 2 : Struktura ARM C kompajleraStruktura 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 ThumbThumb kod.

Page 9: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

LinkerLinker 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.

ARM simbolički debugerARM 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 debugovanjedebugovanje bilo preko serijske linije za prenos podataka ili preko JTAGJTAG test interfejsa.

ARMulator (ARM emulator)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 sa različitim nivoima preciznosti.

Page 10: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Organizacija i implementacija ARM-aOrganizacija 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)(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.

U datom trenutku, moguće je da se izvršavaju 3 instrukcije, od kojih

se svaka nalazi na različitom stepenu. Kada procesor izvodi jednostavne instrukcije za obradu podataka, protočni sistem (pipeline)(pipeline) omogućava 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 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.

Page 11: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

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

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

ExecuteExecute (izvršenje)- (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.

Slika 3 : Tro-stepena protočna obradaTro-stepena protočna obrada

Tro-stepena protočna ARM organizacija

Page 12: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Osnovne komponente ARM-a su:Osnovne komponente ARM-a su:

Registarska bankaRegistarska 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 R15R15, programskom brojaču. Dodatni port za upis u R15R15 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čBarrel pomerač - može da pomera ili rotira bilo koji operant proizvoljan broj bit pozicija.

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

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

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

Dekoder instrukcijaDekoder instrukcija i i upravljačka logikaupravljačka logika.

Page 13: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Peto-stepeni ARM processorPeto-stepeni ARM processor ARM procesori se realizuju i kao petostepeno protočni. Kod ovih procesora postoje sledeći stepeni:• FetchFetch• Decode Decode • Execute Execute • Buffer/dataBuffer/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-backWrite-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 RISCRISC procesora i predstavlja klasično rešenje za ovakav tip procesora.

Slika 4. Struktura peto-stepenog jezgra ARM-aStruktura peto-stepenog jezgra ARM-a

Page 14: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

ARM7TDMIARM7TDMI

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

Jezgro procesora čini ARMARM integer jezgro koje koristi 3 protočna

stepena sa sledećim proširenjima:

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

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

ARM jezgra procesoraARM jezgra procesora

Page 15: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Slika 5. Organizacija procesora Organizacija procesora ARMI7TDMIARMI7TDMI

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

Page 16: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Hardverski interfejsHardverski interfejs

Slika 6: Signali ARM7TDMI hardverskog interfejsaSignali ARM7TDMI hardverskog interfejsa

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 debugdebug-ovanja na čipu, JTAG boundary scanscan-u, i nekim drugim.

Page 17: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Kontrola taktaKontrola takta -Sve promene stanja unutar procesora se kontrolišu memorijskim taktom, mclkmclk. 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.

Memorijski interfejsMemorijski 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.

MMU interfejsMMU interfejs - Interfejs signali ka MMUMMU 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.

Page 18: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

KonfiguracijaKonfiguracija - - bigendbigend menja red bitova između menja red bitova između Little-Little- i i Big-endianBig-endian. Ovaj ulaz . Ovaj ulaz konfiguriše način na koji procesor radi i ne očekuje se od njega da se dinamički menja, 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.iako se po potrebi može menjati tokom faze takta 2.

PrekidiPrekidi - Dva ulaza za prekide mogu biti asinhrona u odnosu na takt procesora jer - 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 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.zahtev za prekid ima veći prioritet od normalnog zahteva za prekid.

InicijalizacijaInicijalizacija - - resetreset startuje procesor iz poznatog stanja kada izvršavanje počinje sa startuje procesor iz poznatog stanja kada izvršavanje počinje sa

adrese 00000000adrese 000000001616. ARM7TDMI jezgro signalizira kada je u ciklusu zapisivanja . ARM7TDMI jezgro signalizira kada je u ciklusu zapisivanja pomoću signala . Tamo gde je eksterna magistrala podataka dvosmerna, pomoću signala . Tamo gde je eksterna magistrala podataka dvosmerna, enoutenout se koristi se koristi za omogućavanje pristupa signalu za omogućavanje pristupa signalu dout (31:0) dout (31:0) nana magistralu. Ponekad je poželjno magistralu. Ponekad je poželjno

odložiti operaciju zapisivanja kako bi drugi uređaji mogli koristiti magistralu.odložiti operaciju zapisivanja kako bi drugi uređaji mogli koristiti magistralu. Ostali Ostali

signali za kontrolumagistrala su , signali za kontrolumagistrala su , enin , enoutenin , enout , , abe, ale, tbe, busen, highz, busdis,abe, ale, tbe, busen, highz, busdis, i i ecapclkecapclk i izvode različite operacije. i izvode različite operacije.

Page 19: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Podrška zaPodrška za debug debug ovanjeovanje - 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-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.

Interfejs zaInterfejs za debugdebug--ovanjeovanje - Interfejs za debugdebug-ovanje povećava funkcionalnost koju daje integrisana ugrađena ICE makro ćelija tako što dozvoljava da se spoljašnji hardver poveže zbog debugdebug-ovanja (putem dbgendbgen), i dozvoljava asinhroni zahtev za debugdebug-ovanjem (preko dbgrqdbgrq) ili zahtev sinhronizovan sa instrukcijom (breakptbreakpt). Spoljašnji hardver se obaveštava o debugdebug stanju procesora putem dgbackdgback signala. Interni signal za debugdebug-ovanje se vodi na dbrqidbrqi..

Interfejs koprocesoraInterfejs koprocesora - 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.

JTAG interfejsJTAG interfejs - JTAG kontrolni signali se povezuju na test kontroler preko svojih pinova

Page 20: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Boundary scanBoundary scan - ARM7TDMI ćelija sadrži potpun JTAG TAP kontroler za dodatnu ugrađenu ICE funkcionalnost jre je ovaj TAPTAP kontroler u stanju da podrži bilo koje olakšice prilikom skeniranja kojima se pristupa preko JTAG porta. Signali drivesb, ecapclkbs, drivesb, ecapclkbs, icapclkbs, , pclkbs, rstclkbs, sdinbs, sdoutbs, shclkbs icapclkbs, , pclkbs, rstclkbs, sdinbs, sdoutbs, shclkbs i i shclk2bsshclk2bs u interfejsu su zato mogući kako bi se dozvolile dodatne putanje za skeniranje koje će se dodati sistemu.

ARM7TDMI u sinteziARM7TDMI u sintezi - 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.

Jezgro Jezgro ARM7TDMIARM7TDMI 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 ARM7TDMIARM7TDMI postao najkorišćeniji procesor za funkcije kontrole i korisničkog interfejsa.

Page 21: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

ARM8TDMIARM8TDMI

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:Performanse procesora su poboljšane na sledeće načine:

• Povećavanjem taktne frekvencijePoveć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 instrukcijiSmanjenjem 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.

Page 22: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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 integerinteger jedinici 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’).‘neće se desiti’).

Slika 7: Organizacija procesora ARM8Organizacija procesora ARM8TDMITDMI

ARM processor koristi peto-stepenu 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.

Page 23: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

ARM9TDMI 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 ThumbThumb skup instrukcija i EmbeddedICEEmbeddedICE modul za podršku debugovanja na samom čipu. Poboljšanja u performansama su ostvarena nakon prihvatanja petostepenog protočnog sistema ((pipelinapipelina) č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.CPI. 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. Pravi se 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.

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

Page 24: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Skup instrukcija ARMSkup instrukcija ARM

Student: Davor Dejkovic Broj indeksa: 9885

Page 25: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

1. Tipovi podataka sa kojima ARM manipuliše1. Tipovi podataka sa kojima ARM manipuliše

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.

Page 26: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

2. Tipovi instrukcija procesora ARM2. 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

Page 27: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Instrukcije za pribavljnje podataka i memorisanje Ova grupa instrukcija se može podeliti na:

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).

Instrukcije za prenos podataka tipa polureči i označenih bajtova 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 i da 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).

Page 28: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Binarno kodiranje instrukcije za transfer podataka od jedne reči ili neoznačenog bajta:

Page 29: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Asemblerski format:

Pre-indeksirani format instrukcije: LDR | STR{<cond>} {B} Rd, [Rn, <offset>] {!}Post-indeksirani oblik: LDR | STR{<cond>} {B} {T} Rd, [Rn], <offset>

Primeri:

LDR r1, [r0] ; učitaj r1 iz adrese u r0 LDR r8, [r3, #4] ; učitaj r8 iz adrese u r3 + 4 STR r2, [r1, #0x100] ; smesti r2 na adresu u r1 + 0x100 LDRB r5, [r9] ; učitaj bajt u r5 iz r9 LDRB r3, [r8, #3] ; učitaj bajt u r3 iz r8 + 3 LDR r11, [r1, r2] ; učitaj 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] ; učitaj r11 iz r3 + (r5 x 4) LDR r1, [r0, #4] ! ; učitaj r1 iz r0 + 4, zatim r0= r0 + 4 LDR r3, [r9], #4 ; učitaj r3 iz r9, zatim r9= r9 + 4 STR r2, [r5], #8 ; smesti r2 u r5, zatim r5= r5 + 8 LDR r0, [r1], r2 ; učitaj r0 iz r1, zatim r1= r1 + r2

Page 30: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Binarno kodiranje instrukcije za transfer podataka polureči i označenih bajtova:

Page 31: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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>]

Primeri:

LDRH r1, [r0] ; učitaj polureč u r1 iz r0

LDRH r8, [r3, #2] ; učitaj polureč u r8 iz r3 + 2

LDRH r12, [r13, #-6] ; učitaj polureč u r12 iz r13 - 6

STRH r2, [r1, #0x80] ; smesti polureč iz r2 u r1 + 0x80

LDRSH r5, [r9] ; učitaj označenu polureč u r5 iz r9

LDRH r11, [r1, r2] ; učitaj polureč u r11 iz adrese u r1 + r2

LDRSH r1, [r0, #2] ! ; učitaj označenu polureč r1 iz r0 + 2,

; zatim r0= r0 +2

LDRSB r7, [r6, #-1] ! ; učitaj označen bajt u r7 iz r6 - 1,

; zatim r6= r6 -1

LDRH r3, [r9], #2 ; učitaj polureč u r3 iz r9, zatim r9= r9 +2

STRH r2, [r5], #8 ; učitaj polureč iz r2 u r5, zatim r5= r5 +8

Page 32: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Page 33: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Asemblerski format:

Uobičajeni oblik instrukcije je:

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

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

LDM{<cond>}<add mode> Rn{!}, <registers + 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}

Page 34: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Instrukcije za razmenu 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.

Binarno kodiranje Instrukcije za razmenu sadržaja memorije i registra

Page 35: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Asemblerski format:

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

Primeri:

SWP r12, r10, [r9] ; učitaj r12 iz adrese r9 i

; smesti r10 na adresu r9

SWPB r3, r4, [r8] ; učitaj 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

Page 36: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Instrukcije pristupa status registara

Ova grupa instrukcija se može podeliti na:

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 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 slučaju da je potrebno zapamtii ili modifikovati sadržaj CPSR ili SPSR tekuć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).

Page 37: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Asemblerski format:

MRS{<cond>} 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

Binarno kodiranje instrukcije prenosa status registara u registre opšte nameneBinarno kodiranje instrukcije prenosa status registara u registre opšte namene

Page 38: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Page 39: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Page 40: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Ova grupa instrukcija se može podeliti na:

Aritmetičke operacije Logičke operacije Operacije premeštanja sadržaja registara Operacije poređenja Neposredni operandi Pomereni registarski operandi

Page 41: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Binarno kodiranje instrukcije za obradu podataka

Page 42: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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 | MVN

Kod 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

Page 43: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Logičke operacije

Ove instrukcije izvode logičke operacije Bulove algebre za svaki par bitova ulaznih operanada AND r0, r1, r2 ; r0 := r1 and r2 ORR r0, r1, r2 ; r0 := r1 or r2 EOR r0, r1, r2 ; r0 := r1 xor r2 BIC r0, r1, r2 ; r0 := r1 and not r2Mnemonici 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.

Page 44: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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 r2MVN’ mnemonik znači ‘kopiranje koplementarne vrednosti’ u odredišni registar

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 - 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 r2Mnemonici označavaju ‘poređenje’ (CMP), ‘poređenje sa negacijom’ (CMN), testiranje sadržaja bita (TST) i ‘test nejednakost’ (TEQ).

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]

Page 45: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

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

Asemblerski format: CLZ{<cond>} Rd, RmRd označava odredišni registar, a Rm izvorni registarPrimer: MOV r0, #&100 CLZ r1, r0 ; r1 := 23

Binarno kodiranje instrukcije brojanja početnih nula

Page 46: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Binarno kodiranje instrukcije množenja

Page 47: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

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:

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

Page 48: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Instrukcije grananja

U ovu instrukcija spadaju:

Grananje sa linkom (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).

Grananje sa linkom i razmenom (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 kada bi izvršavao thumb instrukcije ili za povratak na ARM ili Thumb rutine).

Format asemblera: B{L}X{<cond>} Rm BLX <target address> B{L} {<cond>} <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.

Page 49: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Binarno kodiranje granjanja i grananje sa linkom

Binarno kodiranje granjanja (sa opcionim linkom) i instrukcijom razmene

Page 50: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Instrukcije 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 često se naziva

‘poziv supervizoru’. Ona postavlja procesor u supervizorski režim rada i započinje izvršenje instrukcija sa adrese 0x08).

Instrukcija prekidna tačka (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.)

Page 51: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Binarno kodiranje softverskg prekida

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

Primer: Za prikazivanje karaktera ‘A’ : MOV r0, #’A’ ; prebaci ‘A’ u r0 . . SWI SWI_WriteC ; . . štampaj

Binarno kodiranje instrukcije tačke prekida

Format asemblera: BRKPrimer: BRK ; !

Page 52: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Binarno kodiranje instrukcije koprocesorske oeracije podataka

Asemblerski format.

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

Primer:

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

Page 53: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Prenos podataka koprocesoru 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, a ne na 12 bitova.

Binarno kodiranje instrukcije prenosa podataka koprocesora

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)

Page 54: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Primeri:

LDC p6, CR1, [r4] ; učitaj iz memorije u koprocesor 6 ; ARM registar 4 sadrži adresu ; učitaj u CP regisar 1 LDC 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 8 STC 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

Page 55: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Binarno enkodiranje instrukcije prenosa registra koprocesora

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>} 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

Page 56: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Hardver i SoftverHardver i Softver Proces Proces kreiranjakreiranja

Student: Bojan Pavlović

Broj indeksa: 10035

Page 57: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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), 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.

Page 58: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Tri komponente Tri komponente SoCSoC verifikacije 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 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:

Verifikaciona platforma Hardverski verifikacioni alati i tehnike Softverski alati i tehnike za debagiranje

Page 59: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

      

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 embedded 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.

Page 60: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Verifikaciona PlatformaVerifikaciona Platforma  

Verifikacija platforme je metod koji se koristi za opis hardverskog dizajna.Njena alternativna imena su izvršna mašina ili virtuelni prototip.

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

Logička simulacija Ubrzana simulacija Emulacija Hardverski prototip

Page 61: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Logicka simulacija

Logicki simulator se najcesce koristi za simulaciju ponasanja hardveerskih dizajna.

Logicki simulatori mogu da se realizuju na dva nacina:

a) Simulatori koji koriste interpreterski kod

b) Simulatori koji koriste kompajlirani kod

Page 62: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Ubrzana simulacija

Page 63: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

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

Page 64: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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 stanicom obezbedjuje hardverskoj platformi da radi punom brzinom i da ne postoji čekanje za bilo kakvom komunikacijom.

Emulacija

Page 65: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Postoji mnogo različitih definicija o tome šta zapravo termin emulacija znač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 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

Page 66: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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 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.

Page 67: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Dijagrami koji prikazuju emulaciju koja ne koristi ciljni sistem i in-circuit

emulaciju su prikazani na sledećim slikama :

Page 68: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Hardverski prototip

Page 69: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Programerski pogled na svetProgramerski pogled na svet

Page 70: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Osim mikroprocesora, softverske inženjere interesuje 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 locirani različiti tipovi memorije i drugi hardversko upravljacki registri. Memorijska mapa takođe određuje šta se dešava ukoliko se pristupa adresama koje ne pripadaju fizickom prostoru.

Page 71: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Page 72: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Hardverski inžinjeri imaju drugačiji 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.

Hardverski pogled na svetHardverski pogled na svet

Page 73: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Softverski razvojni alatiSoftverski razvojni alati

Page 74: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Debugger

Nažalost, svi programi ne rade korektno iz prvog puta. Č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.

Page 75: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Simulator modelira interni rad procesora. Procesorski simulatori se

č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.

Page 76: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Povezivanje softvera za debagiranjePovezivanje softvera za debagiranje

Page 77: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

STAB

Kod procesora koji nemaju izvedenu hardversku podrsku za debagiranje, softerski debager mora da komunicira sa embedded sistemom pomoću 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 takođe koristi usluzne rutine kako bi zaustavio rad procesora kakav je slucaj kada korisnik koristi opciju CTRL+Tab.

Page 78: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Direktna konekcija

Kada se koristi ISS(simulator skupa instrukcija) tada 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 u specijalni rezim rada za debagiranje.Na ovaj nacin se dobija najtacnija i najrealisticnija slika o tome kako embedded sistem radi.

Page 79: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Tipovi embedded softveraTipovi embedded softvera

Pet različitih 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-dijagnostički test program Operativni sistem za rad u realom vremenu (RTOS) Pokretacki programi RTOS-a Aplikacioni softver

Page 80: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Hardverska razvojna sredstvaHardverska razvojna sredstva

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.

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.

Page 81: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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 programskog 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.

Alati

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. Za HDL dizajn postoje tri različite veličine pokrivenosti koje se mere. To su pokrivenost iskaza, pokrivenost grananja i FSM pokrivenost.

Page 82: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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šavaju debug-ovanje i smanjuju vreme simulacije Tvrđenja verifikuju interfejse između blokova Tvrđenja su dobra vežba RTL kodiranja

Page 83: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

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.

Page 84: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Osnovni način debug-ovanja je posmatranje talasnih oblika. Koristeci 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.

Page 85: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.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.

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. 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.

Page 86: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Opis Starter Kit-a

Student: Miloš Milenković Broj indeksa: 9989

Page 87: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Opis Starter Kit-aOpis Starter Kit-a

Testiranje karakteristika gradivnih blokova sistema je danas jednostavno moguće korišćenjem development kit-ova

Development kit ima ugrađene gradivne blokove (periferije) kojima se može pratiti učitavanje i izvršavanje neke aplikacije.

Objasnićemo strukturu i mogućnosti jednog starter kit-a, proizvod firme Hitex, koji je namenjen za testiranje rada sistema zasnovanih na mikrokontroleru tipa LPC2138.

Page 88: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

ARM starter kitARM starter kit Ovaj starter kit poseduje sve sastavne delove koji su

potrebni za izvršavanje određenih aplikacija. Najvažniji delovi su:– JTAG debugger za ARM7-9– razvojna ploča– Quick start vodič 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

Page 89: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Povezivanje se izvodi 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.

Slika 2: Način povezivanja razvojnog sistema

Page 90: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

PARAMETAR OPIS

Napon napajanja 5 V (preko USB magistrale)

Struja napajanja tipično 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 interfejs1 x analogni izlaz (povezan na zvučnik

standardno)1 x analogni ulaz (povezan na

potenciometar standardno)1 x ETM interfejs (opciono)

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

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

Page 91: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Ključne karakteristike Ključne karakteristike starter kitstarter kit-a su sledeće:-a su sledeće:

1. Moguće 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.

Page 92: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

• Na slici 3 je izgled IC pakovanja mikrokontrolera iz Na slici 3 je izgled IC pakovanja mikrokontrolera iz serijeserije LPC2134 / 2136 / 2138LPC2134 / 2136 / 2138

Slika 3: IC pakovanje mikrokontrolera

Page 93: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Slika 4 prikazuje fizički izgled pločice MCB 2130 u štampanoj formi, i raspored osnovnih gradivnih blokova

Slika 4: Fizički izgled razvojne pločice

Page 94: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Page 95: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

• Blok-šema sistema koja se odnosi na razvojnu pločicu Blok-šema sistema koja se odnosi na razvojnu pločicu je prikazana na slici 5. je prikazana na slici 5.

Slika 5: Blok šema sistema

Page 96: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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 priključenje oscilatora (12 MHz),

jedan za reset, jedan za dovod frekvencije od 32.768 MHz,

i dvanaest za napajanje (slika 6).

P0 (32 pina)

P1 (16 pinova)

Napajanje (12 pinova)

Reset pin

Oscilator (2 pina)

RTC pin

CPULPC 2138

Slika 6: Blok šema CPU

Page 97: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

• 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.

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

Page 98: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Page 99: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Page 100: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

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

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).

Slika 10: Kratkospajač J6

Page 101: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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).

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

Page 102: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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).

Slika 12: Kratkospajač J9

Page 103: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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).

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

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

Page 104: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Slika 14: Regulator napajanja, kolo LD1117S33

Page 105: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Page 106: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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. 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.

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

Page 107: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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, kolo 74LVC244. LED drajver predstavlja pobudni stepen za diode. Njegova blok šema će biti predstavljena na slici 16.

Slika 16: Pobudni stepen za diode, kolo 74LVC244

Page 108: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Tasteri. Na pločici MCB2130 postoje dva tastera:

– RESET taster koji je povezan na reset ulaz mikrokontrolera,

– INT1 taster koji je povezan na NMI (Non Masked Interrupt) – signal za prekid rada mikrokontrolera

Page 109: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Page 110: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Povezivanje sistema i kreiranje Povezivanje sistema i kreiranje aplikacijeaplikacije

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.

Page 111: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Kreiranje nove aplikacijeKreiranje 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.

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.

Page 112: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

Page 113: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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

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.

Page 114: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

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.

Kada smo obavili sve prethodne zadatke, u dijalogu Tool settings proveravamo podešavanja kompajlera, asemblera i linkera potrebnih za naš primer. Startup script to automatski obavlja sam.

Page 115: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Mladenović Aleksandar, rođen 2.6.1980 godine u Nišu. Završio srednju elektrotehničku školu “Nikola Tesla” 1999. godine u Nišu, smer elektrotehničar računara.Apsolvent na Niškom Elektronskom fakultetu, smer elektronika. Interesovanja : Mobilne telekomunikacije, kablovska televizija...E-mail: [email protected]

Page 116: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Davor S. Dejković, rođen 08.10.1980. u Skoplju. Završio osnovnu školu i srednju elektrotehničku u Nišu. Upisao 1999. godine Elektronski fakultet u Nišu, smer telekomunikacije. Interesovanja: mobilne telekomunikacije, projektovanje telekomunikacionih sistema...

Page 117: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Bojan Pavlović , rođen 29.januara 1980. u Nišu. Srednju školu, ETŠ Nikola Tesla na smeru elektronika, završio 1999.godine. Iste godine upisao Elektronski fakultet u Nišu na smeru elektronika.

Rad na računaru: Microsoft Office (Exel,Word,Power Point) Corel DRAW, Photoshop, Internet...Interesovanja: Elektronika,Telekomunikacije,Web dizajn...E-mail: [email protected] Tel: 018/531-589 064/ 41 67 628

Page 118: ARM7 PROCESOR Mladenović Aleksandar Dejković DavorMilenković Miloš Pavlović Bojan.

Milenković Miloš – Rodjen 21.10.1980 godine u Nišu. Elektrotehničku školu ’Nikola Tesla’ u Nišu upisao 1996. god. i završio 1999. godine, kada upisuje prvu godinu studija na Elektronskom fakultetu u Nišu, na smeru elektronika. U širokoj lepezi interesovanja se izdvajaju hardverske komponente kao i globalne telekomunikacije.