EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录
- K# |9 L% K. O! u7 c1 编译驱动程序& K. I3 V* _8 Z3 F1 f# _
2 编译应用测试程序
: v' S5 R/ ]9 x% u3 运行测试
/ H/ |& K" A) S% D" Q% q! b. X1 编译驱动程序$ l! u" [; ~; T- E. X+ Z% T7 ]. p
和前面章节中驱动测试程序一样需要一个Makefile文件,只是将obj-m的值改为led_driver.o,Makefile文件内容如下:) t3 h) s, f6 l$ L5 L, ~
; e. ^, l7 g# P
首先我们在终端输入两个命令(设置两个环境变量):
/ b5 F4 y4 y! L2 I3 J$ J( G![]()
O0 p# u/ Y+ D3 y( I( W- H) T e然后执行“make”命令编译模块,编译完成生成led_driver.ko模块文件。 2 编译应用测试程序应用测试程序直接使用上一章44.3.2编译好的led_test应用程序即可。 3 运行测试启动开发板,将编译好的led_driver.ko模块文件和led_test应用程序拷贝到/lib/modules/4.1.15目录下(检查开发板根文件系统中有没有“/lib/modules/4.1.15”这个目录,如果没有的话需要自行创建一下。开发板中使用的是光盘资料里面提供的busybox文件系统,光盘资料的“i.MX6UL终结者光盘资料\08_开发板系统镜像\03_文件系统镜像\01_Busybox文件系统”目录下)。输入下面命令加载模块:
) U5 w; m1 F) Y/ z" e2 vdepmod
: s8 f8 N! w* r8 \- c- Y% tmodprobe led_driver
0 h S- ^* a# Z4 R: L! {驱动加载成功后,在/sys/bus/platform/drivers/目录下查看驱动是否存在,我们在 led_driver.c 中设置 led_driver (platform_driver 类型)的 name 字段为“imx6ul-led”,因此会在/sys/bus/platform/drivers/目录下存在名为“imx6ul-led”这个文件,结果如图 3.1所示: ![]() 3 r% W' u7 Z+ }# |4 M: ]$ l
同理,在/sys/bus/platform/devices/目录下也存在 led 的设备文件,也就是设备树中 gpioled 这个节点,如图 3.2所示: ![]() # k1 c6 X* T2 j
当设备和驱动匹配成功后,会有如图 3.3信息输入: ![]()
8 Z5 a- M0 |6 e4 f+ B6 C设备和驱动匹配成功后,使用led_test应用程序来测试一下,命令如下: ![]()
7 x7 r8 V+ ]4 u# }1 S通过这两条命令来验证一下LED的platform平台下的设备和驱动是否正确。
9 V1 n+ X( I+ V3 i% B/ I6 ^: i' n卸载模块命令:
# p2 {* E3 j# S% ]5 ?& O# Nrmmod led_driver //卸载驱动模块 ![]()
6 P# g5 W3 v- V7 C4 B |