1.ARM的體系與架構(gòu)
1.1.ARM體系的CPU有以下其中工作模式:
用戶模式 (usr)
快速中斷模式 (fiq)
中斷模式 (irq)
管理模式 (svc)
數(shù)據(jù)訪問終止模式 (abt)
系統(tǒng)模式 (sys)
未定義指令終止模式 (und)
1.2.ARM寄存器:
31個通用寄存器 : R0~R7(未備份寄存器) , R8~R14(備份寄存器) , R15( 程序計數(shù)器PC )
6個狀態(tài)寄存器 : CPSR( 當前程序狀態(tài)寄存器) , SPSR(備份程序狀態(tài)寄存器)
2.ARM狀態(tài)下當異常發(fā)生時, 處理器將切換進相應的模式:
2.1. 當異常發(fā)生時, 處理器將自動完成以下事情 :
在異常工作模式的連接寄存器R14中保存前一個工作模式的下一條指令(即將執(zhí)行)的地址,
對于ARM狀態(tài), 這個值是當前PC值加4或者加8
將CPSR的值復制到異常模式的SPSR
將CPSR的工作模式位設為這個異常對應的工作模式
令PC值等于這個異常模式在異常向量表中的地址 , 即跳轉(zhuǎn)到異常向量表中執(zhí)行對應的指令
2.2. 當從異常模式返回到之前的工作模式時, 則需軟件完成以下工作 :
進入異常時, R14保存了前一個工作模式的下一個指令地址 ,所以要將他減去一個適當?shù)闹?/p>
將SPSR的值復制回CPSR
2.3. 關(guān)于R14在發(fā)生異常時保存的地址參考表:
3. 使用中斷的步驟 :
3.1. 設置好中斷模式和快速中斷模式下的棧 , 它們分別使用自己的棧
3.2. 準備好中斷處理函數(shù) :
異常向量地址 : irq(0x00000018) , fiq(0x0000001c)
中斷服務程序(isr) : 對于irq,通過判斷INTPND或者INTOFFSET來確定中斷源, fiq只有一個中斷
清除中斷 : 如果不清除中斷會讓CPU誤以為中斷又一次發(fā)生了
3.3. 進入、退出中斷或快速中斷時, 需要保存、回復中斷的運行環(huán)境
3.4. 設置中斷涉及到的寄存器 .
3.4.1. 外部中斷被分為被SUBSRCPND/SUBMASK寄存器控制的中斷,不被
SUBSRCPND/SUBMASK寄存器控制的中斷.
3.4.2. 外部中斷必須經(jīng)過SRCPND( SOURCE PENDING)寄存器的控制
3.4.3. 外部中斷最終經(jīng)過INTMASK(中斷屏蔽)與INTMODE(中斷模式)寄存器
的控制
3.4.4. 外部中斷經(jīng)過PRIORITY(優(yōu)先級寄存器)的仲裁決定優(yōu)先級
3.4.5. 通過INTPND寄存器來確認中斷的發(fā)生以及清除中斷 ,同一時間內(nèi)只有一位
被置一
設計資源 培訓 開發(fā)板 精華推薦
- RD-350,用于蜂窩電話的 5W、5V 交流轉(zhuǎn)直流單輸出電源的參考設計
- 使用 Microchip Technology 的 LM285EOA-1.2 的參考設計
- AKD5357-B,AK5357 24 位 Delta-Sigma ADC 評估板
- MAXREFDES220#:智能指尖式心率計及脈搏血氧儀,具備信號處理功能
- STEVAL-ISA069V1,使用 ST1S31 的演示板,3 A / 1.5 MHz 降壓同步開關(guān)穩(wěn)壓器
- 老璇退坑鍵盤V2
- 【ART-Pi】RT-THREAD
- puzzle level 8(益智拼圖)
- LTC2208IUP 演示板,CMOS 輸出,130Msps,16 位 ADC,70MHz
- 使用 LT3045IMSE 并聯(lián)多個使用 ILIM(電流監(jiān)視器)的器件以消除鎮(zhèn)流器電阻壓降的典型應用
- ROHM推出“PFC+反激控制參考設計”,助力實現(xiàn)更小巧的電源設計!
- 實現(xiàn)自我溝通和與世界溝通的新方式
- 上汽集團將推10萬級半固態(tài)電池車型
- Bourns 推出其最小封裝尺寸 AEC-Q200 認證車規(guī)級厚膜電阻
- 特斯拉大量使用激光雷達!
- 為何只有特斯拉采用PC芯片,而其他車企采用手機級車規(guī)芯片?
- 孚能科技:全固態(tài)電池進入中試生產(chǎn)階段,計劃年底建成 0.2GWh 中試線
- 三星顯示獲梅賽德斯-邁巴赫S級48英寸OLED屏幕訂單
- Clearmotion全主動懸掛系統(tǒng)將搭載保時捷,蔚來ET9已應用
- R-SARC上車國產(chǎn)車型 京西智行讓智能底盤科技平權(quán)