1 / 46

Mikrokrmilnik

Mikrokrmilnik. Kaj nas predvsem zanima? Kaj zmore mikrokrmilniška družina: zmogljivost procesorja (CPE), načini delovanja (samostojen, razširjen,...), tip in obseg pomnilnika (Flash, EEPROM, RAM), V/I možnosti – kakšne izpeljanke obstajajo.

olympe
Download Presentation

Mikrokrmilnik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mikrokrmilnik • Kaj nas predvsem zanima? • Kaj zmore mikrokrmilniška družina: • zmogljivost procesorja (CPE), • načini 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, področja uporabe, .. • .....

  2. Mikrokrmilnik • CPE (procesorsko jedro): • programski model, • ukazi (nabor ukazov), • načini naslavljanja, • sklad, subrutine, • sistem prekinitev, prekinitveni strežniki, • programiranje v zbirnem jeziku, • programiranje v višjih programskih jezikih (C) • ….

  3. Mikrokrmilnik • V/I možnosti: • sponke oziroma signali, • digitalni vhodi/izhodi (vrata), • analogni vhodi/izhodi (A/D, D/A pretvorniki), • komunikacijski vmesniki (asinhroni, sinhroni, ...), • časovniki, • .... .

  4. Mikrokrmilnik HCS12-izpeljanke

  5. MC9S12DP256B – osnovna zgradba Procesor Asinhrona serijska komunikacijska vmesnika Pomnilniki 8-kanalna 10-bitna A/D pretvornika Serijski periferni vmesniki I2C vodilo Časovnik Komunikacijski vmesniki CAN (Controller Area Network) Pulzno dolžinska modulacija

  6. HCS12 procesor – blokovna shema

  7. HCS12 procesor–sploš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 več samostojnih in razširjenih načinih, najbolje pa je, da ga uporabljamo v osnovnem samostojnem načinu.

  8. HCS12 procesor–programski model

  9. HCS12 – programski model • A,B; 8-bitna (enakovredna) akumulatorja ALI • D (A:B); 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 rečemo: bit C, bit Z, itd. Na bite H, N, Z, V, C vpliva večina ukazov, vendar previdnost ni odveč.

  10. Programski model:register CCR • biti H, N, Z, V, C • C (Carry): bit prenosa iz/v msb (“most significant bit”). • Pride prav pri računanju z nepredznačenimi števili (prekoračitev obsega računanja, npr. izven 0..255). • Računanju z večbajtnimi števili npr. 32 bitnimi pred/nepred-značenimi števili za prenos naprej v višji del), “podaljšanje” operandov. • Druge aritmetične/logične operacije. • V (Overflow): bit presega (preplavitve, preliva). • Pride prav pri računanju s predznačenimi števili (prekoračitev obsega računaja, npr. izven –128 .. +127). • N, Z (Negative, Zero): bita negativne in ničelne vrednosti. • H (Half Carry): bit polovičnega prenosa (b3-> b4). • pride prav pri računanju z BCD števili, za nas dokaj nezanimiv.

  11. Programski model:register CCR • I (Interrupt (IRQ) mask): maskirni bit zahteve za prekinitev – signal IRQ. • S tem bitom lahko preprečimo (“maskiramo” zahtevo za prekinitev, npr. iz periferne naprave oz. vmesnika. • I = 1 (ukaz SEI) prepreči prekinitve, • I = 0 (ukaz CLI) omogoči prekinitve. • X (Interrupt (XIRQ) mask): maskirni bit (“nemaskirane”) zahteve za prekinitev – signal XIRQ. • S tem bitom so onemogočene prekinitve XIRQ ob začetnem zagonu, dokler jih ne omogočimo 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 omogočimo delovanje ukaza STOP. • Ob zagonu je S=1 in STOP ukaz nima vpliva (NOP).

  12. + HCS12: ukazi, groba delitev • Prenosni ukazi tipa: • LOAD, STORE, TRANSFER, EXCHANGE, MOVE • Aritmetično logični ukazi: • +, -, *, /, ++, -- • •, +, ¯ , • pomični: levo, desno na več načinov. • Primerjalni (-), testni (•). • Skočni, vejitveni, klicni, vrnitveni. • Bitni ukazi, testiranje, postavljanje, brisanje. • Upravljalni.

  13. HCS12: načini 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.

  14. HCS12: načini naslavljanja

  15. HCS12: načini naslavljanja

  16. Načini naslavljanja: vsebovano Določilo 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, ....

  17. Načini 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 (A:B = 01:00) LDX #$2000 LDY #$20 ;privzeta 16-bitna konstanta ;$0020 I.T.D. # Pomeni v zbirnem jeziku takojšni način naslavljanja!

  18. Načini naslavljanja: direktno • V polju operanda ukaza je podan 8-bitni naslov operanda v območju $00 do $FF. • Efektivni naslov je seveda kljub temu 16-biten, a se za • zgornji del (zgornjih 8 bitov) privzame $00. • Območje naslavljanja je torej $0000 do $00FF. • Na ta način smo prihranili en bajt, ukaz je krajši/hitrejši. • Včasih se temu reče naslavljanje “ničte” strani. • Primeri: • LDAA 10 ;desetiško podan naslov, $000A • LDAB $10 ;šestnajstiško podan naslov, $0010 • LDD $10 ;D se polni z vsebino ($0010:$0011) • i.t.d.

  19. Načini naslavljanja:razširjeno • V polju operanda ukaza je podan (poln) 16-bitni naslov operanda v območju $0000 do $FFFF. • Seveda je možno razširjeno naslavljanje tudi v ničti 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 ($1000:$1001) • i.t.d.

  20. Načini naslavljanja:relativno • Relativno naslavljanje pride v poštev pri vejitvah (vejitvenih ukazih) v območju • 8-bitnega predznačenega odmika od PC (“short branch”), • 16-bitnega predznačenega odmika od PC (“long branch”). • Primeri: • BRA nekam8 ;relativna (brezpogojna) kratka vejitev • LBRA nekam16 ;relativna (brezpogojna) dolga vejitev • BNE nekam8 ;vejitev v primeru neničelne vrednosti • LBNE nekam16 • ....

  21. Načini naslavljanja:indeksno • 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 (“močnih”) oblik indeksnega naslavljanja: • s 5,9,16-bitnim predznačenim (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 način naslavljanja.

  22. Načini naslavljanja:indeksno • Nekaj primerov: ; 5-bitni predznačen 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 predznačen odmik LDAB $FF,Y ;A  (Y+$FF) STAB -$20,Y ;B  (Y-$20) ;16-bitni predznačen odmik .....

  23. Načini naslavljanja:indeksno • Nekaj primerov: ; avtomatsko dekrementiranje/inkrementiranje pred ali po operaciji LDAA 1,X+ ;napolni A s pom.besedo z naslovom v X ;A  (X), povečaj X za 1, X  X+1 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 .....

  24. Načini naslavljanja:indeksno • Indeksno indirektno (t.j. Posredno z indeksiranjem) LDAA [$10,X] ;naslov operanda EA je na X+$10,X+$11 • Pa še spremenljiv odmik LDAA B,X ;EA je B+X • Pa še posredno s spremenljivim odmikom LDAA [D,Y] ...... JMP [D,PC] ;”skočna” tabela DC.W ;prvi skočni naslov DC.W ;drugi DC.W ;tretji, i.t.d.

  25. HCS12 – ukazi tipa LOAD, STORE

  26. Prenos (TRF), premik (MOV), menjava (EXG) Med registri Pomnilnik

  27. Seštevanje, odštevanje

  28. Zvečanje, zmanjšanje

  29. Primerjanje, testiranje

  30. Logične operacije

  31. Brisanje, komplementiranje, negiranje

  32. Množenje, deljenje

  33. Bitne operacije

  34. Ukazi pomika, rotacije

  35. Vejitve, kratke

  36. Vejitve, dolge

  37. Vejitve, bitne

  38. Operacije z indeksnim registrom

  39. Operacije s skladovnim kazalcem

  40. “Polnjenje” dejanskega naslova(EA)

  41. Operacije z registrom CCR

  42. Skoki, vejitve in subrutine

  43. Prekinitve

  44. Prazne operacije

  45. Ukaza STOP in WAI

More Related