chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

處理器中異常和中斷解決

單片機(jī)匠人 ? 來(lái)源:張飛實(shí)戰(zhàn)電子 ? 作者:黃忠老師 ? 2021-10-12 17:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

異常是能夠引起程序流偏離正常流程的事件,當(dāng)異常發(fā)生時(shí),正在執(zhí)行的程序就會(huì)被掛起,處理器轉(zhuǎn)而執(zhí)行一塊與該事件相關(guān)的代碼(異常處理)。事件可以是外部輸入,也可以是內(nèi)部產(chǎn)生的,外部產(chǎn)生的事件通常被稱作中斷或中斷請(qǐng)求(IRQ)。幾乎所有的現(xiàn)代處理器都支持異常和中斷,微控制器的中斷可以由片上外設(shè)或軟件產(chǎn)生。由此可見,通常我們處理的中斷是異常的一種。

每種異常類型都有對(duì)應(yīng)的優(yōu)先級(jí),有些異常的優(yōu)先級(jí)是固定的,有些是可編程的。

先說(shuō)幾個(gè)概念:

1、不可屏蔽中斷(NMI)

NMI同IRQ類似,只是它不能被禁止,并且優(yōu)先級(jí)僅次于復(fù)位,它對(duì)于工業(yè)控制和汽車之類的高可靠性系統(tǒng)非常有用。根據(jù)微控制器設(shè)計(jì)的不同,NMI可以用于掉電處理,也可以連接到看門狗單元,以便在系統(tǒng)停止響應(yīng)時(shí)將系統(tǒng)復(fù)位。由于NMI不能被控制寄存器禁止,其響應(yīng)的及時(shí)性就得到了保證。

2、硬件錯(cuò)誤

硬件錯(cuò)誤異常用于處理程序執(zhí)行時(shí)產(chǎn)生的錯(cuò)誤,這些錯(cuò)誤可以是試圖執(zhí)行未知的操作碼、總線接口或存儲(chǔ)器系統(tǒng)的錯(cuò)誤,也可以是試圖切換至ARM狀態(tài)之類的非法操作。

3、SVC(請(qǐng)求管理調(diào)用)

SVC指令執(zhí)行時(shí)就會(huì)產(chǎn)生SVC異常,其通常用在具有操作系統(tǒng)的系統(tǒng)中,為應(yīng)用程序提供了訪問(wèn)系統(tǒng)服務(wù)的入口。

4、PendSV(可掛起的系統(tǒng)調(diào)用)

PendSV是用于帶OS(操作系統(tǒng))的應(yīng)用程序的另外一個(gè)異常,SVC異常在SVC指令執(zhí)行后會(huì)馬上開始,PendSV在這點(diǎn)上有所不同,它可以延遲執(zhí)行,在OS上使用PendSV就要確保高優(yōu)先級(jí)任務(wù)完成后才執(zhí)行系統(tǒng)調(diào)度。

5、系統(tǒng)節(jié)拍

NVIC中的SysTick定時(shí)器為OS應(yīng)用可以利用的另外一個(gè)特性。幾乎所有操作系統(tǒng)的運(yùn)行都需要上下文切換,而這一過(guò)程通常需要依靠定時(shí)器產(chǎn)生定時(shí)中斷來(lái)完成。

6、中斷

中斷信號(hào)可以連接到片上外設(shè),也可以通過(guò)IO端口連接到外部中斷源上。外部中斷只有在使能后才能使用,如果中斷被禁止了,或者處理器正在運(yùn)行另外一個(gè)相同或更高優(yōu)先級(jí)的異常處理,則該中斷請(qǐng)求會(huì)被存儲(chǔ)在掛起狀態(tài)寄存器中。當(dāng)高優(yōu)先級(jí)的中斷處理完成或返回后,掛起的中斷請(qǐng)求才可以執(zhí)行。NVIC能夠接受的中斷請(qǐng)求信號(hào)可以是高邏輯電平,也可以是中斷脈沖。應(yīng)該注意的是,在微控制器的外部接口中,外部中斷信號(hào)可以是高電平也可以是低電平,或者可以通過(guò)編程配置。

異常的處理流程:

1、接受異常請(qǐng)求

處理器要接受一個(gè)異常,需要滿足的條件:

①對(duì)于中斷和SysTick中斷請(qǐng)求,中斷必須使能

②處理器正在執(zhí)行的異常處理的優(yōu)先級(jí)不能相同或更大

③中斷屏蔽寄存器沒有屏蔽掉異常

特別注意一點(diǎn):對(duì)于SVC異常,如果用到SVC指令的異常處理的優(yōu)先級(jí)與SVC異常本身相同或更大,這種情況就會(huì)引起硬件錯(cuò)誤異常處理的執(zhí)行。

2、壓棧和出棧

為了使被中斷的程序能正確繼續(xù)執(zhí)行,在程序切換至異常處理前,處理器當(dāng)前狀態(tài)的一部分應(yīng)該被保存。不同架構(gòu)處理器的處理方法不同,有的采用硬件自動(dòng)處理的方法來(lái)備份和恢復(fù)處理器狀態(tài),看需求,有的是需要程序中增加軟件處理過(guò)程。

