<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
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

    文章

    8725

    瀏覽量

    363065
  • 中斷控制器
    +關注

    關注

    0

    文章

    59

    瀏覽量

    9390
收藏 人收藏

    評論

    相關推薦

    arm中斷是怎么實現

    ARM中斷實現是通過中斷控制器和異常模式實現的。ARM處理器通過
    的頭像 發表于 01-05 15:18 ?392次閱讀

    gic和ARM Core的連接

    (1)gicv2和ARM Core的連接 ARM cortex-A系列處理器,提供了4個管腳給soc,實現外界中斷的傳遞 ? ?nIRQ:物理普通
    的頭像 發表于 11-07 18:07 ?357次閱讀
    gic和<b class='flag-5'>ARM</b> Core的連接

    中斷ARM體系中對中斷的處理

    今天來看一下中斷ARM體系中對中斷的處理,直接進入正題。 中斷是指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序并轉入處理新情況的程序,處理完畢后又返回
    的頭像 發表于 11-07 17:11 ?321次閱讀
    <b class='flag-5'>中斷</b>及<b class='flag-5'>ARM</b>體系中對<b class='flag-5'>中斷</b>的處理

    ARM處理器中斷向量表

    ARM處理器中,當一個中斷信號被觸發時,中斷控制器會發出一個中斷請求,并將該請求傳遞給CPU。 CPU接收到中斷請求后,會根據
    的頭像 發表于 10-30 17:19 ?1037次閱讀

    如何在特權模式下用arm匯編指令使能和禁止irq中斷?

    如何在特權模式下用arm匯編指令使能和禁止irq中斷? 在 ARM 系統中,中斷是非常常見的一種事件。在特權模式下,可以使用 ARM 匯編指
    的頭像 發表于 10-19 16:42 ?933次閱讀

    ARM9中斷中(C語言)如何實現復位功能,而不是返回中斷前的狀態?

    ARM9中斷中(C語言)如何實現復位功能,而不是返回中斷前的狀態? 在ARM9處理器的中斷中,當
    的頭像 發表于 10-19 16:42 ?872次閱讀

    ARM中的異常中斷是如何實現進入中斷程序的?如何進入呢?

    ARM中的異常中斷是如何實現進入中斷程序的?如何進入呢? 在計算機系統中,異常和中斷是兩個常見的概念。 在
    的頭像 發表于 10-19 16:36 ?652次閱讀

    arm處理器有哪些中斷源?arm處理器對異常中斷的響應過程

    arm處理器有哪些中斷源?arm處理器對異常中斷的響應過程? ARM處理器是一種廣泛使用的嵌入式處理器,運行著各種不同類型的應用程序。為了保
    的頭像 發表于 10-19 16:35 ?1004次閱讀

    基于ARM的指紋采集儀的設計與實現

    電子發燒友網站提供《基于ARM的指紋采集儀的設計與實現.pdf》資料免費下載
    發表于 10-12 11:37 ?1次下載
    基于<b class='flag-5'>ARM</b>的指紋采集儀的設計與<b class='flag-5'>實現</b>

    基于ARM9的USB設計與實現

    電子發燒友網站提供《基于ARM9的USB設計與實現.pdf》資料免費下載
    發表于 10-11 11:35 ?0次下載
    基于<b class='flag-5'>ARM</b>9的USB設計與<b class='flag-5'>實現</b>

    基于ARM+DSP的數字搓盤機的設計與實現

    電子發燒友網站提供《基于ARM+DSP的數字搓盤機的設計與實現.pdf》資料免費下載
    發表于 10-08 14:37 ?6次下載
    基于<b class='flag-5'>ARM</b>+DSP的數字搓盤機的設計與<b class='flag-5'>實現</b>

    ARM通用中斷控制器GIC之中斷控制介紹

    對于SGI中斷是否能通過上述兩個寄存器來enable和disable,這個由具體的實現( IMPLEMENTATION DEFINED)來定義。
    發表于 09-19 17:09 ?987次閱讀
    <b class='flag-5'>ARM</b>通用<b class='flag-5'>中斷</b>控制器GIC之<b class='flag-5'>中斷</b>控制介紹

    什么是ARM中斷事件?ARM中斷異常處理具體過程

    ARM處理器是一種流行的處理器架構,用于許多現代移動設備和嵌入式系統中。中斷和異常是ARM處理器中的兩個重要概念,它們是處理器中斷程序執行的關鍵機制。
    發表于 09-05 15:45 ?1106次閱讀
    什么是<b class='flag-5'>ARM</b><b class='flag-5'>中斷</b>事件?<b class='flag-5'>ARM</b><b class='flag-5'>中斷</b>異常處理具體過程

    ARM CoreLink GIC-500通用中斷控制器技術參考手冊

    GIC-500是一個構建時可配置的中斷控制器,最多支持128個內核。GIC-500僅支持實現ARMv8架構的內核,以及具有標準GIC流協議接口的GIC CPU接口,如Cortex?-A57和Cortex-A53。它實現
    發表于 08-02 14:02

    Linux內核中斷屏蔽的實現

    中斷屏蔽,正如其名,屏蔽掉CPU的中斷響應功能,解決并發引起的競態問題。
    發表于 07-04 11:15 ?353次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>