本章我们以按键为例讲解在驱动程序中如何使用中断, 在学习本章之前建议先回顾一下关于中断相关的裸机部分相关章节, 这里主要介绍在驱动中如何使用中断,对于中断的概念及GIC中断控制器相关内容不再进行讲解。
本章配套源码和设备树插件位于“~/linux_driver/button_interrupt”目录下。
1. 在设备树中添中断信息以及中断基本函数介绍
1.1. 设备树中的中断相关内容
让我们先来了解一下设备树是如何描述整个中断系统信息的。
1.1.1. 顶层中断控制器
打开 ./arch/arm/boot/dts/ 目录下的 imx6ull.dtsi 设备树文件, 找到“interrupt-controller”节点,如下所示。
中断interrupt-controller节点:
intc: interrupt-controller@a01000 {
compatible = "arm,cortex-a7-gic";
#interrupt-cells = <3>;
interrupt-controller;
reg = <0xa01000 0x1000>,
<0xa02000 0x100>;
};