一. 简介
上一篇文章学习编写了 led驱动框架代码,并正常编译通过。文章地址如下:
pinctrl子系统与gpio子系统实验-Led驱动框架代码实现-CSDN博客
本文对上一篇文章编写的驱动框架代码进行测试。测试方法与之前的驱动模块的测试方法一样。
二. 测试Led驱动框架代码
1. 拷贝驱动程序
注意:开发板的系统是通过 nfs服务挂载方式访问 ubuntu系统的。即 系统文件存放在 ubuntu系统所设置的 nfs目录下!而开发板通过 nfs服务加载系统文件。
将 6_gpioled工程下编译生成的驱动文件 gpioled.ko,拷贝到 开发板系统 /lib/modules/4.1.15/目录下,这里系统存放在 /home/wangtian/linux/nfs_File/ 目录下,命名是 rootfs:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/6_gpioled$ sudo cp gpioled.ko /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ -f
[sudo] wangtian 的密码:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/6_gpioled$
2. 开发板上电测试
开发板上电后,进入系统 /lib/modules/4.1.15/目录下,确认 dtsled.ko文件是否已经存在:
可以看出, gpioled.ko驱动文件已经存在。
加载驱动模块
(1) 加载之前,首先运行 "depmod" 命令,进入开发板系统 /lib/module/4.1.15/目录下:
/lib/modules/4.1.15 # depmod
注意:如果选择使用 "modprobe" 命令加载驱动模块,则在驱动程序第一次加载时首先运行 "depmod" 命令!
(2) 其次,运行 "modprobe dtsled.ko" 命令加载驱动模块:
(3) 确认驱动模块是否加载成功
查看 驱动模块是否加载成功:运行 "lsmod" 命令或运行 "cat /proc/devices" 命令进行查看。
运行 "lsmod" 命令查看:
或 输入 "cat /proc/devices" 命令查看:
(4) 确认是否自动创建设备节点。
进入 "/dev/" 目录进行查看:
至此,驱动框架已经完成。
下面开始完善 Led驱动代码,主要实现读取设备树文件中的寄存器地址,进行初始化,最后,实现Led灯的打开与关闭。
卸载驱动模块
测试完成后,应该卸载驱动模块,操作如下:
/lib/modules/4.1.15 # rmmod gpioled.ko
执行 "lsmod" 命令。可以查看是否成功卸载驱动模块:
/lib/modules/4.1.15 # lsmod
Module Size Used by Tainted: G
/lib/modules/4.1.15 #
可以看出,已经成功卸载驱动模块。