在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

當ARM異常中斷發生時的處理措施

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 2020-08-27 14:21 ? 次閱讀

ARM異常中斷發生時,系統執行完當前指令后,將跳轉到相應的異常中斷處理程序處執行。當異常中斷處理程序執行完成后,程序返回到發生中斷指令的下條指令處執 行。在進入異常中斷處理程序時,要保存被中斷程序的執行現場,從異常中斷處理程序退出時,要恢復被中斷程序的執行現場。

1、引起異常的原因 對于ARM核,可以且只能識別7種處理器異常,每種異常都對應一種ARM處理器模式,當發生異常時,ARM處理器就切換到相應的異常模式,并調用異常處理 程序進行處理。

(1)、指令執行引起的異常 軟件中斷、未定義指令(包括所要求的協處理器不存在是的協處理器指令)、預取址中止(存儲器故障)、數據中止。

(2)、外部產生的中斷 復位、FIQ、IRQ。

2、ARM中異常中斷的種類

(1)、復位(RESET)

a、當處理器復位引腳有效時,系統產生復位異常中斷,程序跳轉到復位異常中斷處理程序處執行,包括系統加電和系統復位。

b、通過設置PC跳轉到復位中斷向量處執行稱為軟復位。

(2)、未定義的指令 當ARM處理器或者是系統中的協處理器認為當前指令未定義時,產生未定義的指令異常中斷,可以通過改異常中斷機制仿真浮點向量運算。

