<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM Cortex-M3 學(xué)習筆記(5)

ARM Cortex-M3 學(xué)習筆記(5)

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏
最近在學(xué)ARM Cortex-M3,找了本號稱(chēng)很經(jīng)典的書(shū)“An Definitive Guide to The ARM Cortex-M3”在看。這個(gè)系列學(xué)習筆記其實(shí)就是在學(xué)習這本書(shū)的過(guò)程中做的讀書(shū)筆記。

本文引用地址:http://dyxdggzs.com/article/201611/318830.htm

第五章 存儲器系統

地址空間分配

對比更早版本的ARM內核,Cortex-M3的地址空間分配相對來(lái)說(shuō)是固定的。尤其是內部的私有外設,地址分配是固定不變的。這為軟件移植提供很大的方便。

圖 1 Cortex-M3 地址空間分配

片內SRAM地址空間和片內外設地址空間中各有1MB是所謂的位帶區。這個(gè)區數據可以按位訪(fǎng)問(wèn)。外部SRAM和外部外設地址空間中沒(méi)有位帶區。

RAM地址空間與外設地址空間最大的區別是RAM地址空間中的存儲的數據是可以作為程序代碼運行的,而外設地址空間中的數據卻不能運行。當然,程序最好還是放到片內的代碼區,因為對這個(gè)區域的訪(fǎng)問(wèn)有專(zhuān)用的總線(xiàn),因此讀取程序代碼與讀取RAM區的數據可以同時(shí)進(jìn)行,效率最高。

Bit-Band 操作

在0x20000000和0x40000000 地址處開(kāi)始的1MB空間被稱(chēng)為bit-band region。這個(gè)區域內的數據的每一位都被映射了到了一個(gè)32位寬的word的最低一位,被映射到的地址空間稱(chēng)為bit-band alias address range。比如說(shuō),0x20000000對應字節第0位映射到了0x22000000的第0位。0x20000000的第1位映射到了0x22000004的第0位,其他的以此類(lèi)推。這樣,讀取0x22000004 就相當于讀取0x20000000的第1位。寫(xiě)0x22000004的第0位就相當于寫(xiě)0x20000000的第1位。對bit-band aliasaddress range 中數據的讀寫(xiě)都是原子操作。

特別要注意的是:bit-band alias address range 中的數據支持字節和半字訪(fǎng)問(wèn),但是數據的訪(fǎng)問(wèn)不能跨越4字節邊界,否則結果不確定。

Endian Mode

Cortex-M3內核本身對大端和小端都支持,但是對于具體的一款基于Cortex-M3內核的單片機來(lái)說(shuō)就不一定兩種模式都支持了。常見(jiàn)的Cortex-M3內核的單片機基本都是小端模式的。

Cortex-M3內核中對大端模式的定義和ARM7中還有些不同,具體怎么個(gè)不同我還沒(méi)搞明白,等明白了再補上。

另外,具體使用哪種Endian Mode 是在reset時(shí)確定的,Cortex-M3不支持運行中動(dòng)態(tài)切換Endian Mode。



關(guān)鍵詞: ARMCortex-M

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>