Ak ARM (oswa menm x 86) MCU / CPU ak estrikti von Neumann, espas adrès li yo inifye ak kontinyèl, kòd memwa / RAM / CPU anrejistre, e menm PC videyo memwa yo tout adrese inifòm. Li' s jis ke memwa ak fonksyon diferan okipe blòk adrès diferan, epi yo fè pwòp bagay yo.
Oke, kite 39 a tounen nan MCS-51.
Pou memwa pwogram lan, gen de pati: sou-chip ak koupe-chip. Ak kèlkeswa memwa nan pwogram sou-chip oswa memwa nan pwogram koupe-chip, adrès yo pataje. Si gen 4k ROM sou-chip, adrès la se 0x0000-0x0FFF, ak 0x1000-0xFFFF se espas adrès ROM ekstèn lan. Kit yo itilize pati 0x0000-0x0FFF nan ROM ekstèn lan, li depann de valè nivo PIN EA mikrokontroleur la. Lè EA=1, se pati sa a nan ROM entèn la itilize, epi se pati sa a nan ROM ekstèn lan gaspiye epi yo pa itilize; lè EA=0, yo itilize pati sa a nan ROM ekstèn lan, epi ROM entèn la gaspiye epi yo pa itilize li. Pou li done ki soti nan segman KODD la, itilize enstriksyon MOVC ki reyini an. Mikrokompitè a sèl-chip pral otomatikman detèmine ki memwa yo chache done yo dapre enstriksyon an MOVC, estati EA, ak valè a adrès yo dwe li
Pou memwa done, li divize an de pati: memwa done entèn (IDATA / RAM) ak memwa done ekstèn (XDATA), men de memwa sa yo pa pataje espas adrès la tankou memwa kòd. Jeneral 8051 chip la, RAM entèn la se sèlman 128B, ki soti nan 0x00-0x7F, ak nan 0x80-0xFF se zòn nan SFR (CPU k ap travay anrejistre ak divès kalite anrejistre periferik yo isit la). Pou 8052 la, RAM entèn la gen 256B, kidonk 0x80-0xFF se gwo RAM 128B nan itilize. Men, se pa' pati sa a dedye a SFR? Li' dedye a SFR, men sonje ke aksè SFR ka itilize sèlman" dirèk adrese" (aplike lè l sèvi avèk enstriksyon asanble espesifik), diferans lan se isit la. Se sèlman adrès la aksè pa adrese dirèk se SFR, otreman li se RAM òdinè. Kòm pou RAM a pwolonje (XDATA), adrès la se tou soti nan 0x0000-0xFFFF, ak 0x0000 isit la diferan de 0x00 nan RAM entèn la, epi yo konplètman endepandan de espas. Metòd aksè yo diferan tou. MCS-51 itilize enstriksyon MOVX pou li ak ekri zòn XDATA. Anplis, aksè nan zòn nan XDATA mande pou asistans nan enskri nan DPTR. Paske se sèlman DPTR ki ka kenbe pwochen 16-ti jan XDATA adrès la.
Se konsa, MCS-51 gen vitès la lekti ak ekri pi rapid nan zòn IDATA ak metòd ki pi aksè. Vitès la nan aksè nan zòn nan XDATA se relativman ralanti. Pile a nan MCS-51 yo ta dwe devlope nan zòn nan IDATA an premye, ak chemine a louvri nan zòn nan IDATA ka kontwole pa konsèy la chemine enskri SP. Si chemine a reyèlman twò gwo epi li ka sèlman louvri nan zòn XDATA, Lè sa a, enskri nan SP nan CPU a pral difisil prete, epi nou ka sèlman konstwi estrikti a chemine ak chemine konsèy pa tèt nou. Depi espas pwogram ekstèn lan ak espas done yo tou de 0-64K (0x0000-0xFFFF), lè sa a mwen ka aktyèlman sove pwoblèm / pratik reyekri pwogram ak lòt rezon, K externalD ekstèn lan ak DONE ka pataje yon memwa réinscriptible (tankou divès kalite Ki sa RAM ka dwe efase ak ekri). Pou egzanp, sistèm lan gen yon 64K ekstèn MEMORY. 32K ki pi ba yo itilize pou konsève pou KODD la, ak mikrokontroleur la ka li epi kouri pwogram lan nan 32K sa a, epi 32K ki pi wo a itilize kòm kote depo pou done itilizatè yo. Men, nan moman sa a, orijinal konplètman endepandan KODD la ak espas DONE, paske se yon MEMORY pataje sou chip pyès ki nan konpitè yo, yo ka afekte youn ak lòt, ak pwogram nan ka reyekri pwogram nan pou kont li. Pou egzanp, 0x0020 se yon enstriksyon, epi mwen reyekri 0x0020 nan MOVX, Lè sa a, sèvi ak MOVC li soti 0x0020, ak done yo diferan de orijinal la.
Kè a nan konfizyon se ke espas ki la depo nan mikro òdinatè a sèl-chip se yon konsèp ki lojik, ki se de espas separe ki atifisyèlman divize. Chip la MEMORY sou kous la pyès ki nan konpitè se yon konsèp an reyalite. Espas nan depo nan mikrokompitè a sèl-chip pral evantyèlman dwe aplike sou chip la nan nivo sikwi a, se konsa espas depo lojik la pral sipèpoze akòz koneksyon sikwi fizik la. Men, nan nivo ki lojik, de espas sa yo toujou konplètman endepandan.
Atachman: Definisyon plizyè non espas depo:
Done: fiksman refere a 128 RAM yo nan 0x00-0x7f nan devan an, ki ka dirèkteman li ak ekri pa yon enskri, pi rapid la ak pi piti kòd la pwodwi.
Idata: fiksman refere a 256 RAM yo nan 0x00-0xff nan devan an, ki premye 128 a se egzakteman menm jan ak 128 nan done, jis paske nan metòd yo aksè diferan. idata se aksè lè l sèvi avèk yon konsèy ki sanble ak C. Deklarasyon an nan tout pèp la se: mov ACC, @ Rx. (pa enpòtan sipleman: idata nan c gen yon bon efè aksè konsèy) xdata: ekstèn RAM pwolonje, jeneralman refere a ekstèn 0x0000-0xffff espas la, ki se aksè pa DPTR. pdata: 256 bytes ki pi ba nan ekstèn RAM pwolonje a, li ak ekri lè adrès la parèt sou A0-A7, sèvi ak movx ACC, @Rx pou li ak ekri. Sa a se byen espesyal, ak C51 sanble gen ensèk sa a, li rekòmande yo sèvi ak mwens. Men, gen tou avantaj li yo. Itilizasyon espesifik la se yon pwoblèm entèmedyè, mwen pa' t konnen ki jan yo sèvi ak li, Se konsa, mwen te genyen' t mansyone li isit la.







