Cortex-A7的GIC(通用中断控制器):中断处理状态机

news2024/9/23 16:12:33

0 资料

ARM® Generic Interrupt Controller Architecture version 2.0 Architecture Specification

1 中断处理状态机

1.1 中断处理状态说明及状态机转换图

在这里插入图片描述
在这里插入图片描述

说明:
Inactive:未激活,中断无效。中断非挂起或非激活。
Pending:挂起,中断有效。等待被处理的中断。
Active:激活,中断有效。正在被CPU处理的中断。
Active and pending:激活及挂起,中断有效。CPU正在处理当前中断且该中断源又发送中断信号过来。

1.2 Transition A1 or A2, add pending state(添加挂起状态)

在这里插入图片描述
添加挂起状态分为SGI和SPI/PPI两个处理路径:
(1)SGI
发生以下情况之一:
(1.1)软件写入GICD_SGIR (软中断生成寄存器)
(1.2)软件写入GICD_SPENDSGIRn(软中断设置挂起寄存器)
(2)SPI/PPI
发生以下情况之一:
(2.1)外围设备发出中断请求信号
(2.2)软件写入GICD_ISPENDRn(中断设置挂起寄存器)

1.2 Transition B1 or B2, remove pending state(删除挂起状态)

在这里插入图片描述
删除挂起状态分为SGI和SPI/PPI两个处理路径:
(1)SGI
软件写GICD_CPENDSGIRn(软中断清除挂起寄存器)
(2)SPI/PPI
发生以下情况之一:
(2.1)如果是电平触发中断,电平无效时清除挂起
(2.2)如果是边沿触发中断,软件写入GICD_ICPENDRn(中断清除挂起寄存器)

1.3 Transition C, pending to active(挂起到激活)

在这里插入图片描述
如果中断已启用,并且具有足够的优先级向处理器发出信号,则软件通过读取GICC_IAR(中断确认寄存器)实现挂起到激活的转换。

1.4 Transition D, pending to active and pending(挂起到激活及挂起)

在这里插入图片描述
挂起到激活及挂起状态分为SGI和SPI/PPI两个处理路径:
(1)SGI
发生以下情况之一:
(1.1)软中断生成及GICC_IAR(中断确认寄存器)均发生
(1.2)当两个或多个具有相同中断ID的未决SGI来自同一源处理器并以同一处理器为目标时。如果其中一个SGI遵循转换C,其他SGI则遵循转换D
(2)SPI/PPI
同时发生以下情况:
(2.1)中断使能
(2.2)软件读取GICC_IAR(中断确认寄存器),进入激活状态
(2.3)发送以下事件中的一个:
(2.3.1)电平触发中断的信号处于有效状态
(2.3.2)对于边缘触发的中断,是否发生这种转换取决于GICC_IAR的读取时间(中断确认寄存器)与中断检测时间。

1.5 Transition E1 or E2, remove active state(未激活状态)

在这里插入图片描述
通过写入GICC_EOIR(中断结束寄存器)或GICC_DIR(中断停用寄存器)进入未激活状态。这里需要注意:在GICv2 中只要对GICC_EOIR进行了有效写入就会自动将对应的中断停用(不再需要设置GICC_DIR中断停用寄存器)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074276.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iZotope Ozone 11 Advanced:专业音频制作与母带处理的巅峰之作

iZotope Ozone 11 Advanced是一款专为音频工程师、制作人和音乐人设计的顶级音频后期制作软件,无论是Mac还是Windows平台,都能为用户提供无与伦比的音频处理体验。该软件集成了最先进的人工智能技术和一系列精密的音频处理工具,让音频作品的最…

还在烦恼Cosplay论坛开发?探索PHP+Vue的完美解决方案!

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

STM32定时器PWM输出

STM32定时器PWM(脉冲宽度调制)输出原理,在使用固件库时,主要涉及定时器的配置以及PWM信号的生成。以下是对该原理的详细解释: 一、PWM基本概念 PWM(Pulse Width Modulation)是一种通过改变脉冲…

docker 容器内文件传到宿主机上

sudo docker cp 容器名:文件路径 宿主机路径 ylshy-Super-Server:~$ pwd /home/yl ylshy-Super-Server:~$ ^C ylshy-Super-Server:~$ sudo docker cp ylafl:/opt/live555/testProgs/rtsp.pcap /home/yl Successfully copied 4.61kB to /home/yl ylshy-Super-Server…

自适应学习率(Datawhale X 李宏毅苹果书 AI夏令营)

传统的梯度下降方法在优化过程中常常面临学习率设置不当的问题。固定的学习率在训练初期可能过大,导致模型训练不稳定,而在后期可能过小,导致训练速度缓慢。为了克服这些问题,自适应学习率方法应运而生。这些方法通过动态调整学习…

Django使用视图动态输出CSV以及PDF的操作详解例子解析

