linux系统CAN驱动问题分析

在TIsam3354芯片上,使用3.13和4.19版内核编译的CAN驱动加载后,虽能识别CAN设备,但无法通过ifconfig操作。问题可能涉及驱动或PHY配置。通过iplink设置波特率无效,不同设备行为不一致。在内核版本影响下,chatgpt提供的命令未成功,而测试程序成功设置了波特率并启动CAN设备。解决方案是使用特定的系统程序接口配置波特率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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,设置波特率,就可以正常了,如下:

命令调试:

 

如上,如果不用测试程序,直接用命令配置也是可以的,命令如下:

 

[root@BULL /home/cdztcu]$ ifconfig can0 down
[root@BULL /home/cdztcu]$ ip link set can0 type can bitrate 125000
[root@BULL /home/cdztcu]$ ifconfig can0 up
[79046.935778] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready
[root@BULL /home/cdztcu]$ ifconfig
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          UP RUNNING NOARP  MTU:16  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10 
          RX bytes:8 (8.0 B)  TX bytes:0 (0.0 B)
          Interrupt:4 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:39776 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39776 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2943424 (2.8 MiB)  TX bytes:2943424 (2.8 MiB)

总结:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超级波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值