ugradbeni računalni sustavi - riteh.uniri.hr · pdf fileugradbeni računalni sustavi lab....
Post on 06-Feb-2018
272 Views
Preview:
TRANSCRIPT
Ugradbeni računalni sustavi
Lab. vježba 3:
izvor signala za
ispitivanje
ultrazvučnih senzora
Tekst zadatka
Analiza problema: odabir jedinice
Konfiguriranje CAPCOM6 jedinice
Generator sistemskog vremena
Analogno/digitalna pretvorba
Osnovna petlja programa
DAVE – konfiguracija projekta
1Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Za mikrokontroler na razvojnoj pločici EasyKit XC167CI
potrebno je napraviti program za provjeru rada
ultrazvučnog senzora za pozicioniranje mobilnog robota.
Ispitni sustav mora generirati dva pravokutna signala A i B
frekvencije 40 kHz. Fazno kašnjenje signala B za signalom
A kreće se u rasponu od 0% do 100% periode, a određuje
se potenciometrom spojenim na analogni ulaz.
Podatak o ispunjenosti signala se jednom na sekundu šalje
serijskim portom nadređenom sustavu.
Tekst zadatka 1/2
2Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Za vremensko usklađeno djelovanje sustava (provjera
primitka poruke, generiranje 1 s, ....) potrebno je realizirati
prekidni potprogram koji će se pozivati svakih 10 ms.
Funkcionalnost za dodatne bodove:
Postupkom generiranja signala upravlja se naredbama
primljenim pomoću asinkronog serijskog porta 0.
Generiranje signala započinje se primitkom poruke
“START”, a zaustavlja primitkom poruke “STOP”. Primitak
znakova i obrada poruke izvodi se pomoću prekidnog
potprograma ili u petlji glavnog programa.
Tekst zadatka 2/2
3Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
4Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Problem koji je potrebno riješiti u vježbe može se (mora!) podijeliti u nekoliko slojeva osnovnog zadatka:1. generiranje signala A frekvencije 40 kHz2. generiranje fazno zakašnjelog signala B 3. AD konverzija4. serijski primitak karaktera 5. analiza primljene poruke6. slanje poruke o ispunjenosti nadređenom sustavu
te jedan pomodni zadatak:7. generiranje sistemskog vremena
Analiza problema – odabir jedinice
5Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Sistemska frekvencija sustava je 40 MHz.
Generiranje signala A i B pomodu prekidnih tehnika:• frekvencija prekidanja procesora 80 kHz (2x40 kHz)• prekid u prosjeku svakih 500 taktova sistemske
frekvencije• problem pri fazama blizu 0% i 100% - dolazi do
“preklapanja” prekida u vremenu• mogude izvesti, ali uz veliko zagušenje procesora
Analiza problema – odabir jedinice
6Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Umjesto toga:Generiranje signala A i B pomodu HW jedinica:• signal A
• može se vezati na overflow nekog timer-a• za 50% ispunjenost potrebna toggle
funkcionalnost • signal B
• mora se vezati na compare funkcionalnost pridruženu brojilu za generiranje signala A
• za 50% potrebna toggle funkcionalnost
Analiza problema – odabir jedinice
7Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Pitanje na koje treba dati dobar odgovorkoje brojilo odabrati?
spada u dizajn sustava, a ne u programiranje ispravnim odabirom može se značajno okakšati
rješavanje problema pogrešan odabir može blokirati projekt
Osnovno ishodište za razmatranje:• compare+toggle funkcionalnost na 2 izlaza• 40 MHz dijeli se na 40kHz:
• reload 1000 ukoliko se koristi fSYS
• reload 125 ukoliko se koristi fSYS/8
Analiza problema – odabir jedinice
8Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Dodatne karakteristike koje bi bilo dobro postidi:• generiranje faznog kašnjenja – najveda vrijednost:
• 10 bitovna ADC: 1023 • 8 bitovna ADC: 255
po mogudnosti odabrati takav reload da odgovara max. vrijednosti ADC-a ne treba raditi preračunavanja
odabrati timer koji pruža vedu slobodu (npr. broji samo do 1023 ili 255)
pokušati povezati pokretanje AD konverzije na timer
Analiza problema – odabir jedinice
9Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Metoda eliminacije (izabrati najmanje slabo rješenje)GPT1: brojila T2, T3 i T4+ fleksibilni (up/down, povezivanje)– nemaju compare, max. fSYS/4– toggle: prebačaj T3 samo na 1 pin (T3out)
GPT2: brojila T5 i T6+ malo manje fleksibilni– nemaju compare, max. fSYS/2– toggle: prebačaj T3 samo na 1 pin (T3out)
Mooožda(?) bi se nekako mogli uskladiti GPT1 i GPT2
Analiza problema – odabir jedinice
10Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
CC0 i CC1: brojila T0/T1, T7/T8+ velika brzina (fSYS) u tzv. ne-koračajnom (non-staggered) modu+ 16 izlaza izlaza po jedinici– broje samo prema gore, prebačaj na 0xFFFF
• toggle funkcionalnost: Compare Mode 1• u jednom ciklusu se setira, u drugom resetira• frekvencija: 80 kHz, reload 500
Analiza problema – odabir jedinice
(perif., 118)
11Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
CC0 i CC1: brojila T0/T1, T7/T8Dodatna funkcionalnost u compare načinudouble registar mode• dva CC registra (CC0-CC8, CC1-CC9,...) čine par koji
upravlja jednim izlazom• promjena stanja bita na svakom match događaju+ 2 promjene po periodi: ostaje frekvencija 40 kHz- otežano usklađivanje između dva porta double registar mode bi mogao uzrokovati
probleme pri pokretanju
Analiza problema – odabir jedinice
(perif., 128)
12Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
CAPCOM6: brojila T12 (ch0-ch2), T13 (ch3)• tri kanala T12 brojila:
• generiranje trofaznog PWM• 3 odvojena para izlaza (6 izlaznih pinova)
• dodatni kanal na T13 – usklađen s radom T12 • maksimalna brzina rada T12,T13: fSYS
• dodatna interna veza T12, T13, ADC• mogude iskorisiti za automatsko pokretanje AD
pretvorbe bez aktivnog sudjelovanja jezgre
Analiza problema – odabir jedinice
13Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
CAPCOM6: dodatni resursi na evaluacijskoj pločici
Analiza problema – odabir jedinice
CAPCOM6 jedinica: najmanje loš (najbolji!) odabir
Konfiguriranje CAPCON6 jedinice
14Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Pri radu s ugradbenim računalnim sustavima je
potrebno odgovoriti na 2 osnovna pitanja:
• na koji način riješiti problemski zadatak
– kako parametrizirati periferne jedinice
– kako napraviti programsku potporu koja de povezati i
nadopuniti sklopovske funkcije
• kako provjeriti da je rješenje ispravno
– još važnije za uspjeh projekta: kako provjeriti da je pojedini
korak u fazi razvoja ispravno napravljen
Konfiguriranje CAPCON6 jedinice
15Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Osnovna struktura T12 dijela CAPCON6 jedinice
Konfiguriranje CAPCON6 jedinice
16Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Korak 1:
generiranje
40 kHz
Pitanje za razvoj:
da li je mogude
značajno usporiti
rad sustava ?
(period 1-2s)
Konfiguriranje CAPCON6 jedinice
17Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
fCPU = fCC6 = fT12 = 40 MHz
normalni rad (@ 40 kHz) – reload 1000
Konfiguriranje CAPCON6 jedinice
18Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Konfiguriranje CAPCON6 jedinice
19Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Konfiguriranje CAPCON6 jedinice
20Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Korak 2:
generiranje
fazno
pomaknutih
izlaznih
signala A i B
Konfiguriranje CAPCON6 jedinice
21Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Generiranje
signala na izlazu:
• isključivo set/reset
• nema toggle moda
nije mogude dobiti 50% ispunjenost
Konfiguriranje CAPCON6 jedinice
22Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Nema potrebe za centralno poravnatim načinom rada:
T12 radi u rubno poravnatom načinu rada
kanal 0: generiranje signala A
kanal 1: generiranje signala B
Pokušati postidi čim jednostavniji i kvalitetniji način
generiranja signala.
Konfiguriranje CAPCON6 jedinice
23Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Shadow transfer zahtjev za T12
Konfiguriranje CAPCON6 jedinice
24Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
CCU6_T12PR =999za frekvenciju od 40 kHz
upisuje se također sa Shadow transfer zahtjevom ali se shadow registar nalazi na istoj adresi
Konfiguriranje CAPCON6 jedinice
25Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
U compare registre se ne može upisivati
Nego se upis nove vrijednosti radi u “shadow” registar.
U radni registar se kopira tijekom “shadow transfer” ciklusa
Konfiguriranje CAPCON6 jedinice
26Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Određivanje načina rada pojedinih kanala T12
Konfiguriranje CAPCON6 jedinice
27Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Postoji složeni upravljački mehanizam za kontrolu stanja izlaznog pina tzv. output modulation block
Određuje
prioritet
pristupa
pinu u
različitim
načinima
rada porta
Konfiguriranje CAPCON6 jedinice
28Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Za pokretanje je potrebno povezati brojilo T12 i pinove CC61 i CC61
Konfiguriranje CAPCON6 jedinice
29Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Na kraju: postavljanje registra za funckiju pinova
alternativna fja za
bitove 0 i 2:
DP1L: izlazni bit: 1
ALTSEL0P1L: 1
P1L: 1
Konfiguriranje CAPCON6 jedinice
30Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Pitanje: kako provjeriti da je CAPCON6 jedinica ispravno
parametrizirana? Po mogudnosti bez dodatne opreme.
Odgovor: pri 40kHz teško. Ali:
• ukoliko se maksimalno uspori rad T12 brojila
• ukoliko se perioda T12 može postaviti na 5 s
• CC60R compare registar postavi na ekvivalent 1 s
• CC61R compare registar postavi na ekvivalent 3 s
moguće je provjeriti rad samo pomoću LED dioda!!!!
Konfiguriranje CAPCON6 jedinice
31Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Prijedlog: “usporeno djelovanje” CAPCON6 jedinice
ostaviti dok se ne provjeri sva funkcionalnost vezana za
generiranje signala A i B.
Nastavak (u sklopu obrade AD konverzije): generiranje
faznog pomaka između signala A i B
Ozbiljniji program mora biti vremenski ograničen.
Primjer: primitak “START” poruke:
da bi poruka bila interpretirana kao cjelovita, pauza
između dva znaka ne smije biti dulja od 5 sekundi.
Za potrebe mjerenja vremena potrebno je realizirati
funkciju generatora sistemskog vremena.
Generator sistemskog vremena
32Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Problem mjerenja vremena mogude je riješiti
sklopovski:
• sklopovljem sata/kalendara (RTC- real time clock)
• brojilima opde namjene (kaskada)
Češde se održavanje sistemskog vremena realizira s
ostalim tzv. “house keeping” zadadama i rješava
pomodu prekidnih podprograma.
Generator sistemskog vremena
33Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Generator vremenskih (cikličkih) prekida:
• mora biti neovisan od rada programa koji izvršava jezgra -> mora biti skopovski realiziran
• realizacija: brojilo + izvor stalne frekvencije
• ukoliko se brojilo poveže na stabilan izvor takta poput generatora takta dobiva se sat, generator
takta, davatelj vremena, kronometar (timer)
• za smanjivanje frekvencije davatelja takta koristi se djelilo takta (prescaler)
Generator sistemskog vremena
34Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Kako odabrati rezoluciju (tick) sistemskog vremena?
procjenom. Ne pretjerivati:
– ciklički prekidi frekvencije 10 kHz nemaju puno smisla
– to je ved “ozbiljna” frekvencija i trebalo bi razmisliti o
alternativnim rješenjima (korištenje PEC funkcionalnosti)
– context switching na visokim frekvencijama stvara veliko (i
nepotrebno) zagušenje jezgre
prema specifičnostima (zahtjevima) problema koji se
rješava
Generator sistemskog vremena
35Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Često se koriste hibridna (sw+hw) rješenja s više nivoa.
Primjer:
• brojilo T0 broji sistemski takt frekvencije fSYS=40 MHz
• takt sistemskog brojila TSYS=25 ns
• max. perioda brojila TT0=65536/fSYS= 1,6384 ms
• za reload 25536 dobiva se prebačaj svakih
TT0=(65536- 25536) * TSYS= 40000*25 ns = 1 ms
• prebačaj -> prekidna funkcija 1000 puta na sekudnu
Generator sistemskog vremena
36Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Prekidna funkcija vezana na prebačaj T0 mora biti:
• visokog prioriteta: da može prekinuti aktivne prekide
duljeg trajanja (nižeg prioriteta)
• kratkog trajanja: zbog velike učestalosti pozivanja
• jednostavna:
– brži contex switch
– bez korištenja ALU, DSP, ...
svodi se samo na inkrement, dekrement i provjeru...
Generator sistemskog vremena
37Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
...provjeru da li su se stekli uvjeti za pokretanje
složenijih i duljih cikličkih prekida nižih prioriteta
• 1 ms: održavanje sistemskog vremena (ms, s)
kritične vremenske akcije u programu
• 10 ms: manje kritične akcije koje se moraju učestalo
odvijati: očitanje tipkovnice, provjera korisnički
definiranih pauza (user delay counter) vede točnosti
• 1 s: neprioritetne akcije: baterija, dulje pauze,...
Generator sistemskog vremena
38Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Ukoliko dizajn sklopovlja dobar, tj. ako su ulazni signali
dovedeni na prave pinove, mogude je vanjske događaje
mjeriti sa rezolucijom manjom od 1 ms:
• uvjet: signal doveden na CC ulaze koji se mogu
povezati na T0 – CC0..CC15
• nije potreban poseban prekid: u ms prekidu se
provjeri da li je došlo do capture funckije na portu
• paziti na neodređenost: kojoj ms pripada događaj
Generator sistemskog vremena
39Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Za LV3 je potrebno odrediti brojilo za generiranje 10
ms prekida.
Odabrano brojilo mora imati:
• mogudnost generiranja prekida
• redukciju sistemskog takta djeliteljem 1:7 (ili više)
• ili redukciju pomodu kaskadne veze više brojila
• reload ili period funkciju – nužna za kaskadnu vezu
Generator sistemskog vremena
40Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
104,6225
ms102510
16
nsdiv nsTmsT SYSP
Odabir brojila nije kritičan
• tok signala – unutar uC
• rekonfiguracijom programa i sustava jednostavno je
zamijeniti brojilo koje generira prekid
• gotovo sva brojila imaju tražena svojstva
• odabrati slobodno brojilo jedinice koja se ved koristi:
– manja potrošnja sklopa
– jednostavniji rad (= manje dokumentacije za proučiti)
Generator sistemskog vremena
41Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Logičan odabir: timer T13 u CAPCOM6 jedinici
• ulaz: sistemski takt
• preskaler: fCC6/8, TT13 = 25ns*8 = 0,2us
• način rada: edge aligned (jedini mogudi)
• period registar T13PR = 10ms/0,2 us -1 = 49999
Generator sistemskog vremena
42Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
nadopuniti
postavke registra
Prekidne funkcije:
• za postavljanje prioritet prekida, njegovo aktiviranje i
preged status koristi se kontrolni prekidni registar
• povezivanje prekida i potprograma: vektor prekida
• programiranje prekida: posebni tip funkcije u
programskom jeziku: ključna riječ _interrupt
Generator sistemskog vremena
43Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Prekidni sustav porodice XC166:
• 15 nivoa prioriteta – 15 prekidnih grupa
• 8 nivoa prioriteta unutar iste grupe
• postoji 128 vektora u tabeli prekidnih vektora
• ukoliko više izvora prekida koristi jedan vektor,
registar periferne jedinice daje uzrok prekida
• izvori: periferni HW: interrupt controller- ITC, PE
SW: kritična greška, trap instrukcija, (NMI)
Generator sistemskog vremena
44Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Prekidni registar (ili više njih)
• pridružen funkciji periferne jedinice
• dio prekidnog sustava jezgre
• za postavljanje prioritet prekida, njegovo aktiviranje i preged status koristi se prekidni registar XXXX_YIC
– XXXX: naziv jedinice (ASC0, GPT1, CC01,...)
– Y:dio funkcionalnosti jedinice koji generira prekid
• svi imaju isti format, neovisno o perifieriji na koju su povezani
Generator sistemskog vremena
45Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Prekidni registar (ili više njih)
• pridružen funkciji periferne jedinice
• dio prekidnog sustava jezgre
• za postavljanje prioritet prekida, njegovo aktiviranje i preged status koristi se prekidni registar XXXX_YIC
– XXXX: naziv jedinice (ASC0, GPT1, CC01,...)
– Y:dio funkcionalnosti jedinice koji generira prekid
• svi imaju isti format, neovisno o perifieriji na koju su povezani
Generator sistemskog vremena
46Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Generator sistemskog vremena
47Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Generator sistemskog vremena
48Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Trenutni
prioritet
jezgre:
PSW
Generator sistemskog vremena
49Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Prekidna
svojstva
CAPCOM6
jedinice
složenija
od ostalih
4 moguda
vektora
Generator sistemskog vremena
50Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
T13PM periode match – status zahtjeva
Generator sistemskog vremena
51Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
zahtjev aktivan
postavljanje
zahtjeva (SW)
brisanje zahtjeva (SW)
T13PM periode match
Generator sistemskog vremena
52Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
omogudavanje prekidnog zahtjeva
odabir prekidnog vektora CAPCOM6
Generator sistemskog vremena
53Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
pripadni IC
registar
odabir prekidnog vektora CAPCOM6
default
(nakon reseta)
Generator sistemskog vremena
54Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Pripadni prekidni vektor – dokumentacija jezgre
Veza između HW i SW: broj vektora 0x4E
U ITC potrebno omoguditi prekid CCU6_T13IC
Generator sistemskog vremena
55Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Prekidni potprogram: void funkcija bez parametara
interrupt - posebna informacija prevoditelju
Primjer: prekidna funkcija završetka AD pretvorbe
Generator sistemskog vremena
56Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
broj vektora
ADCONV_RB – broj registarske banke za prekid.
• mora biti dodijeljen svakom nivou prekida (ILVL) koji se koristi u programu
Generator sistemskog vremena
57Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Svrha _using(LEV1_RB) izraza:
• prilikom promjene konteksta (contex switch) radni registri (R0-R15) se ne pohranjuju na stog nego se mijenja pokazivač (CP) na novi blok registra globalne banke u DPRAM području
Generator sistemskog vremena
58Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
R0-R15 su radni registri i koriste se za privremene izračune i varijable tipa automatic.
• kada bi greškom dva prekida različitog prioriteta imala dodijeljenu istu registarsku banku, prekid višeg prioriteta mogao bi poremetiti stanje radnih registara za vrijeme trajanja prekida nižeg prioriteta
• prekidi istog prioriteta ne mogu se međusobno prekidati pa mogu koristiti istu registarsku banku
Napomena: u ASM je mogude koristiti radne registre za varijable tipa “static” u C uz korištenje samo jednog dijela registarske banke – još brže izvođenje programa.
Generator sistemskog vremena
59Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Određivanje prioriteta: postavljanje bitova zapleteno
mogude greške prilikom dodjele prioriteta
ako dva prekida
imaju dodijeljen isti
prioritet i prioritet
unutar grupe –
ponašanje procesora
nije definirano
DAVE
prioritet: 10 grupa 0:
Generator sistemskog vremena
60Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Primjer: prekid
T13 na PV match
Opis funkcije
tijelo prekidne funkcije _interrupt
Generator sistemskog vremena
61Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
RB_LEVEL10 je generička oznaka jer nije poznat prioritet prekida. Točnu RB određuje LINKER.
CCU6.C
CCU6.H
Generator sistemskog vremena
62Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Ukoliko predni
vektor ima više
mogudih izvora
najprije se mora iz
pomodnog
prekidnog registra
utvrditi što je
uzrok prekida.
provjeri zastavicu uzroka
počisti zastavicu uzroka (shadow)
.... korisnički kod u funkciji
Generator sistemskog vremena
63Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
CCU6.LST:
1. podaci za linker
2. promjena konteksta
3. C kod funkcije
Generator sistemskog vremena
64Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Vremenski kritični prekidi – čim brži/kradi
... Primjer:
dijeljenje int/int
HW funkcija
push/pop
aritmetičkih registara
Generator sistemskog vremena
65Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Izlaz:
pop
Ulaz:
push MDH, MDL
Generator sistemskog vremena
66Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Još brži rad: #pragma noframeNalaže se prevoditelju/linkeru da izostavi operaciju pohrane
samo za vrlo iskusne programere!
kod podložan greškama!
samo za izuzetno kritične sekcije
bug2 : nije pohranjen status MDH, MDL koji se mijenjaju u prekidu
bug1: kriva zamjena RB
Generator sistemskog vremena
67Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
...
Prijedlog
prekidne
funkcije za
LV3Održavanje registara sistemskog vremena nije traženo u vježbi
Analogno/digitalna pretvorba
68Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Osnovna petlja programa
69Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
Potrebne funkcije:
• inicijalizacijski dio
• beskonačna petlja s ispisom trenutnog podatka o
faznom pomaku signala B
Za prekidnu funkciju:
• napisati funkciju za izračun compare vrijednosti
registra CC61 i za njeno postavljanje
70Dalibor Brnobid – Analiza 3. lab. vježbe, “Ugradbeni računalni sustavi”, TFRI 2010.
DAVE – konfiguracija projekta
top related