arm中断保护和恢复_浅谈ARM处理器的七种异常处理
昨天的文章,我們談了ARM處理器的七種運行模式,分別是:用戶模式User(usr),系統模式System(sys),快速中斷模式(fiq),管理模式Supervisor(svc),外部中斷模式(irq),數據訪問中止模式Abort(abt),未定義指令中止模式Undfined(und)。
今天我們來談談ARM處理器所支持的七種異常處理。
ARM處理器的異常
當程序在正常執行過程中,出現暫時停止時,我們稱之為發生了異常。比如說,在程序執行過程中,接到一個外部的中斷申請。
處理器在接到中斷申請之后,一般要經過下面的步驟:
當有多個中斷同時申請時,處理器將按照優先級,順次進行處理。
需要指出的是,異常并不完全等同與中斷,中斷只是ARM所支持異常類型的一種。
ARM所支持的異常類型
ARM體系處理器支持的異常處理有7種,下表列出了ARM體系處理器支持的異常及各異常的含義。
- 復位
在復位電平有效時,就會產生復位異常,程序跳轉到復位處理程序處執行。復位向量地址是0x00000000開始連續四個字節。復位異常通常用在:系統加電時,系統復位時,跳轉到復位向量地址。
- 未定義指令
當遇到不能處理的指令時,產生未定義指令異常。向量地址為:0x00000004開始連續四個字節。
- 軟件中斷
執行SWI指令產生,用于用戶模式下的程序調用特權操作指令。在實時操作系統(RTOS)中可以通過該機制實現系統功能調用。向量地址為:0x00000008開始連續四個字節。
- 指令預取中止
處理器預取指令的地址不存在,或該地址不允許當前指令訪問,產生此類異常。向量地址為:0x0000000C開始連續四個字節。
- 數據中止
處理器數據訪問指令的地址不存在,或該地址不允許當前指令訪問時,產生數據中止異常。向量地址為:0x00000010開始連續四個字節。
- IRQ
外部中斷請求有效,且CPSR中的I位為0時,產生IRQ異常。向量地址為:0x00000018開始連續四個字節。
- FIQ
快速中斷請求引腳有效,且CPSR中的F位為0時,產生FIQ異常。向量地址為:0x0000001C開始連續四個字節。
ARM處理器對異常的響應過程
如果一個異常出現,復位異常會立即中止當前指令執行,除此之外的其他異常,處理器會盡可能完成當前指令,然后再去處理異常。對異常的響應一般分為以下幾步:
ARM處理器從異常處理中返回過程
在處理完異常之后,恢復用戶任務的正常執行,即從異常處理中返回。ARM處理器從異常中返回,一般分為以下幾步:
小結
今天我們談了ARM處理器的七種異常情況,并介紹了對異常的響應過程,和返回過程。深入了解今天的內容,是使用ARM處理器實現嵌入式系統編程的前提。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的arm中断保护和恢复_浅谈ARM处理器的七种异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机应用基础重点分析,计算机应用基础整
- 下一篇: bios设置 联想m8000t_怎么进b