新聞中心

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

        ARM Cortex-M3 學習筆記(2)

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

        第二章 Cortex-M3 概述
        Cortex M3 內核的組成可以用一張簡圖來表示:

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

        圖 3 Cortex-M3內核簡圖

        內核寄存器組包括R0-R15,R0-R12是通用寄存器,部分Thumb指令只能訪問R0-R7。
        R13是堆棧指針,實際上有兩個,一個是主堆棧指針(MSP)另一個是進程堆棧指針(PSP),堆棧要求4字節對齊。
        R14存放程序的返回地址。
        R15是PC,記錄程序當前的執行地址。

        特殊功能寄存器包括:
        程序狀態字寄存器組(PSRs)
        中斷屏蔽寄存器組(PRIMASK, FAULTMASK, BASEPRI)
        控制寄存器(CONTROL)

        運行模式和特權級別
        兩種運行模式:handler mode和thread mode。
        兩種特權級別:特權級和用戶級

        中斷例程工作在特權級,普通程序代碼既可以工作在特權級也可以在用戶級。
        相互間的轉換用下圖來描述:

        圖 4 操作模式轉換圖
        嵌套向量中斷控制器NVIC(Nested Vectored Interrupt Controller)
        ? 可嵌套中斷支持
        ? 向量中斷支持
        ? 動態優先級調整支持
        后面有一章會對NVIC進行詳細的介紹。

        地址空間分配
        與以前的ARM 內核不同,Cortex-M3對地址空間的分配有個大的框架。向NVIC寄存器等的地址也都被固定了下來,這就方便了在程序的移植。具體的地址分配可以用下圖來簡單的描述:

        圖 5 地址分配

        總線
        Cortex-M3內部有若干個總線接口,以使Cortex-M3能同時讀取程序代碼和訪問內存,它們是:
        指令存儲區總線(兩條)
        系統總線
        私有外設總線

        中斷和異常
        Cortex-M3支持11個內部異常和240個外部中斷。當然,對具體的芯片,可以支持的外部中斷數量肯定就要少的多了。

        調試支持
        在支持傳統的JTAG基礎上,還支持更新更好的串行線調試接口。
        基于CoreSight調試解決方案,使得處理器哪怕是在運行時,也能訪問處理器狀態和存儲器內容。
        內建了對多達6個斷點和4個數據觀察點的支持。



        關鍵詞: ARMCortex-M

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 县级市| 保靖县| 栾川县| 班戈县| 西华县| 淮安市| 仙桃市| 武胜县| 赤水市| 夏河县| 临城县| 信阳市| 玉环县| 延寿县| 德令哈市| 通道| 临夏市| 台前县| 西乌珠穆沁旗| 博爱县| 潍坊市| 太仆寺旗| 宜君县| 东丰县| 沙田区| 平原县| 格尔木市| 肥城市| 犍为县| 三河市| 佛冈县| 台东市| 繁峙县| 武功县| 游戏| 壶关县| 汤原县| 安徽省| 旌德县| 宁阳县| 东山县|