中断子系统 --- 硬件相关层

中断控制器驱动

由于linux支持中断控制器的级联,因此多个中断控制器就可能包含相同的硬件中断号。为了可以通过中断号唯一地标识一个中断,linux引入了irq domain机制以实现将硬件中断号映射为全局唯一的逻辑中断号。

Hwirq映射到irq

  • 每个中断控制器都对应一个IRQ Domain;
  • 中断控制器驱动通过irq_domain_add_*()接口来创建IRQ Domain;
  • IRQ Domain支持三种映射方式:linear map(线性映射),tree map(树映射),no map(不映射);
    1. linear map:维护固定大小的表,索引是硬件中断号,如果硬件中断最大数量固定,并且数值不大,可以选择线性映射;
    2. tree map:硬件中断号很大时,可以选择树映射;
    3. no map:硬件中断号直接就是Linux的中断号;

说明:

  1. 每个中断控制器对应一个irq_domain,使用链表将多个irq域组织起来。
  2. 每个irq对应一个irq_desc结构体
  3. hwirq_max:该 irq_domain 支持的中断最大数量
  4. revmap_size:映射表的大小
  5. revmap_direct_max_irq:此中断控制器支持的直接映射的最大中断数量
  6. revmap_tree:树映射的映射表
  7. linear_revmap[]:hwirq->virq 映射的线性表。索引是硬件中断号

通过这三种方式将硬件中断号映射成全局唯一的中断号。

但目前hwirqirq直接的关系还没有完全建立起来,因此我们还不能用irq来注册中断

建立双向联系irq  < --- >  hwirq

说明:

  1. irq_data:包含中断控制器的硬件数据。domain里面利用linear_revmap(线性)或者revmap_treeradix tree)来保存irq_data结构。因此可以以hwirqkey值从revmap_tree或者linear_revmap当中获取到irq_data数据结构

irq_desc是一个irq对应的描述结构体,每个irq对应一个该结构,在irq_desc结构体里面有irq_data

Arch-specific code

这部分与具体的CPU架构相关,不同的架构有不同的执行方式。以ARMv8为例,具体见下面的Arch-specific中断处理流程源码分析。大概流程是:

enable_da_f:开启PSTATE的A/D/S(SError中断/调试异常/FIQ),保持irq关闭,防止中断嵌套

diable_daif: 关闭中断

恢复中断:

第一个关中断是硬件自动实现的,然后保存现场后将高优先级的中断打开,之后恢复现场前再次关中断,恢复之后才开中断。三次开关操作,如上所示

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Day59|leetcode 503.下一个更大元素II、42. 接雨水

leetcode 503.下一个更大元素II 题目链接&#xff1a;503. 下一个更大元素 II - 力扣&#xff08;LeetCode&#xff09; 视频链接&#xff1a;单调栈&#xff0c;成环了可怎么办&#xff1f;LeetCode&#xff1a;503.下一个更大元素II_哔哩哔哩_bilibili 题目概述 给定一个循环…

HDMI 直通 ILA 调试实验

FPGA教程学习 第十四章 HDMI 直通 ILA 调试实验 文章目录 FPGA教程学习前言实验原理程序设计实验过程实验尝试总结TODO 前言 HDMI 输入直通到 HDMI 输出的显示&#xff0c;完成一个简单的 HDMI 输入输出检测。 实验原理 开发板 HDMI 输出接口芯片使用 ADV7511&#xff0c;HD…

使用Jconsole监控JMX

使用Jconsole监控 Jconsole启动 直接本地启动jdk工具 本地连接 本地启动java应用直接点击就可以连接 本地远程连接 idea启动服务连接 配置运行配置 配置远程参数 -Djava.rmi.server.hostname127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxrem…

【搭建私人图床】本地PHP搭建简单Imagewheel云图床,在外远程访问

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

【深度学习】 Python 和 NumPy 系列教程(廿二):Matplotlib详解:2、3d绘图类型(8)3D饼图(3D Pie Chart)

一、前言 Python是一种高级编程语言&#xff0c;由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名&#xff0c;并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库&#xff0c;可以用于开发各种类型的应用程序&#xff0c;包括Web开发、数据分…

模方新建工程时,显示空三与模型坐标系不一致怎么解决

答:检查空三xml与模型的metadata.xml的坐标系是否一致&#xff0c;metadata文件是否有在data目录外面。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.0新增单体化建模模块&#xff0c;…

CISP认证介绍(CISECISO)

0x00 前言 CTF 加解密合集CTF Web合集网络安全知识库溯源相关 文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取 0x01 什么是CISP CISP &#xff08;Certified Information Security Professional&#xff09; 注册信息安全专业人员资格认证&#xff0c;由中国信息…

第十届IEEE电气工程与自动化国际学术论坛(IFEEA 2023)

