新聞中心

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

        ARM Cortex-M3 學習筆記(5)

        作者: 時間:2016-11-20 來源:網絡 收藏
        最近在學ARM Cortex-M3,找了本號稱很經典的書“An Definitive Guide to The ARM Cortex-M3”在看。這個系列學習筆記其實就是在學習這本書的過程中做的讀書筆記。

        本文引用地址:http://www.104case.com/article/201611/318830.htm

        第五章 存儲器系統

        地址空間分配

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

        圖 1 Cortex-M3 地址空間分配

        片內SRAM地址空間和片內外設地址空間中各有1MB是所謂的位帶區。這個區數據可以按位訪問。外部SRAM和外部外設地址空間中沒有位帶區。

        RAM地址空間與外設地址空間最大的區別是RAM地址空間中的存儲的數據是可以作為程序代碼運行的,而外設地址空間中的數據卻不能運行。當然,程序最好還是放到片內的代碼區,因為對這個區域的訪問有專用的總線,因此讀取程序代碼與讀取RAM區的數據可以同時進行,效率最高。

        Bit-Band 操作

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

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

        Endian Mode

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

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

        另外,具體使用哪種Endian Mode 是在reset時確定的,Cortex-M3不支持運行中動態切換Endian Mode。



        關鍵詞: ARMCortex-M

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 罗定市| 中方县| 柳河县| 定结县| 芦山县| 池州市| 道孚县| 宿州市| 琼结县| 英吉沙县| 孝昌县| 施甸县| 会理县| 垫江县| 岚皋县| 白银市| 苗栗县| 女性| 怀柔区| 洛川县| 陆川县| 紫阳县| 鲁甸县| 恩施市| 伊春市| 洛川县| 宁化县| 华宁县| 长寿区| 肥东县| 浙江省| 精河县| 胶州市| 平山县| 南安市| 西华县| 罗甸县| 灵武市| 宝坻区| 宁城县| 启东市|