<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 《Cortex-M0權(quán)威指南》之體系結(jié)構(gòu)---程序映像和啟動(dòng)流程

          《Cortex-M0權(quán)威指南》之體系結(jié)構(gòu)---程序映像和啟動(dòng)流程

          作者: 時(shí)間:2017-01-12 來源:網(wǎng)絡(luò) 收藏

            我們先來看看程序映像。

          本文引用地址:http://www.ex-cimer.com/article/201701/342822.htm

              

           

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

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

            向量表中包含了MSP的初始值,它存儲(chǔ)在向量表的頭四個(gè)字節(jié)。

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

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

              

           

            復(fù)位流程也會(huì)初始化MSP,假設(shè)內(nèi)存位于0x20000000~0x20007FFF,可以將0x20008000寫在地址0x00000000處,這樣就實(shí)現(xiàn)了把主棧指針置于內(nèi)存的頂部。

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

              



          關(guān)鍵詞: Cortex-M0 處理器

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();