39
Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1 http://www.ro.feri.uni- mb.si Procesni sistemi Procesni sistemi vodenja vodenja Programski model procesne enote mikrokrmilnika (Uvod v programiranje v zbirnem jeziku, TMS320C2407)

Procesni sistemi vodenja

  • 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

Page 1: Procesni sistemi vodenja

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)

Page 2: Procesni sistemi vodenja

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)

Page 3: Procesni sistemi vodenja

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

Page 4: Procesni sistemi vodenja

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

Page 5: Procesni sistemi vodenja

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

Page 6: Procesni sistemi vodenja

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.

Page 7: Procesni sistemi vodenja

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

Page 8: Procesni sistemi vodenja

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

Page 9: Procesni sistemi vodenja

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

Page 10: Procesni sistemi vodenja

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

Page 11: Procesni sistemi vodenja

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

Page 12: Procesni sistemi vodenja

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)

Page 13: Procesni sistemi vodenja

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)

Page 14: Procesni sistemi vodenja

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)

Page 15: Procesni sistemi vodenja

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

Page 16: Procesni sistemi vodenja

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

Page 17: Procesni sistemi vodenja

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

Page 18: Procesni sistemi vodenja

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!

Page 19: Procesni sistemi vodenja

Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 1919

http://www.ro.feri.uni-mb.si

SkladSklad - PUSH- PUSH

Page 20: Procesni sistemi vodenja

Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2020

http://www.ro.feri.uni-mb.si

SkladSklad - POP- POP

Page 21: Procesni sistemi vodenja

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

Page 22: Procesni sistemi vodenja

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!

Page 23: Procesni sistemi vodenja

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.

Page 24: Procesni sistemi vodenja

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

Page 25: Procesni sistemi vodenja

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

Page 26: Procesni sistemi vodenja

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

Page 27: Procesni sistemi vodenja

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

Page 28: Procesni sistemi vodenja

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

Page 29: Procesni sistemi vodenja

Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 2929

http://www.ro.feri.uni-mb.si

Kodna stran - DPKodna stran - DP

Page 30: Procesni sistemi vodenja

Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3030

http://www.ro.feri.uni-mb.si

Generiranje naslova – neposredno naslavljanjeGeneriranje naslova – neposredno naslavljanje

Page 31: Procesni sistemi vodenja

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)

Page 32: Procesni sistemi vodenja

Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3232

http://www.ro.feri.uni-mb.si

Potek prevajanjaPotek prevajanja

Page 33: Procesni sistemi vodenja

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.

Page 34: Procesni sistemi vodenja

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

Page 35: Procesni sistemi vodenja

Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3535

http://www.ro.feri.uni-mb.si

Primer konfiguracijePrimer konfiguracije

Page 36: Procesni sistemi vodenja

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)

Page 37: Procesni sistemi vodenja

Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3737

http://www.ro.feri.uni-mb.si

Primer konfiguracije pomnilnika (2407)Primer konfiguracije pomnilnika (2407)

Page 38: Procesni sistemi vodenja

Procesni sistemi vodenja - Programski model procesne enote mikrokrmilnika 3838

http://www.ro.feri.uni-mb.si

Domača nalogaDomača naloga

Page 39: Procesni sistemi vodenja

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.