(3)、軟件中斷 這是一個由用戶定義的中斷指令(SWI)??捎糜谟脩裟J较碌某绦蛘{用特權操作指令。在實時操作系統中可以通過該機制實現系統功能調用。

(4)、指令與取終止(Prefech Abort) 如果處理器預取的指令的地址不存在,或者該地址不允許當前指令訪問,當被預取的指令執行時,處理器產生指令預取終止異常中斷。

(5)、數據訪問終止(DATAABORT) 如果數據訪問指令的目標地址不存在,或者該地址不允許當前指令訪問,處理器產生數據訪問終止異常中斷。

(6)、外部中斷請求(IRQ) 當處理器的外部中斷請求引腳有效,而且CPSR的寄存器的I控制位被清除時,處理器產生外部中斷請求異常中斷。系統中個外設通過該異常中斷請求處理服務。

(7)、快速中斷請求(FIQ) 當處理器的外部快速中斷請求引腳有效,而且CPSR的F控制位被清除時,處理器產生外部中斷請求異常中斷。

3、異常的響應過程 除了復位異常外,當異常發生時,ARM處理器盡可能完成當前指令(除了復位異常)后,再去處理異常。并執行如下動作:

(1)、將引起異常指令的下一條指令的地址保存到新模式的R14中,若異常是從ARM狀態進入,LR寄存器中保存的是下一條指令的地址(當前PC+4或 PC+8,與異常的類型有關);若異常是從Thumb狀態進入,則在LR寄存器中保存當前PC的偏移量,這樣,異常處理程序就不需要確定異常是從何種狀態 進入的。例如:在軟件中斷異常SWI,指令MOV PC,R14_svc總是返回到下一條指令,不管SWI是在ARM狀態執行,還是在Thumb狀 態執行。

(2)、將CPSR的內容保存到要執行異常中斷模式的SPSR中。

(3)、設置CPSR相應的位進入相應的中斷模式。

(4)、通過設置CPSR的第7位來禁止IRQ。如果異常為快速中斷和復位。則還要設置CPSR的第6位來禁止快速中斷。

(5)、給PC強制賦向量地址值。上面的異常處理操作都是由ARM核硬件邏輯自動完成的,程序計數器PC總是跳轉到相應的固定地址。如果異常發生時,處理器處于Thumb狀態,則當異常向量地址加載入PC時,處理器自動切換到ARM狀態,則異常處理返回時,自動切換到Thumb狀態。

4、異常中斷處理返回 異常處理完畢之后,ARM微處理器會執行以下幾步操作從異常返回:

(1)、將所有修改過的用戶寄存器從處理程序的保護棧中恢復。

(2)、將SPSR復制回CPSR中,將連接寄存器LR的值減去相應的偏移量后送到PC中。

(3)、若在進入異常處理時設置了中斷禁止位,要在此清除。復位異常處理程序不需要返回。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19409

    瀏覽量

    231189
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9168

    瀏覽量

    369217
  • 存儲器
    +關注

    關注

    38

    文章

    7528

    瀏覽量

    164345

原文標題:ARM異常中斷的原因及處理措施

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電力系統應急處理措施

    的重要性 電力系統應急處理是指在電力系統發生突發事件時,采取的一系列措施以最小化事件對電力供應的影響。這些突發事件可能包括自然災害、設備故障、人為破壞等。有效的應急處理
    的頭像 發表于 01-18 09:42 ?204次閱讀

    串口通訊異常處理方法 串口設備連接方式

    串口通信異常處理方法 1. 異常檢測 在串口通信中,首先需要能夠檢測到異常情況。異常檢測可以通過以下幾種方式實現: 硬件檢測 :利用串口硬件
    的頭像 發表于 12-27 09:53 ?702次閱讀

    單片機有哪些中斷類型

    單片機中斷是指在單片機執行程序的過程中,外部設備或內部條件發生某個特定事件時,能夠暫停當前正在執行的程序,轉而去執行一個特定的服務程序(稱為中斷服務程序或
    的頭像 發表于 10-17 18:12 ?913次閱讀

    ARM處理器的工作模式和特點

    ARM處理器具有多種工作模式,這些模式根據處理器執行的任務和當前的狀態進行劃分。常見的ARM處理器工作模式包括用戶模式(User Mode)
    的頭像 發表于 09-10 11:22 ?1432次閱讀

    ARM處理器的異常中斷響應過程

    ARM處理器的異常中斷響應是嵌入式系統設計中一個至關重要的環節,它確保了系統在面對內部或外部事件時能夠穩定、可靠地運行。
    的頭像 發表于 09-10 11:18 ?1144次閱讀

    Panasonic松下焊接電異常處理

    電子發燒友網站提供《Panasonic松下焊接電異常處理.pdf》資料免費下載
    發表于 08-19 14:24 ?0次下載

    ARM異常有哪些?ARM異常向量表基地址

    我們先回憶一下在單片機上的中斷的使用。
    的頭像 發表于 08-07 09:22 ?1162次閱讀
    <b class='flag-5'>ARM</b>的<b class='flag-5'>異常</b>有哪些?<b class='flag-5'>ARM</b>的<b class='flag-5'>異常</b>向量表基地址

    嵌入式C編程常用的異常錯誤處理

    。 3. 中斷服務程序 (Interrupt Service Routines, ISR) 在嵌入式系統中,中斷處理異常情況的常用方法。ISR用于
    發表于 08-06 14:32

    plc突然斷電會導致什么異常

    PLC(Programmable Logic Controller,可編程邏輯控制器)是一種廣泛應用于工業自動化領域的控制器。PLC突然斷電時,可能會導致一些異常情況,這些異常情況可能
    的頭像 發表于 07-25 10:11 ?1671次閱讀

    如何降低功率元器件發生絕緣品質異常

    絕緣體內存在氣泡(Void)或絕緣體間存在氣隙(Airgap)時,在正常工作電壓下氣泡或氣隙容易發生局部放電(PartialDischarge,PD),導致絕緣劣化造成絕緣品質異常。例如:樹酯內有
    的頭像 發表于 05-28 10:51 ?328次閱讀
    如何降低功率元器件<b class='flag-5'>發生</b>絕緣品質<b class='flag-5'>異常</b>

    RISC-V的中斷處理 中斷操作三個步驟

    中斷操作三個步驟: 1、中斷初始化 2、trap處理 3、用戶中斷處理
    的頭像 發表于 05-20 16:38 ?1382次閱讀

    STM32中關于USB的mass storage類通信中輸入中斷處理的疑問求解

    發生輸入中斷進入非零端點處理的輸入中斷處理的回調函數EP1_IN_Callback中使用了Mass_Storage_In函數,其中需要判斷
    發表于 05-17 07:40

    STM32F429IGT6初始化LCD-TFT導致的晶振輸出異常怎么解決?

    干擾),此不影響產品的正常運行,但是導致U盤在播放MP3歌曲時異常中斷,請問這是ST的stm32F429系列的硬件BUG嗎?
    發表于 04-01 07:48

    請問STM32IDE如何設定代碼到ITCM中運行?

    摸索到了如何將變量定義到某個地址,但是不清楚如何讓代碼在指定RAM中運行。按照設定變量的方式設定代碼,程序直接進入了異常中斷{:16:}。
    發表于 03-26 06:08

    算術運算期間發生除以零或下溢/溢出時,ARM926EJ-S內核的行為是什么?

    算術運算期間發生除以零或下溢/溢出時,ARM926EJ-S 內核的行為是什么。 我知道有些架構已經定義了行為,或者可以將其配置為觸發中斷以響應其中一個算術
    發表于 02-22 07:35
    主站蜘蛛池模板: 伊人久久网站 | 清纯唯美亚洲综合欧美色 | 91精品啪国产在线观看免费牛牛 | 亚洲五月六月丁香激情 | 四虎永久精品视频在线 | 色婷婷综合久久久 | 永久看免费bbbbb视频 | 黄视频在线观看免费 | 日本妞xxxxxxxxx69 | 色爱区综合激情五月综合色 | 台湾毛片| 淫欲网 | 天天色天天色天天色 | 综合网在线观看 | 啪啪伊人网 | 天天爱综合 | 好男人社区www在线资源视频 | 最近免费hd | 欧美性69 | 一级片免费在线播放 | 久久国内视频 | 色综合久久综合欧美综合图片 | 免费人成黄页在线观看1024 | 射吧亚洲| 欧美作爱福利免费观看视频 | 精品一区二区国语对白 | 两性色午夜视频自由成熟的性 | 亚洲伊人久久大香线蕉结合 | 四虎最新入口 | 久久综合色视频 | 欧美日韩免费大片 | 亚洲a区视频 | 在线免费观看色片 | 久久综合成人网 | 久久中文字幕一区二区三区 | 久在操| 天堂中文在线www | 国产人成精品香港三级古代 | 日本口工福利漫画无遮挡 | 国产女乱淫真高清免费视频 | 午夜一级毛片不卡 |