390 likes | 592 Views
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
E N D
Procesni sistemi vodenja Programski model procesne enote mikrokrmilnika (Uvod v programiranje v zbirnem jeziku, TMS320C2407) Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Vsebina 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
Naslavljanje • naslov in vsebina • tipi: • trenutno, • direktno, • indirektno, • indeksno, • relativno Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Naslavljanje – naslov in vsebina Naslov Vsebina Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Naslavljanje - 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
Naslavljanje - 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
Ukazi 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
Legenda • 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
Statusni register • ST0 • ST1 • C – Carry bit – označuje prenos • TC – Test control flag bit – za bitne operacije • OV – Overflow – označuje prekoračitev obsega TMS320LF2407 Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Deli ukaza v zbirnem jeziku • labela • operacijska koda • operandi • komentarji OUTPUTLDP#6;select data page 6 BLDD#300, 20h;move data at address ;300h to 320h Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Nalaganje 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
Aritmetič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
Logič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) Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
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
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
Bitne 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
Skoki 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
Sklad • 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
Sklad- PUSH Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Sklad- POP Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Podprogrami • Razlogi za uporabo • Lastnosti • Modularnost • Klic podprograma • Vračanje iz podprograma Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Razlogi 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
Modularnost • 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
Klic 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
Vrnitev 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
Dodeljevanje 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
Konfiguracijska registra SCSR1 in SCSR2 SCSR1 SCSR2 Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Statusna 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
Kodna stran - DP Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Generiranje naslova – neposredno naslavljanje Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Delovanje zbirnika (prevajalnika) • Prevajalnik (Assembler) • Povezovalnik (Linker) • Knjižnice (Library) • Generator binarne kode (Executable file) Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Potek prevajanja Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Razdeljevanje 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
Razdeljevanje pomnilnika v logične bloke Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Primer konfiguracije Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Primer uporabe ukazov za sekcije (2407) Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Primer konfiguracije pomnilnika (2407) Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Domača naloga Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika
Mož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. Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika