【ARMv8/v9 GIC 系列 2.2 -- GIC SPI 中断的 GICD_ISACTIVER 和 GICD_ICACTIVER 配置】

news2024/11/25 12:54:44

文章目录

    • GIC 中断 Active 状态的配置
      • 中断状态分类
      • GICD_ISACTIVER<n>
      • GICD_ICACTIVER<n>
      • 参数 n 编号解释
      • 中断设置举例
        • 设置中断ID 68为活动状态
        • 清除中断ID 68的活动状态
      • 小结

GIC 中断 Active 状态的配置

在ARMv8/ARMv9 体系结构中,GICD_ISACTIVER<n>GICD_ICACTIVER<n> 是通用中断控制器(GIC)的两组寄存器,它们用于管理特定中断的活动状态。这些寄存器允许软件查询和修改中断是否处于活动状态。

在这里插入图片描述

中断状态分类

在ARM体系中,对于每个中断,有四个状态:

  • inactive:中断处于无效状态;
  • pending:中断处于有效状态,但是CPU没有响应该中断;
  • active:中断处于有效状态,CPU在响应该中断;
  • active and pending:CPU在响应该中断,但是该中断源又发送中断过来。

GICD_ISACTIVER

  • 寄存器名称:Interrupt Set-Active Registers
  • 目的:用于将特定的中断标记为活动状态。
  • 描述GICD_ISACTIVER<n> 寄存器允许软件将中断设置为活动状态。当向这些寄存器的特定位写入 1 时,对应的中断会被标记为活动状态。写入 0 到这些位没有影响。

GICD_ICACTIVER

  • 寄存器名称:Interrupt Clear-Active Registers
  • 目的:用于清除特定中断的活动状态。
  • 描述GICD_ICACTIVER<n> 寄存器允许软件清除中断的活动状态。当向这些寄存器的特定位写入 1 时,对应的中断活动状态会被清除。写入 0 到这些位没有影响。

参数 n 编号解释

参数 <n> 表示寄存器索引,根据系统支持的中断数量而变化。例如,如果GIC支持最多1020个SPI(共享外设中断),则 GICD_ISACTIVERGICD_ICACTIVER 寄存器会有多个(例如从 GICD_ISACTIVER0GICD_ISACTIVER31),因为每个寄存器可以控制32个中断的活动状态。

中断设置举例

假设我们要将中断ID 68标记为活动状态,然后清除其活动状态:

设置中断ID 68为活动状态
  1. 确定正确的寄存器和位位置:
    • 中断ID 68 位于 GICD_ISACTIVER2 (因为 68 / 32 = 2),位于该寄存器的第 68 % 32 = 4 位。
  2. 设置为活动:
    GICD_ISACTIVER2 = (1 << 4);
    
清除中断ID 68的活动状态
  1. 同样,位于 GICD_ICACTIVER2 寄存器,位位置为第 4 位。
  2. 清除活动状态:
    GICD_ICACTIVER2 = (1 << 4);
    

小结

  • 实际使用时,通常不需要手动设置或清除中断的活动状态,因为GIC硬件会自动管理这些状态。手动修改这些状态可能会导致系统行为异常。
  • 操作这些寄存器通常需要特权级别的代码执行,因此操作通常在操作系统内核或相应的驱动程序中进行。
  • 标记中断为“ACTIVE状态后并不会启动中断处理程序的执行。它仅仅表示该中断正被处理或等待处理。中断的启动依赖于中断的使能状态和优先级配置。

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

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

相关文章

2024年全国青少信息素养大赛python编程复赛集训第四天编程题分享

整理资料不容易,感谢各位大佬给个点赞和分享吧,谢谢 大家如果不想阅读前边的比赛内容介绍,可以直接跳过:拉到底部看集训题目 (一)比赛内容: 【小学组】 1.了解输入与输出的概念,掌握使用基本输入输出和简单运算 为主的标准函数; 2.掌握注释的方法; 3.掌握基本数…

【一步一步了解Java系列】:认识异常类

看到这句话的时候证明&#xff1a;此刻你我都在努力 加油陌生人 个人主页&#xff1a;Gu Gu Study专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xff1a;小闭…

qt开发-09_分裂器

QSplitter 是 Qt 框架中的一个非常实用的控件&#xff0c;用于创建可调整大小的窗格。它允许用户通过拖动子窗口间的边界&#xff08;也称为分割条&#xff09;来动态调整子窗口的尺寸。这在开发需要多个视图同时显示&#xff0c;且用户需要根据需要调整每个视图大小的应用程序…

pdf只要其中一页,pdf只要其中几页怎么弄

在现代办公和学习环境中&#xff0c;pdf文件因其跨平台、保持原样等优点而被广泛使用。然而&#xff0c;有时我们需要一个pdf其中页或其中几页&#xff0c;以便更好地管理和使用其中的内容。本文将详细介绍几种拆分pdf文件的方法&#xff0c;帮助您轻松应对各种拆分需求。 打开…

【LeetCode:2663. 字典序最小的美丽字符串 + 贪心】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Qt creator day3练习

