
Linux内核之中断
文章平均质量分 67
qxqxa
meizuo
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设备树外设节点的中断属性怎么跟中断控制器关联的
外设控制器驱动通过platform_get_irq通过of_irq_get来获取irqof_irq_get先通过of_irq_parse_one解析出中断信息然后irq_find_host根据解析出的中断信息,找到中断域,一般就是中断控制器的一种实现然后irq_create_of_mapping创建映射,也就是硬件中断号往虚拟中断号映射。原创 2025-04-26 10:18:16 · 177 阅读 · 0 评论 -
详解sotfirq和tasklet
软中断是在硬件中断推出后执行。软中断不能被自己打断(即单个cpu上软中断不能嵌套执行),只能被硬件中断打断(上半部)。可以并发运行在多个CPU上(同一类型也可以)。所以软中断必须设计为可重入的函数(允许多个CPU同时操作),因此也需要使用自旋锁来保其数据结构。原创 2024-07-29 16:50:48 · 910 阅读 · 0 评论 -
ARM体系在linux中的中断抢占
gic主要提供如下功能,主要是四种中断服务,中断掩码和优先级gic框架中的各组件的通路如下中断最终分发给一个或多个PE的cpu interface,通过硬件中断号来区分各中断,各PE的运行优先级就是当前运行中断的优先级;一个中断是否进入PE,会先看优先级掩码能否到PE;还要通过中断抢占设置,和运行优先级,来判断是否能抢占当前PE。原创 2024-02-19 15:30:24 · 757 阅读 · 0 评论 -
arm64之系统调用原理
SYSCALL_DEFINE3(open,***)展开就是 sys_open,就是系统调用的内核实例fs/open.cif (fd)return fd;原创 2024-02-01 14:57:55 · 716 阅读 · 0 评论 -
如何获取irq来注册中断处理函数
通过,这篇我们可以总结为下图。原创 2023-12-05 23:16:53 · 827 阅读 · 1 评论 -
详解irq中断的处理流程
kernel_entry会将CPU寄存器按照pt_regs结构体的定义将第一现场保存到内核栈上并标记存储的位置,kernel_exit再恢复出来,arm体系内核栈和中断栈是共享的。找个通用的drivers/irqchip/irq-gic-v3.c可以看到set_handle_irq(gic_handle_irq),是通过gic读出硬件中断号。再通过generic_handle_irq去找到request_irq时注册后,对应irq_desc数组找到对应的中断处理函数去执行。原创 2023-09-16 17:10:40 · 504 阅读 · 1 评论