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

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

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

3天內不再提示

關于ARM中斷控制器的介紹

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

掃碼添加小助手

加入工程師交流群

GIC 硬件原理

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

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

GIC v3中斷類別

GICv3定義了以下中斷類型:

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

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

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

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 中斷的管理,將中斷發送給 Redistributor

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

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

優先級控制。

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

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

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

啟用和禁用 SGI 和 PPI。

設置 SGI 和 PPI 的優先級。

將每個 PPI 設置為電平觸發或邊緣觸發。

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

控制 SGI 和 PPI 的狀態。

內存中數據結構的基址控制,支持 LPI 的相關中斷屬性和掛起狀態。

電源管理支持。

CPU interface:傳輸中斷給 Core

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

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

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

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

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

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

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

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 的定義是根據 SOC 自己的定義,比如:

... ...

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

中斷狀態機

中斷處理的狀態機如下圖:

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

Inactive:無中斷狀態,即沒有 Pending 也沒有 Active。

Pending:硬件或軟件觸發了中斷,該中斷事件已經通過硬件信號通知到 GIC,等待 GIC 分配的那個 CPU 進行處理,在電平觸發模式下,產生中斷的同時保持 Pending 狀態。

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

Active and pending:當一個中斷源處于 Active 狀態的時候,同一中斷源又觸發了中斷,進入 pending 狀態。

中斷處理流程

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

外設發起中斷,發送給 Distributor

Distributor 將該中斷,分發給合適的 Redistributor

Redistributor 將中斷信息,發送給 CPU interface

CPU interface 產生合適的中斷異常給處理器

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

審核編輯:何安

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

    關注

    135

    文章

    9552

    瀏覽量

    391825
  • 控制器
    +關注

    關注

    114

    文章

    17787

    瀏覽量

    193074

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    LPC1110/11/12/13/14/15 32 位 ARM Cortex - M0 微控制器:設計與應用指南

    /11/12/13/14/15 32 位 ARM Cortex - M0 微控制器憑借其高性能、低功耗等特性,在諸多應用場景中展現出強大的競爭力。本文將詳細介紹這款微控制器的特點、功能
    的頭像 發表于 02-10 15:20 ?153次閱讀

    同樣能做采集控制ARM邊緣AI控制器與PLC究竟區別在哪里?

    在工業自動化的世界里,PLC幾乎是“穩如老狗”的存在。幾十年來,它承擔著生產線的邏輯控制、IO采集、實時執行,可靠性經過無數工廠驗證。但這兩年,個新角色迅速出圈—— ARM邊緣AI控制器 。它不
    的頭像 發表于 01-23 16:32 ?374次閱讀
    同樣能做采集<b class='flag-5'>控制</b>,<b class='flag-5'>ARM</b>邊緣AI<b class='flag-5'>控制器</b>與PLC究竟區別在哪里?

    CW32F030中斷解析

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

    RISC-V怎么實現核間中斷?核心本地中斷控制器(CLINT)深度解析

    全稱為Core Local Interruptor(核心本地中斷控制器),是 RISC-V 特權架構規范(Privileged Architecture Specification)中明確定義的內建
    的頭像 發表于 12-13 14:06 ?2428次閱讀
    RISC-V怎么實現核間<b class='flag-5'>中斷</b>?核心本地<b class='flag-5'>中斷控制器</b>(CLINT)深度解析

    CW32學習筆記,通用異步收發中斷接收

    的“中斷”功能。放在單片機上,進行中斷操作需要以下幾個條件和步驟:擁有中斷源、中斷控制器正常工作、觸發中斷、保護現場、響應
    發表于 12-12 07:45

    易靈思Sapphire SoC中RISC-V平臺級中斷控制器深度解析

    隨著 RISC -V處理在 FPGA 領域的廣泛應用,易靈思 FPGA 的 Sapphire RISC-V 內核憑借軟硬核的靈活支持,為開發者提供多樣選擇。本文深入探討 Sapphire SoC 中 RISC - V 平臺級中斷控制器(PLIC),解析其架構與操作機制
    的頭像 發表于 11-08 09:35 ?7827次閱讀
    易靈思Sapphire SoC中RISC-V平臺級<b class='flag-5'>中斷控制器</b>深度解析

    PY32F030系列32位ARM Cortex-M0+微控制器介紹

    在嵌入式開發領域,一款性能適配、成本可控且功耗優異的 MCU,往往是項目成功的關鍵。今天要為大家隆重介紹的PY32F030 系列 32 位 ARM Cortex-M0 + 微控制器,正是這樣一款能
    的頭像 發表于 10-15 16:43 ?1100次閱讀

    瑞薩RA系列MCU的中斷過程介紹

    中斷來臨的時候會最先經過IRQ寄存,IRQ寄存檢測到中斷的時候,會向中央處理嵌套向量中斷控制器NVIC發送
    的頭像 發表于 09-23 09:45 ?1268次閱讀
    瑞薩RA系列MCU的<b class='flag-5'>中斷</b>過程<b class='flag-5'>介紹</b>

    Analog Devices / Maxim Integrated MAX32672 ARM Cortex-M4F微控制器特性/應用/框圖

    Analog Devices MAX32672 ARM Cortex-M4F微控制器是一款超低功耗、高性價比、高度集成、高度可靠的32位微控制器。該器件支持具有復雜傳感處理的設計,且
    的頭像 發表于 06-27 11:12 ?849次閱讀
    Analog Devices / Maxim Integrated MAX32672 <b class='flag-5'>ARM</b> Cortex-M4F微<b class='flag-5'>控制器</b>特性/應用/框圖

    第六章 外部中斷

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

    車載整機控制器 工程機械主機控制器#碩博電子#國產控制器

    控制器
    長沙碩博電子科技股份有限公司
    發布于 :2025年05月26日 09:09:02

    AS32X601驅動系列教程 PLIC_中斷應用詳解

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

    工程機械控制器廠家 控制器國產替代 #國產控制器#控制器廠家#控制器品牌

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

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

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

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

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