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

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

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

3天內不再提示

arm中斷是怎么實現的

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-09-05 16:22 ? 次閱讀

arm中斷是怎么實現的

首先,了解什么是中斷。中斷是指在CPU執行某個程序時,突然發生的一些事件需要CPU立即停止正在執行的程序并去執行該事件相應的程序,這個過程叫做中斷。中斷是系統中一個重要的機制,能夠提高系統的實時性和可靠性。在ARM處理器中,中斷的實現主要涉及到下面的幾點。

一、中斷控制器

ARM系統中,中斷控制器是實現中斷的重要組成部分。中斷控制器的主要作用是監控外部硬件中斷請求并向CPU發出中斷請求信號,同時還需要根據優先級為CPU分配中斷請求。

ARM中斷控制器有兩種類型:簡單中斷控制器(Simple Interrupt Controller,簡稱SIC)和通用中斷控制器(Generic Interrupt Controller,簡稱GIC)。SIC適用于較為簡單的系統,而GIC則適用于較為復雜的系統,支持更多的中斷請求。具體地,GIC一般包含一個中央控制器,多個本地控制器和一個分配器。中央控制器負責處理高優先級中斷故障,本地控制器負責處理本地外設的中斷,分配器負責將中斷請求分配給本地控制器。

二、中斷向量表

在ARM中,中斷向量表是用來存儲中斷服務例程(Interrupt Service Routine,簡稱ISR)的一組內存區域。中斷向量表中有多個向量表項,每個向量表項對應一種中斷類型,其中存儲著相應的中斷服務例程的入口地址。

中斷服務例程是中斷處理程序,用于響應中斷事件。當中斷請求發生時,中斷控制器會向CPU發送中斷請求,此時CPU讀取中斷向量表中相應的向量表項得到ISR的入口地址,然后跳轉到該地址執行ISR。ISR會負責處理中斷事件,并將處理結果返回。

三、中斷的優先級

在ARM中,設備的中斷請求有不同的優先級,優先級越高的請求將先被響應。中斷優先級是在編譯鏈接時靜態確定的,每個設備都有一個預設的中斷請求優先級,這些優先級由系統設計人員在初始化系統時進行設置。

在中斷處理時,如果有多個中斷同時發生,CPU會先執行優先級最高的中斷,而其他中斷則被掛起。一旦執行完畢,CPU會返回到掛起的中斷程序中繼續執行,如此循環直至所有中斷都被處理完畢。

四、中斷處理流程

當外部設備發生中斷請求時,中斷控制器會對請求進行處理:

1、中斷請求的產生:外部設備發生某種事件的時候,向外部中斷控制器發出中斷請求。

2、中斷控制器的處理:中斷控制器接收到請求后,通過優先級算法,確定優先級最高的中斷,然后發送一個中斷請求到CPU。

3、中斷向量表的查詢:CPU響應中斷請求后,根據請求所對應的中斷類型,查詢中斷向量表得到對應的ISR入口地址。

4、執行ISR:CPU通過跳轉到ISR入口地址開始執行ISR代碼,中斷服務例程開始處理中斷事件。

5、保存現場:ISR代碼中,對于需要暫停程序的部分,需要保存當前程序現場以保證中斷處理結束后能正確恢復執行的指令。

6、處理中斷:在ISR中,處理中斷的對應邏輯,確定該中斷事件對應的操作,并執行相應的操作完成該中斷的處理。

7、恢復現場:中斷處理結束后,ISR需要恢復保存的現場,以便中斷結束后程序能繼續執行。

通過以上的流程,ARM的中斷處理功能才可以有效地響應外部設備中斷請求,并完成對應的中斷處理工作,起到保障系統實時性和可靠性的作用。

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

    關注

    134

    文章

    9169

    瀏覽量

    369245
  • 中斷控制器
    +關注

    關注

    0

    文章

    59

    瀏覽量

    9490