2、升级优化自己应用程序的登录界面。 要求&#xff1a; 1. qss实现 2. 需要有图层的叠加 &#xff08;QFrame&#xff09; 3. 设置纯净窗口后&#xff0c;有关闭等窗口功能。 4. 如果账号密码正确&#xff0c;则实现登录界面关闭&#xff0c;另一个应用界面显示。 widget…

架构师指南:现代 Datalake 参考架构

这篇文章的缩写版本于 2024 年 3 月 26 日出现在 The New Stack 上。 旨在最大化其数据资产的企业正在采用可扩展、灵活和统一的数据存储和分析方法。这一趋势是由企业架构师推动的&#xff0c;他们的任务是制定符合不断变化的业务需求的基础设施。现代数据湖体系结构通过将数…

Android记录9--实现转盘效果

自定义View /2013.10.16_TurnPlate_Demo/src/com/wwj/turnplate/TurnPlateView.java package com.wwj.turnplate; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; im…

LabVIEW机器视觉在质量控制中的应用

基于LabVIEW的机器视觉系统在质量控制中应用广泛&#xff0c;通过图像采集、处理和分析&#xff0c;自动检测产品缺陷、测量尺寸和识别标记&#xff0c;提高生产效率和产品质量。下面介绍LabVIEW机器视觉系统在质量控制中的实现方法、应用场景及其优势。 项目背景 在现代制造业…

攻防世界-pdf

方法一&#xff1a;打开是pdf格式的文件&#xff0c;里面有一张图&#xff0c;题目提示图下面什么都没有&#xff1f;emmm用chrom打开pdf——ctrlf搜索flag&#xff0c;里面是有东西的&#xff0c;ctrla复制就可以了。 方法二&#xff1a;题目提示图下面什么都没有&#xff0c;…

刷代码随想录有感(112):动态规划——组合总和IV

题干&#xff1a; 代码&#xff1a; class Solution { public:int combinationSum4(vector<int>& nums, int target) {vector<int>dp(target 1, 0);dp[0] 1;for(int j 0; j < target; j){for(int i 0; i < nums.size(); i){if(j > nums[i] &…

idea中的git在clone文件提示 filename too long

一 解决版本 1.1 问题描述以及解决办法 当在Windows系统下使用Git时出现“filename too long”错误&#xff1a; git config --system core.longpaths true

Minillama3->dpo训练

GitHub - leeguandong/MiniLLaMA3: llama3的迷你版本,包括了数据,tokenizer,pt的全流程llama3的迷你版本,包括了数据,tokenizer,pt的全流程. Contribute to leeguandong/MiniLLaMA3 development by creating an account on GitHub.https://github.com/leeguandong/MiniLL…

Starlink全系卫星详细介绍,波段频谱、激光星间链路技术、数据传输速率等等

Starlink全系卫星详细介绍&#xff0c;波段频谱、激光星间链路技术、数据传输速率等等。 Starlink是SpaceX公司开发的一个低轨道&#xff08;LEO&#xff09;卫星网络系统&#xff0c;旨在为全球用户提供高速宽带互联网服务。截至2024年6月&#xff0c;Starlink已经发射并运行…

1950 Springboot汽修技能点评系统idea开发mysql数据库APP应用java编程计算机网页源码maven项目

一、源码特点 springboot 汽修技能点评系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统 具有完整的源代码和数据库&…

2024头歌数据库期末综合(部分题)

目录 第1关&#xff1a;数据表结构修改1 任务描述 学习补充 答案 第2关&#xff1a;数据记录删除 任务描述 学习补充 答案 第3关&#xff1a;数据表结构修改2 任务描述 学习补充 答案 第5关&#xff1a;数据查询一 任务描述 学习补充 答案 本篇博客声明&…

全网最全Aspose.Words For JAVA 高级使用教程(文章涵盖2024最新️水印包)

资源链接&#xff08;私信博主免下载领取&#xff09;&#xff1a; https://download.csdn.net/download/LiHaoHang6/88744167?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171772424516800227412117%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%25…

【八股系列】怎么处理项目中的异常捕获行为?(js)

&#x1f389; 博客主页&#xff1a;【剑九 六千里-CSDN博客】 &#x1f3a8; 上一篇文章&#xff1a;【[shouldComponentUpdate是为了解决什么问题&#xff1f;(React)]添加链接描述】 &#x1f3a0; 系列专栏&#xff1a;【面试题-八股系列】 &#x1f496; 感谢大家点赞&…

基于51单片机计步器—无线蓝牙APP上传

基于51单片机计步器设计 &#xff08;程序&#xff0b;原理图&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 本设计由STC89C52单片机最小系统ADXL345加速度传感器lcd1602液晶电路蓝牙模块电路呼吸灯电路电源电路组成。 1.通过ADXL345检测步数&#xff0…

平价蓝牙耳机排行榜,2024四款必入蓝牙耳机盘点!

蓝牙耳机已逐渐成为我们日常生活中不可或缺的一部分&#xff0c;从晨跑锻炼到深夜加班&#xff0c;从喧嚣的城市到静谧的乡村&#xff0c;蓝牙耳机都以其便捷性和出色的音质&#xff0c;陪伴我们度过了一个又一个美好时光&#xff0c;市场上琳琅满目的蓝牙耳机品牌与型号&#…