代码示例: 在Django中,使用视图动态输出CSV和PDF文件是一个常见的需求,可以通过Python标准库中的csv模块和reportLab库来实现。以下是一些详细的操作步骤和示例代码。 CSV文件的动态输出 首先,需要导入Python的csv模块&#xf…

JSP的九大内置对象及其作用详解

JSP的九大内置对象及其作用详解 1. request对象2. response对象3. pageContext对象4. session对象5. application对象6. out对象7. config对象8. page对象9. exception对象 💖The Begin💖点点关注,收藏不迷路💖 在JSP&#xff08…

<数据集>骨折检测数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:2060张 标注数量(xml文件个数):2060 标注数量(txt文件个数):2060 标注类别数:7 标注类别名称:[elbow positive, shoulder fracture, fingers positive, wrist positi…

0818-0824面试题目和复习整理

根据面试问的问题整理一下 1. 并查集 int n 1005; // n根据题目中节点数量而定&#xff0c;一般比节点数量大一点就好 vector<int> father vector<int> (n, 0); // C里的一种数组结构// 并查集初始化 void init() {for (int i 0; i < n; i) {father[i] i;…

Kubernetes部署相关概念

本文封面由 凯楠&#x1f4f8;友情提供 Kubernetes部署相关概念概览 容器运行时&#xff08;container runtime&#xff09;&#xff1a; 是负责在计算机操作系统上创建、运行和管理容器的软件组件。它是整个容器化环境中的关键组成部分&#xff0c;与操作系统内核紧密交互&a…

linux(Ubuntu )搭C++ 最新版GDAL完整教程

在前面的文章中主要是介绍如何在windows系统下利用python安装gdal库&#xff0c;如下&#xff1a; 如何快速安装GDAL 在linux环境下python安装gdal也可以利用现成的whl文件&#xff0c;但是安装c GDAL环境的比较麻烦&#xff0c;目前网络上大多是安装的老版本的教程&#xff…

springboot3 SecurityConfig SecurityFilterChain 需要使用CorsFilter,实际是CorsWebFilter

使用springboot3做微服务开发&#xff0c;由于网关gateway使用webFlux&#xff0c;因此导致实际类型是CorsWebFilter&#xff0c;但是在public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception方法中&#xff0c;项目启动报错…

rt-studio+clion+cubemx联合使用(使用scons进行整合)

前言 以前在clion中使用rt-thread的方式 1. 使用的cubemx生成的方式: 这种方式只能使用rt-thread的内核版本 2. 自己去把rt-thread的源码拷贝到对应的工程中&#xff0c;再编写对应的CMakelists文件进行管理思考 我的想法是通过rt-studio创建项目&#xff0c;然后通过工具转…

河南萌新2024第二场

H 狼狼的备忘录 题目大意&#xff1a; 给定n本备忘录&#xff0c;里面记录了一个人的m个星座信息&#xff0c;要求按一下要求整理备忘录 A&#xff1a;同一个成员的星座信息 x 是星座信息 y 的后缀&#xff0c;那么星座信息 x 会没有星座信息 y 完整&#xff0c;从而应该只保…

Nginx + Docker Compose前后端分离部署到服务器过程记录

一、采用Nginx部署前端VUE&#xff08;Vite&#xff09; 1、修改配置文件vite.config.ts&#xff0c;将本地环境改为开发环境 注意base处只能是‘/’ 不能是 ‘./!在这里插入图片描述 对项目进行打包 在当前目录的终端执行&#xff1a;npm run build 若报错如下&#xff1…

CORS错误

说明&#xff1a;记录一次CORS&#xff08;跨域&#xff09;错误&#xff0c;及解决方法。 场景 在vscode里面运行前端项目&#xff0c;idea中运行后端项目&#xff0c;登录时&#xff0c;访问接口&#xff0c;报CORS错误&#xff0c;如下&#xff1a; 解决 在后端项目的网关…

【PyQt6 应用程序】PyUIC使用加载可视化文件

使用uic模块可以方便地从Qt Designer设计的UI文件加载用户界面。这种方法使得设计和布局变得更加直观,并且可以将用户界面设计与程序逻辑分离。 本次展示如何使用PyQt6和uic模块来加载一个简单的UI文件。 文章目录 需要使用Qt Designer创建一个UI文件。Qt Designer是一个强大…

并行 parallel DOP 受 Resource Manager 限制

监控 Script select s.SID, s.SERIAL#, s.username ,rpd.plan, s.RESOURCE_CONSUMER_GROUP, rpd.PARALLEL_DEGREE_LIMIT_P1 from v$session s, DBA_RSRC_CONSUMER_GROUPS rcg, DBA_RSRC_PLAN_DIRECTIVES rpd , V$RSRC_CONSUMER_GROUP v…

甲方(北汽)渗透测试面试经验分享

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 所在城市&…

IDEA 2024.2.0.2 使用 Jrebel and XRebel 热部署

安装 激活 工具网站中url和邮箱复制进去 设置 允许项目自动构建 允许开发过程中自动部署