Upload
azriel
View
62
Download
2
Embed Size (px)
DESCRIPTION
Procesni sistemi vodenja. Programski model procesne enote mikrokrmilnika. (Uvod v programiranje v zbirnem jeziku, TMS320C2407). Vsebina poglavja. Naslavljanje Ukazi v strojnem jeziku: Deli ukaza v zbirnem jeziku Nalaganje in shranjevanje Aritmetične operacije Logične operacije - PowerPoint PPT Presentation
Citation preview
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 11
http://www.ro.feri.uni-mb.si
Procesni sistemi vodenjaProcesni sistemi vodenja
Programski model procesne enote mikrokrmilnika
(Uvod v programiranje v zbirnem jeziku, TMS320C2407)
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 22
http://www.ro.feri.uni-mb.si
Vsebina poglavjaVsebina poglavja• Naslavljanje• Ukazi v strojnem jeziku:
– Deli ukaza v zbirnem jeziku – Nalaganje in shranjevanje– Aritmetične operacije– Logične operacije– Pomiki (shift)– Bitne operacije– Inkrement/dekrement– Skoki in zanke
• Sklad• Podprogrami (lastnosti, modularnost, sklad, klic, vračanje)• Dodeljevanje pomnilnika• Delovanje zbirnika (prevajalnika)
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 33
http://www.ro.feri.uni-mb.si
NaslavljanjeNaslavljanje
• naslov in vsebina
• tipi: – trenutno, – direktno, – indirektno, – indeksno, – relativno
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 44
http://www.ro.feri.uni-mb.si
Naslavljanje – naslov in vsebinaNaslavljanje – naslov in vsebina
0xEB01 0x0041
0xEB02 0x0032
0xEB03 0x0FF1
0xEB04 0xC011
0xEB05 0xF000
Naslov Vsebina
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 55
http://www.ro.feri.uni-mb.si
Naslavljanje - tipiNaslavljanje - tipi
• Trenutno (Immediate)– Ukaz vsebuje konstanto, s katero bo manipulirala
instrukcija• RPT #99 ; Ponovi naslednjo vrstico 99 krat
• Neposredno (Direct)– Ukaz vsebuje naslov v podatkovnem pomnilniku, na
katerem se nahaja vrednost (spremenljivka ali konstanta), s katero bo manipulirala instrukcija
• ADD 1h ; Prištej vrednosti akumulatorja vsebino ; pomnilniške lokacije 1h
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 66
http://www.ro.feri.uni-mb.si
Naslavljanje - tipiNaslavljanje - tipi
• Posredno (Indirect)– Naslavljanje z uporabo pomožnih registrov, indeksno
naslavljanje. Ukaz vsebuje pomožni register, v katerem se nahaja naslov v podatkovnem pomnilniku, kjer je vrednost (spremenljivka ali konstanta), s katero bo manipulirala instrukcija.
• ADD * ; Prištej vrednosti v akumulatorju vsebino ; pomnilniške lokacije, na katero
kaže ; vsebina trenutnega pomožnega registra.
• ADD *- ; Enako kot prej, le da je vsebina trenutnega ; pomožnega registra po operaciji
zmanjšana ; za 1.
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 77
http://www.ro.feri.uni-mb.si
Ukazi v zbirnem jezikuUkazi v zbirnem jeziku
• Deli ukaza v zbirnem jeziku
• Nalaganje in shranjevanje
• Aritmetične operacije
• Logične operacije
• Pomiki (shift)
• Bitne operacije
• Skoki in zanke
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 88
http://www.ro.feri.uni-mb.si
LegendaLegenda
• ACC – akumulator• dma – naslov v podatkovnem pomnilniku• pma – naslov v programskem pomnilniku• k – konstanta• cond – pogoj• TOS – Top of stack, kazalec na vrh sklada• cbit – kontrolni bit• (x) – vsebina registra oz. pomnilniške lokacije x• x(y) – bit št. y registra oz. pomn. lokacije x
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 99
http://www.ro.feri.uni-mb.si
Statusni registerStatusni register
• ST0
• ST1
– C – Carry bit – označuje prenos
– TC – Test control flag bit – za bitne operacije
– OV – Overflow – označuje prekoračitev obsega
TMS320LF2407TMS320LF2407
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1010
http://www.ro.feri.uni-mb.si
Deli ukaza v zbirnem jezikuDeli ukaza v zbirnem jeziku
•labela
•operacijska koda
•operandi
•komentarji
OUTPUT LDP #6 ;select data page 6
BLDD #300, 20h ;move data at address ;300h to 320h
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1111
http://www.ro.feri.uni-mb.si
Nalaganje in shranjevanjeNalaganje in shranjevanje
• Nalaganje v akumulator– LACC dma C: acc = *dma;
• (dma) → (ACC)
– LACC #k C: acc = 5;• k → (ACC)
• Shranjevanje v pomnilnik C: *dma = acc;– SACH dma
• (ACC(31:16)) → dma
– SACL dma• (ACC(15:0)) → dma
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1212
http://www.ro.feri.uni-mb.si
Aritmetične operacijeAritmetične operacije• Seštevanje
– ADD #5 C: acc += 5;• (ACC) + 5 → (ACC)
– ADD dma C: acc += *dma;• (ACC) + (dma) → (ACC)
• Odštevanje– SUB dma C: acc -= *dma;
• (ACC) – dma → (ACC)
• Dvojiški komplement– NEG C: acc = -acc;
• (ACC) * (-1) → (ACC)
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1313
http://www.ro.feri.uni-mb.si
Logične operacijeLogične operacije• IN
– AND #5 C: acc &= 5;• (ACC) & 5 → (ACC)
• ALI– OR #5 C: acc |= 5;
• (ACC) | 5 → (ACC)
• Eniški komplement– CMPL C: acc = ~acc;
•
• Ekskluzivni ALI– XOR #5 C: acc ^= 5;
• (ACC) ^ 5 → (ACC)
(ACC) (ACC)
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1414
http://www.ro.feri.uni-mb.si
Pomiki (shift)Pomiki (shift)
• Rotacija v levo– ROL
• C → ACC(0)
(ACC(31)) → C
(ACC(30:0)) → ACC(31:1)
• Rotacija v desno– ROR
• C → ACC(31)
(ACC(0)) → C
(ACC(31:1)) → ACC(30:0)
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1515
http://www.ro.feri.uni-mb.si
Pomiki (shift)Pomiki (shift)
• Pomik v levo– SFL C: acc <<= 1;
• (ACC(31)) → C
(ACC(30:0)) → ACC(31:1)
0 → ACC(0)
• Pomik v desno– SFR C: acc >>= 1;
• (ACC(31:1)) → ACC(30:0)
(ACC(0)) → C
ukaz SFR upošteva
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1616
http://www.ro.feri.uni-mb.si
Bitne operacije, primerjaveBitne operacije, primerjave
• Testiraj bit– BIT dma, 15
• dma(15) → TC
• Postavi kontrolni bit– SETC cbit
• Zbriši kontrolni bit– CLRC cbit
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1717
http://www.ro.feri.uni-mb.si
Skoki in zankeSkoki in zanke • Zanka na mesto, ki ga označuje labela
– B pma• pma → PC
• Zanka na mesto, ki ga označuje vsebina akumulatorja– BACC
• ACC(15:0) → PC
• Pogojna zanka– BCND pma,cond
• If (cond) PC = pma
else PC +=1
– BCND pma,C (C – Carry bit)• If (C==1)
PC = pma else
PC +=1
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1818
http://www.ro.feri.uni-mb.si
SkladSklad
• Služi za shranjevanje vsebine programskega števca in ostalih registrov ob:– Skokih v podprograme– Prekinitvah
• Proces se prekine, lokalne spremenljivke se ohranijo!
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1919
http://www.ro.feri.uni-mb.si
SkladSklad - PUSH- PUSH
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2020
http://www.ro.feri.uni-mb.si
SkladSklad - POP- POP
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2121
http://www.ro.feri.uni-mb.si
PodprogramiPodprogrami
• Razlogi za uporabo
• Lastnosti
• Modularnost
• Klic podprograma
• Vračanje iz podprograma
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2222
http://www.ro.feri.uni-mb.si
Razlogi za uporabo podprogramovRazlogi za uporabo podprogramov
• Prednosti:– Večja preglednost kode.– Možnost večkratne uporabe delov programske kode.
• Manjša dolžina kode – manjša poraba pomnilnika.
• Krajši porabljen čas za pisanje kode.
• Slabosti:– Počasnejše izvajanje.
• Sklad,
• Trajanje skoka.
– V primeru spremembe je treba upoštevati vse klice!
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2323
http://www.ro.feri.uni-mb.si
ModularnostModularnost
• Podprogram je zaključena celota:– Vhodni podatki, – Funkcija,– Izhodni podatki
• Čim manj globalnih spremenljivk – idealno nobene!
• Statične spremenljivke le v primeru potrebe.
• Najboljše so lokalne spremenljivke.
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2424
http://www.ro.feri.uni-mb.si
Klic podprogramaKlic podprograma
• Klic podprograma na naslovu v akumulatorju– CALA
• PC + 2 → TOS
• ACC(15:0) → PC
• Brezpogojni klic podprograma– CALL pma
• PC + 2 → TOS
• pma → PC
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2525
http://www.ro.feri.uni-mb.si
Vrnitev iz podprogramaVrnitev iz podprograma
• Brezpogojna vrnitev– RET C: return;
• (TOS) → PC
• Pogojna vrnitev– RETC cond
• If (cond)
(TOS) → PC
– RETC cond• If (C==1)
(TOS) → PC
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2626
http://www.ro.feri.uni-mb.si
Dodeljevanje pomnilnikaDodeljevanje pomnilnika
• Mikrokontroler/mikroprocesor– Bit MP/MC v SCSR2 (imamo zunanji pomnilnik?)– Bita DON in PON v SCSR2 (izbira pomnilniškega
in programskega prostora)
• Bit CNF v ST1
• Podatkovna stran– DP v ST0
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2727
http://www.ro.feri.uni-mb.si
Konfiguracijska registra SCSR1 in SCSR2 Konfiguracijska registra SCSR1 in SCSR2
SCSR1
SCSR2
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2828
http://www.ro.feri.uni-mb.si
Statusna registra ST0 in ST1Statusna registra ST0 in ST1
• ST0
• ST1
– C – Carry bit – označuje prenos
– TC – Test control flag bit – za bitne operacije
– OV – Overflow – označuje prekoračitev obsega
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2929
http://www.ro.feri.uni-mb.si
Kodna stran - DPKodna stran - DP
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3030
http://www.ro.feri.uni-mb.si
Generiranje naslova – neposredno naslavljanjeGeneriranje naslova – neposredno naslavljanje
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3131
http://www.ro.feri.uni-mb.si
Delovanje zbirnika (prevajalnika)Delovanje zbirnika (prevajalnika)
• Prevajalnik (Assembler)
• Povezovalnik (Linker)
• Knjižnice (Library)
• Generator binarne kode (Executable file)
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3232
http://www.ro.feri.uni-mb.si
Potek prevajanjaPotek prevajanja
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3333
http://www.ro.feri.uni-mb.si
Razdeljevanje pomnilnika v logične blokeRazdeljevanje pomnilnika v logične bloke
• Sekcije– .bss
• Ponavadi rezervira prostor za neinicializirane spremenljivke.
– .data • Ponavadi vsebuje inicializacijske podatke.
– .text• Ponavadi vsebuje izvršno kodo.
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3434
http://www.ro.feri.uni-mb.si
Razdeljevanje pomnilnika v logične blokeRazdeljevanje pomnilnika v logične bloke
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3535
http://www.ro.feri.uni-mb.si
Primer konfiguracijePrimer konfiguracije
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3636
http://www.ro.feri.uni-mb.si
Primer uporabe ukazov za sekcije (2407)Primer uporabe ukazov za sekcije (2407)
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3737
http://www.ro.feri.uni-mb.si
Primer konfiguracije pomnilnika (2407)Primer konfiguracije pomnilnika (2407)
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3838
http://www.ro.feri.uni-mb.si
Domača nalogaDomača naloga
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3939
http://www.ro.feri.uni-mb.si
Možna vprašanja na izpituMožna vprašanja na izpitu
• Naslavljanja – tipi in opisi.
• Deli ukaza v zbirnem jeziku n njihov pomen.
• Tipi instrukcij.
• Sklad – opis in uporaba.
• Prednosti in slabosti uporabe podprogramov.
• Statusni register – opis in najpomembnejši biti.