打印

linux下can驱动的问题

[复制链接]
222|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用飞凌提供的内核以及例程测试。

接收应用程序:飞凌提供的基于socketCAN的读写代码。

发送端:周立功usbcan



问题的现象:和之前一个朋友在飞凌的bbs提出的现象一样。开始的时候,可以接收到数据,过了一会儿,就挂掉了,收不到数据。量mcp芯片的中断请求引脚为低电平。

只有通过ifconfig can0 down之后,再ifconfig can0 up才可以继续收到数据。但过一会还会挂掉。



抛砖引玉:兄弟我先跟踪can的驱动,mcp251x.c,在中断服务程序里添加打印信息,每触发一次中断就将接收到的数据rxbuf打印出来。发现,每次中断服务打印的数据是正常的。引起问题的原因是由于mcp拉低了中断信号,但linux没有响应中断。



再读驱动代码,发现申请中断的方式是下降沿触发,所以在想,是不是由于产生中断的那一时刻跟什么其他的中断冲突了,所以linux没有检测到下降沿。想改为电平方式触发。但总是出问题。



ps: 在28和36内核测试中,现象一致。



再ps:

测试了一天,mcp251x的驱动确实会丢失中断,但还没找着丢失的原因.......


LINUX, 测试, 朋友, 应用程序

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

437

主题

437

帖子

0

粉丝