色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

關于ARM中斷控制器的介紹

Linux閱碼場 ? 來源:一口Linux ? 作者:土豆居士 ? 2022-07-08 09:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

GIC 硬件原理

GIC,Generic Interrupt Controller。是ARM公司提供的一個通用的中斷控制器。主要作用為:接受硬件中斷信號,并經(jīng)過一定處理后,分發(fā)給對應的CPU進行處理。

當前GIC 有四個版本,GIC v1~v4, 本文主要介紹GIC v3控制器。

GIC v3中斷類別

GICv3定義了以下中斷類型:

SGI(Software Generated Interrupt):軟件觸發(fā)的中斷。軟件可以通過寫 GICD_SGIR 寄存器來觸發(fā)一個中斷事件,一般用于核間通信,內(nèi)核中的 IPI:inter-processor interrupts 就是基于 SGI。

PPI(Private Peripheral Interrupt):私有外設中斷。這是每個核心私有的中斷。PPI會送達到指定的CPU上,應用場景有CPU本地時鐘

SPI(Shared Peripheral Interrupt):公用的外部設備中斷,也定義為共享中斷。中斷產(chǎn)生后,可以分發(fā)到某一個CPU上。比如按鍵觸發(fā)一個中斷,手機觸摸屏觸發(fā)的中斷。

LPI(Locality-specific Peripheral Interrupt):LPI 是 GICv3 中的新特性,它們在很多方面與其他類型的中斷不同。LPI 始終是基于消息的中斷,它們的配置保存在表中而不是寄存器。比如 PCIe 的 MSI/MSI-x 中斷。

中斷類型 硬件中斷號
SGI 0-15
PPI 16-31
SPI 32-1019
reserved ......
LPI 8192-MAX

GIC v3 組成

eaaccc62-fe51-11ec-ba43-dac502259ad0.png

GICv3 控制器由以下三部分組成:

Distributor:SPI 中斷的管理,將中斷發(fā)送給 Redistributor

打開或關閉每個中斷。Distributor對中斷的控制分成兩個級別。一個是全局中斷的控制(GIC_DIST_CTRL)。一旦關閉了全局的中斷,那么任何的中斷源產(chǎn)生的中斷事件都不會被傳遞到 CPU interface。另外一個級別是對針對各個中斷源進行控制(GIC_DIST_ENABLE_CLEAR),關閉某一個中斷源會導致該中斷事件不會分發(fā)到 CPU interface,但不影響其他中斷源產(chǎn)生中斷事件的分發(fā)。

控制將當前優(yōu)先級最高的中斷事件分發(fā)到一個或者一組 CPU interface。當一個中斷事件分發(fā)到多個 CPU interface 的時候,GIC 的內(nèi)部邏輯應該保證只 assert 一個CPU。

優(yōu)先級控制。

interrupt屬性設定。設置每個外設中斷的觸發(fā)方式:電平觸發(fā)、邊緣觸發(fā);

interrupt group的設定。設置每個中斷的 Group,其中 Group0 用于安全中斷,支持 FIQ 和 IRQ,Group1 用于非安全中斷,只支持 IRQ;

Redistributor:SGI,PPI,LPI 中斷的管理,將中斷發(fā)送給 CPU interface

啟用和禁用 SGI 和 PPI。

設置 SGI 和 PPI 的優(yōu)先級。

將每個 PPI 設置為電平觸發(fā)或邊緣觸發(fā)。

將每個 SGI 和 PPI 分配給中斷組。

控制 SGI 和 PPI 的狀態(tài)。

內(nèi)存中數(shù)據(jù)結構的基址控制,支持 LPI 的相關中斷屬性和掛起狀態(tài)。

電源管理支持。

CPU interface:傳輸中斷給 Core

打開或關閉 CPU interface 向連接的 CPU assert 中斷事件。對于 ARM,CPU interface 和 CPU 之間的中斷信號線是 nIRQCPU 和 nFIQCPU。如果關閉了中斷,即便是 Distributor 分發(fā)了一個中斷事件到 CPU interface,也不會 assert 指定的 nIRQ 或者 nFIQ 通知 Core。

中斷的確認。Core 會向 CPU interface 應答中斷(應答當前優(yōu)先級最高的那個中斷),中斷一旦被應答,Distributor 就會把該中斷的狀態(tài)從 pending 修改成 active 或者 pending and active(這是和該中斷源的信號有關,例如如果是電平中斷并且保持了該 asserted 電平,那么就是 pending and active)。ack 了中斷之后,CPU interface 就會 deassert nIRQCPU 和 nFIQCPU 信號線。

中斷處理完畢的通知。當 interrupt handler 處理完了一個中斷的時候,會向?qū)?CPU interface 的寄存器通知 GIC CPU 已經(jīng)處理完該中斷。做這個動作一方面是通知 Distributor 將中斷狀態(tài)修改為 deactive,另外一方面,CPU interface 會 priority drop,從而允許其他的 pending 的中斷向 CPU 提交。

為 CPU 設置中斷優(yōu)先級掩碼。通過 priority mask,可以 mask 掉一些優(yōu)先級比較低的中斷,這些中斷不會通知到 CPU。

