linux系统CAN驱动问题分析

在TI sam3354芯片上,使用3.13及4.19版内核,编译CAN驱动,加载启动后,查看有CAN设备,但无法直接使用ifconfig操作CAN设备,以下简单分析下问题。

加载驱动后,查看网络设备:

 可以看到有两个CAN设备,CAN0和CAN1,但ifconfig启动网络设备,提示:

 如上,无法直接ifconfig CAN0 启动,对照newbing和chatgpt的说明,配置波特率:

ip link set can0 type can bitrate 500000

还是有问题,Newbing分析可能是驱动有问题或phy有问题。

找另外一台设备,启动后,查看ifconfig命令,可以查看到CAN0设备,没有CAN1设备,当关闭CAN0设备后,再启动CAN0,是可以的,但卸载驱动后再加载,也会失败。过程如下所示:

 启动CAN1失败,关闭CAN0,再打开正常

 将CAN驱动移除,之后再启动,如下:

 一样也会失败,看调试信息,也该就是没有设置速率,但使用chatgpt提供的命令,会返回失败(应该和改版本的内核有关),最后,直接使用一个测试程序,启动CAN0和CAN1,设置波特率,就可以正常了,如下:

命令调试:

 

 总结:

linux系统中,CAN是一种网络设备,CAN接口需要先配置波特率才可以启动,配置波特率方式和内核有关,使用系统程序接口程序更简单。

猜你喜欢

转载自blog.csdn.net/weixin_45119096/article/details/131106327
今日推荐