MSP430

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 2. heinäkuuta 2015 tarkistetusta versiosta . tarkastukset vaativat 12 muokkausta .

MSP430  on Texas Instrumentsin 16-bittisten mikro - ohjainten perhe .

Luomisen historia ja erikoisominaisuudet

Ensimmäinen ohjain, jonka lyhenne on MSP430, ilmestyi vuonna 1992 [1] . TI ilmoitti haluavansa luoda mikro-ohjaimen, jonka ohjausjärjestelmä on lähellä 70- ja 80- luvuilla suosittua PDP-11- arkkitehtuuria .

MSP430-ydin on 16-bittinen. He yrittivät tehdä komentojärjestelmästä mahdollisimman ortogonaalisen useilla eri osoitusmenetelmillä. Käskyjärjestelmän ortogonaalisuus tarkoittaa, että missä tahansa käskyssä voidaan käyttää mitä tahansa menetelmää operandin osoittamiseksi: vakiota, suoraan rekisteristä tai muistista, epäsuoraa jne.

Perheen syntymän aikaan pääpaino oli energiankulutuksen vähentämisessä. Siitä lähtien energiansäästöstä on kuitenkin tullut kiinteä ajatus elektroniikkatekniikassa, ja muut valmistajat, joilla on omat arkkitehtuurinsa, ovat aktiivisesti syrjäyttäneet MSP430:n tällä jalustalla.

MSP430-perheen avainero ja "käyntikortti" on kyky kellota mitä tahansa oheismoduulia asynkronisesti ytimestä. Suurimmassa osassa yksisiruisista mikro-ohjaimista reuna on synkroninen ytimen kanssa (joitakin erikoissolmuja lukuun ottamatta). Tämän ominaisuuden avulla voit joustavasti ohjata kunkin moduulin nopeutta (ja siten kulutusta). Lisäksi USB - liitäntämoduuli on myös ainutlaatuinen: siinä on erillinen tehoalue, mikä yksinkertaistaa akkukäyttöisten laitteiden kehittämistä USB-liitännällä.

Nykyään MSP430-perhe tarjoaa laajan valikoiman yksisiruisia mikro-ohjaimia, joissa on flash-muisti aina 512 kilotavuun asti ja RAM 64 kilotavuun asti. Ydinkellotaajuus jopa 25 MHz.

MSP430 Command System

MSP430:ssa on Von Neumann -arkkitehtuuri, jossa on yksi osoitetila komennoille ja datalle. Muistia voidaan käsitellä sekä tavu-tavulta että sana sanalta. 16-bittisten sanojen tallennusjärjestys on nuorimmasta vanhimpaan ( englanniksi  little-endian ).

Prosessori sisältää 16 16-bittistä ortogonaalista rekisteriä. R0-rekisteriä käytetään ohjelmalaskurina ( Program Counter - PC ), R1-rekisteriä pinoosoittimena ( englanniksi Stack  Pointer - SP ), R2-rekisteriä tilarekisterinä ( Status Register - SR ) ja R3:a erikoisrekisterinä. rekisteriä kutsutaan vakiogeneraattoriksi ( eng. Constant Generator - CG ), R2:ta voidaan käyttää myös vakiogeneraattorina. Vakiogeneraattoria käytetään lyhentämään käskyn kokonaispituutta vakion implisiittisen esityksen vuoksi opkoodissa. Rekisterejä R4 - R15 käytetään yleiskäyttöisinä rekistereinä.    

Ohjesarja on hyvin yksinkertainen ja sitä edustaa 27 käskyä, 24 emuloitua käskyä. Ohjeissa on sekä 8-bittinen (tavu) että 16-bittinen (sana) operandikäsittelymuoto. Mustavalko-bitti ohjaa tätä ominaisuutta.

