Title: Uvod v Hcs12
1(No Transcript)
2Mikrokrmilnik
- Kaj nas predvsem zanima?
- Kaj zmore mikrokrmilniška družina
- zmogljivost procesorja (CPE),
- nacini delovanja (samostojen, razširjen,...),
- tip in obseg pomnilnika (Flash, EEPROM, RAM),
- V/I možnosti kakšne izpeljanke obstajajo.
- Razvojna orodja oz. strojna in programska
podpora - simulatorji, analizatorji, emulatorji,
- Prevajalniki (zbirnik, c, c, ...)
- OS, gonilniki, knjižnjice, protokoli, ...
- Dokumentacija, naše izkušnje, podrocja uporabe,
.. - .....
3Mikrokrmilnik
- CPE (procesorsko jedro)
- programski model,
- ukazi (nabor ukazov),
- nacini naslavljanja,
- sklad, subrutine,
- sistem prekinitev, prekinitveni strežniki,
- programiranje v zbirnem jeziku,
- programiranje v višjih programskih jezikih (C)
- .
4Mikrokrmilnik
- V/I možnosti
- sponke oziroma signali,
- digitalni vhodi/izhodi (vrata),
- analogni vhodi/izhodi (A/D, D/A pretvorniki),
- komunikacijski vmesniki (asinhroni, sinhroni,
...), - casovniki,
- .... .
5Mikrokrmilnik HCS12-izpeljanke
6MC9S12DP256B osnovna zgradba
Procesor
Asinhrona serijska komunikacijska vmesnika
Pomnilniki
8-kanalna 10-bitna A/D pretvornika
Serijski periferni vmesniki
I2C vodilo
Casovnik
Komunikacijski vmesniki CAN (Controller Area
Network)
Pulzno dolžinska modulacija
7HCS12 procesor blokovna shema
8HCS12 procesorsplošni podatki
- 16 bitna širina (notranjega) vodila,
- 16-bitni registri/operacije
- Navzgor združljiv (kompatibilen) s HC11
- Enak programski model kot HC11
- HC11 kompatibilen na nivoju zbirnega jezika
- Deluje v vec samostojnih in razširjenih nacinih,
- najbolje pa je, da ga uporabljamo v osnovnem
- samostojnem nacinu.
9HCS12 procesorprogramski model
10HCS12 programski model
- A,B 8-bitna (enakovredna) akumulatorja ALI
- D (AB) 16 bitni akumulator
- X,Y 16-bitna (enakovredna) indeksna registra
- SP 16-bitni skladovni kazalec (sklad)
- PC 16-bitni programski števec
- CCR register stanj
- biti S, X, H, I, N, Z, V, C
- recemo bit C, bit Z, itd.
- Na bite H, N, Z, V, C vpliva vecina ukazov,
- vendar previdnost ni odvec.
11Programski modelregister CCR
- biti H, N, Z, V, C
- C (Carry) bit prenosa iz/v msb (most
significant bit). - Pride prav pri racunanju z nepredznacenimi
števili - (prekoracitev obsega racunanja, npr. izven
0..255). - Racunanju z vecbajtnimi števili
- npr. 32 bitnimi pred/nepred-znacenimi števili
za prenos - naprej v višji del), podaljšanje operandov.
- Druge aritmeticne/logicne operacije.
- V (Overflow) bit presega (preplavitve,
preliva). - Pride prav pri racunanju s predznacenimi števili
- (prekoracitev obsega racunaja, npr. izven
128 .. 127). - N, Z (Negative, Zero) bita negativne in nicelne
vrednosti. - H (Half Carry) bit polovicnega prenosa (b3-gt
b4). - pride prav pri racunanju z BCD števili, za nas
dokaj - nezanimiv.
12Programski modelregister CCR
- I (Interrupt (IRQ) mask)
- maskirni bit zahteve za prekinitev signal
IRQ. - S tem bitom lahko preprecimo (maskiramo
zahtevo za - prekinitev, npr. iz periferne naprave oz.
vmesnika. - I 1 (ukaz SEI) prepreci prekinitve,
- I 0 (ukaz CLI) omogoci prekinitve.
- X (Interrupt (XIRQ) mask)
- maskirni bit (nemaskirane) zahteve za
prekinitev signal XIRQ. - S tem bitom so onemogocene prekinitve XIRQ ob
zacetnem - zagonu, dokler jih ne omogocimo z brisanjem
bita. - Starejši procesorji tega bita nimajo (prekinitev
NMI). - S (Stop) bit
- bit ukaza STOP (ustavi procesor in
oscilator). - Z brisanjem tega bita omogocimo delovanje ukaza
STOP. - Ob zagonu je S1 in STOP ukaz nima vpliva (NOP).
13HCS12 ukazi, groba delitev
- Prenosni ukazi tipa
- LOAD, STORE, TRANSFER, EXCHANGE, MOVE
- Aritmeticno logicni ukazi
- , -, , /, , --
- , , ,
- pomicni levo, desno na vec nacinov.
- Primerjalni (-), testni ().
- Skocni, vejitveni, klicni, vrnitveni.
- Bitni ukazi, testiranje, postavljanje, brisanje.
- Upravljalni.
14HCS12 nacini naslavljanja
- vsebovano (operand skrit v operacijski kodi)
- takojšnje (operand v ukazu)
- direktno, razširjeno (8/16 bitni naslov
operanda) - indeksno (veliko izpeljank)
- relativno (vejitve)
- Efektivna adresa (naslov) EA
- 16-bitni naslov, na katerega se nanaša
operacija. -
15HCS12 nacini naslavljanja
16HCS12 nacini naslavljanja
17Nacini naslavljanja vsebovano
Dolocilo operanda je vsebovano v operacijski
kodi Primeri NOP, STOP, WAI, ... SEI,
CLI, ... INCA, INCB, DECA, DECB, CLRA,...
INX, INY, DEX, ... , INS, DES,... TAB, TAP,
TSX, ....
18Nacini naslavljanja takojšnje
Operand je v polju operanda ukaza LDAA 10
desetiška konstanta LDAB 10
šestnajstiška konstanta LDAA
100 nesmisel !!! LDD 0100 D je 16 biten
(AB 0100) LDX 2000 LDY 20
privzeta 16-bitna konstanta 0020 I.T.D.
Pomeni v zbirnem jeziku takojšni nacin
naslavljanja!
19Nacini naslavljanja direktno
- V polju operanda ukaza je podan 8-bitni naslov
operanda - v obmocju 00 do FF.
- Efektivni naslov je seveda kljub temu 16-biten,
a se za - zgornji del (zgornjih 8 bitov) privzame 00.
- Obmocje naslavljanja je torej 0000 do 00FF.
- Na ta nacin smo prihranili en bajt, ukaz je
krajši/hitrejši. - Vcasih se temu rece naslavljanje nicte strani.
- Primeri
- LDAA 10 desetiško podan naslov, 000A
- LDAB 10 šestnajstiško podan naslov,
0010 - LDD 10 D se polni z vsebino (00100011)
- i.t.d.
20Nacini naslavljanjarazširjeno
- V polju operanda ukaza je podan (poln) 16-bitni
naslov operanda - v obmocju 0000 do FFFF.
- Seveda je možno razširjeno naslavljanje tudi v
nicti strani, - ni pa potrebno oz. smiselno.
- Primeri
- LDAA 1024 desetiško podan naslov, 0400
- LDAB 1000 šestnajstiško podan naslov,
1000 - LDD 1000 D se polni z vsebino (10001001)
- i.t.d.
21Nacini naslavljanjarelativno
- Relativno naslavljanje pride v poštev pri
vejitvah (vejitvenih ukazih) - v obmocju
- 8-bitnega predznacenega odmika od PC (short
branch), - 16-bitnega predznacenega odmika od PC (long
branch). - Primeri
- BRA nekam8 relativna (brezpogojna) kratka
vejitev - LBRA nekam16 relativna (brezpogojna) dolga
vejitev - BNE nekam8 vejitev v primeru nenicelne
vrednosti - LBNE nekam16
- ....
-
22Nacini naslavljanjaindeksno
- Pri tvorjenju efektivne adrese sodeluje indeksni
register - vsebina indeksnega registra odmik
- Kot indeksni register lahko služi X, Y, SP, PC
- Možnih je veliko (mocnih) oblik indeksnega
naslavljanja - s 5,9,16-bitnim predznacenim (konstantnim)
odmikom - s spremenljivim odmikom v A, B, D.
- z avto pred/po de/in-krementiranjem za od 8 do
8 - možen je tudi indeksen posreden nacin
naslavljanja.
23Nacini naslavljanjaindeksno
- Nekaj primerov
- 5-bitni predznacen odmik
- LDAA 0,X napolni A s pom.besedo z naslovom v
X - A ? (X)
- STAA -8,X shrani A na naslov X-8
- 9-bitni predznacen odmik
- LDAB FF,Y A ? (YFF)
- STAB -20,Y B ? (Y-20)
- 16-bitni predznacen odmik
- .....
24Nacini naslavljanjaindeksno
- Nekaj primerov
- avtomatsko dekrementiranje/inkrementiranje
pred ali po operaciji - LDAA 1,X napolni A s pom.besedo z naslovom v
X - A ? (X), povecaj X za 1, X ? X1
- LDAA 2,Y- naploni A z vsebino na naslovu v Y,
- A ? (Y), zmanjšaj potem Y za 2, Y ? Y-2
- ekvivalento PSHA, PSX
- STAA 1,-SP preddekrement za 1, potem shrani A
- STX 2,-SP preddekrement za 2, potem shrani X
- prenos ilustrativni primer
- MOVW 2,X,4,Y predinkrement X za dva, beri
besedo - vpiši besedo, poinkrement Y za 4
- .....
25Nacini naslavljanjaindeksno
- Indeksno indirektno (t.j. Posredno z
indeksiranjem) - LDAA 10,X naslov operanda EA je na
X10,X11 - Pa še spremenljiv odmik
- LDAA B,X EA je BX
- Pa še posredno s spremenljivim odmikom
- LDAA D,Y
- ......
- JMP D,PC skocna tabela
- DC.W prvi skocni naslov
- DC.W drugi
- DC.W tretji, i.t.d.
26HCS12 ukazi tipa LOAD, STORE
27Prenos (TRF), premik (MOV), menjava (EXG)
Med registri
Pomnilnik
28Seštevanje, odštevanje
29Zvecanje, zmanjšanje
30Primerjanje, testiranje
31Logicne operacije
32Brisanje, komplementiranje, negiranje
33Množenje, deljenje
34Bitne operacije
35Ukazi pomika, rotacije
36Vejitve, kratke
37Vejitve, dolge
38Vejitve, bitne
39Operacije z indeksnim registrom
40Operacije s skladovnim kazalcem
41Polnjenje dejanskega naslova(EA)
42Operacije z registrom CCR
43Skoki, vejitve in subrutine
44Prekinitve
45Prazne operacije
46Ukaza STOP in WAI