收藏 人收藏

    評論

    相關推薦

    單片機中斷技術詳解

    在現代電子設備中,單片機作為控制核心發揮著舉足輕重的作用。而在其高效運作的背后,中斷機制是推動單片機實現實時響應與高效執行的關鍵因素。本文將深入探討單片機中的中斷概念、中斷系統的結構、
    的頭像 發表于 02-02 15:57 ?147次閱讀

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

    串口中斷通常被視為外部中斷。雖然串口控制器(如USART、UART等)可能集成在微控制器或處理器的內部,但從中斷的角度來看,串口中斷是由處理器外部的通信事件觸發的。這些事件包括數據的接
    的頭像 發表于 01-29 15:03 ?139次閱讀

    串口中斷需要清除標志位嗎,串口中斷標志位會自動清除嗎

    在電子通信領域,串口中斷作為一種重要的通信機制,廣泛應用于各種嵌入式系統和計算機設備中。串口中斷標志位的管理,尤其是是否需要手動清除以及是否會自動清除,是理解和實現串口通信的關鍵環節。
    的頭像 發表于 01-29 14:59 ?111次閱讀

    EE-188:使用C語言在ADSP-219x DSP上實現中斷驅動系統

    電子發燒友網站提供《EE-188:使用C語言在ADSP-219x DSP上實現中斷驅動系統.pdf》資料免費下載
    發表于 01-15 16:06 ?0次下載
    EE-188:使用C語言在ADSP-219x DSP上<b class='flag-5'>實現</b><b class='flag-5'>中斷</b>驅動系統

    AN-1420:利用數字鎖相環(DPLL)實現相位增建和無中斷切換

    電子發燒友網站提供《AN-1420:利用數字鎖相環(DPLL)實現相位增建和無中斷切換.pdf》資料免費下載
    發表于 01-13 14:07 ?0次下載
    AN-1420:利用數字鎖相環(DPLL)<b class='flag-5'>實現</b>相位增建和無<b class='flag-5'>中斷</b>切換

    利用Arm Kleidi技術實現PyTorch優化

    PyTorch 是一個廣泛應用的開源機器學習 (ML) 庫。近年來,Arm 與合作伙伴通力協作,持續改進 PyTorch 的推理性能。本文將詳細介紹如何利用 Arm Kleidi 技術提升 Arm
    的頭像 發表于 12-23 09:19 ?340次閱讀
    利用<b class='flag-5'>Arm</b> Kleidi技術<b class='flag-5'>實現</b>PyTorch優化

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

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

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

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

    stm32怎樣觸發軟件中斷

    其中實現所需的功能。 觸發軟件中斷 在STM32中,您可以使用NVIC_SetPendingIRQ()函數來觸發軟件
    的頭像 發表于 09-02 09:32 ?1058次閱讀

    如何使用帶中斷的pwm來實現LED呼吸?

    我想使用帶中斷的 pwm 來實現 LED 呼吸,即 LED 的強度應該增加或減少。
    發表于 06-04 07:21

    TC375中斷嵌套如何實現

    這里描述說實現中斷嵌套需要配置中斷優先級組,但是我沒看到有介紹分組的文檔,請問中斷嵌套要如和實現謝謝?
    發表于 05-27 07:30

    stm32上的中斷掛起和屏蔽與ARM內核中的掛起屏蔽是相同的嗎?

    請問前輩,stm32上的中斷掛起和屏蔽 與 ARM內核中的掛起屏蔽是相同的嗎,還是只是stm32自己預處理的一步。
    發表于 04-15 08:23

    CPU中斷程序:從硬件看什么是中斷

    CPU響應中斷轉去執行中斷服務程序前,需要把被中斷程序的現場信息保存起來,以便執行完中斷服務程序后,接著從被中斷程序的斷點處繼續往下執行。
    發表于 03-26 11:36 ?4187次閱讀
    CPU<b class='flag-5'>中斷</b>程序:從硬件看什么是<b class='flag-5'>中斷</b>?

    如何實現SysTick中斷的嵌套自身?

    中斷直接退出到我想要執行的調度函數RTTaskSchedule ,執行完調度函數RTTaskSchedule 后再執行函數IrqReturn返回到main中。但是這段代碼并不能實現我想要的功能,被嵌套的調度函數RTTaskSchedule 不能正常返回了。
    發表于 03-25 06:20

    Arm 更新 Neoverse 產品路線圖,實現基于 Arm 平臺的人工智能基礎設施

    新聞重點: Arm 宣布推出兩款基于全新第三代 Neoverse IP 構建的新的 Arm Neoverse 計算子系統 Arm Neoverse CSS V3 是高性能 V 系列產品組合中的首款
    發表于 02-22 11:41 ?439次閱讀
    百家乐平台哪个比较安全| 豪杰百家乐官网现金网| 百家乐视频游戏视频| 百家乐官网群柏拉图软件| 大发888在线娱乐城合营商| 免费百家乐官网倍投| 赌博药| 大发888赌城| 百家乐9人桌布| 玩百家乐官网怎么能赢呢 | 威尼斯人娱乐场五星| 百盛百家乐软件| 金赞百家乐官网的玩法技巧和规则| 百家乐官网玩法教材| 平博| 百家乐合作| 缅甸百家乐网络赌博解谜| 涂山百家乐官网的玩法技巧和规则| 至尊百家乐官网贺一航| 百家乐赌球| 荔浦县| 陈巴尔虎旗| 东丽区| 百家乐官网是不是有假| 免费百家乐官网奥秘| 双城市| 菲律宾豪门娱乐| 大赢家比分| 抚顺棋牌网| 大发888娱乐城下载| 大发888娱乐城安装| 威尼斯人娱乐城网上百家乐| 淘宝皇冠网店| 至尊百家| 新郑市| 百家乐官网怎么样玩| 澳门百家乐官网门路| 百家乐官网稳赢玩法| 百家乐官网神仙道官网| 网上百家乐官网信誉| 索罗门百家乐官网的玩法技巧和规则|