設置 CPU 的中斷搶占(preemption)策略。

在多個中斷事件同時到來的時候,選擇一個優(yōu)先級最高的通知 CPU。

GICv3 控制器內(nèi)部模塊和各中斷類型的關系如下圖所示:

eac047e2-fe51-11ec-ba43-dac502259ad0.png

中斷路由

GICv3 使用 hierarchy 來標識一個具體的 core, 如下圖是一個四層的結構(aarch64):

eacdb508-fe51-11ec-ba43-dac502259ad0.png

... 的形式組成一個 PE 的路由。每一個 core 的 affnity 值可以通過 MPDIR_EL1 寄存器獲取, 每一個 affinity 占用8bit。配置對應 core 的 MPIDR 值,可以將中斷路由到該 core 上。

各個 affinity 的定義是根據(jù) SOC 自己的定義,比如:

... ...

中斷親和性的設置的通用函數(shù)為 irq_set_affinity,后面會做詳細介紹。

中斷狀態(tài)機

中斷處理的狀態(tài)機如下圖:

eadd6674-fe51-11ec-ba43-dac502259ad0.png

Inactive:無中斷狀態(tài),即沒有 Pending 也沒有 Active。

Pending:硬件或軟件觸發(fā)了中斷,該中斷事件已經(jīng)通過硬件信號通知到 GIC,等待 GIC 分配的那個 CPU 進行處理,在電平觸發(fā)模式下,產(chǎn)生中斷的同時保持 Pending 狀態(tài)。

Active:CPU 已經(jīng)應答(acknowledge)了該中斷請求,并且正在處理中。

Active and pending:當一個中斷源處于 Active 狀態(tài)的時候,同一中斷源又觸發(fā)了中斷,進入 pending 狀態(tài)。

中斷處理流程

https://dragonki先暫時略過.blog.這里的詳細net/article/de相關內(nèi)容在/1058后面詳細分

外設發(fā)起中斷,發(fā)送給 Distributor

Distributor 將該中斷,分發(fā)給合適的 Redistributor

Redistributor 將中斷信息,發(fā)送給 CPU interface

CPU interface 產(chǎn)生合適的中斷異常給處理器

處理器接收該異常,并且軟件處理該中斷

審核編輯:何安

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

    關注

    134

    文章

    9340

    瀏覽量

    376134
  • 控制器
    +關注

    關注

    114

    文章

    17049

    瀏覽量

    183539

