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

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

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

3天內不再提示

處理器中異常和中斷解決

單片機匠人 ? 來源:張飛實戰電子 ? 作者:黃忠老師 ? 2021-10-12 17:14 ? 次閱讀

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

每種異常類型都有對應的優先級,有些異常的優先級是固定的,有些是可編程的。

先說幾個概念:

1、不可屏蔽中斷(NMI)

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

2、硬件錯誤

硬件錯誤異常用于處理程序執行時產生的錯誤,這些錯誤可以是試圖執行未知的操作碼、總線接口或存儲器系統的錯誤,也可以是試圖切換至ARM狀態之類的非法操作。

3、SVC(請求管理調用)

SVC指令執行時就會產生SVC異常,其通常用在具有操作系統的系統中,為應用程序提供了訪問系統服務的入口。

4、PendSV(可掛起的系統調用)

PendSV是用于帶OS(操作系統)的應用程序的另外一個異常,SVC異常在SVC指令執行后會馬上開始,PendSV在這點上有所不同,它可以延遲執行,在OS上使用PendSV就要確保高優先級任務完成后才執行系統調度。

5、系統節拍

NVIC中的SysTick定時器為OS應用可以利用的另外一個特性。幾乎所有操作系統的運行都需要上下文切換,而這一過程通常需要依靠定時器產生定時中斷來完成。

6、中斷

中斷信號可以連接到片上外設,也可以通過IO端口連接到外部中斷源上。外部中斷只有在使能后才能使用,如果中斷被禁止了,或者處理器正在運行另外一個相同或更高優先級的異常處理,則該中斷請求會被存儲在掛起狀態寄存器中。當高優先級的中斷處理完成或返回后,掛起的中斷請求才可以執行。NVIC能夠接受的中斷請求信號可以是高邏輯電平,也可以是中斷脈沖。應該注意的是,在微控制器的外部接口中,外部中斷信號可以是高電平也可以是低電平,或者可以通過編程配置。

異常的處理流程:

1、接受異常請求

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

①對于中斷和SysTick中斷請求,中斷必須使能

②處理器正在執行的異常處理的優先級不能相同或更大

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

特別注意一點:對于SVC異常,如果用到SVC指令的異常處理的優先級與SVC異常本身相同或更大,這種情況就會引起硬件錯誤異常處理的執行。

2、壓棧和出棧

為了使被中斷的程序能正確繼續執行,在程序切換至異常處理前,處理器當前狀態的一部分應該被保存。不同架構處理器的處理方法不同,有的采用硬件自動處理的方法來備份和恢復處理器狀態,看需求,有的是需要程序中增加軟件處理過程。

異常處理過程執行到最后時,將會利用執行特殊值來觸發異常返回機制。處理器還會查看當前是否還有其他異常需要處理,如果沒有,處理器就會恢復之前存儲在??臻g的寄存器值,并繼續執行中斷前的程序。

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

3、異常返回指令

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

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

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

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

當其中一個指令執行,異常返回機制就會啟動。

4、末尾連鎖

如果當其他的異常處理完成后,還有異常處于掛起狀態,這時處理器不會返回到中斷前的程序,而是重新進入異常處理流程,這也被稱作末尾連鎖。當末尾連鎖發生時,處理器不必馬上恢復棧的值,因為如果這么做的話還得重新壓棧。異常的末尾連鎖降低了異常處理的開銷,因此也提高了能耗效率。

責任編輯:haq

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

    關注

    31

    文章

    5372

    瀏覽量

    121282
  • 代碼
    +關注

    關注

    30

    文章

    4837

    瀏覽量

    69121
  • 異常
    +關注

    關注

    0

    文章

    23

    瀏覽量

    9270

原文標題:異常和中斷

