arm linux下的中断处理过程。

本文基于ast2600 soc来阐述,内核版本为5.10

1.中断gic初始化

start_kernel() -> init_IRQ() -> irqchip_init()

of_irq_init()主要是构建of_intc_desc.

489-514: 从__irqchip_of_table中找到dts node中匹配的of_table(匹配matches->compatible),

        然后申请desc, 保存匹配的of_table数据到desc,最后将desc插入intc_desc_lis中

521-541:调用desc->irq_init_cb.

我们先来看看这个of_table(__irqchip_of_table)有哪些数据。

这个__irqchip_of_table在arch/arm/kernel/vmlinux.lds申明了是在.init.data section中。

那么这个位置放置了些什么数据?

__irqchip_of_table中的数据由IRQCHIP_DECLARE()来声明和定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值