irq_domain 负责的事情以及小组成员分担的任务

news2024/11/29 12:47:24

文章目录

  • 简介
  • irq_domain 要做哪些事
  • irq_desc 结构图
  • irq_domain 小组的重要成员有哪些
  • irq_domain 小组的重要成员解析
    • irq_domain 的左膀右臂 irq_chip & irq_domain_ops
      • irq_chip 分担了哪些工作
      • irq_domain_ops 分担了哪些工作
    • 其他成员分担了哪些工作
  • irq_desc 怎么与 irq domain 建立联系的
  • 可选的高层handler

简介

本篇讲这个
	讲述 irq_desc 和 irq_domain , 他们是靠 irq_data 联系到一起的
本篇不讲这个
	实现一个irq_domain需要定义的两个重量级结构体
		1. irq_chip
		2. irq_domain_ops

irq_domain 要做哪些事

  • irq_domain 要做哪些事
irq_domain 要做硬件和软件的设置
	// 虽然硬件设置都是软件做的,但是我们可以根据必要实现的硬件操作去追流程,忽略软件框架
	1. 硬件方面
		1. 中断层层打开与mask与关闭与ack与eoi // 由 irq_chip 结构体负责
	2. 软件方面
		2.1不负责物理中断号的管理,由设备树描述者负责,但是会负责转换
			负责转换 interrupt 属性 到 hwirq
		2.2负责irq_desc 的创建与填充
			2.2.1.irq_desc 中 软件中断号的申请 					: irq_desc  中的 irq_data 中的 irq
			2.2.2.irq_desc 中 软件中断号与硬件中断号的映射 		: irq_desc  中的 irq_data 中的 irq 和 hwirq
			2.2.3.irq_desc 中 高层中断处理函数  					: irq_desc  中的 handle_irq
			2.2.4.irq_desc 中 该软件中断号对应的硬件ops 			: irq_desc  中的 irq_data 中的 chip
			2.2.5.irq_desc 中 该软件中断号对应的1个或多个hander 	: irq_desc  中的 action 链表
			---
			2.2.6 irq_desc 中 domain 的关联 					: irq_desc  中的 irq_data 中的 domain

------------
irq_of_parse_and_map 做了 2.1  2.2.1-2.2.4 2.2.6
	2.2.1 具体是在 irq_domain_insert_irq_data 中做的
	2.2.6 具体是在 irq_domain_insert_irq_data 中做的
request_irq 做了  2.2.51

irq_desc 结构图

在这里插入图片描述

irq_domain 小组的重要成员有哪些

struct irq_desc *irq_desc;

irq_desc->irq_data->hwirq
irq_desc->irq_data->irq
irq_desc->irq_data->chip // irq_chip
irq_desc->irq_data->domain // irq_domain
irq_desc->irq_data->domain->ops // irq_domain_ops

irq_desc->action // irqaction

irq_desc->handle_irq

irq_domain 小组的重要成员解析

irq_domain 的左膀右臂 irq_chip & irq_domain_ops

irq_chip  与 irq_domain_ops 
irq_chip   负责 硬件操作
irq_domain_ops  负责 软件操作

irq_chip 分担了哪些工作

中断硬件操作

irq_domain_ops 分担了哪些工作

中断软件操作管理
2.1 : 负责了 设备树 interrupt属性的解析,解析到 hwirq : xlate/translate
2.2.3 : 设置高层 handler : map/alloc
2.3.4 : chip ops 设置 : map/alloc
2.2.5 : 调用 irqchip ops 来完成 activate : activate

其他成员分担了哪些工作

并不是生产者,而是被其他小组成员消费的角色

irq_desc 怎么与 irq domain 建立联系的

在 irq_domain_alloc_irqs/__irq_domain_alloc_irqs 中
1. irq_domain_alloc_descs
2. irq_domain_alloc_irq_data
	irq_data = irq_get_irq_data(virq + i); // 拿到 virq 对应的irq_desc 中的 irq_data
	irq_data = irq_domain_insert_irq_data(parent, irq_data); // 申请空间,赋值到irq_desc -> irq_data
		irq_data->irq = child->irq; // 填充了irq_data 中的 irq
		irq_data->domain = domain;  // 填充了irq_data 中的 domain
3. irq_domain_alloc_irqs_hierarchy

可选的高层handler


handle_percpu_devid_fasteoi_ipi
handle_percpu_devid_irq
handle_fasteoi_irq
handle_edge_irq
handle_simple_irq
handle_level_irq
partition_handle_irq

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

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

相关文章

小程序技术助力智慧家居生态互联

随着科技的不断发展,智能终端设备已经成为人们生活中不可或缺的一部分。不仅可以通过智能手机、平板电脑等设备方便地获取信息和进行沟通,现在还可以通过智能电视、智能冰箱等终端设备运行小程序,为人们提供更加便捷的生活体验。 智能终端设…

C1 计算机系统概论

目录 计算机系统简介 计算机的基本组成 计算机硬件的主要技术指标 计算机系统简介 计算机的基本组成 运算器控制器->中央处理器CPU 输入设备输出设备->I/O设备 运算器:ALU 三个寄存器ACC、X、MQ控制器:CU 两个寄存器IR、PC主存储器&#x…

解决css背景图覆盖文字

项目需求:这是个导航栏(下面是uveiw的tabs标签),然后高亮的时候会有一个背景图,因为title不固定字数,所以宽度不能写死。 想要的效果 做出来的效果 自己写了个样式,用scroll-view&#xff0…

10分钟西门子SMART200PLC轻松实现连接自建MQTT云平台操作教程

