0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM中的5種異常模式和7種中斷源

GReq_mcu168 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-08-27 17:45 ? 次閱讀

ARM中有5種異常模式,有7種中斷源。這7種中斷源中有些中斷是我們希望發(fā)生的,但有些中斷是我們不希望發(fā)生的。

我們希望發(fā)生的中斷:

軟中斷:屬于svc模式,通過(guò)SWI指令便可以產(chǎn)生軟中斷,進(jìn)入到svc模式。

irq中斷:屬于irq模式,當(dāng)產(chǎn)生普通的外部中斷時(shí),處理器便進(jìn)入到IRQ模式。

fiq中斷:屬于fiq模式,當(dāng)產(chǎn)生高優(yōu)先級(jí)外部中斷時(shí),處理器便進(jìn)入到FIQ模式。

我們不希望發(fā)生的中斷:

復(fù)位:屬于svc模式,當(dāng)系統(tǒng)上電時(shí)便會(huì)產(chǎn)生復(fù)位中斷,系統(tǒng)進(jìn)入到svc模式。復(fù)位中斷不需要中斷返回。

取指中止中斷:屬于abt模式,當(dāng)預(yù)取指發(fā)生錯(cuò)誤時(shí),便產(chǎn)生取指中止中斷,進(jìn)入到abt模式。

數(shù)據(jù)中止中斷:屬于abt模式,當(dāng)訪問(wèn)數(shù)據(jù)存儲(chǔ)器時(shí),便產(chǎn)生數(shù)據(jù)中止中斷,進(jìn)入到abt模式。

未定義指令中斷:屬于und模式,當(dāng)執(zhí)行到一條未定義指令時(shí),便產(chǎn)生未定義指令中斷,系統(tǒng)進(jìn)入到und模式。

中斷的優(yōu)先級(jí):

ARM中有6個(gè)優(yōu)先級(jí)。各個(gè)中斷的優(yōu)先級(jí)順序如下:(1 6 6s 5 2 4 3)

復(fù)位: 1數(shù)據(jù)中止中斷:2fiq中斷:3irq中斷:4預(yù)取址中止中斷:5未定義指令中斷和軟中斷:6

關(guān)于各種中斷在中斷返回時(shí)還需要給LR減去一個(gè)不同的偏移量的問(wèn)題我覺(jué)得沒(méi)必要深入研究了,這還要涉及到ARM指令的流水線技術(shù),平時(shí)寫中斷代碼都是用C寫的,沒(méi)必要知道這個(gè)。用到時(shí)再去查表即可。

處理器在進(jìn)入異常和退出異常時(shí)所做的工作:

進(jìn)入異常時(shí):

1、將要返回處的地址保存在對(duì)應(yīng)異常模式的LR中。(復(fù)位不需要保存返回地址)2、將cpsr的內(nèi)容復(fù)制到對(duì)應(yīng)異常模式的spsr中。3、強(qiáng)制修改cpsr的內(nèi)容,進(jìn)入到相應(yīng)異常模式以及根據(jù)需要修改某些位。4、強(qiáng)制PC從相應(yīng)的中斷向量地址處進(jìn)行取址。

注:以上這些步驟都是有cpu自動(dòng)完成的,也就是當(dāng)有中斷產(chǎn)生時(shí),硬件就會(huì)自動(dòng)完成上述步驟。

退出異常時(shí):

1、將LR中保存的地址賦給PC。2、將spsr的內(nèi)容恢復(fù)給cpsr。3、將irq中斷禁止位清零。

注:只需要在異常處理程序中寫一句返回指令(如上面的表4.1所示)即可全部實(shí)現(xiàn)上述的步驟。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    8967

    瀏覽量

    365018
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    889

    瀏覽量

    41219