異常處理過(guò)程執(zhí)行到最后時(shí),將會(huì)利用執(zhí)行特殊值來(lái)觸發(fā)異常返回機(jī)制。處理器還會(huì)查看當(dāng)前是否還有其他異常需要處理,如果沒有,處理器就會(huì)恢復(fù)之前存儲(chǔ)在??臻g的寄存器值,并繼續(xù)執(zhí)行中斷前的程序。

自動(dòng)保存和恢復(fù)寄存器內(nèi)容的操作被稱為“壓?!焙汀俺鰲!?,這種機(jī)制使得異常處理可以跟普通的C函數(shù)一樣處理,同時(shí)也減小了軟件開銷以及回路大小,因此也降低了系統(tǒng)的功耗。

3、異常返回指令

根據(jù)處理器的不同中斷處理返回有的需要特殊指令,一般都是普通的返回指令,加載到PC中的數(shù)值則會(huì)觸發(fā)異常返回,這樣就使得異常處理可以和普通的C函數(shù)一樣使用。

兩個(gè)不同的指令可以用于異常返回:

BX 《Reg》q ;將寄存器中的值加載到PC中

POP {《Reg1》,《Reg1》,。..,PC} ;POP指令,PC也是更新的寄存器之一

當(dāng)其中一個(gè)指令執(zhí)行,異常返回機(jī)制就會(huì)啟動(dòng)。

4、末尾連鎖

如果當(dāng)其他的異常處理完成后,還有異常處于掛起狀態(tài),這時(shí)處理器不會(huì)返回到中斷前的程序,而是重新進(jìn)入異常處理流程,這也被稱作末尾連鎖。當(dāng)末尾連鎖發(fā)生時(shí),處理器不必馬上恢復(fù)棧的值,因?yàn)槿绻@么做的話還得重新壓棧。異常的末尾連鎖降低了異常處理的開銷,因此也提高了能耗效率。

責(zé)任編輯:haq

聲明:本文內(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)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5617

    瀏覽量

    130378
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4975

    瀏覽量

    74339
  • 異常
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    9524

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

