前几天用嵌入式linux操作spi设备,由于原本的内核中没有spi驱动,所以我编译了一下spi的驱动,编译出带spi的内核后,我又编译了linux源码中的测试程序spidev_test.c。可是执行的时候却出现了【can’t send spi message: Invalid argument】网上有人说是因为spi_ioc_transfer 创建的时候没有将内存初始化导致的。
我修改了如下代码,错误还是存在。
//spidev_test.c
struct spi_ioc_transfer tr;
memset(&tr,0,sizeof(struct spi_ioc_transfer));
Linux SPI驱动开发:解决Invalid argument错误

在嵌入式Linux环境下开发SPI设备时,遇到`can't send spi message: Invalid argument`的问题。原因是内核编译的spi驱动与开发环境中的头文件不一致,导致 spi_ioc_transfer 结构体大小不同。通过确认spidev.c和spidev.h中结构体定义的一致性,并修正#include路径,成功解决了该问题。
最低0.47元/天 解锁文章
3003

被折叠的 条评论
为什么被折叠?



