一. 简介
接下来开始实现按键中断实验。
本文来学习向设备树文件中添加按键节点的中断信息。
二. 添加按键节点的中断信息
前面的按键输入实验中,已经向设备树文件中添加了 按键 key的设备节点信息,这里再向key按键节点中添加中断信息。
1. 添加按键的中断信息
因为按键key的设备节点添加在 设备树文件 imx6ull-14x14-evk.dts设备树文件中。所以,这里打开 imx6ull-14x14-evk.dts文件,向 按键key的设备节点添加如下的中断信息:
interrupt-parent = <&gpio1>;
interrupts = <18 IRQ_TYPE_EDGE_BOTH>;
添加完整后如下:
/* WeiWuXian //2024/03/03*/
key{
compatible = "alientek, key";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_key>;
key-gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>;
status = "okay";
interrupt-parent = <&gpio1>;
interrupts = <18 IRQ_TYPE_EDGE_BOTH>;
};
2. 编译设备树文件
进入 以上 kernel源码的根目录下,终端输入 "make dtbs"命令:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ make dtbs
3. 拷贝设备树文件到 tftp服务相关目录下
注意:因为这里开发板采用 tftp服务加载的方式,加载设备树文件 imx6ull-alientek-nand.dtb与 zImage(即内核镜像文件)到开发板的。
将编译生成的设备树文件 imx6ull-alientek-nand.dtb拷贝到 tftp服务所设置的目录下:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ sudo cp ./arch/arm/boot/dts/imx6ull-alientek-nand.dtb /home/wangtian/linux/tftp_file/ -f
[sudo] wangtian 的密码:
三. 测试按键节点信息
开发板上电后,进入 "/proc/device-tree"目录下,查看按键 key的设备节点:
进入 key的设备节点目录下,查看中断信息是否存在:
可以看出,按键key的设备节点下中断信息已经存在,说明按键中断节点已经创建好。
接下来就是实现按键中断代码。