一. 简介
前面文章实现了 SPI设备的读写功能,也对ICM20608设备中(即SPI设备)寄存器里的数据进行了读取。文章如下:
Linux下SPI设备驱动实验:读取ICM20608设备的数据-CSDN博客
本文对驱动功能进行测试,即通过运行应用程序,调用SPI驱动代码,从而验证读取ICM20608设备数据的功能是否正常。
二. Linux下SPI设备驱动实验:测试读取ICM20608设备中数据是否正常
1. 拷贝驱动程序与测试程序到开发板系统下
注意:这里开发板是通过nfs服务加载的方式,从ubuntu系统加载文件系统的。所以,这里只需要将驱动与测试程序拷贝到 nfs服务所设置的目录(即ubuntu系统下的某个目录下)即可。
将前面编译生成的驱动程序与测试程序到开发板系统下:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/18_spi$ sudo cp spi_icm20608.ko icm20608_app /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ -f
2. 开发板上电
开发板上电后进入文件系统 /lib/modules/4.1.15/目录下,加载驱动模块:
注意:如果选择使用 "modprobe" 命令加载驱动模块,则在驱动程序第一次加载时首先运行 "depmod" 命令!
这里spi_icm20608.ko模块前面已经加载过,所以,不需要运行 "depmod"命令。
加载驱动模块:
可以看出,驱动模块加载正常,probe函数运行了。同时也可以读出ICM20608设备的ID号。
运行应用程序
运行应用程序 icm20608_app:
可以看出,ICM20608设备中的数据已经获取到。所获取的数据包括:g为陀螺仪的x,y,z三个方向的角速度值,a为加速度计的x,y,z三个方向的值。
这里开发板是水平放置的,所以陀螺仪的值都为接近 0的值,而加速度计只是在 z方向上是1,说明这里获取到的数据是正常的。
卸载驱动模块
运行 "rmmod spi_icm20608.ko"命令卸载驱动模块:
可以看出,驱动模块卸载后运行了 remove函数,也没有错误的Log信息。说明驱动模块正常卸载了。