衡阳派盒市场营销有限公司

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次閱讀
    澳门百家乐真人版| 代理百家乐最多占成| 足彩大赢家| 百家乐路子技巧| 德晋百家乐官网的玩法技巧和规则 | 百家乐官网旺门打| 皇室百家乐官网娱乐城| 大发888娱乐在线客服| 百家乐分析概率原件| 百家乐官网开户导航| 百家乐官网平台租用| 大发888 备用6222.co| 百家乐赌局| 圣保罗百家乐官网的玩法技巧和规则| 永利百家乐官网游戏| 大发888案件| 龙博百家乐的玩法技巧和规则 | 百家乐官网去哪里玩最好| 1368棋牌游戏平台| 定制百家乐桌子| 百家乐论坛博彩啦| 百家乐官网真人视频出售| 真人百家乐官网信誉| 网络足球| 大发888扑克下载| 广州百家乐桌子| 百家乐游戏辅助| 百家乐八卦投注法| 网络百家乐娱乐| 24山的丑方位| 帝王百家乐官网全讯网2| 百家乐官网真人视屏游戏| 襄城县| 维也纳国际娱乐城| 娱乐城开户送38体验金| 大发888娱乐亚洲| 大发888客服咨询电话| 大发888娱乐城下载电脑怎么上乐讯新足球今日比分 | 百家乐官网赌博玩法技巧| bet365投注| 平阳县|