10_链式中断控制器驱动程序编写_linear方式#
链式中断控制器驱动程序编写_linear方式#
参考资料:
Linux 4.9.88内核源码
Linux-4.9.88\drivers\gpio\gpio-mxc.c
Linux-4.9.88\arch\arm\boot\dts\imx6ull.dtsi
Linux 5.4内核源码
Linux-5.4\drivers\pinctrl\stm32\pinctrl-stm32mp157.c
Linux-5.4\drivers\irqchip\irq-stm32-exti.c
Linux-5.4\arch\arm\boot\dts\stm32mp151.dtsi
本节视频源码在GIT仓库里
doc_and_source_for_drivers\ IMX6ULL\source\08_Interrupt\ 05_virtual_int_controller_linear_ok doc_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》