文章出處:【微信號(hào):gh_e7f294a514ca,微信公眾號(hào):?jiǎn)纹瑱C(jī)匠人】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RK806中斷處理流程深度解析:從架構(gòu)到調(diào)試實(shí)戰(zhàn)

    RK806 作為瑞芯微主流 PMIC(電源管理芯片),其中斷機(jī)制是實(shí)現(xiàn)“電源鍵響應(yīng)、電壓異常保護(hù)、休眠喚醒、 watchdog 超時(shí)處理” 等核心功能的基礎(chǔ)。Linux 驅(qū)動(dòng)基于regmap_irq框架設(shè)計(jì),屏蔽了底層寄存
    的頭像 發(fā)表于 02-05 13:46 ?2186次閱讀
    RK806<b class='flag-5'>中斷</b><b class='flag-5'>處理</b>流程深度解析:從架構(gòu)到調(diào)試實(shí)戰(zhàn)

    MAXIM 納米功耗微處理器監(jiān)控電路:設(shè)計(jì)與應(yīng)用指南

    MAXIM 納米功耗微處理器監(jiān)控電路:設(shè)計(jì)與應(yīng)用指南 在電子設(shè)備的設(shè)計(jì),微處理器(μP)的穩(wěn)定運(yùn)行至關(guān)重要。電源波動(dòng)、軟件故障等因素都可能導(dǎo)致微處理器出現(xiàn)
    的頭像 發(fā)表于 01-29 17:15 ?671次閱讀

    Cortex-M3工作模式及異常

    一、工作模式 線程模式和手柄模式。 當(dāng)處理器處在線程狀態(tài)下時(shí),既可以使用特權(quán)級(jí),也可以使用用戶級(jí);另一方面, handler模式總是特權(quán)級(jí)的。在復(fù)位后,處理器進(jìn)入線程模式+特權(quán)級(jí)。 二、異常
    發(fā)表于 01-20 08:24

    Cortex-M0 處理器介紹

    Cortex-M0 處理器簡(jiǎn)介ARM公司的Cortex-M0應(yīng)用于各種微控制(MCU),并可讓研發(fā)工程師以8位的價(jià)位創(chuàng)造32位的的效能,并將傳統(tǒng)的8位和16位的處理器升級(jí)到更高效、
    發(fā)表于 01-16 08:04

    CW32F030中斷解析

    中斷 1 概述 ARM? Cortex?-M0+ 內(nèi)核的嵌套向量中斷控制器 (NVIC),用于管理中斷異常。NVIC 和處理器內(nèi)核緊密相連
    發(fā)表于 01-12 08:41

    RISC-V異常中斷機(jī)制全解析

    RISC-V 作為開源、模塊化的精簡(jiǎn)指令集架構(gòu),其異常中斷機(jī)制是保障系統(tǒng)可靠運(yùn)行、響應(yīng)外部事件與處理內(nèi)部錯(cuò)誤的核心支撐。
    的頭像 發(fā)表于 12-28 14:41 ?1919次閱讀
    RISC-V<b class='flag-5'>異常中斷</b>機(jī)制全解析

    深入剖析ARM64異常處理:開發(fā)者必須掌握的底層核心邏輯

    與軟件的協(xié)同操作邏輯,都是開發(fā)者必備的核心能力。今天我們就深度拆解ARM64異常處理機(jī)制,同時(shí)聊聊 開發(fā)者為何必須關(guān)注這一技術(shù)點(diǎn) 。 一、異常發(fā)生后,CPU的自動(dòng)操作細(xì)節(jié) 當(dāng)ARM64處理器
    的頭像 發(fā)表于 12-24 07:05 ?1313次閱讀
    深入剖析ARM64<b class='flag-5'>異常</b><b class='flag-5'>處理</b>:開發(fā)者必須掌握的底層核心邏輯

    芯源MCU中斷相關(guān)寄存

    。 5.5.2 NVIC 中斷掛起和清除掛起 在中斷發(fā)生時(shí),如果系統(tǒng)正在處理與之相同優(yōu)先級(jí)或更高優(yōu)先級(jí)的中斷,系統(tǒng)將不會(huì)立即處理
    發(fā)表于 11-27 07:23

    線路保護(hù)光纖通道異常處理方法

    在電力系統(tǒng),線路保護(hù)光纖通道是保障電網(wǎng)安全穩(wěn)定運(yùn)行的核心環(huán)節(jié)。然而,受環(huán)境、設(shè)備老化或人為操作等因素影響,光纖通道異常時(shí)有發(fā)生,可能導(dǎo)致保護(hù)裝置誤動(dòng)或拒動(dòng),引發(fā)嚴(yán)重后果。本文將系統(tǒng)梳理線路保護(hù)光纖
    的頭像 發(fā)表于 11-17 10:01 ?1526次閱讀
    線路保護(hù)光纖通道<b class='flag-5'>異常</b><b class='flag-5'>處理</b>方法

    API接口調(diào)用的網(wǎng)絡(luò)異常及解決方案

    不可達(dá)(Connection Refused/Timeout) 服務(wù)IP/端口錯(cuò)誤:配置的API域名解析錯(cuò)誤、端口號(hào)填寫錯(cuò)誤(如將HTTPS默認(rèn)的443端口寫成80)。 服務(wù)離線或過(guò)載:API服務(wù)宕機(jī)、維護(hù)
    的頭像 發(fā)表于 11-17 09:22 ?929次閱讀

    RVMCU課堂「10」: 手把手教你玩轉(zhuǎn)RVSTAR—處理器內(nèi)部中斷

    中斷是指處理器內(nèi)核在順序執(zhí)行程序指令流的過(guò)程突然被別的請(qǐng)求打斷而中止執(zhí)行當(dāng)前的程序,轉(zhuǎn)而去處理別的事情,待其處理完了別的事情,然后重新回到
    發(fā)表于 10-31 06:12

    關(guān)于蜂鳥E203內(nèi)核中斷硬件實(shí)現(xiàn)中斷嵌套的設(shè)計(jì)

    開發(fā)板:MCU200T 中斷機(jī)制即處理器核在執(zhí)行程序指令流的過(guò)程突然被別的請(qǐng)求打斷而中止執(zhí)行當(dāng)前程序,轉(zhuǎn)而處理別的事情,處理完重新回到之前
    發(fā)表于 10-23 07:07

    基于E203 NICE協(xié)處理器擴(kuò)展指令

    1、實(shí)現(xiàn)功能 基于官方提供的demo nice的硬件代碼,設(shè)計(jì)一個(gè)基于e203 nice協(xié)處理的加法器。 2NICE協(xié)處理器理論學(xué)習(xí) nice協(xié)處理器的作用主要是用于控制通路的管理 去年
    發(fā)表于 10-21 14:35

    中斷機(jī)制在計(jì)算機(jī)系統(tǒng)的作用,如何在e203處理器利用外部中斷來(lái)處理用戶輸入輸出

    的效果。 7.總結(jié) 本文詳細(xì)介紹了中斷機(jī)制在計(jì)算機(jī)系統(tǒng)的作用,以及如何在e203處理器利用外部中斷來(lái)
    發(fā)表于 10-21 12:47

    Cortex-M0+處理器的HardFault錯(cuò)誤介紹

    在ARM處理器,如果一個(gè)程序產(chǎn)生了錯(cuò)誤并且被處理器檢測(cè)到,就會(huì)產(chǎn)生錯(cuò)誤異常。Cortex-M0+處理器只有一種
    的頭像 發(fā)表于 10-14 10:50 ?3624次閱讀
    Cortex-M0+<b class='flag-5'>處理器</b>的HardFault錯(cuò)誤介紹