找回密码
 注册
关于网站域名变更的通知
查看: 302|回复: 1
打印 上一主题 下一主题

迅为IMX6ULL开发板Linux下电容触摸屏实验-运行测试

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-12-4 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
54.4 运行测试
- Q  Z0 G$ Q- z54.4.1  编译驱动程序
+ s& v. X! F5 M( [7 |" _8 y# r创建 Makefile 文件,内容和前面实验基本一样,需要将 obj-m 的值修改为 ft5426.o,具体内容如下:% p" W+ f1 m0 R& B( p2 s
KERNELDIR := /home/topeet/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga
- J4 ^" D& y( N- I; |CURRENT_PATH := $(shell pwd)
6 G- _8 o* K/ M6 m3 ]' mobj-m := ft5426.o- m  I% G. g  s; A  w9 D
build: kernel_modules
1 j0 H  i* F7 L) D" J# e# |8 |kernel_modules:) o) n7 ?! C% C% p5 z# m! A
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
+ ^0 H" i/ M, A4 W2 Iclean:' c. f8 s4 H7 b$ t3 P) Y
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean5 C& _" x9 z  W1 l* z, m6 ]; v
首先我们在终端输入两个命令(设置两个环境变量):
. D$ b5 L9 m  _2 S3 s0 e2 R& hexport ARCH=ARM
# M8 f4 S: H* j$ J) r8 t5 p/ w7 \export CROSS_COMPILE=arm-linux-gnueabihf-
" p/ T7 s( f: {0 Q7 w5 h然后执行“make”命令进行编译,编译完成生产 ft5426.ko 驱动模块文件。! r9 t- m" N. \2 P/ D
54.4.2  运行测试% T/ R" _7 @! K, g2 J
编译设备树文件,使用新的设备树文件启动开发板,然后拷贝编译生产的 ft5426.ko 驱动模块文件到开发板根文件系统 lib/modules/4.1.15 目录下(检查开发板根文件系统中有没有“/lib/modules/4.1.15”这个目录,如果没有的话需要自行创建一下。开发板中使用的是光盘资料里面提供的 busybox 文件系统,光盘资料的“i.MX6UL 终结者光盘资料\08_开发板系统镜像\03_文件系统镜像\01_Busybox 文件系统”目录下)。使- m3 r3 H2 m7 f$ x+ e2 t
用下列命令加载模块:! a9 U) X. b4 g! n; [4 \
depmod
1 g, A* \5 V9 @" w3 u) F6 n/ n/ Jmodprobe ft5426
' P( b9 i( v. o2 g  y# b当驱动模块加载成功后,有如图 54.4.2.1 信息:: u( u* h+ l2 N. R" E# g

; ]4 a# W* T5 A% z& O5 r7 w驱动加载成功后就会生成/dev/input/eventn 设备文件,比如本触摸屏如图 54.4.2.2 所示:+ A; y$ ~3 k1 w5 m
. {- b- j# Z. n
event4 设备文件就是触摸屏对应的文件。当然也有可能文件名称不同。" K, G: Z* O) ~$ L) c
使用命令查看 event4 文件:
% o, T$ a9 J8 x- Y2 `hexdump /dev/input/event4) m' `% C$ g$ w1 ?8 U  w3 ~# B; k
使用一根手指触摸屏幕在抬起,会有信息输出,如图 54.4.2.3 所示:
) k! j- g& }' |& j2 V) f8 F$ H- b) v# J# D4 s1 V. }; ^% P6 q
54.4.3  将驱动添加到内核中
! r4 I" H  s4 k: ^  T& G前面我们把触摸屏驱动编译成了模块文件,每次系统启动后都需要手动加载驱动模块,这样很不方便。当我们的设备驱动调试成功后,一般会把驱动直接编译到内核中,这样内核启动后就会自动加载驱动。在本节就来看一下如何将 ft5426.c 驱动文件添加到 Linux 内核中去。& p) j# p0 Y- x9 E- {3 B
1、 、 将驱动文件放到合适目录下
, `# _0 Q$ }( K- q. {% J( t测试成功的驱动文件首先要放到 Linux 内核的合适的目录下,这时我们可以参考类似设备的驱动文件存放目录,比如触摸屏驱动文件,我们可以找到在 drivers/input/touchscreen 目录下都是关于触摸的驱动文件,因此我们把 ft5426.c 驱动文件也放到这个目录下。+ Y8 H' v# K4 ?
2、 、的 修改对应的 Makefile
1 Z! p  `4 }% h1 f2 [把 ft5426.c 驱动文件放到 drivers/input/touchscreen 目录下后,需要修改此目录下的 Makefile 文件,添加如下内容:
, o0 O, {& k9 q* I# }( Bobj-y += ft5426.o
( U% E" {/ y- s; o. U$ D: j添加完成所示:8 d4 b5 B* Z. _
8 z% _( c( p9 Z0 x
修改完成后,重新编译 Linux 内核,然后使用新的 zImage 镜像启动开发板,驱动添加成功启动有如图54.4.3.2 信息打印:
1 N6 a: R+ l) t1 b/ b( y0 s: w
4 m- H/ i8 k" Z( s可以使用下面的命令查看对应的 event 时间:
* H( D  {( A$ v+ b8 w/ [7 ucat /proc/bus/input/devices9 C+ H5 v0 ~! G; T1 J; k
结果如下:
* u1 {4 Z2 w- E& O$ o0 [
9 u1 A) [' C1 R4 I2 L可以看到 ft5426 对应/dev/input/event1 设备文件,然后使用下面的命令查看驱动是否工作正常:7 {1 p* }! B$ Y7 U/ r: p, m: _% f% Q  R
hexdump /dev/input/event1  {: Z+ x! U/ x; i" @' m0 K5 s
结果如图 54.4.3.4 所示:8 o- C7 N) r$ ?1 O# J) V
/ x0 J7 w' e0 b" D, {; P; k3 z
说明 ft5426 驱动工作正常。
+ B, b: z( B- x$ n+ K: |4 ^; H6 ^7 c, e" X" `/ Q" i9 j+ T

8 o2 Q8 u+ z$ m  a5 K

该用户从未签到

2#
发表于 2020-12-7 13:21 | 只看该作者
                                       
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 19:37 , Processed in 0.171875 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表