MICROCHIP PIC24 Dual Partition Flash-ohjelmamuisti
Tuotetiedot
Kaikissa PIC24- ja dsPIC33-laitteissa on sisäinen ohjelmoitava Flash-ryhmä, jota voidaan käyttää käyttäjäkoodin suorittamiseen. Flash-ryhmällä on pitkä säilytysikä ja suuri luku-/kirjoitusjaksojen määrä, mikä tarjoaa suurta joustavuutta koodin kehittämisessä ja tallentamisessa. Kaksiosioisesta Flash-ohjelmamuistista on päivitetty versio uusilla ominaisuuksilla.
- Osoitetila: PIC24- ja dsPIC33-laitteet osoittavat 4M x 24-bittisen ohjelmamuistin osoiteavaruuden.
- Käyttäjän ohjelmatila: Ohjelmamuistikartta on jaettu tasan käyttäjän ohjelmatilaan (000000h - 7FFFFH).
- Asetusmuistitila: Ohjelmamuistikartta on jaettu tasan konfigurointi- (tai testi) muistitilaan (800000h - FFFFFFh).
- Pääsy ohjelmatilaan: Ohjelmatilaan pääsee käsiksi kolmella tavalla:
- 23-bittinen ohjelmalaskuri (PC).
- Table Read (TBLRD) ja Table Write (TBLWT) -ohjeet.
- Kuvaamalla mikä tahansa 32 kilotavun ohjelmamuistin segmentti tietomuistin osoiteavaruuteen.
JOHDANTO
Kaikissa PIC24- ja dsPIC33-laitteissa on sisäinen ohjelmoitava Flash-ryhmä käyttäjäkoodin suorittamista varten. Kestävä Flash-taulukko tarjoaa suurta joustavuutta koodin kehittämisessä ja tallentamisessa yhdistäen pitkän säilytysajan suureen luku-/kirjoitusjaksojen määrään.
Tämä Flash-ohjelmamuistin versio lisää seuraavat uudet ominaisuudet:
- Dual Partition Flash -toiminto, joka mahdollistaa tukevien käynnistyslatausjärjestelmien tuen ja sovelluskoodin virheettömän tallennuksen sekä vaihtoehdot, jotka on suunniteltu parantamaan koodin suojausta
- LiveUpdate-toiminto, jonka avulla ei-aktiivista koodisegmenttiä (CS) voidaan muokata tai poistaa kokonaan, kun pääsovellus jatkaa suoritusta
- Flash-taulukon suora ajonaikainen ohjelmointi data-RAM-tilasta, valinnainen data-RAM-kuvan pakkaus
Tuotteen käyttö
Voit käyttää kaksoisosiota Flash-ohjelmamuistia seuraavasti:
- Katso nykyisen laitteen tietosivun Dual Partition Flash Program Memory -luvun alussa oleva huomautus tarkistaaksesi, tukeeko tämä asiakirja käyttämääsi laitetta.
- Lataa laitteen tietolomakkeet ja perheen viitekäsikirjat Microchip Worldwide -sivustolta Websivusto osoitteessa: http://www.microchip.com.
- Käytä ohjelmatilaa millä tahansa kolmesta edellä kuvatusta menetelmästä.
- Toteutettu ohjelmamuisti voidaan jakaa edelleen vektorialueeseen, joka sisältää Reset- ja keskeytysvektorit, sekä koodialueeseen, joka sisältää myös Flash-konfigurointitiedot. Pääsy käyttäjän ohjelmatilan toteuttamattomiin alueisiin (eli ohjelmamuistin toteutetun ylärajan yläpuolelle) aiheuttaa osoitevirheloukun.
OHJELMAN MUISTIN ARKKITEKTUURI
PIC24- ja dsPIC33-laitteet osoittavat 4M x 24-bittisen ohjelmamuistin osoiteavaruuden, kuten kuvassa 2-1. Ohjelmamuistikartta on jaettu tasan käyttäjän ohjelmatilaan (000000h - 7FFFFFFh) ja konfigurointi- (tai testi)muistitilaan (800000h - FFFFFFh). Käyttäjän ohjelmatila sisältää Reset-vektorin, keskeytysvektoritaulukot (IVT) ja ohjelmamuistin. Ohjelmatilaan pääsee käsiksi kolmella tavalla.
- 23-bittinen ohjelmalaskuri (PC).
- Table Read (TBLRD) ja Table Write (TBLWT) -ohjeet.
- Kuvaamalla mikä tahansa 32 kilotavun ohjelmamuistin segmentti tietomuistin osoiteavaruuteen.
Toteutettu ohjelmamuisti voidaan jakaa edelleen vektorialueeseen, joka sisältää Reset- ja keskeytysvektorit, sekä koodialueeseen, joka sisältää myös Flash-konfigurointitiedot. Pääsy käyttäjän ohjelmatilan toteuttamattomiin alueisiin (eli ohjelmamuistin toteutetun ylärajan yläpuolelle) aiheuttaa osoitevirheloukun.
Vektorialue
Vektorialue alkaa ohjelmamuistitilan alusta, kohdasta 000000h. Se sisältää Master Reset -vektorin, laitteiston keskeytysvektorit ja keskeytysvektoritaulukon (IVT) kaikille toteutetuille laitteistokeskeytyksille.
Arkkitehtonisista eroista ja IVT:n koosta johtuen vektorialue vie eri määrän muistia eri laiteperheissä. PIC24-laitteissa vektorialue ulottuu 0000FEh:iin. DsPIC33-laitteissa vektorialue ulottuu arvoon 0001FEh. Kuva 2-2 näyttää eron eri laitteiden IVT:iden välillä. Laiteperheestä riippumatta laitteiston keskeytysvektorit alkavat aina 000014h:sta keskeytysvektorilla 0.
Vektorialue vastaa suunnilleen CodeGuard™-tietoturvatoteutusten vektorisegmenttiä (VS). Suojauskokoonpanosta riippuen vektorialuetta voidaan käsitellä osana käynnistyssegmenttiä (BS) tai yleistä segmenttiä (GS).
VAIHTOEHTOINEN VEKTORIN KESKEYTYSTAULUKKO
Kaikki dsPIC33- ja PIC24-laitteet mahdollistavat AIVT:n (Alternate IVT) toteutuksen, jota voidaan käyttää korkean turvatason koodisovelluksissa ja vaihtoehtoisten poikkeusten käsittelyssä. Toisin kuin näiden perheiden aikaisemmat laitteet, AIVT:tä ei ole varattu pysyvästi ohjelmamuistiin kiinteälle osoitealueelle. Sen sijaan AIVT on läsnä vain, kun:
- CodeGuard-suojaus on määritetty käynnistyssegmentille, jonka koko on vähintään kaksi sivua (asettaa FBSLIM-määritysrekisterin) ja
- AIVT otetaan käyttöön ohjelmoimalla AIVTDIS-määritysbitin arvoksi '0'.
Kun AIVT on käytössä, se sijaitsee osoitealueella, joka alkaa tukiaseman viimeisen sivun alusta; jokainen vektori sijaitsee kiinteällä siirrolla sivun rajasta. AIVT:n kokonaiskoko ja sisältö (eli vektorijärjestys) heijastelee IVT:n koko ja sisältö.
Koodialue
Koodialue on käyttäjän ohjelmamuistin alue, joka sisältää käyttäjän sovelluskoodin. Se ulottuu vektorialueen lopusta Flash-määrityssanojen alkuun. Jos käynnistyssegmentti on toteutettu, se alkaa vektorialueen lopusta ja ulottuu ennalta määrätylle alueelle. Koodialueen osa, joka ei ole käynnistyssegmentissä, vastaa CodeGuard-turvajärjestelmien yleistä segmenttiä (GS). Lukuun ottamatta Flash-määrityssanoja toteutetun muistin lopussa, kuten alla on kuvattu, koko alue on käytettävissä sovelluskoodille.
FLASH-KONFIGUROINTITIEDOT
Toteutetun Flash-ohjelman muistin lopussa oleva alue (tyypillisesti viimeinen rivi) on varattu Flash-määritystiedoille. Laitteen nollauksessa nämä konfigurointitiedot kopioidaan asianmukaisiin laitteen kokoonpanorekistereihin, jotka eivät ole käyttäjän käytettävissä. Laitteen konfigurointitiedot voidaan ohjelmoida vain ohjelmoimalla haluamasi arvot Flash-konfiguraatiosanoissa.
Konfigurointibittien määrä, järjestys ja järjestys vaihtelevat laitearkkitehtuurien ja saman arkkitehtuurin sisällä olevien laiteperheiden välillä. Jotkut laitteet järjestävät määritysbitit 16-bittisiksi konfigurointisanoiksi, jotka on yleensä ryhmitelty toiminnallisin termein. Muut laitteet järjestävät määritysbitit yksilöllisesti osoitettavien konfigurointitavujen mukaan. Kuva 2-3 näyttää alueen konfigurointisanoille järjestetyssä muodossa. Katso perhekohtaiset tiedot laitteen teknisistä tiedoista.
Laitteissa, joissa on Dual Partition -ominaisuus, FBTSEQ-määrityssana on yleensä viimeinen konfigurointisana, joka sijaitsee toteutetun ohjelmamuistin lopussa.
Muistin organisaatio
Ohjelman muistitila on järjestetty sanaosoittettaviksi lohkoiksi. Vaikka sitä käsitellään 24 bitin levyisenä, on tarkoituksenmukaisempaa ajatella ohjelmamuistin jokaista osoitetta alempana ja ylempänä sanana, jolloin ylemmän sanan ylempi tavu on toteuttamatta. Alemmalla sanalla on aina parillinen osoite, kun taas ylemmällä sanalla on pariton osoite (Kuva 2-4). Ohjelmamuistin osoitteet ja PC on aina kohdistettu alemmalla sanalla (eli vähiten merkitsevä bitti (LSb) on aina '0'). Osoitteita kasvatetaan tai vähennetään kahdella koodin suorittamisen aikana.
OHJELMAN MUISTIN KÄYTTÖ
Normaalia koodin suorittamista varten ohjelmalaskuri (PC) tarjoaa suorituksen tehollisen osoitteen (EA). PC on 23 bittiä leveä, mikä mahdollistaa suoran pääsyn mihin tahansa paikkaan käyttäjän ohjelmatilassa. PC[0] on kiinteä '0' ohjelmointikäskyjen tasauksen säilyttämiseksi. PC:tä kasvatetaan seuraavaan peräkkäiseen osoitteeseen lisäämällä PC[1], jolloin PC:n arvo kasvaa kahdella.
Taulukon luku- ja kirjoitusoperaatioissa EA luodaan ketjuttamalla 16-bittinen osoite yhdestä W-rekisteristä 8-bittiseen osoitteeseen TBLPAG-rekisteristä. Tämä sallii taulukkotoimintojen pääsyn sekä käyttäjä- että määritystiloihin. Osoitteiden luonti taulukkotoimintoja varten on käsitelty tarkemmin kohdassa 4.2.1 “Osoitteiden luominen taulukkooperaatioille”.
Extended Data Space (EDS) ja Program Space Visibility (PSV) -operaatioita varten EA luodaan ketjuttamalla W-rekisterin alemmat 15 bittiä joko DSRPAG/DSWPAG:n (dsPIC8) tai PSVPAG:n (PIC33F) 24-bittiseen osoitteeseen. rekisterit. Laajennetun tietotilan ja ohjelmatilan näkyvyyden toimintoja käsitellään "dsPIC33/PIC24-perheen käsikirjassa", "Data Memory" (dsPIC33, DS70595) ja/tai "Data Memory" (PIC24, DS30009717).
OHJELMAN MUISTIOSION FLASH-KÄYTTÖ
Dual Partition Flash -ominaisuuden omaaville laitteille Dual Partition Program Memory -tila valitaan ohjelmoimalla BTMODE[1:0]-bitit FBOOT Configuration Wordiin. Toisin kuin muut määrityssanat, FBOOT sijaitsee määritysmuistitilassa, erillään kaikista muista Flash-määritysrekistereistä. Tarkka osoite on arkkitehtuurikohtainen (eli PIC24 tai dsPIC33) ja voi vaihdella laiteperheiden välillä. Taulukko 3-1 luettelee mahdolliset Flash-osion vaihtoehdot, joita käsitellään seuraavissa osissa.
Kun laite ohjelmoidaan ensimmäisen kerran In-Circuit Serial Programming™ (ICSP™) -ohjelmalla, ohjelmoijan tulee ohjelmoida FBOOT asettamaan laitteen Flash Partition -tila oikein. Huomaa, että FBOOTia ei voi ohjelmoida uudelleen ajon aikana RTSP:n (Run-Time Self-Programming) avulla. Ohjelmoijan on määritettävä FBOOT-bitit ICSP-tilassa. Tämä johtuu siitä, että Flash-määrityssanojen sijainti muuttuu Standard Partition -tilasta kaksoisosiotilaan, mikä voi aiheuttaa odottamattoman laitteen toiminnan.
Taulukko 3-1: Flash-osion asetukset
BTMODE[1:0] | Osiovaihtoehto |
11 | Vakiotila (yksi osio, oletus) |
10 | Dual Partition Mode |
01 | Suojattu kaksoisosiotila |
00 | Etuoikeutettu kaksoisosiotila(1) |
Huomautus 1: Ei käytössä kaikissa Dual Partition -laitteissa.
Vakio (yksi osio) -tila
Vakiotila, jota kutsutaan myös Single Partition- tai Standard Partition -tilaksi, on ohjelmamuistin oletuskäyttötila. Se valitaan, kun BTMODEx-konfiguraatiobitit ovat '11' (niiden ohjelmoimaton konfiguraatio). Tämä on myös kaikkien aiempien dsPIC33- ja PIC24-laitteiden yhden ohjelman muistin toimintatila. Vakiotilassa koko käyttäjäohjelman muisti kartoitetaan tasaiseksi, jatkuvaksi muistitilaksi, joka vaihtelee 000000h:sta toteutetun Flash-muistin ylärajaan. esimample, laitteen, jossa on 256 kt Flash-muistia, ohjelmamuistin osoitealue on 000000h - 02AFFFh, ja tämän alueen yläpuolella olevia osoitteita ei ole toteutettu. Koko toteutettu muistialue (pois lukien varatut tilat Reset vektoreille, IVT:ille ja Flash Configuration Words -sanoille) on käytettävissä käyttäjän sovellukselle. Laitteissa, joissa on segmentoitu koodisuojaus, käynnistyssegmentti voidaan myös toteuttaa.
Dual Partition Modes
Kun BTMODEx-määritysbitit on ohjelmoitu muuhun arvoon kuin '11', laite toimii yhdessä kolmesta kaksoisosion tilasta. Kaikissa näissä tiloissa toteutettu Flash-muisti on jaettu symmetrisesti kahteen alueeseen: aktiivinen osio, joka alkaa 000000h, ja ei-aktiivinen osio, joka alkaa 400000h. Laitteelle edellisessä esimample, 256 kilotavun Flash-muisti toteutettaisiin kahtena 128 kilotavun alueena, jotka vaihtelevat osoitteista 000000h - 0157FFh ja 400000h - 4157FFh. Näiden kahden alueen välisiä osoitteita ei ole toteutettu (katso kuva 3-1).
Dual Partition -tiloissa laitteeseen voidaan ohjelmoida kaksi riippumatonta sovellusta, yksi kumpaankin kahdesta Flash-muistiosioista, jotka tunnetaan nimellä Partition 1 ja Partition 2. Kun laite alustetaan, toinen niistä kartoitetaan dynaamisesti aktiiviseen osioon ja teloitettu. Toinen on kartoitettu ei-aktiiviseen osioon, jossa se on edelleen käytettävissä muistitoimintojen ohjelmointiin. Osion määrittäminen aktiiviseen tai ei-aktiiviseen osioon määritetään automaattisesti koodiallekirjoituksella, joka tunnetaan nimellä Boot Sequence Number. Koodiosioita voidaan myös vaihtaa aktiivisten ja ei-aktiivisten osioiden välillä ajon aikana ohjelmiston ohjauksessa.
Kaksoisosion tilat sallivat aktiivisen osion sovelluksen käyttää (mutta ei suorittaa) ei-aktiivisen osion ohjelmatietoja tai ohjelmoida ei-aktiivisen osion uudelleen. Inaktiivisen osion Flash-muistiin kirjoittaminen ei vaadi suorittimen pysähtymistä Flash-kirjoituksen aikana. Tämä mahdollistaa LiveUpdate-toiminnallisuuden, jossa kriittisten ohjaustoimintojen suorittaminen tai ajoitusherkkä tietoliikenne voi tapahtua samanaikaisesti sovelluspäivitysten kanssa. Tietyt Dual Partition -tilat asettavat prosessille lisärajoituksia koodin turvallisuuden ja toiminnan kestävyyden varmistamiseksi. Koodia ei voida suorittaa, kun se on yhdistetty ei-aktiiviseen osioon. Osiot voidaan vaihtaa, mutta vain aktiivisen osion koodia voidaan suorittaa.
- DUAL OSIOTILA
Yksinkertaisin kaksoisosiotila ei aseta rajoituksia toimille aktiivisesta osiosta osion 1 tai 2 koodiin. Kaikki rajoitukset koodisegmenttien väliselle vuorovaikutukselle eri osioissa määräytyvät parannettujen suojausominaisuuksien kokoonpanosta. - SUOJATTU DUAL OSIOTILA
Suojattu kaksoisosiotila suojaa oletuskoodisegmenttiä (osio 1) kaikilta Flash-kirjoitus- tai poistotoiminnoilta. Tämä mahdollistaa "tehdasoletus"-tilan toteuttamisen sallimalla virheettömän varmuuskopion tallentamisen osioon 1. Kun suojattua kaksoisosiotilaa käytetään, osiota 1 ei voi kirjoittaa tai poistaa Flash-muistitoiminnoilla sen ollessa ei-aktiivinen osio. Jos osio 1 on myös kirjoitussuojattu konfiguraatiobittiasetusten kautta, sitä ei voi poistaa tai kirjoittaa milloin tahansa. Sitä vastoin osio 2 voidaan poistaa tai kirjoittaa operaatioilla kummasta tahansa osiosta. Tämä mahdollistaa virheettömän käynnistyslataimen sijoittamisen osioon 1 sekä vikasietoisen varmuuskopiotiedoston. Tämä koodikuva voidaan sitten suorittaa oletuksena ja sitä voidaan käyttää osion 2 uudelleenkirjoittamiseen siinä tapauksessa, että Flash-päivitys epäonnistuu. - EDELLYTETTY DUAL OSIOTILA
Privileged Dual Partition -tila ottaa käyttöön lisäsuojauksia niissä tapauksissa, joissa sovelluksessa voi olla eri tekijöiden kirjoittamia koodisegmenttejä ja korkeampi turvallisuustaso vaaditaan immateriaalioikeuksien suojaamiseksi jollekin näistä segmenteistä. Example olisi järjestelmä, jossa suurimman osan koodista kirjoittaa laitteiston sovelluskehittäjä, mutta joka sisältää patentoidun, kolmannen osapuolen kirjaston. Tämä tila on suunniteltu toimimaan tiettyjen laitteiden parannettujen suojausominaisuuksien kanssa, jotka voivat valikoivasti suojata eri koodisegmenttejä ohjelmamuistitilassa.
Privileged Dual Partition -tila eroaa Standard Dual Partition -tilasta lisäämällä erityissuojauksen molempien osioiden BSLIMx-määritysbitteihin. Tämä suojaus lukitsee bitit tehokkaasti ja estää käynnistyssegmentin ja yleissegmentin koon muutokset. Oikeilla suojausasetuksella tämä varmistaa, että kumpaakaan segmenttiä ei muuteta tai lueta odottamatta ajon aikana.
Privileged Dual Partition -tilaa ei ole otettu käyttöön kaikissa laitteissa, joissa on Dual Partition -ominaisuus. Katso lisätietoja laitteen tietolehdestä. - KOODIOSIOON VALINTA
Kaksoisosiotiloissa on kaksi tapaa määrittää, mikä osio yhdistetään aktiiviseen osioon ja suoritetaan: Boot Sequence Number ja BOOTSWP-käsky. P2ACTIV-bittiä (NVMCON[10]) voidaan käyttää määrittämään, mikä fyysinen osio on aktiivinen osio. Jos P2ACTIV = 1, osio 2 on aktiivinen; jos P2ACTIV = 0, osio 1 on aktiivinen. Boot Sequence Number on 12-bittinen arvo, jota käytetään aktiivisen osion automaattiseen määrittämiseen laitteen nollauksen yhteydessä. Jokaisella osiolla tulee olla yksilöllinen Boot Sequence Number, joka on tallennettu FBTSEQ Flash Configuration Wordiin. BOOTSWP-ohjetta käytetään aktiivisten ja ei-aktiivisten osien vaihtamiseen ilman laitteen nollausta.- Käynnistysjärjestysnumero
12-bittinen käynnistysjärjestysnumero on tallennettu FBTSEQ Flash Configuration Wordiin, joka sijaitsee aina käyttäjän ohjelman muistin viimeisessä paikassa, muiden Flash-määrityssanojen yläpuolella (katso kuva 3-2). Toisin kuin muut konfigurointirekisterit, jotka käyttävät vain ohjelman muistisanan alempia 16 bittiä, FBTSEQ on täydet 24 bittiä leveä. Jokaisella osiolla tulee normaaleissa käyttöolosuhteissa olla eri arvo FBTSEQ:lle. Kun Dual Partition -tiloja ei käytetä, FBTSEQ-arvo ohitetaan.
Boot Sequence Number on tallennettu kahteen osaan: todellinen arvo bittikenttään, BSEQx
(FBTSEQ[11:0]) ja IBSEQx-bittikentän arvon yksi komplementti
(FBTSEQ[23:12]). Kun Boot Sequence Number luetaan laitteen nollauksen yhteydessä, BSEQx:n ja IBSEQx:n arvoja verrataan automaattisesti. Jos nämä kaksi arvoa eivät ole toisiaan täydentäviä, käynnistysjärjestysnumeroa pidetään virheellisenä. Laitteisto ei luo komplementtiarvoa automaattisesti, eikä laitteisto tarkista sitä ohjelmoinnin yhteydessä. Sovelluksen tulee laskea ja ohjelmoida sopiva arvo.
Laitteen nollauksen yhteydessä molempien osioiden käynnistysjärjestysnumeroita verrataan. Osio, jonka BSEQx-arvo on pienempi, on se, joka yhdistetään aktiiviseen osioon ja sen koodi suoritetaan. Jos jokin käynnistysjärjestysnumeroista on virheellinen, laite valitsee aktiiviseksi osioksi osion, jossa on kelvollinen käynnistysjärjestysnumero, riippumatta siitä, kumpi Boot Sequence Number on pienempi. Jos molemmat käynnistysjärjestysnumerot ovat virheellisiä, osio 1 valitaan oletusarvoisesti aktiiviseksi osioksi.
Osiot voidaan valmistaa vaihdettaviksi ajon aikana ohjelmoimalla ei-aktiivisen osion käynnistysjärjestysnumero uudelleen pienemmäksi. Kun nollaus suoritetaan, osio, jolla on pienempi arvo, tulee nyt aktiiviseksi. Tätä menetelmää käytetään, kun ei-aktiivinen osio on päivitetty, ja se yhdistetään aktiiviseen osioon nollauksen jälkeen.
FBTSEQ:n sijainnin ansiosta se voidaan helposti sulkea pois Flash-ohjelman muistin tarkistussummasta tai muusta tarkistuksesta. Koska FBTSEQ-arvo määritetään todennäköisesti ajon aikana (toisen osion BSEQx:n perusteella), sitä ei useinkaan voida sisällyttää tarkistussummaan, kuten CRC:hen.
Kuvan 3-3 yläosassa oleva järjestys näyttää koodiosien välisen suhteen, kun käynnistysjärjestysnumeroa muutetaan ja laitteen nollaus suoritetaan. - BOOTSWP-ohje
BOOTSWP-käsky on laajennus PIC24- ja dsPIC33-käskysarjaan. Se tukee koodia, LiveUpdate, sallimalla koodisegmenttien vaihtamisen aktiivisen ja ei-aktiivisen osion välillä ilman laitteen nollausta. BOOTSWP-ohjetta käyttävää osion vaihtoa kutsutaan "pehmeäksi vaihdoksi". BOOTSWP-käskyn suorittamiseksi konfigurointibitti BTSWP (FIDC[25]) on tyhjennettävä. Jos BOOTSWP-käskyä yritetään BTSWP asetettuna, tuloksena on NOP-käsky.
BOOTSWP-käskyä on aina seurattava yksisanainen käsky, joka kirjoittaa PC:n (esim. GOTO W, CALL W tai BRA W); käskyn kohteen on oltava osoitteessa, joka on enintään 32 kilotavua nykyisestä osoitteesta. Suorituksen yhteydessä aktiiviset ja ei-aktiiviset osiot vaihtavat paikkoja ja PC-vektorit GOTO-komennon määrittämiin sijaintiin uudessa aktiivisessa osiossa.
Huomautus: Jos BOOTSWP-käsky suoritetaan funktiosta, joka on luonut uuden pinokehyksen käyttämällä LNK-käskyä, BOOTSWP:n jälkeen on käytettävä CALL-komentoa GOTO:n sijaan; muuten laite luo pinovirheloukun.- BOOTSWP-käskyn suorittamisen jälkeen asetetaan SFTSWP-bitti (NVMCON[11]). Tämä bitti osoittaa laiteohjelmistolle, että BOOTSWP-käsky tapahtui oikein ja että tällä hetkellä aktiivinen osio syötettiin BOOTSWP:n kautta laitteen nollauksen sijaan. Tilabitti, P2ACTIV (NVMCON[10]), voidaan myös lukea aktiivisen osion tarkistamiseksi.
- On tärkeää huomata, että osion vaihdon jälkeen kaikki aiemmin käytössä olleet oheislaitteet ja keskeytykset pysyvät käytössä. Lisäksi RAM ja pino säilyttävät tilansa vaihdon jälkeen. On erittäin suositeltavaa, että pehmeää swapia käyttävät sovellukset siirtyvät rutiiniin, joka alustaa laitteen uudelleen varmistaakseen, että sovellus toimii edelleen odotetulla tavalla.
- Toiminnan kestävyyden vuoksi on välttämätöntä suorittaa standardi NVM-lukituksen avaussekvenssi ennen BOOTSWP-käskyn suorittamista (55h ja AAh kirjoittaminen NVMKEY-rekisteriin kahdessa peräkkäisessä vaiheessa; katso lisätietoja kohdasta 4.1 "Rekisterit"). On myös tärkeää poistaa keskeytykset käytöstä ennen lukituksen avaussekvenssin suorittamista. Jos lukituksen avaussekvenssiä ei suoriteta, BOOTSWP suoritetaan pakotettuna NOP:na. BOOTSWP:tä seuraava GOTO-käsky suoritetaan edelleen, jolloin tietokone siirtyy kyseiseen sijaintiin nykyisessä käyttöosiossa. Vastaavasti BOOTSWP:llä ei ole vaikutusta Standard Partition -tilassa.
- Kuvan 3-3 alaosassa oleva sekvenssi näyttää osioiden välisen suhteen, kun BOOTSWP-käsky suoritetaan. Huomaa, että BOOTSWP-osion muutos on väliaikainen; myöhemmän laitteen nollauksen jälkeen osio, jonka käynnistysjärjestysnumero on pienempi, määrätään uudelleen aktiiviselle osiolle.
- Käynnistysjärjestysnumero
FLASH-MUISTIN OHJELMOINTI
PIC24- ja dsPIC33-laitteet voidaan ohjelmoida jollakin kolmesta menetelmästä:
- Ajonaikainen itseohjelmointi (RTSP)
- In-Circuit Serial Programming™ (ICSP™)
- Enhanced In-Circuit Serial Programming (EICSP)
Sovellusohjelmisto suorittaa RTSP:n suorituksen aikana, kun taas ICSP ja EICSP suoritetaan ulkoisesta ohjelmoijasta käyttämällä sarjadatayhteyttä laitteeseen. ICSP ja EICSP mahdollistavat paljon nopeamman ohjelmointiajan kuin RTSP. RTSP-tekniikat kuvataan tässä osassa. ICSP- ja EICSP-protokollat on määritelty vastaavien laitteiden ohjelmointimäärittelydokumenteissa, jotka voidaan ladata Microchipistä. websivusto (www.microchip.com).
Rekisterit
Ohjelmointitoimintoja ohjataan kuuden rekisterin kautta. NVMCON- ja NVMKEY-rekistereillä otetaan käyttöön ja valitaan kaikki toiminnot. Loput neljä rekisteriä määrittävät data- ja osoiteosoittimet.
Huomautus: Kaikki laitteet eivät käytä data-RAM-puskuriohjelmointia. Katso lisätietoja laitteen tietolehdestä.
VALVONTA REKISTERIT
NVMCON-rekisteri (rekisteri 4-1) ohjaa kaikkia Flash-ohjelmointitoimintoja. NVMOP[3:0]-bitit (NVMCOM[3:0]) valitsevat tietyn suoritettavan kirjoitus- tai poistotoiminnon. WR-bitti (NVMCOM[15]) laukaisee sopivan toiminnon; se pysyy asetettuna, kunnes toiminto on suoritettu loppuun, ja sitten laitteisto tyhjentää sen. WREN-bitti (NVMCOM[14]) ottaa käyttöön tai poistaa käytöstä kirjoitus- ja poistotoiminnot. WR-bittiä ei voi asettaa laukaisemaan toimintoja, kun WREN on tyhjä.
NVMKEY-rekisteri (rekisteri 4-2) on vain kirjoitusrekisteri, jota käytetään estämään NVMCONin tahattomat kirjoitukset, jotka voivat vahingoittaa Flash-muistia. Kun lukitus on avattu, kirjoitus NVMCONiin sallitaan yhden käskyjakson ajan, jossa WR-bitti voidaan asettaa kutsumaan poisto- tai ohjelmarutiinia. Ajoitusvaatimukset huomioon ottaen keskeytykset on poistettava käytöstä.
Pyyhkimisen tai ohjelmoinnin aloittamiseksi käytetään seuraavia vaiheita:
- Poista keskeytykset käytöstä.
- Kirjoita 0x55 NVMKEY:lle.
- Kirjoita 0xAA NVMKEY:lle.
- Aloita ohjelmoinnin kirjoitussykli asettamalla WR-bitti (NVMCON[15]).
- Suorita kaksi NOP-käskyä.
- Palauta keskeytykset.
Example 4-1 näyttää kuinka lukituksen avausjakso suoritetaan.
Keskeytysten poistaminen käytöstä
Keskeytykset on poistettava käytöstä kaikissa Flash-toiminnoissa onnistuneen tuloksen varmistamiseksi. Jos keskeytys tapahtuu NVMKEY-lukituksen avaussekvenssin aikana, se voi estää WR-bitin kirjoittamisen. NVMKEY-lukituksen avaussekvenssi on suoritettava keskeytyksettä, kuten kohdassa 3.2 "Kaksoisosion tilat" on käsitelty. Keskeytykset voidaan poistaa käytöstä kahdella tavalla, poistamalla Global Interrupt Enable (GIE-bitti) käytöstä tai käyttämällä DISI-käskyä. DISI-käsky poistaa käytöstä vain prioriteetin 6 tai sitä alemmat keskeytykset, joten sitä ei suositella, vaan tulee käyttää Global Interrupt Enable -menetelmää.
CPU kirjoittaa GIE:hen kaksi käskyjaksoa ennen kuin se vaikuttaa koodinkulkuun. Kaksi NOP-ohjetta tarvitaan jälkikäteen, tai ne voidaan korvata millä tahansa muulla hyödyllisellä työohjeella, kuten NMVKEY:n lataaminen; tämä koskee sekä asetettuja että selkeitä operaatioita. Keskeytyksiä uudelleen otettaessa tulee olla varovainen, jotta NVM-kohdennettu rutiini ei salli keskeytyksiä, kun aiemmin kutsuttu toiminto on poistanut ne käytöstä muista syistä. Tämän korjaamiseksi Assemblyssa voidaan käyttää pinon push- ja pop-toimintoa GIE-bitin tilan säilyttämiseksi. C:ssä RAM:n muuttujaa voidaan käyttää INTCON2:n tallentamiseen ennen GIE:n tyhjentämistä.
Seuraavaa järjestystä tulee käyttää keskeytusten poistamiseen:
- Työnnä INTCON2 pinoon.
- Tyhjennä GIE-bitti.
- Kaksi NOP:ta tai kirjoitusta NVMKEY:lle.
- Aloita ohjelmointijakso asettamalla WR-bitti (NVMCON[15]).
- Palauta GIE-tila INTCON2:n POP:lla.
Example 4-1 tarjoaa syntaksin Assemblyssa.
OSOITEREKISTERIT
NVMADRL- ja NVMADRH-rekisterit määrittävät aloitusosoiteosoittimen kirjoitustoimintoja varten. Molemmat ohjelmamuistityypit (salpapohjaiset ja RAM-puskuroidut) käyttävät näitä rekistereitä kohdeosoitteen asettamiseen. NVMSRCADRL- ja NVMSRCADRH-rekisterit määrittävät lähdetietojen RAM-tietomuistissa olevan aloitusosoitteen, kun käytetään RAM-puskuroitua ohjelmointia. NVMSRCADRH-rekisteriä käytetään Extended Data Space (EDS) -laitteissa osoittamaan Extended Data Space -muistissa oleviin osoitteisiin.
Rekisteri 4-1: NVMCON: Flash-ohjelmoinnin ohjausrekisteri
R/S-0(1) | R/C-0 | R/C-0 | R/W-0 | R/C-0 | R-0 | R/W-0 | R/C-0 |
WR | PEUKALOINEN | WRERR | NVMPIDL(5) | SFTSWP | P2ACTIV | RPDF(2) | URERR(2) |
bitti 15 | bitti 8 |
U-0 | U-0 | U-0 | U-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 |
— | — | — | — | NVMOP[3:0] | |||
bitti 7 | bitti 0 |
Legenda: | S = Vain asetettava bitti | C = Vain tyhjennettävä bitti |
R = luettava bitti | W = kirjoitettava bitti | U = toteuttamaton bitti, luetaan '0' |
-n = POR-arvo | '1' = Bitti on asetettu | '0' = Bitti on tyhjennetty x = Bitti on tuntematon |
Huom
- Tämä bitti nollataan myös Brown-out Resetillä (BOR).
- RAM-puskuririvitoiminnot eivät ole käytettävissä kaikissa laitteissa; näissä tapauksissa nämä bitit ovat toteuttamattomia ja ne luetaan "0".
- Näiden asetusten valitseminen asettaa WRERR-bitin ja tyhjentää WR-bitin.
- Kaksisanaisten ohjelmien operaatiot vaativat kaksi vierekkäistä käskysanaa (kukin 24 bittiä), jotka on kohdistettu neljän käskyn sanarajalle.
- Toteutettu vain tietyissä laitteissa; katso lisätietoja laitteen tietolehdestä.
Huom
- Tämä bitti nollataan myös Brown-out Resetillä (BOR).
- RAM-puskuririvitoiminnot eivät ole käytettävissä kaikissa laitteissa; näissä tapauksissa nämä bitit ovat toteuttamattomia ja ne luetaan "0".
- Näiden asetusten valitseminen asettaa WRERR-bitin ja tyhjentää WR-bitin.
- Kaksisanaisten ohjelmien operaatiot vaativat kaksi vierekkäistä käskysanaa (kukin 24 bittiä), jotka on kohdistettu neljän käskyn sanarajalle.
- Toteutettu vain tietyissä laitteissa; katso lisätietoja laitteen tietolehdestä.
Rekisteri 4-2: NVMKEY: Haihtumaton muistiavainrekisteri
U-0 | U-0 | U-0 | U-0 | U-0 | U-0 | U-0 | U-0 |
— | — | — | — | — | — | — | — |
bitti 15 | bitti 8 |
W-0 W-0 W-0 W-0 W-0 W-0 W-0 W-0 |
NVMKEY[7:0] |
bitti 7 bitti 0 |
Legenda: | ||
R = luettava bitti | W = kirjoitettava bitti | U = toteuttamaton bitti, luetaan '0' |
-n = POR-arvo | '1' = Bitti on asetettu | '0' = Bitti on tyhjennetty x = Bitti on tuntematon |
Taulukon käyttöohjeet
Taulukon ohjeet tarjoavat yhden menetelmän tietojen siirtämiseksi ohjelmamuistitilan ja PIC24- ja dsPIC33-laitteiden tietomuistitilan välillä. Tässä osiossa on yhteenveto Flash-ohjelmamuistin ohjelmoinnin aikana käytetyistä taulukkoohjeista.
Taulukon perusohjeita on neljä:
- TBLRDL: Taulukon luku alhainen
- TBLRDH: Taulukon luku korkea
- TBLWTL: Table Write Low
- TBLWTH: Table Write High
TBLRDL- ja TBLWTL-käskyjä käytetään ohjelmamuistitilan bittien [15:0] lukemiseen ja kirjoittamiseen. TBLRDL ja TBLWTL voivat käyttää ohjelmamuistia Word- tai Byte-tilassa. TBLRDH- ja TBLWTH-käskyjä käytetään ohjelmamuistitilan bittien [23:16] lukemiseen tai kirjoittamiseen. TBLRDH ja TBLWTH voivat käyttää ohjelmamuistia Word- tai tavutilassa. Koska ohjelmamuisti on vain 24 bittiä leveä, TBLRDH- ja TBLWTH-käskyt pystyvät osoittamaan ylemmän tavun ohjelmamuistista, jota ei ole olemassa. Tätä tavua kutsutaan "fantomitavuksi". Mikä tahansa haamutavun luku palauttaa 00h; kirjoituksella phantom-tavulle ei ole vaikutusta.
OSOITTEEN LUONTO PÖYTÄTOIMENPITEILLE
24-bittistä ohjelmamuistia voidaan pitää kahdena vierekkäisenä 16-bittisenä tilana, joista jokaisella on sama osoitealue. Siksi TBLRDL- ja TBLWTL-käskyt käyttävät 'vähän' ohjelmamuistia (PM[15:0]). TBLRDH- ja TBLWTH-käskyt käyttävät "korkeaa" ohjelmamuistia (PM[31:16]). Kaikki PM:ään [31:24] luetut tai kirjoittavat pääsevät phantom (toteuttamaton) tavuun. Kun mitä tahansa taulukkokäskyä käytetään tavutilassa, taulukon osoitteen LSb:tä käytetään tavun valintabittinä. LSb määrittää, mitä tavua suuressa tai matalassa ohjelmamuistitilassa käytetään.
Kuva 4-1 havainnollistaa, kuinka ohjelmamuisti osoitetaan taulukon ohjeiden avulla. 24-bittinen ohjelmamuistin osoite muodostetaan käyttämällä TBLPAG[7:0]-bittejä ja tehollista osoitetta (EA) W-rekisteristä, joka on määritelty taulukkokäskyssä (24-bittinen ohjelmalaskuri on esitetty viitteenä). EA:n ylempiä 23 bittiä käytetään valitsemaan ohjelman muistipaikka. Tavumooditaulukon käskyissä W-rekisterin EA LSb:tä käytetään valitsemaan, mikä 16-bittisen ohjelmamuistisanan tavu osoitetaan. '1' valitsee bitit [15:8], '0' valitsee bitit [7:0]. W-rekisterin EA LSb jätetään huomioimatta Word-tilassa olevan taulukkokäskyn yhteydessä. Ohjelmamuistin osoitteen lisäksi taulukkokäskyt määrittelevät myös W-rekisterin (tai W-osoittimen muistipaikkaan), joka on kirjoitettavan ohjelmamuistitiedon lähde tai ohjelmamuistin luennan kohde. Taulukon kirjoitustoiminnossa tavutilassa lähteen työrekisterin bitit [15:8] ohitetaan.
VÄHÄ SANOJEN KÄYTTÖ
TBLRDL- ja TBLWTL-käskyjä käytetään ohjelmamuistidatan alempaan 16 bittiin. W-rekisterin osoitteen LSb jätetään huomioimatta sananlaajuisten taulukkokäyttöjen yhteydessä. Tavulaajuisissa yhteyksissä W-rekisterin osoitteen LSb määrittää, mikä tavu luetaan. Kuva 4-2 havainnollistaa ohjelmamuistin data-alueita, joihin TBLRDL- ja TBLWTL-käskyt hakevat.
KORKEAT SANAT
TBLRDH- ja TBLWTH-käskyjä käytetään ohjelmamuistitietojen ylempiin kahdeksaan bittiin. Nämä ohjeet tukevat myös Word- tai Byte Access -tiloja ortogonaalisuutta varten, mutta ohjelmamuistitietojen korkea tavu palauttaa aina arvon '0', kuten kuvassa 4-3.
TIETOJEN TALLENNUS OHJELMAN MUISTISSA
Oletetaan, että useimmissa sovelluksissa korkeaa tavua (PM[23:16]) ei käytetä datalle, jolloin ohjelmamuisti näyttää 16 bitin levyiseltä tietojen tallentamista varten. On suositeltavaa, että ohjelmatietojen ylempi tavu ohjelmoidaan joko NOP-arvoksi (00h tai FFh) tai laittomaksi opcode-arvoksi (3Fh), jotta laite voidaan suojata tallennettujen tietojen tahattomalta suorittamiselta. TBLRDH- ja TBLWTH-käskyt tarjotaan ensisijaisesti taulukko-/varmistustarkoituksiin ja sovelluksille, jotka vaativat pakatun tiedon tallennusta.
OHJELMAN MUISTIN BITTEN KÄYTTÖ
Flash-ohjelmamuistin bitit voidaan ohjelmoida vain arvosta '1' arvoon '0' ja ne voidaan myöhemmin pyyhkiä arvoon '1'. Yritetään asettaa bitti ohjelmointisekvenssillä ei vaikuta.
TAULUKON KÄYTTÖ LUE OHJEET
Taulukon lukeminen vaatii kaksi vaihetta. Ensin asetetaan osoiteosoitin käyttämällä TBLPAG-rekisteriä ja yhtä W-rekistereistä. Sitten voidaan lukea ohjelmamuistin sisältö osoitepaikassa.
Koodi esimamples in Example 4-2 ja esimample 4-3 näyttää kuinka luetaan sana ohjelmamuistista taulukkoohjeiden avulla Word-tilassa.
Huomautus: tblpage()- ja tbloffset()-direktiivit tarjoaa Microchip-asentaja dsPIC33- ja PIC24-laitteille. Nämä käskyt valitsevat sopivat TBLPAG- ja W-rekisteriarvot taulukkokäskylle ohjelmamuistin osoitearvosta. Katso lisätietoja MPLAB® Assembler, Linker and Utilities for PIC24 MCUs and dsPIC® DSCs User's Guide (DS51317).
PÖYDÄN KIRJOITUSPIDÄT SALVAT
Taulukon kirjoitusohjeet eivät kirjoita suoraan Flash-ohjelmataulukkoon. Sen sijaan ohjeet saavat ohjelmoidut tiedot ladattua ensin pitosalpoihin. Nämä salvat on muistikartoitettu konfigurointimuistitilaan, tyypillisesti alkaen FA0000h:sta, ja niitä voidaan käyttää vain Table Write -ohjeiden avulla. Kun kaikki pitosalvat on ladattu, varsinainen muistin ohjelmointitoiminto aloitetaan suorittamalla erityinen komentosarja.
Eri laitteet toteuttavat eri määrän pitosalpoja tietyn ohjelmaryhmän suunnittelun (eli riviohjelmointikoon ja riviohjelmointialgoritmin) perusteella. Katso lisätietoja laitteen tiedoista ja/tai ohjelmointitiedoista.
Kahden sanan kirjoitus
Sanojen kirjoitus suoritetaan kahdelle sanalle kerrallaan käyttämällä TBLWTH- ja TBLWTL-käskyparia. Koodisekvenssit joko Example 4-4 tai esimample 4-5 (C-vastaava) voidaan kirjoittaa kahteen ohjelmamuistin salpapaikkaan, jotka ohjelmoidaan Flashiin Word Write -tilassa.
Ajonaikainen itseohjelmointi (RTSP)
RTSP sallii käyttäjäkoodin muokata Flash-ohjelman muistin sisältöä. RTSP suoritetaan käyttämällä TBLRD (Table Read) ja TBLWT (Table Write) -ohjeita sekä NVM-ohjausrekistereitä. PIC24- ja dsPIC33-laitteet tukevat seuraavia Flash-ohjelmointitoimintoja:
- Flash-sivu tyhjennetään
- Riviohjelmointi (joko salpapohjainen tai RAM-pohjainen)
- Sanaohjelmointi
Flash-ohjelmointi RTSP:n kautta suoritetaan joko muistilohkoilla, joita kutsutaan riveiksi, tai kahdella Flash-muistin sanalla. Ennen ohjelmointia muistipaikka on tyhjennettävä. Poistotoiminnot suoritetaan muistilohkoille, joita kutsutaan sivuiksi ja jotka koostuvat useista riveistä. Rivin koko vaihtelee laitteittain. katso lisätietoja laitteen teknisistä tiedoista. Tyypillisesti dsPIC33- ja PIC24-laitteissa sivu määritellään kahdeksaksi (8) riviksi. Tässä asiakirjassa käytetään esimamp64 ohjetta riviä kohden (512 ohjetta sivulla).
RIVIEN OHJELMOINTI KIRJOITUSSALPOILLA
Kuten kohdassa 4.2.7 "Taulukon kirjoituspitosalvat" on käsitelty, salpapohjaista riviohjelmointia toteuttavissa laitteissa on pitosalvat, jotka sisältävät ohjelmointitiedot. Ennen varsinaista ohjelmointia kirjoitustiedot on ladattava salpoihin TBLWT-käskyjen kautta peräkkäisessä järjestyksessä. Kun kirjoitetaan riviä, ohjesanat on ladattava salpoihin kokonaisena rivinä.
RTSP-ohjelmoinnin perusjärjestys on perustaa taulukkoosoitin ja suorittaa sitten sarja TBLWT-käskyjä puskurien lataamiseksi. Ohjelmointi suoritetaan asettamalla ohjausbitit NVMCON-rekisteriin. esimampLaitteessa, jossa on 64 käskyriviä, ohjelmointijakso koostuisi 64 TBLWTL- ja 64 TBLWTH-käskystä kirjoitussalvojen lataamiseksi, mitä seuraisi ohjelmointisekvenssi, joka vapauttaa NVMCON:n ja asettaa WR-bitin. Esimample 4-6 näyttää example prosessista.
RIVIEN OHJELMOINTI RAM-PUSKURILLA
Tietyt dsPIC33- ja PIC24-laitteet sallivat riviohjelmoinnin suorittamisen suoraan data-RAM:n puskuritilasta sen sijaan, että siirrettäisiin tietoja pitosalvojen kautta TBLWT-ohjeiden avulla. RAM-puskurin sijainnin määrittävät NVMSRCADR-rekisterit, joihin ladataan data-RAM-osoite, joka sisältää ensimmäisen kirjoitettavan ohjelmadatan sanan.
Ennen ohjelman suorittamista RAM-muistin puskuritila on ladattava ohjelmoitavalla datarivillä. RAM voidaan ladata joko pakattuna (pakattuna) tai pakkaamattomana. Pakattu tallennus käyttää yhtä datasanaa kahden vierekkäisen ohjelmadatasanan tärkeimpien tavun (MSB) tallentamiseen. Pakkaamaton muoto käyttää kahta datasanaa jokaiselle ohjelman datasanalle, ja jokaisen toisen sanan ylempi tavu on 00h. Pakattu muoto käyttää noin 3/4 RAM-tilasta verrattuna pakkaamattomaan muotoon. Pakkaamaton muoto toisaalta jäljittelee 24-bittisen ohjelmadatasanan rakennetta ylemmän haamutavun kanssa. Tietomuoto valitaan RPDF-bitillä (NVMCON[9]). Nämä kaksi muotoa on esitetty kuvassa 4-4.
Kun RAM-puskuri on ladattu, Flash-osoiteosoittimet, NVMADRL ja NVMADRH, ladataan kirjoitettavan Flash-rivin 24-bittisellä aloitusosoitteella. Kuten kirjoitussalvojen ohjelmoinnin yhteydessä, prosessi aloitetaan kirjoittamalla NVM-lukituksen avaussekvenssi, jota seuraa WR-bitin asettaminen. Kun laite on aloitettu, se lataa automaattisesti oikeat salvat ja lisää NVM-osoiterekistereitä, kunnes kaikki tavut on ohjelmoitu. Esimample 4-7 näyttää example prosessista. Jos NVMSRCADR on asetettu sellaiseen arvoon, että tapahtuu datan aliajossa, URERR-bitti (NVMCON[8]) asetetaan ilmaisemaan ehto. Laitteet, jotka toteuttavat RAM-puskuririvien ohjelmoinnin, toteuttavat myös yhden tai kaksi kirjoitussalpaa. Nämä ladataan TBLWT-ohjeiden avulla ja niitä käytetään sanaohjelmointitoimintojen suorittamiseen.
Yleiset Flash-ohjelmointialgoritmit
Flash-ohjelmointitoimintoja ohjataan seuraavilla haihtumattoman muistin (NVM) ohjausrekistereillä:
- NVMCON
- NVMKEY
- NVMADRL/H
- NVMSRCADRL/H (jotkut laitteet)
Täydellinen ohjelmointisarja tarvitaan sisäisen Flashin ohjelmointiin tai poistamiseen RTSP-tilassa. WR-bitin asettaminen (NVMCON[15]) käynnistää toiminnan ja WR-bitti tyhjennetään automaattisesti, kun toiminto on valmis.
Kun suoritat Flash-ohjelmointitoimintoja aktiivisessa osiossa (erityisesti Standard Partition -tilassa), CPU pysähtyy, kunnes toiminto on valmis. Kun ohjelmoit ei-aktiivista osiota, CPU voi jatkaa toimintaansa pysähtymättä. Seuraavissa osissa esitellään ohjelmointialgoritmeja, joissa suorittimen jumi on pysähtynyt tai ei.
OHJELMAN MUISTIN TYHJENNYS (AKTIIVINEN OSIO)
- Aseta NVMOPx-bitit (NVMCOM[3:0]) arvoon '0011' määrittääksesi sivun poiston ja aseta WREN-bitti (NVMCOM[14]).
- Kirjoita poistettavan lohkon aloitusosoite NVMADRL/H-rekistereihin.
- Poista keskeytykset käytöstä.
- Kirjoita 55h NVMKEY:lle.
- Kirjoita AAh NVMKEY:lle.
- Aseta WR-bitti (NVMCOM[15]) tyhjennysjakson aloittamiseksi.
- Suorita kaksi NOP-käskyä.
- Palauta keskeytykset (valinnainen).
Kun tyhjennys on tehty, WR-bitti tyhjennetään automaattisesti
RIVIOHJELMOINTI (AKTIIVINEN OSIO, VAKIOOSIOTILA)
Käyttäjä voi ohjelmoida yhden rivin ohjelma Flash-muistia kerrallaan. Tätä varten sinun on poistettava halutun rivin sisältävä sivu. Yleinen prosessi riviohjelmoinnissa aktiiviseen osioon on:
- Lue kahdeksan riviä ohjelmamuistia (512 ohjetta) ja tallenna data-RAM-muistiin.
- Päivitä ohjelmatiedot RAM-muistissa halutuilla uusilla tiedoilla.
- Tyhjennä lohko:
- a) Aseta NVMOPx-bitit (NVMCOM[3:0]) arvoon '0011' määrittääksesi sivun poiston ja aseta WREN-bitti (NVMCOM[14]).
- b) Kirjoita poistettavan lohkon aloitusosoite NVMADRL/H-rekistereihin.
- c) Poista keskeytykset käytöstä.
- d) Kirjoita 55h NVMKEY:lle.
- e) Kirjoita AAh NVMKEY:lle.
- f) Aseta WR-bitti (NVMCOM[15]). Pyyhintäjakso alkaa ja CPU pysähtyy poistojakson ajaksi. Kun tyhjennys on tehty, WR-bitti tyhjennetään automaattisesti.
- g) Palauta keskeytykset (valinnainen).
- Kirjoita ensimmäiset 64 käskyä data-RAMista ohjelman muistipuskureihin (katso Kohta 4.2.7 “Taulukon kirjoituspitosalvat”) tai kirjoita NVMSRCADR-rekisteriin RAM-muistiin tallennettujen tietojen aloitusosoite.
- Kirjoita ohjelmalohko Flash-muistiin:
- a) Aseta NVMOPx-bittien arvoksi '0010' määrittääksesi riviohjelmoinnin ja aseta WREN-bitti.
- b) Poista keskeytykset käytöstä.
- c) Kirjoita 55h NVMKEY:lle.
- d) Kirjoita AAh NVMKEY:lle.
- e) Aseta WR-bitti. Ohjelmointijakso alkaa ja CPU pysähtyy kirjoitusjakson ajaksi. Kun kirjoitus Flash-muistiin on valmis, WR-bitti tyhjennetään automaattisesti.
- f) Palauta keskeytykset (valinnainen).
- Toista vaiheet 4 ja 5 käyttämällä seuraavaa käytettävissä olevaa 64 käskyä data-RAM:n lohkosta lisäämällä osoitteita NVMADRL/H:ssa, kunnes kaikki 512 käskyä on kirjoitettu takaisin Flash-muistiin.
Huomautus: Kaikissa laitteissa CPU ei jumiudu kirjoitus- tai tyhjennysjakson aikana. Pysähdysten välttämiseksi on suositeltavaa välttää sovelluksen lukemista tai kirjoittamista riville, jota pyyhitään tai kirjoitetaan.
Suojatakseen vahingossa tapahtuvia toimintoja, NVMKEY:n kirjoittamisen aloitussekvenssi vaaditaan ennen poistoa tai ohjelmointia. Kun ohjelmointikomento on suoritettu, käyttäjän on odotettava ohjelmointiaikaa, kunnes ohjelmointi on valmis. Ohjelmointijakson alkamista seuraavien kahden ohjeen tulee olla NOP:ita.
Huom
- Rivien, lohkojen ja pitosalvojen määrä voi vaihdella laitteittain; Katso todelliset luvut laitteen tietolehdestä sekä Flash-muistin ohjelmoinnin täydellinen viitekoodi.
- Laitteissa, joissa on yksi lukitussalpa, Flash-ohjelman muistiin on kirjoitettava sanaohjelmointi.
SIVUN OHJELMOINTI EI-AKTIIVISEEN OSIOON (KAKSIOSIOIDEN TILAT)
Ohjelmointi Dual Partition -tiloissa vaatii erityisiä huomioita. Koska CPU pystyy jatkamaan käskyjen suorittamista, kun ei-aktiivista osiota ohjelmoidaan, suorittimen jumiutumista ei tapahdu.
Tietosivun poistamisen ja uudelleenohjelmoinnin algoritmi jossakin kaksoisosion tilassa on seuraava:
- Tyhjennä lohko:
- a) Aseta NVMOPx-bitit (NVMCOM[3:0]) arvoon '0011' määrittääksesi sivun poiston.
- b) Aseta WREN-bitti (NVMCOM[14]).
- c) Kirjoita poistettavan lohkon aloitusosoite NVMADR-rekistereihin
sivun osoite. - d) Poista keskeytykset käytöstä.
- e) Kirjoita 55h NVMKEY:lle.
- f) Kirjoita AAh NVMKEY:lle.
- g) Aseta WR-bitti (NVMCOM[15]). Tyhjennysjakso alkaa ja CPU pysyy käynnissä.
- h) Kun tyhjennys on tehty, WR-bitti tyhjennetään automaattisesti ja NVM:n kirjoitus on valmis (NVMIF).
- i) Palauta keskeytykset (valinnainen).
- Valmistele ohjelmoitavat tiedot täyttämällä RAM-puskuri; vaihtoehtoisesti lataa kirjoitussalvat TBLWT-käskyillä ensimmäisen muistirivin tiedoilla (64 käskyä).
- Ohjelmoi lohko:
- a) Aseta NVMOPx-bitit (NVMCON[3:0]) arvoon '0010' määrittääksesi riviohjelmoinnin.
- b) Aseta WREN (NVMCON[14]) -bitti.
- c) Kirjoita kirjoitettavan lohkon aloitusosoite NVMADR-rekistereihin rivin aloitusosoitteella.
- d) Poista keskeytykset käytöstä.
- e) Kirjoita 55h NVMKEY:lle.
- f) Kirjoita AAh NVMKEY:lle.
- g) Aseta WR-bitti (NVMCOM[15]). Kirjoitusjakso alkaa ja prosessori pysyy käynnissä.
- h) Kun tyhjennys on tehty, WR-bitti tyhjennetään automaattisesti ja NVM:n kirjoitus on valmis (NVMIF).
- i) Palauta keskeytykset (valinnainen).
- Toista vaiheet 2 ja 3 ohjelmoimaan kaikki poistetun sivun jäljellä olevat tietorivit.
KOKO EI-AKTIIVIN OSIOON OHJELMOINTI (KAKSIOSIOIDEN TILAT)
Päivittääksesi koodin kokonaan ei-aktiivisessa osiossa:
- Tyhjennä passiivinen osio:
- a) Aseta NVMOPx-bitit (NVMCOM[3:0]) arvoon '0100' määrittääksesi ei-aktiivisen osion poiston.
- b) Aseta WREN-bitti (NVMCOM[14]).
- c) Poista keskeytykset käytöstä.
- d) Kirjoita 55h NVMKEY:lle.
- e) Kirjoita AAh NVMKEY:lle.
- f) Aseta WR-bitti (NVMCOM[15]). Tyhjennysjakso alkaa ja CPU pysyy käynnissä syklin ajan.
- g) Kun tyhjennys on suoritettu, WR-bitti tyhjennetään automaattisesti ja NVM-kirjoitus on valmis (NVMIF).
- h) Palauta keskeytykset (valinnainen).
- Kirjoita ei-aktiivisen osion jokainen sivu käyttämällä sivukirjoituksia, kuten on kuvattu kohdassa Kohta 4.4.3 “Sivun ohjelmointi passiiviseen osioon (kaksiosiotilat)”.
- Tarkista kirjoitetut tiedot. Yksi ehdotettu menetelmä on suorittaa CRC kirjoitettaville tiedoille ja tarkistaa CRC-arvo koko osiolla varmistaaksesi, että tiedot on kirjoitettu oikein.
AKTIIVISEN OSIOON PÄIVITTÄMINEN BOOTLOADER:llä
- Pyyhi ja ohjelmoi koko ei-aktiivinen osio kohdan 4.4.4 "Koko passiivisen osion ohjelmointi (kaksiosiotilat)" mukaisesti.
- Lue aktiivisen osion FBTSEQ-määritysrekisteri.
- Pienennä arvoa yhdellä ja kirjoita ei-aktiivisen osion FBTSEQ:iin.
- Pakota osion vaihto:
- a) Jos suorittimen jumiutuminen ei aiheuta huolta, suorita laitteen nollaus. Koska ei-aktiivisella osiolla on pienempi käynnistysjärjestysnumero, siitä tulee aktiivinen osio nollauksen jälkeen.
- b) Jos suorittimen jumiutuminen ei ole hyväksyttävää, suorita BOOTSWP-käsky.
OHJELMATILAN NÄKYVYYS JA LAAJENNETTU DATATILA (PSV JA EDS)
Kaikille dsPIC33- ja PIC24-laitteille voidaan käyttää taulukkoohjeita (katso osio 4.2 "Taulukon käyttöohjeet") ohjelman muistitilan tietojen saamiseksi. Tämä on hyödyllistä, kun tietoja tarvitsee vain lukea tai kirjoittaa tavu tai sana kerrallaan. Ohjelmamuistitilan 16 32 sanasivua voidaan myös yhdistää data-osoiteavaruuden ylempään 64 kilotavuun. Tämä mahdollistaa tietotilan tehokkaan laajentamisen sen normaalien 33 kilotavun osoiterajojen yli sekä läpinäkyvän pääsyn ilman taulukkoohjeiden käyttöä. Kaikki dsPIC24- ja PICXNUMX-laitteet pystyvät yhdistämään minkä tahansa toteutetun ohjelmamuistitilan sivun tietotilaan. Tämä ominaisuus tunnetaan nimellä Program Space Visibility (PSV). Jotkut laitteet laajentavat PSV:tä yhdistämällä tietyt oheislaitteet tietylle alueelle virtuaalisten ohjelmien muistisivuja. Tämä ominaisuus on erityisen hyödyllinen oheislaitteissa, kuten Advanced Graphics Controllerissa, jolla on korkeat tiedonsiirtovaatimukset. Tämä PSV:n laajennus tunnetaan nimellä Extended Data Space (EDS).
PSV ja EDS on toteutettu tietomuistin ominaisuuksina. Ne on toteutettu eri tavalla dsPIC33- ja PIC24-laitteissa. Tarkempi kuvaus on dsPIC33/PIC24-perheen käsikirjassa, Datamuistissa. (dsPIC33, DS70595) ja/tai "Data Memory" (PIC24, DS30009717).
PSV ja opetuskojut
Lisätietoja ohjeiden pysähtymisestä PSV:n avulla on julkaisuissa "dsPIC33/PIC24 Family Reference Manual", "dsPIC33E Enhanced CPU" (DS70005158).
REKISTERÖIDY KARTTA
Yhteenveto kaksoisosion Flash-ohjelmamuistiin liittyvistä SFR:istä on taulukossa 6-1.
Taulukko 6-1: Flash-ohjelmamuistiin liittyvät erikoistoimintorekisterit(1)
File Nimi | Bittinen 15 | Bittinen 14 | Bittinen 13 | Bittinen 12 | Bittinen 11 | Bittinen 10 | Bittinen 9 | Bittinen 8 | Bittinen 7 | Bittinen 6 | Bittinen 5 | Bittinen 4 | Bittinen 3 | Bittinen 2 | Bittinen 1 | Bittinen 0 | Kaikki nollaukset(2) |
TBLPAG | — | — | — | — | — | — | — | — | Taulukkosivun osoiteosoitin | 0000 | |||||||
NVMCON | WR | PEUKALOINEN | WRERR | NVMPIDL | SFTSWP | P2ACTIV | RPDF | URERR | — | — | — | — | NVMOP[3:0] | 0000 | |||
NVMKEY | — | — | — | — | — | — | — | — | NVMKEY[7:0] | 0000 | |||||||
NVMSRCADRL | Data RAM -ohjelmointipuskurin aloitusosoite | 0000 | |||||||||||||||
NVMSRCADRH | Data RAM -ohjelmointipuskurin osoite (vain EDS-toiminnot) | 0000 | |||||||||||||||
NVMADRL | Flash-ohjelman muistin kohdeosoite, alempi tavu (ADDR[15:0]) | 0000 | |||||||||||||||
NVMADRH | — | — | — | — | — | — | — | — | Flash-ohjelman muistin kohdeosoite, ylempi tavu (ADDR[23:16]) | 0000 |
Tässä osiossa luetellaan sovelluksen huomautukset, jotka liittyvät oppaan tähän osaan. Näitä sovellusohjeita ei ehkä ole kirjoitettu erityisesti PIC24- tai dsPIC33-tuoteperheille, mutta käsitteet ovat olennaisia ja niitä voidaan käyttää muokkauksin ja mahdollisin rajoituksin. Dual Partition Flash Program Memory -muistiin liittyvät tämänhetkiset sovellushuomautukset ovat:
Huomautus: Käy mikrosirussa websivusto (www.microchip.com) lisäsovellushuomautuksia ja koodia examples PIC24- ja dsPIC33-laitteiden perheille.
TARKISTUSHISTORIA
- Versio A (maaliskuu 2014)
Tämän asiakirjan alkuperäinen versio. - Versio B (helmikuu 2015)
Muutettiin "Dual Boot Flash Program Memory" -lauseen otsikko ja kaikki esiintymät muotoon "Dual Partition Flash Program Memory" tai "Dual Partition Flash". - Versio C (marraskuu 2021)
Lisätty 4.1.1.1 "Keskeytysten poistaminen käytöstä".
Päivitetty 4.1.1 “Ohjausrekisterit”, 4.4.2 “Riviohjelmointi (aktiivinen osio, vakioosiotila)”, 4.4.3 “Sivun ohjelmointi ei-aktiiviseen osioon (kaksiosiotilat)” ja 4.4.4 “Koko ohjelmointi Ei-aktiivinen osio (kaksiosiotilat)”. Päivitetty Example 4-5, esimample 4-6 ja esimample 4-7.
Huomaa seuraavat Microchip-tuotteiden koodisuojausominaisuuden tiedot:
- Mikrosirutuotteet täyttävät niiden tietyn Microchip Data Sheet -tiedot.
- Microchip uskoo, että sen tuoteperhe on turvallinen, kun sitä käytetään tarkoitetulla tavalla, käyttöspesifikaatioiden mukaisesti ja normaaleissa olosuhteissa.
- Microchip arvostaa ja suojelee aggressiivisesti immateriaalioikeuksiaan. Yritykset rikkoa Microchip-tuotteen koodisuojausominaisuuksia ovat ehdottomasti kiellettyjä ja voivat olla Digital Millennium Copyright Act -lain vastaisia.
- Microchip tai mikään muu puolijohdevalmistaja ei voi taata koodinsa turvallisuutta. Koodisuojaus ei tarkoita, että takaamme tuotteen "rikkoutumattomuuden". Koodisuojaus kehittyy jatkuvasti. Microchip on sitoutunut parantamaan jatkuvasti tuotteidemme koodisuojausominaisuuksia.
Tätä julkaisua ja siinä olevia tietoja voidaan käyttää vain Microchip-tuotteiden kanssa, mukaan lukien Microchip-tuotteiden suunnittelu, testaus ja integrointi sovellukseesi. Näiden tietojen käyttö muulla tavoin rikkoo näitä ehtoja. Laitesovelluksia koskevat tiedot tarjotaan vain avuksesi, ja päivitykset voivat korvata ne. Sinun vastuullasi on varmistaa, että hakemuksesi vastaa vaatimuksiasi. Ota yhteyttä paikalliseen Microchip-myyntitoimistoon saadaksesi lisätukea tai hanki lisätukea osoitteessa https://www.microchip.com/en-us/support/design-help/client-supportservices.
NÄMÄ TIEDOT TOIMITTAA MICROSIRU "SELLAISENAAN". MICROSIRU EI ANNA MITÄÄN TIETOIHIN LIITTYVÄT TIETOIHIN LIITTYVÄT TIETOIHIN LIITTYVÄT TIETOIHIN LIITTYVÄT NIMENOMAISET TAI OLUETUT TAKUUT TAI SUULLISIA TAKUITA TAI EI RAJOITETTUJA TAKUITA. SEN KUNTO, LAATU TAI SUORITUSKYKY. MIKROSIRU EI OLE MISSÄÄN TAPAUKSESSA VASTUUSSA MISTÄÄN EPÄSUORISTA, ERITYISISTÄ, RANGAISTUVISTA, SATUNNAISISTA TAI SEURANTAISISTA MENETÖISTÄ, VAHINGOISTA, KUSTANNUKSISTA TAI MISSÄÄN TAPAHTUMAAN LIITTYVISTÄ TIETOIHIN TAI SEN TIETOJEN KÄYTTÖÖN LIITTYVISTÄ KULUISTA. MAHDOLLISUUS TAI VAHINGOT OVAT ENNAKKOILLE. MICROSIRUN KOKONAISVASTUU KAIKISTA TIETOJEN TAI SEN KÄYTTÖÖN LIITTYVIEN VAATIMUSTEN TÄYDELLISESTI LAIN SALLITTAMASSA RAJOISSA EI OLE YLITTÄÄ MAKSUN MAKSUJA, JOTKA MAKSUTAAN MICROCHIPISTA.
Microchip-laitteiden käyttö elämää ylläpitävissä ja/tai turvallisuussovelluksissa on täysin ostajan omalla vastuulla, ja ostaja sitoutuu puolustamaan, korvaamaan ja pitämään Microchipiä vaarattomana kaikilta tällaisesta käytöstä aiheutuvilta vahingoilta, vaatimuksilta, kanteilta tai kuluilta. Microchipin immateriaalioikeuksilla ei välitetä lisenssejä, implisiittisesti tai muuten, ellei toisin mainita.
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile ovat Arm Limitedin (tai sen tytäryhtiöiden) tavaramerkkejä tai rekisteröityjä tavaramerkkejä Yhdysvalloissa ja/tai muualla.
Lisätietoja Microchipin laadunhallintajärjestelmistä on osoitteessa www.microchip.com/quality.
Tavaramerkit
Mikrosirun nimi ja logo, Microchip-logo, Adaptec, AnyRate, AVR, AVR-logo, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi-logo, MOST, MOST-logo, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32-logo, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST-logo, SuperFlash , Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron ja XMEGA ovat Microchip Technology Incorporatedin rekisteröityjä tavaramerkkejä Yhdysvalloissa ja muissa maissa. AgileSwitch, APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, IntelliMOS, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus logo, Quiet- Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, WinPath ja ZL ovat Microchip Technology Incorporatedin rekisteröityjä tavaramerkkejä Yhdysvalloissa.
Viereinen näppäinvaimennus, AKS, analoginen digitaaliaika, mikä tahansa kondensaattori, AnyIn, AnyOut, lisätty kytkentä, BlueSky, BodyCom, CodeGuard, kryptoauthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM, ds, APICDEM, d. , ECAN, Espresso T1S, EtherGREEN, GridTime, IdealBridge, In-Circuit Serial ohjelmointi, ICSP, INICnet, älykäs rinnakkaiskytkentä, sirujen välinen yhteys, jitterBlocker, näytön nuppi, max Crypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB-sertifioitu logo, MPLIB, MPLINK, MultiTRAK, NetDetach, NVM Express, NVMe, kaikkitietävä koodin luominen, PICDEM, PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, QQ , Ripple Blocker, RTAX, RTG4, SAM-ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, TSHARC, USBCCheck VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect ja ZENA ovat Microchip Technology Incorporatedin tavaramerkkejä Yhdysvalloissa ja muissa maissa.
SQTP on Microchip Technology Incorporatedin palvelumerkki Yhdysvalloissa
Adaptec-logo, Frequency on Demand, Silicon Storage Technology, Symmcom ja Trusted Time ovat Microchip Technology Inc:n rekisteröityjä tavaramerkkejä muissa maissa.
GestIC on Microchip Technology Germany II GmbH & Co. KG:n, Microchip Technology Inc:n tytäryhtiön, rekisteröity tavaramerkki muissa maissa.
Kaikki muut tässä mainitut tavaramerkit ovat vastaavien yhtiöiden omaisuutta.
© 2014-2021, Microchip Technology Incorporated ja sen tytäryhtiöt.
Maailmanlaajuinen myynti ja palvelu
AMERIKAS
- Yrityksen toimisto
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Puh: 480-792-7200
Faksi: 480-792-7277
Tekninen tuki: http://www.microchip.com/support
Web Osoite: www.microchip.com - Atlanta
Duluth, GA
Puh: 678-957-9614
Faksi: 678-957-1455 - Austin, TX
Puh: 512-257-3370 - Boston
Westborough, MA
Puh: 774-760-0087
Faksi: 774-760-0088 - Chicago
Itasca, IL
Puh: 630-285-0071
Faksi: 630-285-0075 - Dallas
Addison, Teksas
Puh: 972-818-7423
Faksi: 972-818-2924 - Detroit
Novi, MI
Puh: 248-848-4000 - Houston, TX
Puh: 281-894-5983 - Indianapolis
Noblesville, IN
Puh: 317-773-8323
Faksi: 317-773-5453
Puh: 317-536-2380 - Los Angeles
Mission Viejo, CA
Puh: 949-462-9523
Faksi: 949-462-9608
Puh: 951-273-7800 - Raleigh, NC
Puh: 919-844-7510 - New York, NY
Puh: 631-435-6000 - San Jose, CA
Puh: 408-735-9110
Puh: 408-436-4270 - Kanada - Toronto
Puh: 905-695-1980
Faksi: 905-695-2078
AASIA/TYYNENMEREN
- Australia – Sydney
Puh: 61-2-9868-6733 - Kiina – Peking
Puh: 86-10-8569-7000 - Kiina - Chengdu
Puh: 86-28-8665-5511 - Kiina - Chongqing
Puh: 86-23-8980-9588 - Kiina – Dongguan
Puh: 86-769-8702-9880 - Kiina - Guangzhou
Puh: 86-20-8755-8029 - Kiina – Hangzhou
Puh: 86-571-8792-8115 - Kiina – Hongkongin erityishallintoalue
Puh: 852-2943-5100 - Kiina - Nanjing
Puh: 86-25-8473-2460 - Kiina - Qingdao
Puh: 86-532-8502-7355 - Kiina – Shanghai
Puh: 86-21-3326-8000 - Kiina - Shenyang
Puh: 86-24-2334-2829 - Kiina - Shenzhen
Puh: 86-755-8864-2200 - Kiina – Suzhou
Puh: 86-186-6233-1526 - Kiina - Wuhan
Puh: 86-27-5980-5300 - Kiina - Xian
Puh: 86-29-8833-7252 - Kiina - Xiamen
Puh: 86-592-2388138 - Kiina - Zhuhai
Puh: 86-756-3210040 - Intia - Bangalore
Puh: 91-80-3090-4444 - Intia - New Delhi
Puh: 91-11-4160-8631 - Intia - Pune
Puh: 91-20-4121-0141 - Japani - Osaka
Puh: 81-6-6152-7160 - Japani – Tokio
Puh: 81-3-6880-3770 - Korea – Daegu
Puh: 82-53-744-4301 - Korea - Soul
Puh: 82-2-554-7200 - Malesia - Kuala Lumpur
Puh: 60-3-7651-7906 - Malesia – Penang
Puh: 60-4-227-8870 - Filippiinit - Manila
Puh: 63-2-634-9065 - Singapore
Puh: 65-6334-8870 - Taiwan – Hsin Chu
Puh: 886-3-577-8366 - Taiwan – Kaohsiung
Puh: 886-7-213-7830 - Taiwan - Taipei
Puh: 886-2-2508-8600 - Thaimaa - Bangkok
Puh: 66-2-694-1351 - Vietnam - Ho Chi Minh
Puh: 84-28-5448-2100
EUROOPPA
- Itävalta – Wels
Puh: 43-7242-2244-39
Faksi: 43-7242-2244-393 - Tanska - Kööpenhamina
Puh: 45-4485-5910
Faksi: 45-4485-2829 - Suomi – Espoo
Puh: 358-9-4520-820 - Ranska - Pariisi
Puh: 33-1-69-53-63-20
Faksi: 33-1-69-30-90-79 - Saksa – Garching
Puh: 49-8931-9700 - Saksa – Haan
Puh: 49-2129-3766400 - Saksa – Heilbronn
Puh: 49-7131-72400 - Saksa – Karlsruhe
Puh: 49-721-625370 - Saksa - München
Puh: 49-89-627-144-0
Faksi: 49-89-627-144-44 - Saksa - Rosenheim
Puh: 49-8031-354-560 - Italia - Milano
Puh: 39-0331-742611
Faksi: 39-0331-466781 - Italia – Padova
Puh: 39-049-7625286 - Hollanti – Drunen
Puh: 31-416-690399
Faksi: 31-416-690340 - Norja - Trondheim
Puh: 47-7288-4388 - Puola - Varsova
Puh: 48-22-3325737 - Romania – Bukarest
Puh: 40-21-407-87-50 - Espanja - Madrid
Puh: 34-91-708-08-90
Faksi: 34-91-708-08-91 - Ruotsi - Götenberg
Puh: 46-31-704-60-40 - Ruotsi - Tukholma
Puh: 46-8-5090-4654 - Iso-Britannia – Wokingham
Puh: 44-118-921-5800
Faksi: 44-118-921-5820
Huomautus: Tämä perhekäsikirjaosio on tarkoitettu täydentämään laitetietolehtiä. Tämä asiakirja koskee kaikkia dsPIC33/PIC24-laitteita. Katso nykyisen laitteen tietosivun luvun "Dual Partition Flash Program Memory" alussa oleva huomautus tarkistaaksesi, tukeeko tämä asiakirja käyttämääsi laitetta. Laitteen tietosivut ja perheen viitekäsikirjat ovat ladattavissa Microchip Worldwide -sivustolta Websivusto osoitteessa: http://www.microchip.com.
Asiakirjat / Resurssit
![]() |
MICROCHIP PIC24 Dual Partition Flash-ohjelmamuisti [pdfKäyttöopas PIC24 Dual Partition Flash-ohjelmamuisti, PIC24, Dual Partition Flash-ohjelmamuisti, Flash-ohjelmamuisti, ohjelmamuisti |