第十届IEEE电气工程与自动化国际学术论坛&#xff08;IFEEA 2023&#xff09; 2023 10th International Forum on Electrical Engineering and Automation IFEEA论坛属一年一度的国际学术盛会。因其影响力及重要性&#xff0c;IFEEA论坛自创建筹办以来&#xff0c;便受到国内…

UE5 Foliage地形植被实例删不掉选不中问题

目前问题测试发生在5.2.1上 地形上先填充后刷的植被删不掉 首先这个就是bug&#xff0c;大概看到说是5.3上能解决了&#xff0c;对此我只能吐槽ue5上地形植被bug太多了 什么nanite还能产生bug&#xff0c;不过这次又不是&#xff0c;整个删掉instance可以删除所有植被&#…

dlib库详解及Python环境安装指南

dlib是一个开源的机器学习库&#xff0c;它包含了众多的机器学习算法&#xff0c;例如分类、回归、聚类等。此外&#xff0c;dlib还包含了众多的数据处理、模型训练等工具&#xff0c;使得其在机器学习领域被广泛应用。本文将详细介绍dlib库的基本概念、功能&#xff0c;以及如…

pycharm终端激活环境时报错

pycharm终端激活环境时报错 nvoke-Expression : 无法将参数绑定到参数“Command”&#xff0c;因为该参数为空字符串。 所在位置 E:\anaconda\anaconda\anaconda3\envs\wsbpytorch\shell\condabin\Conda.psm1:76 字符: 36 Invoke-Expression -Command $activateCommand;~~~~~~~…

echarts静态饼图

<div class"cake"><div id"cakeChart"></div></div> import * as echarts from "echarts";mounted() {this.$nextTick(() > {this.getCakeEcharts()})},methods: {// 饼状图getCakeEcharts() {let cakeChart echart…

黑马头条 热点文章实时计算、kafkaStream

热点文章-实时计算 1 今日内容 1.1 定时计算与实时计算 1.2 今日内容 kafkaStream 什么是流式计算kafkaStream概述kafkaStream入门案例Springboot集成kafkaStream 实时计算 用户行为发送消息kafkaStream聚合处理消息更新文章行为数量替换热点文章数据 2 实时流式计算 2…

SkyWalking安装部署

一、概念 1、什么是 APM 系统&#xff1f; APM&#xff08;Application Performance Management&#xff09;即应用性能管理系统&#xff0c;是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。应用性能管理&#xff0c;主要指对企业的关键业务应用…

Bean拷贝组件(注解驱动)方案设计与落地

一、背景 数据流转在各层之间的过程&#xff0c;应当是改头换面的&#xff0c;字段属性数量&#xff0c;属性名称&#xff08;一般不变&#xff0c;但也有重构时出现变化的情况&#xff09;&#xff0c;类型名称&#xff08;普遍变化例如BO、VO、DTO&#xff09;。对于转换的业…

华为OD机试 - 字符串加密(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

一文弄懂基于图搜索的路径规划算法JPS(有python代码)

基于图搜索路径规划-JPS 关注晓理紫并回复jps获取代码 [晓理紫] 1、 Jump Point Search&#xff08;跳点搜索&#xff09; 核心&#xff1a;寻找到规划中的对称性 Path 并打破他们&#xff0c;从而避免扩展大量无用节点。 A*搜索的节点JPS 搜索的节点 1.1 概念 强迫邻居 节点…

沙丁鱼优化算法(Sardine optimization algorithm,SOA)求解23个函数MATLAB

一、沙丁鱼优化算法 沙丁鱼优化算法(Sardine optimization algorithm,SOA)由Zhang HongGuang等人于2023年提出&#xff0c;该算法模拟沙丁鱼的生存策略&#xff0c;具有搜索能力强&#xff0c;求解精度高等特点。 沙丁鱼主要以浮游生物为食&#xff0c;这些生物包括细菌、腔肠…

【脑机接口论文与代码】 基于自适应FBCCA的脑机接口控制机械臂

Brain-Controlled Robotic Arm Based on Adaptive FBCCA 基于自适应FBCCA的脑机接口控制机械臂论文下载&#xff1a;算法程序下载&#xff1a;摘要1 项目介绍2 方法2.1CCA算法2.2FBCCA 算法2.3自适应FBCCA算法 3数据获取4结果4.1脑地形图4.2频谱图4.3准确率 5结论 基于自适应FB…

SpingMyc项目如何搭建

目录 一、创建项目 二、环境搭建 &#xff08;1&#xff09;引入相关依赖 &#xff08;2&#xff09;在web.xml中配置前端控制器DispatcherServlet &#xff08;3&#xff09;编写SpringMVC核心配置文件springmvc.xml 三、测试是否成功 &#xff08;1&#xff09;编写控…