MSP430 komentojärjestelmä
viisitoista neljätoista 13 12 yksitoista kymmenen 9 kahdeksan 7 6 5 neljä 3 2 yksi 0 Tiimi
0 0 0 yksi 0 0 opcode B/W Kuten rekisteröidy Yhden operandin ohjeet
0 0 0 yksi 0 0 0 0 0 B/W Kuten rekisteröidy RRC Kierrä oikealle kuljetuksen kautta
0 0 0 yksi 0 0 0 0 yksi 0 Kuten rekisteröidy SWPB- tavunvaihto
0 0 0 yksi 0 0 0 yksi 0 B/W Kuten rekisteröidy RRA Kierto oikealle aritmetiikka
0 0 0 yksi 0 0 0 yksi yksi 0 Kuten rekisteröidy SXT Merkitse tavun laajennus sanaksi
0 0 0 yksi 0 0 yksi 0 0 B/W Kuten rekisteröidy PUSH Työnnä operandi pinoon
0 0 0 yksi 0 0 yksi 0 yksi 0 Kuten rekisteröidy CALL Aliohjelman kutsu; tallenna tietokone pinoon ja lataa tietokoneeseen uusi arvo
0 0 0 yksi 0 0 yksi yksi 0 0 0 0 0 0 0 0 RETI Paluu keskeytyksestä; Pop SR ja PC pinosta
0 0 yksi kunto 10-bittinen etumerkkisiirtymä Ehdollinen haara; PC=PC+2×offset
0 0 yksi 0 0 0 10-bittinen etumerkkisiirtymä JNE / JNZ Hyppää, jos ei_saa/ei_nolla
0 0 yksi 0 0 yksi 10-bittinen etumerkkisiirtymä JEQ / JZ Hyppää, jos yhtä suuri/nolla
0 0 yksi 0 yksi 0 10-bittinen etumerkkisiirtymä JNC / JLO Hyppää if not_carry/below (allekirjoittamaton vertailu)
0 0 yksi 0 yksi yksi 10-bittinen etumerkkisiirtymä JC / JHS Hyppää, jos kantaa/korkeampi tai sama (allekirjoittamaton vertailu)
0 0 yksi yksi 0 0 10-bittinen etumerkkisiirtymä JN Hyppää, jos negatiivinen
0 0 yksi yksi 0 yksi 10-bittinen etumerkkisiirtymä JGE Hyppää, jos suurempi_tai_yhtä
0 0 yksi yksi yksi 0 10-bittinen etumerkkisiirtymä JL Hyppää jos vähemmän
0 0 yksi yksi yksi yksi 10-bittinen etumerkkisiirtymä JMP- hyppy (välitön)
opcode lähde Ilmoitus B/W Kuten määränpäähän Kahden operandin aritmetiikka
0 yksi 0 0 lähde Ilmoitus B/W Kuten määränpäähän MOV Lähetä lähde kohteeseen
0 yksi 0 yksi lähde Ilmoitus B/W Kuten määränpäähän LISÄÄ Lisää lähde määränpäähän
0 yksi yksi 0 lähde Ilmoitus B/W Kuten määränpäähän ADDC Lisää lähde_ja_siirto kohteeseen
0 yksi yksi yksi lähde Ilmoitus B/W Kuten määränpäähän SUBC Vähennä lähde määränpäästä (kannolla)
yksi 0 0 0 lähde Ilmoitus B/W Kuten määränpäähän SUB Vähennä lähde kohteesta
yksi 0 0 yksi lähde Ilmoitus B/W Kuten määränpäähän CMP Vertaa (vähennä) lähdettä kohteeseen
yksi 0 yksi 0 lähde Ilmoitus B/W Kuten määränpäähän DADD Desimaali Lähteen ja määränpään desimaalien yhteenlaskettu (siirto)
yksi 0 yksi yksi lähde Ilmoitus B/W Kuten määränpäähän BITTI Lähteen ja kohteen bittitarkistus (JA toiminta).
yksi yksi 0 0 lähde Ilmoitus B/W Kuten määränpäähän BIC -bittihuuhtelu (dest &= ~src)
yksi yksi 0 yksi lähde Ilmoitus B/W Kuten määränpäähän BIS -bittiasetus (looginen TAI)
yksi yksi yksi 0 lähde Ilmoitus B/W Kuten määränpäähän XOR Exclusive tai lähde-kohde
yksi yksi yksi yksi lähde Ilmoitus B/W Kuten määränpäähän AND Looginen AND lähde määränpään kanssa (dest &= src)

Kaikki ohjeet ovat 16-bittisiä. 4 operandin osoitusmenetelmää, jotka on määritelty kahdessa bitissä As-kenttään.

Kenttä As—Rekisteröity, indeksoitu, epäsuora-rekisteröity, epäsuora-rekisteröity jälkivähennyksellä. Mainos-kentässä määritellään kaksi osoitusmenetelmää - rekisteri ja indeksi.

MSP430 Osoitetila
Kuten Rekisteröidy Syntaksi Kuvaus
00 n R n Rekisteröidy. Operandi on yhden Rn: n rekisterin sisältö .
01 n x (R n ) indeksi. Operandi on muistissa osoitteessa R n + x .

