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

          新聞中心

          ARM處理器編程模型

          作者: 時(shí)間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
          一、arm采用RISC體系結(jié)構(gòu)

          RISC并非只是簡(jiǎn)單地去減少指令,而是把著眼點(diǎn)放在了如何使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理地提高運(yùn)算速度上,優(yōu)先選取使用頻最高的簡(jiǎn)單指令。

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

          二、ARM處理器共有37個(gè)寄存器,被分為若干個(gè)組(BANK),這些寄存器包括:
          31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC指針),均為32位的寄存器。
          6個(gè)狀態(tài)寄存器,用以標(biāo)識(shí)CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為32位,目前只使用了其中的一部分。

          三、ARM微處理器在較新RISC體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集。
          ARM指令為32位的長(zhǎng)度,Thumb指令為16位長(zhǎng)度
          Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省30%~40%以上的存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。

          四、arm處理器的工作狀態(tài)

          ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:
          1、ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令;
          2、Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。
          ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換,但ARM微處理器在開始執(zhí)行代碼時(shí),應(yīng)該處于ARM狀態(tài)。

          五、ARM體系結(jié)構(gòu)的存儲(chǔ)器格式

          1、(1)大端格式:在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中

          (2)小端格式:在這種格式中,字?jǐn)?shù)據(jù)的低字節(jié)存儲(chǔ)在低地址中

          2、存儲(chǔ)管理單元-MMU

          其主要功能有:
          (1)將主存地址從虛擬存儲(chǔ)空間映射到物理存儲(chǔ)空間。
          (2)存儲(chǔ)器訪問權(quán)限控制。
          (3)設(shè)置虛擬存儲(chǔ)空間的緩沖特性等。


          六、處理器模式

          ARM微處理器支持7種運(yùn)行模式,分別為:


          除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。

          除用戶模式和系統(tǒng)模式外,其它模式均為異常模式。它們除了可以通過程序切換進(jìn)入外,也可以由特定的異常進(jìn)入。當(dāng)特定的異常出現(xiàn)時(shí),處理器進(jìn)入相應(yīng)的模式。每種異常模式都有一些獨(dú)立的寄存器,以避免異常退出時(shí)用戶模式的狀態(tài)不可靠。

          用戶模式和系統(tǒng)模式這兩種模式都不能由異常進(jìn)入,而且它們使用完全相同的寄存器組。

          系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問用戶模式的寄存器就比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個(gè)模式訪問一些受控的資源。

          六、寄存器

          ARM微處理器中的寄存器不能被同時(shí)訪問,具體哪些寄存器是可編程訪問的,取決微處理器的工作狀態(tài)及具體的運(yùn)行模式。
          但在任何時(shí)候,通用寄存器R14~R0、程序計(jì)數(shù)器PC、一個(gè)或兩個(gè)狀態(tài)寄存器都是可訪問的。

          1、arm狀態(tài)下寄存器
          通用寄存器包括R0~R15,可以分為三類:
          未分組寄存器R0~R7:在所有的運(yùn)行模式下,未分組寄存器都指向同一個(gè)物理寄存器,他們未被系統(tǒng)用作特殊的用途
          分組寄存器R8~R14;對(duì)于分組寄存器,他們每一次所訪問的物理寄存器與處理器當(dāng)前的運(yùn)行模式有關(guān)。
          程序計(jì)數(shù)器PC(R15):寄存器R15用作程序計(jì)數(shù)器(PC)

          2、Thumb狀態(tài)下的寄存器

          程序員可以直接訪問的寄存器為:
          8個(gè)通用寄存器R0~R7;
          程序計(jì)數(shù)器(PC);
          堆棧指針(SP);
          鏈接寄存器(LR);
          有條件訪問程序狀態(tài)寄存器( CPSR)。

          3、ARM狀態(tài)和Thumb狀態(tài)之間寄存器的關(guān)系
          Thumb狀態(tài)R0~R7與ARM狀態(tài)R0~R7相同;
          Thumb狀態(tài)CPSR和SPSR與ARM狀態(tài)CPSR和SPSR相同;
          Thumb狀態(tài)SP映射到ARM狀態(tài)R13;
          Thumb狀態(tài)LR映射到ARM狀態(tài)R14;
          Thumb狀態(tài)PC映射到ARM狀態(tài)PC(R15)。

          七、異常

          1、當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常。類型如下:


          2、當(dāng)多個(gè)異常同時(shí)發(fā)生時(shí),ARM9處理器將按照異常的優(yōu)先級(jí)高低順序處理,異常優(yōu)先級(jí)由高到低的排列次序如表所示。



          關(guān)鍵詞: ARM處理器編程模

          評(píng)論


          技術(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); })();