新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 《Cortex-M0權威指南》之體系結構---程序映像和啟動流程

        《Cortex-M0權威指南》之體系結構---程序映像和啟動流程

        作者: 時間:2017-01-12 來源:網絡 收藏

          我們先來看看程序映像。

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

            

         

          通常,的程序映像時從地址0x00000000處開始的。

          程序映像開始處時向量表,其中包含了異常的其實地址(向量),每個中斷向量的地址都等于“異常號*4”,比如,外部IRQ0的異常類型為16,因此其向量地址為16*4=0x40。這些向量的最低位都被置為1,以表示使用thumb指令。向量表的大小由實際使用的中斷個數決定。

          向量表中包含了MSP的初始值,它存儲在向量表的頭四個字節。

          復位時,首先讀取向量表的前兩個字(8個字節),第一個字為MSP的初始值,第二個字為復位向量,它表示程序執行的起始地址。

          例如,如果啟動代碼位于地址0x000000C0,需要在復位向量處寫入這個地址,并且將地址的最低位置為1,以表明當前為thumb代碼,因此,地址0x00000004處的值為0x000000C1。在取得復位向量值后,開始從這個地址處執行程序代碼。

            

         

          復位流程也會初始化MSP,假設內存位于0x20000000~0x20007FFF,可以將0x20008000寫在地址0x00000000處,這樣就實現了把主棧指針置于內存的頂部。

          如果要使用PSP,在配置CONTROL寄存器切換棧指針前,必須首先通過軟件代碼將其初始化,因為復位流程只初始化MSP,不初始化PSP。

            



        關鍵詞: Cortex-M0 處理器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 莲花县| 本溪市| 新野县| 彝良县| 邵阳县| 太谷县| 盐边县| 山东| 曲阳县| 佛学| 尉犁县| 梅河口市| 铜梁县| 怀化市| 香格里拉县| 东乌珠穆沁旗| 九台市| 平顺县| 闵行区| 新乐市| 高青县| 杭锦后旗| 河北区| 淅川县| 平阳县| 竹溪县| 尚义县| 莱州市| 临潭县| 盘锦市| 崇仁县| 石屏县| 台南县| 依安县| 涟源市| 龙门县| 格尔木市| 霍邱县| 丰县| 洪泽县| 呼和浩特市|