吴忠躺衫网络科技有限公司

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

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

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

異常和中斷處理簡(jiǎn)介

Q4MP_gh_c472c21 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-06-25 10:49 ? 次閱讀

關(guān)于異常處理,分為三部分:

1. ARM異常和模式:core處理異常時(shí)的操作,幾種模式介紹。2. Vector table:3. 異常優(yōu)先級(jí)4. lr偏移:幾種異常如何返回

異常和中斷處理簡(jiǎn)介

嵌入式系統(tǒng)中異常處理是核心之一。高效的處理能夠極大的提升系統(tǒng)的性能。ARM處理器一共有7種可以暫停指令的執(zhí)行序列的異常。主要分為三個(gè)部分:

1. Exception handling2. Interrupts3. Interrupt handling schemes今天我們主要介紹第一部分

Exception Handling

1.ARM Processor Exceptions And Modes

任何一種中斷模式都可以通過(guò)手動(dòng)的修改cpsr的值來(lái)進(jìn)入。但是User和System模式是僅有的2個(gè)不能由相應(yīng)中斷進(jìn)入的模式,換句話說(shuō),我們必須要通過(guò)手動(dòng)修改cpsr才能進(jìn)入。

當(dāng)一個(gè)異常產(chǎn)生的時(shí)候,core會(huì)自動(dòng)進(jìn)行如下4步:1. saves the cpsr to the spsr of the exception mode2. saves the pc to the lr of the exception mode3. sets the cpsr to the exception mode4. sets the pc to the address of the exception handler

需要注意的是,當(dāng)異常產(chǎn)生的時(shí)候,ARM處理器總是會(huì)切換到ARM狀態(tài)。

2.Vector Table

handler定位在相應(yīng)內(nèi)存位置中,如下圖的IRQ,FIQ

0x00000018: 0xe59ffa38 IRQ ; ldr pc, [pc, #irq]0x0000001c: 0xe59ffa38 FIQ ; ldr pc, [pc, #fiq]

3.Exception Priorities

4.Link Register Offset

如下三種從IRQ和FIQ異常處理返回的例子

例1:

handler

...

SUBS pc, r14, #4 ;pc = r14 -4

因?yàn)镾UB后的S和pc作為目標(biāo)寄存器,cpsr的值會(huì)自動(dòng)從spsr中恢復(fù)出來(lái)

例2:

handler

SUB r14, r14, #4 ;r14 -= 4

...

...

MOVS pc, r14

r14 = r14 -4, pc = r14 , cpsr =spsr(因?yàn)镾)

例3:

handler

SUB r14, r14, #4 ; r14 = r14 - 4

STMFD r13!, {r0-r3, r14} ;store context

...

LDMFD r13!, {r0-r3, r14}^ ;return

STMFD,LDMFD 分別提供了pop/push的功能。STMFD sp!, {r0-r3, r14}就是依次將r14, r3, r2, r1放入棧中。LDMFD r13!, {r0-r3, r14}^則依次反向取出。^這個(gè)符號(hào),則強(qiáng)制cpsr從spsr中恢復(fù)出來(lái)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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

    文章

    9167

    瀏覽量

    369208
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3625

    瀏覽量

    129755
  • 中斷處理
    +關(guān)注

    關(guān)注

    0

    文章

    94

    瀏覽量

    11015

