【北京迅为】i.MX6ULL终结者Linux 电容触摸屏实验运行测试

文章目录

    • 1 编译驱动程序
    • 2 运行测试
    • 3 将驱动添加到内核中

1 编译驱动程序

创建Makefile文件,内容和前面实验基本一样,需要将obj-m的值修改为ft5426.o,具体内容如下:

KERNELDIR := /home/topeet/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga
CURRENT_PATH := $(shell pwd)
obj-m := ft5426.o

build: kernel_modules

kernel_modules: 
        $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
        $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

首先我们在终端输入两个命令(设置两个环境变量):

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-

然后执行“make”命令进行编译,编译完成生产ft5426.ko驱动模块文件。

2 运行测试

编译设备树文件,使用新的设备树文件启动开发板,然后拷贝编译生产的ft5426.ko驱动模块文件到开发板根文件系统lib/modules/4.1.15目录下(检查开发板根文件系统中有没有“/lib/modules/4.1.15”这个目录,如果没有的话需要自行创建一下。开发板中使用的是光盘资料里面提供的busybox文件系统,光盘资料的“i.MX6UL终结者光盘资料\08_开发板系统镜像\03_文件系统镜像\01_Busybox文件系统”目录下)。使用下列命令加载模块:

depmod
modprobe ft5426

当驱动模块加载成功后,有如图 2.1信息:
在这里插入图片描述

图 2.1

驱动加载成功后就会生成/dev/input/eventn设备文件,比如本触摸屏如图 2.2所示:
在这里插入图片描述

图 2.2

event4设备文件就是触摸屏对应的文件。当然也有可能文件名称不同。
使用命令查看event4文件:
hexdump /dev/input/event4
使用一根手指触摸屏幕在抬起,会有信息输出,如图 2.3所示:
【北京迅为】i.MX6ULL终结者Linux 电容触摸屏实验运行测试_第1张图片

图 2.3

说明触摸屏驱动正常工作。

3 将驱动添加到内核中

前面我们把触摸屏驱动编译成了模块文件,每次系统启动后都需要手动加载驱动模块,这样很不方便。当我们的设备驱动调试成功后,一般会把驱动直接编译到内核中,这样内核启动后就会自动加载驱动。在本节就来看一下如何将ft5426.c驱动文件添加到Linux内核中去。
1、将驱动文件放到合适目录下
测试成功的驱动文件首先要放到Linux内核的合适的目录下,这时我们可以参考类似设备的驱动文件存放目录,比如触摸屏驱动文件,我们可以找到在drivers/input/touchscreen 目录下都是关于触摸的驱动文件,因此我们把ft5426.c驱动文件也放到这个目录下。
2、修改对应的Makefile
把ft5426.c驱动文件放到drivers/input/touchscreen目录下后,需要修改此目录下的Makefile文件,添加如下内容:
obj-y += ft5426.o
添加完成所示:
【北京迅为】i.MX6ULL终结者Linux 电容触摸屏实验运行测试_第2张图片

图 3.1

修改完成后,重新编译Linux内核,然后使用新的zImage镜像启动开发板,驱动添加成功启动有如图 3.2信息打印:
在这里插入图片描述

图 3.2

可以使用下面的命令查看对应的event时间:
cat /proc/bus/input/devices
结果如下:
【北京迅为】i.MX6ULL终结者Linux 电容触摸屏实验运行测试_第3张图片

图 3.3

可以看到ft5426对应/dev/input/event1设备文件,然后使用下面的命令查看驱动是否工作正常:
hexdump /dev/input/event1
结果如图 3.4所示:
【北京迅为】i.MX6ULL终结者Linux 电容触摸屏实验运行测试_第4张图片

图 3.4

说明ft5426驱动工作正常。

【北京迅为】i.MX6ULL终结者Linux 电容触摸屏实验运行测试_第5张图片

你可能感兴趣的:(#,第四部分,Linux驱动开发,嵌入式,linux,开发平台)