目录 一. 使用流程 二. 准备工作 2.1 需要准备如下物品 2.2 LF220网关准备工作 2.3 PLC准备工作 2.4 电脑的准备工作 2.5 MQTT服务器 三. MQTT网关登陆平台配置步骤 3.1 登录 3.2 网关概况 3.3 MQTT连接配置 3.4 驱动管理 3.5 变量管理 四. MQTT客户…

全网首次公开,阿里巴巴新产Java性能优化小册(2023版),理论实战起飞

性能优化可以说是很多一线大厂对其公司内高级开发的基本要求(其中以Java岗最为显著)。其原因有两个:一是提高系统的性能,二是为公司节省资源。两者都能做到,那你就不可谓不是普通程序员眼中的“调优大神了”。 那么如…

pyqt5界面+myql+跳绳系统设计

pyqt5界面myql跳绳系统设计 改项目主要是学习界面的设计开发,已把一些流行的算法做成功能较好的系统,这里以跳绳计数算法为例子,进行一个开发流程。 跳绳计数算法 1.基于Mediapipe(本文使用0.8的版本)进行人体骨架关…

yolo v8

这个系列代码被封装的非常的精致,对二次开发不太友好,虽然也还是可以做些调节 模型的导出 有三种方式试过,都可以导出onnx的模型 1. 用yolov8 源码来自:ultralytics\yolo\engine\exporter.py (不固定尺寸) yolo export modelpa…

Unity HybridCLR 热更工具学习日记(一)

目录 导入HybridCLR包、安装设置相关选项 导入HybridCLR包 先找到HybridCLR包的git地址:https://github.com/focus-creative-games/hybridclr 复制包的http地址,打开unity - window - package Manager;点击左上角的 选择Add Package for…

Ch4.字符串

文章目录 4.字符串KMP算法next数组nextval数组 (优化后的next数组)4.字符串 1.串: 串是一种特殊的线性表,数据直接呈线性关系 2.字符集编码 3.串的存储 (1)顺序存储 ①静态数组 ②动态数组 王道教材采用静态数组 (2)链式存储 4.字符串模式匹配 (1)概念

7.免交互

文章目录 Here Document免交互Expect例子 Here Document免交互 Here Document 免交互 使用I/O重定向的方式将命令列表提供给交互式程序或命令,比如ftp、 cat或read命令。是标准输入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构建输入信息&a…

深度学习笔记2——CNN识别手写数字

深度学习笔记2——CNN识别手写数字 本文将介绍LeNet-5和MNIST手写数字识别的PyTorch实现案例。 参考文献:《Gradient-Based Learning Applied to Document Recognition》数据集(MNIST):THE MNIST DATABASE完整代码(G…

ChatGPT接入微信公众号(手把手教学)

前言 本篇文章参考国内服务器 3 分钟将 ChatGPT 接入微信公众号(超详细)配置,纠正了一些过时的信息。 准备 一个微信公众号 一个能访问外网的梯子 一个ChatGPT账号 有了这些就可以配置了 注册免费服务器,并部署代码 前往Laf…

CloudCompare二次开发之如何通过PCL进行点云配准?

文章目录 0.引言1.CloudCompare界面设计配准(registrate)按钮2.ICP配准(ICP_Reg)3.多幅点云逐步配准(Many_Reg) 0.引言 因笔者课题涉及点云处理,需要通过PCL进行点云数据一系列处理分析,查阅现有网络资料&a…

ChatgGPT生成Excel统计公式

需求背景 编写excel公式,提取下图中符号之前的内容并填充到“修改后的内容”这一列 流程思路 借助ChatGPT完成Excel公式的大致流程如下: 确定要解决的问题:明确你需要在Excel中实现的具体任务或计算需求。例如,求和、平均值、…

优思学院|用ChatGPT人工智能制作FMEA可以吗?

问题和缺陷是昂贵的,它们是质量成本的主要构成部分。同时,顾客可以对制造商和服务提供商抱有很高的期望,希望他们提供高质量和高可靠性。 通常,很多企业只会在产品和服务的开发后期,通过广泛的测试和檢查来发现问题。…

提高 Maya 渲染质量和速度的4个小技巧

Autodesk Maya,通常简称为Maya,是一种3D计算机图形应用程序,可在Windows、macOS和Linux上运行,最初由Alias开发,目前由Autodesk拥有和开发。它用于为交互式3D应用程序、动画电影、电视剧和视觉效果创建资产。 您可以通…

以 29K 成功入职字节跳动,这份《 软件测试面试笔记》让我受益匪浅

朋友入职已经两周了,整体工作环境还是非常满意的!所以这次特意抽空给我写出了这份面试题,而我把它分享给小伙伴们,面试&入职的经验! 大概是在3月中的时候他告诉我投递了简历,4月的时候经过了3轮面试收…

【C++】4. 类和对象终章

专栏导读 🍁作者简介:余悸,在读本科生一枚,致力于 C方向学习。 🍁收录于 C专栏,本专栏主要内容为 C初阶、 C 进阶、STL 详解等,持续更新中! 🍁相关专栏推荐: …

做F牌独立站要做好功课,拒绝被割韭菜!

做过爆品独立站的朋友们都知道,遇到爆品不容易,很多都具有滞后性,都是当你发现了之后,这个帖子/视频/产品已经被人跑烂了,你再去跑,这样只会浪费大量的广告费。既然爆品独立站的广告费烧不过大卖&#xff0…

知识图谱学习笔记——(五)知识图谱推理

一、知识学习 声明:知识学习中本文主体按照浙江大学陈华钧教授的《知识图谱》公开课讲义进行介绍,并个别地方加入了自己的注释和思考,希望大家尊重陈华钧教授的知识产权,在使用时加上出处。感谢陈华钧教授。 (一&…