原文標(biāo)題:ARM中的異常和中斷

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM異常處理流程

    在學(xué)習(xí)與開(kāi)發(fā)ARM處理器的過(guò)程,一個(gè)不能繞開(kāi)的話題就是異常處理流程。它在ARM的體系架構(gòu),占據(jù)著不可動(dòng)搖的重要地位。此處就以Coterx
    發(fā)表于 10-14 16:15

    淺談ARM體系CPU的7工作模式

    模式之外的其他5模式又統(tǒng)稱為異常模式。它們除了可以通過(guò)在特權(quán)下的程序切換進(jìn)入外,也可以由特定的異常
    發(fā)表于 11-24 11:34

    簡(jiǎn)述ARM的2工作狀態(tài)和7工作模式

    寄存器的賦值來(lái)切換的。Tips:當(dāng)處理器運(yùn)行在用戶模式下,某些被保護(hù)的系統(tǒng)資源是不能被訪問(wèn)的。除用戶模式外,其余6工作模式都屬于特權(quán)模式
    發(fā)表于 08-20 12:30

    ARM的2工作狀態(tài)和7工作模式。[附帶文檔下載]

    寄存器的賦值來(lái)切換的。Tips:當(dāng)處理器運(yùn)行在用戶模式下,某些被保護(hù)的系統(tǒng)資源是不能被訪問(wèn)的。除用戶模式外,其余6工作模式都屬于特權(quán)模式;
    發(fā)表于 08-20 09:14

    ARM體系的七工作模式分別是哪些

    ARM體系的七工作模式如下:狀態(tài)碼工作模式特權(quán)模式異常模式說(shuō)明 10000用戶
    發(fā)表于 12-15 07:52

    教你一ARM處理異常中斷的方法

    表的入口是一些跳轉(zhuǎn)指令,跳轉(zhuǎn)到專門處理某個(gè)異常中斷的子程序。異常分類要進(jìn)入異常模式,一定要有異常
    發(fā)表于 08-18 15:26

    在SWI軟中斷指令LR中放的是異常模式下的返回地址求解

    請(qǐng)問(wèn):在 SWI 軟中斷指令,LR 中放的是異常模式下的返回地址,而這個(gè)地址的低 8 位和低 24 位分別是 thumb 和 ARM指令下的立即數(shù),這種對(duì)應(yīng)的關(guān)系是如何來(lái)的 還有執(zhí)行
    發(fā)表于 02-27 10:16

    ARM處理器7工作模式

    寄存器的賦值來(lái)切換的。 Tips:當(dāng)處理器運(yùn)行在用戶模式下,某些被保護(hù)的系統(tǒng)資源是不能被訪問(wèn)的。 除用戶模式外,其余6工作模式都屬于特權(quán)模式
    發(fā)表于 12-15 10:15

    ARM體系異常中斷及其應(yīng)用

    ARM體系異常中斷及其應(yīng)用
    發(fā)表于 09-22 16:51 ?4次下載
    <b class='flag-5'>ARM</b>體系<b class='flag-5'>中</b>的<b class='flag-5'>異常中斷</b>及其應(yīng)用

    arm處理器異常模式有哪些

    所謂異常就是正常的用戶程序被暫時(shí)中止,處理器就進(jìn)入異常模式,例如響應(yīng)一個(gè)來(lái)自外設(shè)的中斷,或者當(dāng)前程序非法訪問(wèn)內(nèi)存地址都會(huì)進(jìn)入相應(yīng)異常模式。
    發(fā)表于 11-02 12:57 ?1.9w次閱讀
    <b class='flag-5'>arm</b>處理器<b class='flag-5'>異常模式</b>有哪些

    淺談ARM體系CPU的7工作模式

    特權(quán)模式除系統(tǒng)(system)模式之外的其他5模式又統(tǒng)稱為
    發(fā)表于 11-08 14:05 ?2432次閱讀

    ARM處理器的異常模式

    關(guān)于“進(jìn)入異常”:在異常發(fā)生后,ARM7TDMI內(nèi)核會(huì)作以下工作:
    發(fā)表于 07-21 09:10 ?2687次閱讀
    <b class='flag-5'>ARM</b>處理器的<b class='flag-5'>異常模式</b>

    arm處理器的異常模式包括哪些

    正確處理,處理器可能會(huì)崩潰或數(shù)據(jù)損毀。ARM處理器有七異常模式,即:重置模式、用戶模式、FIQ模式
    的頭像 發(fā)表于 09-05 16:22 ?2604次閱讀

    arm處理器有哪些中斷?arm處理器對(duì)異常中斷的響應(yīng)過(guò)程

    arm處理器有哪些中斷?arm處理器對(duì)異常中斷的響應(yīng)過(guò)程? ARM處理器是一
    的頭像 發(fā)表于 10-19 16:35 ?1246次閱讀

    arm中斷是怎么實(shí)現(xiàn)的

    ARM中斷的實(shí)現(xiàn)是通過(guò)中斷控制器和異常模式實(shí)現(xiàn)的。ARM處理器通過(guò)中斷控制器來(lái)接收和處理外部的
    的頭像 發(fā)表于 01-05 15:18 ?588次閱讀