Firefly开源社区

打印 上一主题 下一主题

[Linux] can通信报错

29

积分

0

威望

0

贡献

技术小白

积分
29
QQ

can通信报错

发表于 2022-11-10 11:57:56      浏览:5494 | 回复:12        打印     [复制链接] 楼主
问题描述及复现步骤:
can1测试通信时,十几秒后就报“write: No buffer space available”,网上查找该报错,将qlen由10改成1000,但还是报错。源码没改,只把can1使能,帮忙看看可能是什么原因引起的,给下修改建议感谢!

报错截图


can1信息



发送数据脚本




个人修改设备树


forum.zip

79.4 KB, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

29

积分

0

威望

0

贡献

技术小白

积分
29
QQ
发表于 2022-11-14 14:25:38      沙发
dengkx 发表于 2022-11-11 11:17
正常现象,底层驱动没有把数据发出去就会阻塞上层队列,而上层队列就如你所说的改成1000,代表上层缓存1000 ...

连上can分析仪,在上面发1000000比数据,间隔时间10ms,都有错误帧。间隔时间调到1ms,can总线就挂掉了


回复

使用道具 举报

29

积分

0

威望

0

贡献

技术小白

积分
29
QQ
发表于 2022-11-15 14:35:06      板凳
dengkx 发表于 2022-11-14 16:31
如果需要同时发送和接收数据,设备树更改在can下添加:
compatible = "rockchip,can-2.0";

我试过,把rk3568-firefly-port.dtsi 里的compatible改成compatible = "rockchip,can-2.0";。ifconfig -a就只有can0,没有can1和can2。还有其他地方需要修改的吗?


回复

使用道具 举报

29

积分

0

威望

0

贡献

技术小白

积分
29
QQ
发表于 2022-11-15 17:29:57      地板
dengkx 发表于 2022-11-15 14:58
你使用到的can才要更改,软件的can0是看谁先注册进来谁就是can0,后面的就是can1、can2....,而现在更改 ...

明白了,那我要在这里把can1和can0都使能一遍,对吗?


个人修改设备树



回复

使用道具 举报

29

积分

0

威望

0

贡献

技术小白

积分
29
QQ
发表于 2022-11-18 08:58:03      5#
dengkx 发表于 2022-11-15 17:50
你使用的can才需要使能,而且还要看引脚有没有被其他设备复用。

可以了,源码升级后canfd驱动文件里才出现can-2.0。现在没有错误帧可以正常通信了,感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表