X-sana on nykyisen komennon jälkeen.

kymmenen n @Rn _ Epäsuora rekisteri. Operandi sijaitsee muistissa rekisterin Rn sisältämässä osoitteessa .
yksitoista n @ Rn + Epäsuora rekisteri automaattisella lisäyksellä. Mustavalko-bitin arvosta riippuen Rn- rekisterin arvoa kasvatetaan toiminnon päätyttyä 1 tai 2.
Osoitetilat käytettäessä R0 (PC)
01 0 (PC) LABEL Sukulainen (hahmo). x(PC) Muistioperandi kohdassa PC+ x .
yksitoista 0 (PC) # x Suoraan. @PC+ X-sanan operandin osoite nykyisen käskyn jälkeen.
Käyttämällä R2 (SR) ja R3 (CG), erityinen dekoodaustapa
01 2 (SR) & etiketti Ehdoton. Operandi muistissa x :stä otetussa osoitteessa .
kymmenen 2 (SR) #neljä Vakio 4.
yksitoista 2 (SR) #kahdeksan Vakio 8.
00 3 (CG) #0 Vakio 0.
01 3 (CG) #yksi Vakio 1. tavuoperaatioille.
kymmenen 3 (CG) #2 Vakio 2.
yksitoista 3 (CG) #-yksi Vakio −1 tai 0xFFFF.

Muistikirja emuloiduille komentoille

Muut MSP430-asamblerin tukemat ohjeet muodostetaan pääkäskyistä ja niitä kutsutaan emuloiduiksi (hankintatapa on suluissa). Kokoonpanijan tukemien emuloitujen ohjeiden kokonaismäärä on 24.

CLRZ - Tyhjennä prosessorin tilarekisteri (PSW) Z Lippu ( BIC #2,SR ) CLRN - Tyhjennä prosessorin tilarekisteri (PSW) Lippu N ( BIC #4,SR ) CLRC - Tyhjennä prosessorin tilarekisteri (PSW) Lippu C ( BIC # 1,SR) SETZ - Aseta prosessorin tilarekisterin (PSW) Z-lippu ( BIS #2,SR ) SETN - Aseta prosessorin tilarekisterin (PSW) N-lippu ( BIS #4,SR ) SETC - Aseta prosessorin tilarekisterin C-lippu Prosessorin tilarekisteri (PSW) (BIS # 1,SR) EINT - ota keskeytykset käyttöön ( BIC #8,SR ) DINT - poista keskeytykset käytöstä ( BIS #8,SR ) CLR dst - Tyhjennä operandi ( MOV #0,dst ) TST dst - Tarkista operandi nollasta ( CMP #0,dst ) INV dst - Kääntele operandibitit ( XOR #-1,dst ) ADC dst - lisää siirto operandiin ( ADDC #0,dst ) DADC dst - lisää desimaalisiirto kohteeseen ( DADD #0,dst ) SBC dst - vähennä siirto operaandista ( SUBC #0,dst) INC dst - operandin lisäys ( ADD #1,dst ) DEC dst - operandin vähennys ( SUB #1,dst ) INCD dst - lisäys 2 operandilla ( ADD #2,dst ) DECD dst - vähennys 2 operandilla ( SUB #2, dst) RLA dst - operandin siirto vasemmalle, siirtolippu täytetään yläbitistä ja tuloksen alhainen bitti on -0 ( ADD dst,dst ) RLC dst - operandin siirto vasemmalle siirtoa käyttäen ( ADDC dst,dst ) RET - paluu aliohjelmasta ( MOV @sp+,pc ) POP dst - pop-operandi pinosta ( MOV @sp+,dst ) BR dst - ohjelman hyppy operandilla ( MOV dst,pc) NOP - ei toimintaa (MOV r3,r3) on olemassa muita mahdollisia operaatioita ohjelmakoodin suoritusviiveen generoimiseksi

Huomautus: kirjoituskomentojen muoto annetaan ilmoittamatta operandityyppiä tavu/sana.

Kokoonpanijan tukema komentomuoto muistiinpanossa ilmaisee käsiteltävän tiedon tyypin.

Muistiinpanot

  1. STEPHEN EVANCZUK.  Suosituimmat MCU :t koskaan  ? . https://www.edn.com/ (20. elokuuta 2013). Haettu 15. tammikuuta 2021. Arkistoitu alkuperäisestä 9. kesäkuuta 2021.

Linkit

Kääntäjät ja kokoajat

Emulaattorit

Hyödyllisiä linkkejä