10_链式中断控制器驱动程序编写_linear方式
链式中断控制器驱动程序编写_linear方式
参考资料:
-
Linux 4.9.88内核源码
Linux-4.9.88/drivers/gpio/gpio-mxc.cLinux-4.9.88/arch/arm/boot/dts/imx6ull.dtsi
-
Linux 5.4内核源码
Linux-5.4/drivers/pinctrl/stm32/pinctrl-stm32mp157.cLinux-5.4/drivers/irqchip/irq-stm32-exti.cLinux-5.4/arch/arm/boot/dts/stm32mp151.dtsi
-
本节视频源码在GIT仓库里
doc_and_source_for_drivers\IMX6ULL\source\08_Interrupt\05_virtual_int_controller_linear_okdoc_and_source_for_drivers\STM32MP157\source\A7\08_Interrupt\05_virtual_int_controller_linear_ok
1. 两种方式的对比
linear、legacy方式,都是用来编写链式中断控制器驱动程序,它们的关系如下表所示。
| legacy | linear | |
|---|---|---|
| 函数 | irq_domain_add_legacy | irq_domain_add_linear |
| irq_desc | 一次性分配完 | 用到再分配 |
| (hwirq,virq) | domain->linear_revmap[hwirq] = irq_data->irq; | 同左边 |
2. 编程
3. 上机实验
跟上节视频操作完全一样,参考《16_legacy方式代码的上机实验.md》