原文標(biāo)題:嵌入式ARM系統(tǒng)異常和中斷處理知識(shí)總結(jié)

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是ARM中斷事件?ARM中斷異常處理具體過(guò)程

    ARM處理器是一種流行的處理器架構(gòu),用于許多現(xiàn)代移動(dòng)設(shè)備和嵌入式系統(tǒng)中。中斷異常是ARM處理器中的兩個(gè)重要概念,它們是
    發(fā)表于 09-05 15:45 ?1995次閱讀
    什么是ARM<b class='flag-5'>中斷</b>事件?ARM<b class='flag-5'>中斷</b><b class='flag-5'>異常</b><b class='flag-5'>處理</b>具體過(guò)程

    如何返回異常中斷處理

    關(guān)于異常處理,分為三部分:ARM異常和模式:core處理異常時(shí)的操作,幾種模式介紹。Vector table:
    發(fā)表于 12-14 09:23

    中斷事件的異常處理是什么意思

    M0內(nèi)核支持的資源Cortex-M0處理器最多支持32個(gè)外部中斷(通常稱(chēng)作IRQ),還有一個(gè)被稱(chēng)作不可屏蔽中斷的特殊中斷中斷事件的
    發(fā)表于 12-21 06:50

    Linux 2.6 中斷處理原理簡(jiǎn)介

    Linux 2.6 中斷處理原理簡(jiǎn)介 中斷描述符表(Interrupt Descriptor Table,IDT)是一個(gè)系統(tǒng)表,它與每一個(gè)中斷
    發(fā)表于 02-05 10:52 ?803次閱讀

    微機(jī)原理--中斷異常

    微機(jī)原理--中斷異常
    發(fā)表于 12-12 22:07 ?0次下載

    ARM微處理器編程模型之異常中斷處理分析

    3.4 異常中斷處理 異常中斷是用戶(hù)程序中最基本的一種執(zhí)行流程和形態(tài)。這部分主要對(duì)ARM架構(gòu)下的異常中斷做詳細(xì)說(shuō)明。 ARM有7種類(lèi)型的
    發(fā)表于 10-18 13:29 ?1次下載

    ARM中異常中斷問(wèn)題詳情分析總結(jié)

    ARM中異常中斷的類(lèi)型問(wèn)題分析總結(jié) 一、ARM中異常中斷的類(lèi)型: 異常中斷名稱(chēng) 含義 復(fù)位(Reset) 當(dāng)處理器復(fù)位引腳有效時(shí),系統(tǒng)產(chǎn)生復(fù)位異常中
    發(fā)表于 04-05 10:51 ?1333次閱讀

    STM32的Cortex-M3中斷異常處理

    的接口緊密相連,可以實(shí)現(xiàn)低延遲的中斷處理和有效處理處理晚到的中斷。嵌套向量中斷控制器管理著包括
    發(fā)表于 11-16 15:35 ?8369次閱讀
    STM32的Cortex-M3<b class='flag-5'>中斷</b><b class='flag-5'>異常</b><b class='flag-5'>處理</b>

    ARM異常中斷的原因及處理措施

    當(dāng)ARM異常中斷發(fā)生時(shí),系統(tǒng)執(zhí)行完當(dāng)前指令后,將跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。當(dāng)異常中斷處理程序執(zhí)行完成后,程序返回到發(fā)生
    的頭像 發(fā)表于 06-17 10:05 ?8196次閱讀

    當(dāng)ARM異常中斷發(fā)生時(shí)的處理措施

    外部中斷請(qǐng)求(IRQ) 當(dāng)處理器的外部中斷請(qǐng)求引腳有效,而且CPSR的寄存器的I控制位被清除時(shí),處理器產(chǎn)生外部中斷請(qǐng)求異常中斷。系統(tǒng)中個(gè)外設(shè)
    的頭像 發(fā)表于 08-27 14:21 ?2665次閱讀

    處理器中異常中斷解決

    異常是能夠引起程序流偏離正常流程的事件,當(dāng)異常發(fā)生時(shí),正在執(zhí)行的程序就會(huì)被掛起,處理器轉(zhuǎn)而執(zhí)行一塊與該事件相關(guān)的代碼(異常處理)。事件可以是
    的頭像 發(fā)表于 10-12 17:14 ?5184次閱讀

    Cortex-M0處理器內(nèi)核異常中斷簡(jiǎn)介

    在Cortex‐M0內(nèi)核上搭載了一個(gè)異常響應(yīng)系統(tǒng),支持眾多的系統(tǒng)異常和外部中斷。其中,編號(hào)為1-15的對(duì)應(yīng)系統(tǒng)異常,大于等于16的則全是外部中斷
    的頭像 發(fā)表于 06-01 14:41 ?5017次閱讀

    Linux是如何利用陷阱門(mén)處理中斷異常

    中斷異常處理程序執(zhí)行的代碼不是一個(gè)進(jìn)程。而是一個(gè)內(nèi)核控制路徑,比一個(gè)進(jìn)程的上下文要少,建立或終止需要的時(shí)間很少。
    發(fā)表于 08-17 11:31 ?595次閱讀

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

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

    ARM中的異常中斷是如何實(shí)現(xiàn)進(jìn)入中斷程序的?如何進(jìn)入呢?

    ARM中的異常中斷是如何實(shí)現(xiàn)進(jìn)入中斷程序的?如何進(jìn)入呢? 在計(jì)算機(jī)系統(tǒng)中,異常中斷是兩個(gè)常見(jiàn)的概念。 在ARM中,異常
    的頭像 發(fā)表于 10-19 16:36 ?1112次閱讀
    德州扑克 梭哈| 海立方娱乐城| 波音百家乐游戏| 澳门百家乐官网秘诀| 鑫鼎百家乐娱乐城| 新利百家乐官网的玩法技巧和规则 | 皇冠网上69691| 全讯网a3322.com| 百家乐赌假的工具| 什么是百家乐官网平注法| BET365体育在线| 百家乐群| 新葡京百家乐现金网| 奔驰百家乐官网游戏电玩| 百家乐官网风云人物| 大发888官方网| 百家乐投注杀手| 新锦江百家乐官网的玩法技巧和规则 | 百家乐赌博走势图| 百家乐视频一下| 扑克百家乐官网赌器| 谈谈百家乐官网赢钱技巧| 金贊娱乐城| 宝胜| 1368棋牌官网| 大发888账号| 威尼斯人娱乐城网址是什么| 百家乐官网网上真钱娱乐平台| 百家乐官网全透明牌靴| 百家乐官网注码技巧| 澳门金沙娱乐场| 恒宝国际| 张掖市| 会理县| 新葡京网上娱乐| 博狗| 澳门赌场小姐| 桃园县| 百家乐官网二代皇冠博彩| 百家乐官网赢家公式| 真人百家乐官网开户须知|