成功解决/sys/bus/spi/devices/下没有spi设备的问题!
问题如下图:
Pasted image 20250506081909.png
博主本人由于在学正点原子的STM32MP157开发板的SPI驱动实验中发现:
Pasted image 20250506082329.png
就是没有出现spi_stm32 44004000.spi: driver initialized和/sys/bus/spi/devices/下没有 spi 相关的设备!
我们分析一下:
Pasted image 20250506083204.png
Pasted image 20250506083704.png
没有出现icm20608!
后面我在开发板查信息!
1、查看开发板当前运行的内核配置

zcat /proc/config.gz | grep SPI

看 到CONFIG_SPI_STM32=m;
但是我明明改了uImage和dtb文件!
ubuntu下的.configs文件下是CONFIG_SPI_STM32=y;怎么会不一样呢?
2、最终利用这个ls -l uImage命令看看uImage的时间!
Pasted image 20250506135453.png
发现时间都是以前的!
奇了怪了!
最终我发现了!
原来是我自己输错命令了!
原来的命令!

sudo cp arch/arm/boot/uImage /home/chensir/linux/tfboot -f

现在的命令!

sudo cp arch/arm/boot/uImage /home/chensir/linux/tftpboot/ -f

少了个/:
是自己的原因!
同样dtb也是没改!
Pasted image 20250506151452.png
同样输入

sudo cp arch/arm/boot/dts/stm32mp157d-atk.dtb /home/chensir/linux/tftpboot/ -f

Pasted image 20250506151655.png
可以看到时间都是正确的!
烧录后看看!
Pasted image 20250506151845.png
有了spi_stm32!
Pasted image 20250506152023.png
有了icm20608!
Pasted image 20250506152146.png
同样也有了!
看到这里,感觉大家是不是对于我这个问题很简单,一开始我没有找出问题所在,因为自己对与复制文件太自信了,所以太疏忽!


当然,为了解决问题,这两天在网上翻阅了很多没有SPI设备的相似问题,都大同小异!有的是自己设计的开发板,需要添加SPI节点,有的是成品开发板,有的分析SPI控制器源码,比如SPI_master。对于自己掌握SPI开发有了一定的见识!
基本上都是设备树和内核的问题!

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