Linux中断相关知识
文章平均质量分 93
主要讲解Linux常见的中断,跟踪下源码
追捕的风
这个作者很懒,什么都没留下…
展开
-
Linux 中断子系统(四)-Workqueue
1、数据结构1)Workqueue工作队列是利用内核线程来异步执行工作任务的通用机制;2)Workqueue工作队列可以用作中断处理的Bottom-half机制,利用进程上下文来执行中断处理中耗时的任务,因此它允许睡眠,而Softirg和Tasklet在处理任务时不能睡眠;3)在中断处理过程中,或者其他子系统中,调用workqueue的调度或入队接口后,通过建立好的链接关系图逐级找到合适的worker,最终完成工作任务的执行4)...原创 2022-01-02 23:39:37 · 1172 阅读 · 0 评论 -
Linux 中断子系统(三)—— softirq和tasklet
1、中断机制中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-half中来处理,这样确保Top-half能尽快完成处理。1)如果中断不分上下半部处理,那么意味着只有等上一个中断成处理后才会打开中断,下一个中断才能得到响应。当某个中断处理处理时间较长时,很有可能就会造成其他中断丢失而无法响应,这个显然是难以接受的,比如典型的时钟中断,作为系统的脉搏,它的响应...原创 2022-01-01 22:42:51 · 854 阅读 · 0 评论 -
Linux中断子系统(二)—— 通用框架处理
1、数据结构分析(1)中断描述符结构structirq_desc:1)打开CONFIG_SPARSE_IRQ宏(中断编号不连续),中断描述符以radix-tree来组织,用户在初始化时进行动态分配,然后再插入radix-tree中;2)关闭CONFIG_SPARSE_IRQ宏(中断编号连续),中断描述符以数组的形式组织,并且已经分配好;3)不管哪种形式,最终都可以通过linuxirq号来找到对应的中断描述符;(2)stru...原创 2021-12-31 19:37:33 · 4042 阅读 · 0 评论 -
Linux 中断子系统(一)-中断控制器和驱动源码分析
1、中断概念中断是处理器用于异步处理外围设备请求的一种机制,是操作系统中外围设备的基石,此外系统调度、核间交互等都是离不开中断的。其概要分布图主要如下:硬件层:对应具体的外设与soc的物理连接,中断信号是从外设到中断控制器,由中断控制器统一管理,再路由到处理器上;硬件相关层:这一层包含两个部分,一部分是架构相关的中断处理,另一部分是中断控制器相关的处理;通用层:属于硬件无关层,其逻辑在所有硬件平台上通用用户层:主要是各类设备驱动,通过中断相关接口来进行申请和注册,...原创 2021-12-28 21:30:08 · 1203 阅读 · 0 评论 -
Device Tree中的.dts和.dtsi文件
1、DeviceTree概念DeviceTree由一系列被命名的结点(node)和属性(property)组成,而结点本身可包含子结点。所谓属性,其实就是成对出现的name和value。在DeviceTree中,可描述的信息包括(原先这些信息大多被hardcode到kernel中): CPU的数量和类别 内存基地址和大小 总线和桥 外设连接 中断控制器和中断使用情况 ...原创 2021-12-19 16:05:17 · 1361 阅读 · 0 评论 -
Linux中断基础知识
1、ARM中断器1.1ARM支持的中断器类型(1)SGI:软件触发中断(SoftwareGeneratedInterrupt),通常用于多核间通讯,最多支持16个SGI中断,硬件中断号从ID0~ID15。SGI通常在Linux内核中被用作IPI中断(inter-processorinterrupts),并会送达到系统指定的CPU上。(2)PPI:私有外设中断(PrivatePeripheralInterrupt),是每个CPU私有的中断。最多支持16个PPI中断,硬件中断号...原创 2021-12-19 15:41:14 · 1026 阅读 · 0 评论