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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM S3C4510B系統(tǒng)中的異常中斷技術(shù)

          ARM S3C4510B系統(tǒng)中的異常中斷技術(shù)

          作者: 時(shí)間:2012-03-29 來(lái)源:網(wǎng)絡(luò) 收藏

          2 中的處理程序的安裝

          通過(guò)向量表安裝處理程序,即將異常向量表指向異常處理程序的入口,實(shí)現(xiàn)面向異常中斷的跳轉(zhuǎn)。這里需要介紹一下 的中斷向量表。在S3C4510B系統(tǒng)中,無(wú)論在地址重映射之前還是之后,異常中斷向量表的入口地址為固定的(見(jiàn)表1)。當(dāng)系統(tǒng)運(yùn)行到滿足異常中斷條件而產(chǎn)生異常中斷時(shí),系統(tǒng)將自動(dòng)跳入相應(yīng)的異常中斷向量表中。而在異常向量表中保存的,正是利用跳轉(zhuǎn)指令或ldr指令指向該中斷的異常中斷處理程序的指令程序,這樣就實(shí)現(xiàn)了異常中斷處理程序的安裝。以SWI軟中斷為例,異常中斷安裝的基本順序如圖2所示,其中異常中斷向量的地址是固定的,其他地址為假設(shè)的。

          2.1 利用跳轉(zhuǎn)指令實(shí)現(xiàn)異常中斷的安裝

          將BL指令放置到中斷向量表的特定位置,跳轉(zhuǎn)目標(biāo)地址為中斷處理程序的首地址,便可直接實(shí)現(xiàn)異常中斷的安裝。其優(yōu)點(diǎn)是BL指令可以直接保存地址,缺點(diǎn)是BL的跳轉(zhuǎn)范圍只有32MB的地址空間,如bl SWI_Handler。

          2.2 利用ldr指令實(shí)現(xiàn)異常中斷的安裝

          利用ldr直接向程序計(jì)數(shù)器PC中賦值也可以實(shí)現(xiàn)中斷處理程序的安裝。先要將異常中斷處理程序首地址的絕對(duì)地址放在鄰近的一個(gè)存儲(chǔ)單元中,然后用ldr命令將該內(nèi)存單元中的地址讀取到PC中。其優(yōu)點(diǎn)是可調(diào)用程序的范圍不受限制,如:

          ldr pc,SWI_ADDR
          ……
          SWI_ADDR dcd SWI_Handler

          以上兩種安裝方法各有優(yōu)缺點(diǎn),需要根據(jù)實(shí)際情況來(lái)選擇。 電子書籍網(wǎng)

          3 S3C4510B系統(tǒng)中SWI異常中斷實(shí)例

          S3C4510B中的SWI指令可以用來(lái)實(shí)現(xiàn)RTOS中的系統(tǒng)功能調(diào)用。它由用戶模式下當(dāng)前執(zhí)行的指令引發(fā),通過(guò)一個(gè)24位的立即數(shù)來(lái)指代SWI需要調(diào)用的系統(tǒng)功能,調(diào)用執(zhí)行的過(guò)程在特權(quán)模式中進(jìn)行。

          3.1 SWI異常中斷的處理程序

          通常我們把SWI的中斷處理程序分為兩級(jí),分別完成立即數(shù)的讀取和功能調(diào)用的執(zhí)行。其指令代碼如下:
          ……

          stmfd sp!,{r0-r12,lr}
          保護(hù)現(xiàn)場(chǎng),保存寄存器的值
          ldr r0,[lr,#-4]
          lr寄存器保存指令
          bic r0,r0,#0XFF000000 ;讀取指令中的24位立即數(shù)
          ……
          cmp R0,#MaxOfSWI
          判斷立即數(shù)是否有效
          ldrls pc,[pc,r0,lsl #2]
          b OutOfSWIRange ;超出范圍
          JumpListofSWI
          dcd SWIPro_0
          dcd SWIPro_1
          ……
          其他所有的軟中斷入口
          SWIPro_0
          進(jìn)入SWI對(duì)應(yīng)立即數(shù)0的中斷處理程序
          ……
          對(duì)應(yīng)立即數(shù)0的中斷處理程序
          b EndOfSWI
          SWIPro0
          進(jìn)入SWI對(duì)應(yīng)立即數(shù)1的中斷處理程序
          ……
          對(duì)應(yīng)立即數(shù)1的中斷處理程序
          b EndOfSWI
          ……
          其他的SWI處理程序
          EndOfSWI
          1dmfd sp!,{r0-r12,pc}^
          恢復(fù)各寄存器

          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理


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