原子哥提供丰富的开发文档和示例供我们进行学习,这些资料都是开源免费下载的,非常详细:
本次测试SPI驱动,由于原子哥的文档教程使用的系统和出厂的系统是有些区别的,导致直接测试一些驱动会出现问题。
在编译前先使能出厂交叉编译工具,并查看版本号:
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
arm-poky-linux-gnueabi-gcc --version
然后修改下spi示例的脚本,修改内核目录为出厂系统的目录:
编译成功以后就会生成一个名为“icm20608.ko”的驱动模块文件。
输入命令使能硬件浮点编译 icm20608App.c 测试程序: arm-linux-gnueabihf-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard icm20608App.c -o icm20608App 编译成功以后就会生成 icm20608App,将 编 译 出 来 icm20608.ko 和 icm20608App 这两个文件通过nfs复制到 rootfs/lib/modules/4.1.15 目录中,重启开发板,进入到目录 lib/modules/4.1.15 中:
depmod //第一次加载驱动的时候需要运行此命令
modprobe icm20608.ko //加载驱动模块
当驱动模块加载成功以后使用 icm20608App 测试,输入如下命令:
./icm20608App /dev/icm20608 测试 APP 会不断的从 ICM20608 中读取数据,然后输出到终端上,如图所示:
后续研究使用SPI应用层API进行传感器数据的读取。