原文標題:扒開 ARM 中斷控制器的底褲

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    第六章 外部中斷

    本章介紹W55MH32的IO口作為外部中斷輸入的使用。先闡述了NVIC(嵌套向量中斷控制器) 的結構、寄存、優(yōu)先級及相關函數(shù),再說明EXTI(外部
    的頭像 發(fā)表于 05-26 16:27 ?462次閱讀
    第六章 外部<b class='flag-5'>中斷</b>

    AS32X601驅(qū)動系列教程 PLIC_中斷應用詳解

    平臺中斷控制器(Platform Level Interrupt Controller,PLIC)是國科安芯AS32系列MCU芯片的中斷控制器,主要對中斷源進行采樣,優(yōu)先級仲裁和分發(fā)。各外設
    的頭像 發(fā)表于 05-23 17:10 ?167次閱讀
    AS32X601驅(qū)動系列教程 PLIC_<b class='flag-5'>中斷</b>應用詳解

    工程機械控制器廠家 控制器國產(chǎn)替代 #國產(chǎn)控制器#控制器廠家#控制器品牌

    控制器
    長沙碩博電子科技股份有限公司
    發(fā)布于 :2025年04月29日 14:15:05

    一文認識ARM控制器及瑞薩RA系列MCU

    俗稱單片機,如果有學過微機原理就會很熟悉這個概念了。而ARM控制器,顧名思義,就是基于ARM的微控制器,或者說搭載了ARM處理
    的頭像 發(fā)表于 03-24 09:17 ?1272次閱讀
    一文認識<b class='flag-5'>ARM</b>微<b class='flag-5'>控制器</b>及瑞薩RA系列MCU

    工程機械控制器如何選型?控制器選型指南 #控制器 #車載控制器 #整車控制器 #控制器選型

    控制器
    長沙碩博電子科技股份有限公司
    發(fā)布于 :2025年03月14日 10:54:24

    串口中斷是內(nèi)部中斷還是外部中斷,串口中斷是怎么觸發(fā)的

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

    電機控制器原理是什么?類型有哪些?

    電機控制器是用于控制電機運行的設備,其主要功能是將電能轉(zhuǎn)換為機械能,同時根據(jù)需要調(diào)節(jié)電機的速度、轉(zhuǎn)矩和方向。電機控制器的原理主要基于電力電子技術、自動控制理論和電機理論。以下是
    的頭像 發(fā)表于 10-21 13:48 ?1123次閱讀

    Arm Cortex-R82AE賦能高性能區(qū)域控制器設計

    在之前的一篇推文中我曾談到過,汽車行業(yè)的近期發(fā)展趨勢正在推動對汽車架構中區(qū)域控制器和域控制器的需求。而基于 Armv8-R 的 Arm Cortex-R52 和 Cortex-R52+ 核心正是滿足
    的頭像 發(fā)表于 09-02 10:23 ?972次閱讀

    stm32怎樣觸發(fā)軟件中斷

    了解STM32中斷系統(tǒng) STM32微控制器具有豐富的中斷系統(tǒng),包括NVIC(嵌套向量中斷控制器)和SYSTICK定時。NVIC可以處理多達
    的頭像 發(fā)表于 09-02 09:32 ?1790次閱讀

    【「ARM MCU嵌入式開發(fā) | 基于國產(chǎn)GD32F10x芯片」閱讀體驗】+閱讀中斷

    可以通過設置相應的中斷屏蔽位,禁止CPU響應某個中斷,從而實現(xiàn)中斷屏蔽。中斷屏蔽的目的是保證在執(zhí)行一些關鍵程序時不響應中斷,以免造成延時而引
    發(fā)表于 09-01 23:59

    【「ARM MCU嵌入式開發(fā) | 基于國產(chǎn)GD32F10x芯片」閱讀體驗】+書籍整體概況

    案例為按鍵控制LED亮滅;第四章介紹中斷和事件,中斷包含嵌套向量中斷控制器NVIC,EXTI外部中斷
    發(fā)表于 08-25 22:48

    ARMxy ARM工業(yè)控制器支持深度學習應用于物體檢測

    在當今快速發(fā)展的工業(yè)自動化領域,ARMxy ARM工業(yè)控制器以其卓越的性能和可靠性,成為了眾多企業(yè)的理想選擇。它是一款可靈活配置 IO?口的工業(yè)級ARM控制器,基于瑞芯微RK 3568
    的頭像 發(fā)表于 08-16 14:06 ?624次閱讀
    ARMxy <b class='flag-5'>ARM</b>工業(yè)<b class='flag-5'>控制器</b>支持深度學習應用于物體檢測

    電機控制器硬件的功能介紹

    電機控制器能夠精準控制電動汽車電機,同時確保系統(tǒng)的安全穩(wěn)定運行。電機控制器硬件的協(xié)同工作彰顯了電機控制器在現(xiàn)代電動汽車動力系統(tǒng)中的核心地位。下面我們就來
    的頭像 發(fā)表于 08-13 16:09 ?1103次閱讀

    【GD32 MCU 入門教程】GD32 MCU 常見外設介紹(3)NVIC 介紹

    NVIC(Nested vectored interrupt controller,嵌套向量中斷控制器)是Cortex-M處理的一部分,它是可編程的,且寄存位于存儲映射的系統(tǒng)
    的頭像 發(fā)表于 08-12 10:02 ?1142次閱讀
    【GD32 MCU 入門教程】GD32 MCU 常見外設<b class='flag-5'>介紹</b>(3)NVIC <b class='flag-5'>介紹</b>

    ARM CORE支持中斷嵌套嗎?GIC中斷控制器支持中斷嵌套嗎?

    在默認情況下,本文講述的都是ARMV8-aarch64架構,gicv3, linux kernel 5.14
    的頭像 發(fā)表于 08-07 09:29 ?1402次閱讀
    <b class='flag-5'>ARM</b> CORE支持<b class='flag-5'>中斷</b>嵌套嗎?GIC<b class='flag-5'>中斷控制器</b>支持<b class='flag-5'>中斷</b>嵌套嗎?
    主站蜘蛛池模板: 国精产品999一区二区三区有限 | 嫩草影院在线观看网站成人 | 香蕉久久夜色精品国产小说 | 久久国语露脸精品国产 | 日日噜噜噜噜夜夜爽亚洲精品 | 18岁末年禁止观看免费1000个 | 动漫美女被到爽了流 | 四房播播最新地址 | 暖暖视频免费高清在线观看 视频 | 欧美高清18 | 青青草伊人网 | 6080YYY午夜理论片在线观看 | 亚洲第一区欧美日韩精品 | 一边亲着一面膜下奶韩剧免费 | 芳草地在线观看免费视频 | 白丝制服被啪到喷水很黄很暴力 | 中国videos1314tv| 国产精品私人玩物在线观看 | 菠萝菠萝蜜在线观看视频 | 99国产精品久久久久久久日本竹 | 2023极品少妇XXXO露脸 | 日日日夜夜在线视频 | 樱桃bt在线www| 国产高清视频免费最新在线 | 秋霞电影网伦大理电影在线观看 | 国产成人精品视频频 | 天天干夜夜曰 | 伊人久久一本 | 丰满的美女射精动态图 | 久久久久综合一本久道 | 国产精品2020观看久久 | 午夜无码国产理论在线 | mm625亚洲人成电影网 | x8国产精品视频 | 做暖免费观看日本 | 一二三四电影完整版免费观看 | 国产高清砖码区 | 婷婷激情综合色五月久久竹菊影视 | 曰韩一本道高清无码av | 国产av在线播放 | 亚洲人成电影网站 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品