国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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、壓棧和出棧

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

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

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

3、異常返回指令

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

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

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

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

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

4、末尾連鎖

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

責任編輯:haq

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

    關注

    31

    文章

    5608

    瀏覽量

    129964
  • 代碼
    +關注

    關注

    30

    文章

    4967

    瀏覽量

    73954
  • 異常
    +關注

    關注

    0

    文章

    23

    瀏覽量

    9514

原文標題:異常和中斷

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RK806中斷處理流程深度解析:從架構到調試實戰

    RK806 作為瑞芯微主流 PMIC(電源管理芯片),其中斷機制是實現“電源鍵響應、電壓異常保護、休眠喚醒、 watchdog 超時處理” 等核心功能的基礎。Linux 驅動基于regmap_irq框架設計,屏蔽了底層寄存
    的頭像 發表于 02-05 13:46 ?914次閱讀
    RK806<b class='flag-5'>中斷</b><b class='flag-5'>處理</b>流程深度解析:從架構到調試實戰

    MAXIM 納米功耗微處理器監控電路:設計與應用指南

    MAXIM 納米功耗微處理器監控電路:設計與應用指南 在電子設備的設計,微處理器(μP)的穩定運行至關重要。電源波動、軟件故障等因素都可能導致微處理器出現
    的頭像 發表于 01-29 17:15 ?530次閱讀

    Cortex-M3工作模式及異常

    一、工作模式 線程模式和手柄模式。 當處理器處在線程狀態下時,既可以使用特權級,也可以使用用戶級;另一方面, handler模式總是特權級的。在復位后,處理器進入線程模式+特權級。 二、異常
    發表于 01-20 08:24

    Cortex-M0 處理器介紹

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

    CW32F030中斷解析

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

    RISC-V異常中斷機制全解析

    RISC-V 作為開源、模塊化的精簡指令集架構,其異常中斷機制是保障系統可靠運行、響應外部事件與處理內部錯誤的核心支撐。
    的頭像 發表于 12-28 14:41 ?1435次閱讀
    RISC-V<b class='flag-5'>異常中斷</b>機制全解析

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

    與軟件的協同操作邏輯,都是開發者必備的核心能力。今天我們就深度拆解ARM64異常處理機制,同時聊聊 開發者為何必須關注這一技術點 。 一、異常發生后,CPU的自動操作細節 當ARM64處理器
    的頭像 發表于 12-24 07:05 ?1104次閱讀
    深入剖析ARM64<b class='flag-5'>異常</b><b class='flag-5'>處理</b>:開發者必須掌握的底層核心邏輯

    芯源MCU中斷相關寄存

    。 5.5.2 NVIC 中斷掛起和清除掛起 在中斷發生時,如果系統正在處理與之相同優先級或更高優先級的中斷,系統將不會立即處理
    發表于 11-27 07:23

    線路保護光纖通道異常處理方法

    在電力系統,線路保護光纖通道是保障電網安全穩定運行的核心環節。然而,受環境、設備老化或人為操作等因素影響,光纖通道異常時有發生,可能導致保護裝置誤動或拒動,引發嚴重后果。本文將系統梳理線路保護光纖
    的頭像 發表于 11-17 10:01 ?1107次閱讀
    線路保護光纖通道<b class='flag-5'>異常</b><b class='flag-5'>處理</b>方法

    API接口調用的網絡異常及解決方案

    不可達(Connection Refused/Timeout) 服務IP/端口錯誤:配置的API域名解析錯誤、端口號填寫錯誤(如將HTTPS默認的443端口寫成80)。 服務離線或過載:API服務宕機、維護
    的頭像 發表于 11-17 09:22 ?675次閱讀

    RVMCU課堂「10」: 手把手教你玩轉RVSTAR—處理器內部中斷

    中斷是指處理器內核在順序執行程序指令流的過程突然被別的請求打斷而中止執行當前的程序,轉而去處理別的事情,待其處理完了別的事情,然后重新回到
    發表于 10-31 06:12

    中斷機制在計算機系統的作用,如何在e203處理器利用外部中斷處理用戶輸入輸出

    的效果。 7.總結 本文詳細介紹了中斷機制在計算機系統的作用,以及如何在e203處理器利用外部中斷
    發表于 10-21 12:47

    Cortex-M0+處理器的HardFault錯誤介紹

    在ARM處理器,如果一個程序產生了錯誤并且被處理器檢測到,就會產生錯誤異常。Cortex-M0+處理器只有一種
    的頭像 發表于 10-14 10:50 ?3378次閱讀
    Cortex-M0+<b class='flag-5'>處理器</b>的HardFault錯誤介紹

    海光雙路服務主板,支持 5000/7000系列 2/3號處理器

    處理器
    jf_10805031
    發布于 :2025年04月02日 14:17:42

    集特 國產飛騰處理器工控主板GM9-2602

    處理器
    集特國產工控產品
    發布于 :2025年03月12日 14:07:04