mcp2515 芯片驱动总线错误BUG的解决方法
2015-03-18 11:52
232 查看
http://blog.renren.com/share/221002615/11483613167 来自张涛的日志
现象:CAN总线在线上设备热插拔或长时间运行后出现总线异常情况,有时不能发送和接收,有时只能发送不能接收。
分析:
经过观察,发现出现只能发送不能接收的情况是由于没有调用中断服务造成的,而在整个驱动中并没有其它地方会异常释放中断,所以断定为mcp2515本身没有发出中断;查看芯片手册,发现在CANINTF中断标志位寄存器中有两个错误中断标志位,其它五个为正常情况下的中断标志位,驱动中并没有对错误中断进行处理,造成的结果是总线中发生错误后,错误中断没有处理,CANINTF中的错误标志位始终没有被清除,造成其它中断被堵塞,因此无法接收数据;而长时间动行后,错误中断计数器达到一定值后,总线就被关闭,所以会出现收发都不正常的情况。
解决办法:最简单的办法就是处理错误中断,在出现错误后重置mcp2515芯片。
结果:使用以上办法后,热插拔总线设备并不会出现总线异常情况。
现象:CAN总线在线上设备热插拔或长时间运行后出现总线异常情况,有时不能发送和接收,有时只能发送不能接收。
分析:
经过观察,发现出现只能发送不能接收的情况是由于没有调用中断服务造成的,而在整个驱动中并没有其它地方会异常释放中断,所以断定为mcp2515本身没有发出中断;查看芯片手册,发现在CANINTF中断标志位寄存器中有两个错误中断标志位,其它五个为正常情况下的中断标志位,驱动中并没有对错误中断进行处理,造成的结果是总线中发生错误后,错误中断没有处理,CANINTF中的错误标志位始终没有被清除,造成其它中断被堵塞,因此无法接收数据;而长时间动行后,错误中断计数器达到一定值后,总线就被关闭,所以会出现收发都不正常的情况。
解决办法:最简单的办法就是处理错误中断,在出现错误后重置mcp2515芯片。
结果:使用以上办法后,热插拔总线设备并不会出现总线异常情况。
相关文章推荐
- mcp2515 芯片驱动总线错误BUG的解决方法
- mcp2515 芯片驱动总线错误BUG的解决方法(主要无法进入中断bug)
- 64位windows8系统安装驱动时出现签名错误的解决方法
- (转)jquery formValidator插件ajax验证,在内容不做修改的前提下提示错误的bug解决方法
- IE6下position:absolute定位错误的bug和解决方法
- jquery formValidator插件ajax验证,在内容不做修改的前提下提示错误的bug解决方法
- Grails HTTP response codes mapping(默认错误页面)bug的解决方法
- [转]Windows CE 5.0下16C2550串口芯片驱动硬件FIFO控制Bug分析以及修正方法
- Win8/8.1下驱动安装“数据无效”错误的有效解决方法
- win7安装声卡驱动报错显示错误代码0EX0000100的解决方法
- jquery formValidator插件ajax验证,在内容不做修改的前提下提示错误的bug解决方法
- 板上CPU0错误跟踪方法 (以RT3070驱动错误-BUG为例)
- .net 2.0的URL重写导致搜索引擎302重定向错误的Bug及其解决方法-完美版-小事一箩筐
- Win8/8.1下驱动安装“数据无效”错误的有效解决方法
- linux 驱动开发 Invalid module format 和 File exists 错误解决方法
- Win7 USB接口无法使用/驱动错误/该设备无法启动。(代码10) 故障解决方法
- 8378芯片的声卡装驱动时蓝屏的解决方法
- XPE:设备驱动错误an error occurred when trying to add a registry resource解决方法
- 驱动开发的一些错误解决方法
- 移植高通prima wlan驱动遇到这些错误log的解决方法