Networking support --->
<*> CAN bus subsystem support --->
CAN Device Drivers --->
CAN SPI interfaces --->
<M> Microchip MCP251x SPI CAN controllers
Device Drivers --->
[*] SStar SoC platform drivers --->
<*> MS SPI driver
注意:配置好kernel后,需要cp .config 至对应的xxxxdefconfig,否则编译配置不会生效。
vi kernel/arch/arm/boot/dts/infinity2m-ssc011a-s01a-padmux-rgb565-rmii-doublenet.dtsi
vi kernel/arch/arm/boot/dts/infinity2m-doublenet.dtsi
重新编译,会发现找不到clocks = <&CLK_xtali_16m>;
我们可以在一下位置添加即可。
vi kernel/arch/arm/boot/dts/infinity2m-clks.dtsi
重新编译后,将kernel编译成功的mcp2515.ko拷贝至开发板。
insmod mcp2515.ko
成功安装驱动后,ifconfig就可以看到can0出来了。
出现问题,可以从以下几点排查。
1、SPI接线是否正确,mosi miso不要接反了。
2、kernel配置是否开启,注意同步kernel配置。
3、mcp2515.ko是否安装成功,可以在驱动源码的probe函数中添加打印进行调试。
4、can收发测试不正常,注意检查IO中断防止该IO复用了其他功能。
5、ifconfig can0 up 提示:ifconfig: SIOCSIFFLAGS: No such device
可以按照一下方式修改配置。
vi kernel/drivers/sstar/spi/infinity2m/mspi.c
修改SPI0,把master->max_speed_hz = 54000000改为master->max_speed_hz = 16000000。
13 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!