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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM·微處理器的編程模型

          ARM·微處理器的編程模型

          作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          2)程序狀態(tài)寄存器(CPSR)

          ·mode:表示處理器的工作狀態(tài)
          ·T:0,ARM state;1,Thumb state ;
          ·interrupt disable bits
          I=1:Disables the IRQ
          F=1:Disable the FIO
          ·condition code flags
          N = Negative result from ALU (非零)
          Z = Zero result from ALU (結(jié)果是零)
          C = ALU operation Carried out (進(jìn)位)
          V = ALU operation Overflowed (溢出)
          v5,v6的
          Q:dsp擴(kuò)展單元
          J:java加速器
          (處理器用于存儲數(shù)據(jù)方式有兩種,分為大字節(jié)序和小字節(jié)序
          大字節(jié)序:高字節(jié)在低位,低字節(jié)在高位
          小字節(jié)序:高字節(jié)在高位,低字節(jié)在低位
          *老版本只支持小字字節(jié),現(xiàn)在都支持,linux網(wǎng)絡(luò)編程采用大字節(jié)序)
          【ARM所支持的異?!?div>(只要正常的程序流被暫時中止,處理器將進(jìn)入異常模式。在處理異常之前,ARM9內(nèi)核保存的當(dāng)前的處理器狀態(tài)(CPSR->SPSR),這樣當(dāng)處理器結(jié)束時可以恢復(fù)執(zhí)行原來的程序(SPSR->CPSR))

          Reset:復(fù)位中斷 ;
          Undefineed Instruction :未定義指令;
          Software Interrupt:軟件中斷
          Prefetch Abort:預(yù)取指令中止 ;
          Date Abort :數(shù)據(jù)中止 ;
          IRQ:外部中斷 ;
          FIQ:快速中斷請求 ;
          【異常的響應(yīng)】
          1)進(jìn)入異常:
          *LR中保存當(dāng)前執(zhí)行指令的下一條指令的地址:LR=PC-4
          *CPSR->SPSR (保留狀態(tài))
          *CPSR->與異常類型相對應(yīng)的狀態(tài)
          *PC從相關(guān)異常向量處取址
          *跳轉(zhuǎn),執(zhí)行命令
          2)從異常返回
          *SPSR->CPSR
          *LR寄存值減去一個偏移量后復(fù)制到PC寄存器,跳轉(zhuǎn)被中斷的用戶程序



          (這里,結(jié)合ARM7的3級流水線處理結(jié)構(gòu)可以詳細(xì)的思考一下,但是為什么第一步不把PC-8保存在R14里面?)
          上一頁 1 2 下一頁

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

          評論


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