linux spi回环测试
spi回环测试是确认spi通讯是否正常的一个常用手段,硬件上将master的输入、输出口短接即可。
软件上主要确认以下几步:
1、bootloader阶段的spi使用的几个gpio口复用功能是否配置正确,本人就曾经在工作中遇到过spi控制器,spi dev都正常加载。但就是spi无法回环测试成功,原因就是IO口复用给别的功能了
2、确认spi控制器是否正常加载,如果spi控制器都没能正常加载。那么spi相关的dev是无法产生的
3、设备树上配置spi相关的设备信息,确保相应的spi能够正常加载。
4、进行回环测试,本文主要就spi回环测试的过程进行跟踪。在工作中我使用了二种方式的回环测试:
一、驱动层面进行回环
二、比较常见的使用应用程序进行回环测试
驱动层面进行回环
在kernel/driver/spi目录下一般都会带有名为spi-loopback-test.c的驱动源文件。我们只需要将此测试驱动正常跑起来,然后通过打印日志看其成功与否

正常情况下,结束返回的是0就代表回环测试成功了。设备树的配置信息如下:
&spi0 {status = "okay";spidev@0 {compatible = "linux,spi-loopback-test";#address-cells = <1>;#size-cells = <0>;reg = <0>; /* CS0 */spi-max-frequency = <19200000>;};
};
在编译完成烧录后在/sys/bus/spi/devices目录下看是否存在与配置数目相同的
device以确保设备正常生成。
使用应用程序进行回环
这种方式最常见,网上有很多应用程序源代码可以直接拿来使用。
https://blog.csdn.net/qq_52836452/article/details/129874695这个链接里面有个完整的c应用程序代码,可以直接拿来编译使用。