文章出處:【微信號:gh_e7f294a514ca,微信公眾號:單片機匠人】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    常見處理器故障及解決方法

    異常升高。 系統頻繁重啟或自動關機。 BIOS顯示的處理器溫度超過正常范圍。 解決方法: 清理處理器散熱上的灰塵。 檢查散熱
    的頭像 發表于 02-07 09:17 ?223次閱讀

    串口中斷是內部中斷還是外部中斷,串口中斷是怎么觸發的

    串口中斷通常被視為外部中斷。雖然串口控制(如USART、UART等)可能集成在微控制處理器的內部,但從
    的頭像 發表于 01-29 15:03 ?191次閱讀

    EE-192:使用C語言在Blackfin處理器上創建中斷驅動系統

    電子發燒友網站提供《EE-192:使用C語言在Blackfin處理器上創建中斷驅動系統.pdf》資料免費下載
    發表于 01-03 15:03 ?0次下載
    EE-192:使用C語言在Blackfin<b class='flag-5'>處理器</b>上創建<b class='flag-5'>中斷</b>驅動系統

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

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

    OMAP5912多媒體處理器中斷參考指南

    電子發燒友網站提供《OMAP5912多媒體處理器中斷參考指南.pdf》資料免費下載
    發表于 12-17 16:25 ?0次下載
    OMAP5912多媒體<b class='flag-5'>處理器</b><b class='flag-5'>中斷</b>參考指南

    對稱多處理器和非對稱多處理器的區別

    隨著計算需求的日益增長,單處理器系統已經無法滿足高性能計算的需求。多處理器系統應運而生,它們通過將多個處理器集成到一個系統來提高計算能力。在多處理
    的頭像 發表于 10-10 15:58 ?1352次閱讀

    處理器寄存的作用

    處理器的寄存是計算機體系結構的核心組成部分,它們扮演著至關重要的角色。寄存是一種高速的存儲單元,用于暫時存儲數據、指令和地址等信息
    的頭像 發表于 10-05 15:07 ?719次閱讀

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

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

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

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

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

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

    國產新型AI PC處理器亮相上海

    處理器
    北京中科同志科技股份有限公司
    發布于 :2024年08月01日 09:21:01

    嵌入式微處理器有哪些部分 嵌入式微處理器有哪些區別

    嵌入式微處理器是一種專門為嵌入式系統設計的處理器。嵌入式微處理器通常包含以下幾個部分:處理核心、外設接口、存儲接口、時鐘和定時
    的頭像 發表于 04-21 11:31 ?1229次閱讀

    【GD32H757Z海棠派開發板使用手冊】第三講 EXTI-按鍵中斷檢測實驗

    介紹EXTI之前,首先為各位讀者介紹NVIC中斷向量控制器,NVIC為M7內核組件,用于實現高效的異常中斷處理。NVIC可以支持搶占以及咬尾中斷
    的頭像 發表于 04-18 09:38 ?562次閱讀
    【GD32H757Z海棠派開發板使用手冊】第三講  EXTI-按鍵<b class='flag-5'>中斷</b>檢測實驗

    如何停止或取消單片機的中斷處理?

    處理器的NVIC能夠處理多個可屏蔽中斷通道和可編程優先級,中斷輸入請求可以是電平觸發,也可以是最小的一個時鐘周期的脈沖信號。
    發表于 04-15 11:05 ?1531次閱讀
    如何停止或取消單片機的<b class='flag-5'>中斷</b><b class='flag-5'>處理</b>?

    國產GPU搭配國產處理器平臺主機

    處理器gpu
    GITSTAR 集特工控
    發布于 :2024年03月27日 14:11:32
    主站蜘蛛池模板: www.欧美成 | 在线亚洲一区二区 | 六月婷婷在线视频 | 成人网在线看 | 久久久久久夜精品精品免费 | 狠狠的日视频 | 欧美色图色就是色 | 免费人成动漫在线播放r18 | 色成人免费网站 | 热re66久久精品国产99热 | 久久天天躁狠狠躁夜夜躁 | 色综合天天综合网国产国产人 | 视频在线一区二区 | 亚洲色图欧美激情 | 色婷婷六月丁香七月婷婷 | 韩国三级hd中文字幕久久精品 | www.五月天 | 高清人人天天夜夜曰狠狠狠狠 | 欧美人与动性xxxxbbbb | 免费看黄色网页 | 天天综合天天综合 | 劳拉淫欲护士bd字幕 | 色婷婷一区二区三区四区成人网 | 欧美黄色一级片视频 | 婷婷6月 | 美女被免网站在线视频 | 久久作爱视频 | 男女刺激性视频大片 | 男人日女人的网站 | 成人毛片一区二区三区 | 日本高清一区二区三区不卡免费 | 国产精品yy9299在线观看 | 四虎4hu影库免费永久国产 | 国产大片黄在线看免费 | 免费观看的黄色网址 | 一区在线观看 | 天堂资源在线种子资源 | 免费大秀视频在线播放 | 国产激爽大片在线播放 | www.日本免费 | 六月婷婷在线视频 |