NUC970 Linux CAN 驱动问题及解决办法之一
开发平台介绍:
NUC970 + 内置CAN控制器(双通道CAN1\CAN2) + 官方Linux_Kernel(少量修改)
名词:
版本A,问题及修改涉及两个版本,其中最旧版本称为版本A
版本B,问题及修改涉及两个版本,其中较新版本称为版本B
硬件设备M,项目系统内一个其它硬件设备(Meter)
终端,使用NUC970的硬件
异常表现:
1、版本A,2018.8发现当应用程序调用can_write操作频率较高时(10ms内),容易发生写失败异常(频率越高越容易发生),经过测试只能通过,DOWN、UP 重启CAN的操作才能恢复正常。
2、版本B,2019.4应用于项目时,发现因为终端CAN数据问题会导致系统内一个"硬件设备M"重启,经过多番排查,最后发现终端会在接收CAN数据量较大时,发送的CAN数据有可能变成某接收ID(有一定随机性)的远程帧,当此远程帧ID与硬件设备M接收的ID相同时,会导致其重启。
为什么异常:
1、发送频率较高时CAN总线死机问题,经技术支持2018年确认是驱动层发送缓存的设计问题,暂时不能解决,需等新版本驱动程序。
2、发送异常远程帧的问题,经过排查认为是驱动程序收发都使用CAN内存接口IF1,因为处理的不好可能发生数据交叉导致发送了假数据。
解决问题:
1、2019.4 官方提供了新驱动程序,更换后测试可以高频发送数据CAN总线不假死。
2、两个方法解决问题2:a、发送数据使用IF1,接收数据使得IF2,从硬件上独立收发,不再冲突,经测试可以解决此问题;b、使用新驱动(共用IF1)也可以解决问题;最后决定两个办法都使用,新驱动+独立使用IF1\IF2。
解决问题用时2天,测试查找定位问题用时15天。特此记录,以备后需。
NUC970 Linux CAN 驱动问题及解决办法之一的更多相关文章
- NUC970 Linux CAN 驱动问题及解决办法之二
开发平台介绍: NUC970 + 内置CAN控制器(双通道CAN1\CAN2) + 官方Linux_Kernel(少量修改) 名词: 终端,使用NUC970的硬件 异常表现: 1.当CAN收发器(VP ...
- linux中文显示乱码的解决办法
linux中文显示乱码的解决办法 linux中文显示乱码是一件让人很头疼的事情. linux中文显示乱码的解决办法:[root@kk]#vi /etc/sysconfig/i18n将文件中的内容修改为 ...
- linux中tomcat内存溢出解决办法
用命令 tail -f /root/apache-tomcat-6.0.20/logs/catalina.out(需要找到tomcat路径) 查看日志,查看是否有错误 linux中tomcat内存溢出 ...
- Linux忘记roo密码的解决办法
Linux忘记root密码有三种解决办法: 下面详细介绍第一种: 重启系统后出现GRUB界面在引导装载程序菜单上,用上下方向键选择你忘记密码的那个系统键入“e” 来进入编辑模式. 接下来你可以看到 ...
- WPS for Linux 字体配置(字体缺失解决办法)
WPS for Linux 字体配置(字体缺失解决办法) 1. 背景 有些linux装完wps后提示"部分字体无法显示"或"some formula symbols mi ...
- GANSS 87C键盘在Linux无法正常使用的解决办法
前几天在狗东入手可以一把GANSS的87C键盘,满心欢喜拆开来用却发现在开发电脑(Deepin和ubuntu)上F1-F12都不能正常使用,这对一个搞web开发的人来说,无疑是要了我的老命,无奈找各种 ...
- Linux安装vim失败的解决办法
最近想了解一下linux编程,于是linux系统下输入vim,发现竟然没有安装.好吧,那就安装吧.命令: sudo apt-get install vim 百度百科:apt-get是一条linux命令 ...
- ORA-19502: write error on file "", blockno (blocksize=)/linux下磁盘空间满了解决办法--Virtualbox
今天,在测试环境启动数据库时,报错: SQL> startup; ORACLE instance started. Total System Global Area 285212672 byt ...
- linux网卡掉包或挂掉解决办法
最近自己公司网站老出现掉包问题之前以为是网络问题或机房问题,经过N久的排查发现是linux网卡掉包了,下面我来分享我的解决办法. 之前公司的系统由于网卡问题,经常出现掉包(掉包排除攻击的 因素)或 ...
随机推荐
- git 提交大小超过100M
#MsnDialog.ad, #MyMoveAd, #QQ_Full, #ad-SNSSplashAd, #ad6cn, #adBody07, #adLeftFloat, #adRightFloat, ...
- 删除Excel表格中一堆英文中的汉字
昨天需要处理一个Excel文件,删除一堆英文里的汉字,开始搜了下方法,没找到,然后手动一个多小时,弄了一半吧也就,结果电脑卡了,忘了保存,就白做了...不知道为啥这次没有自动保存,所以,重要的事说三遍 ...
- OpenGL学习笔记 之三 (简单示例 太阳月亮地球)
#include<glut.h> // 太阳.地球和月亮 // 假设每个月都是30天 // 一年12个月,共是360天 ;//day的变化:从0到359 void myDisplay(vo ...
- php utf8 gbk 数组 互转
这些都是工作中常用的 前几年写过 但没有记录的习惯,后边有要用到麻烦,现在记录下 以后直接拿来用 数组里的 utf8_to_gbk 方法 是上一篇写的 直接调用 public static funct ...
- JWT(JSON Web Tokens)操作帮助类
载荷实体: /// <summary> /// JWT载荷实体 /// </summary> public sealed class JWTPlayloadInfo { /// ...
- Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...
- HTTP网页请求状态码
我们平时在打开一些网页的时候,会遇到打不开的情况,页面提示404错误,这个404就是http状态码.如果我们可以正常打开网页,这时也会有http状态码的,这个状态码就是200,只不过这时我们是无法通过 ...
- [转帖]新手必读,16个概念入门 Kubernetes
新手必读,16个概念入门 Kubernetes https://www.kubernetes.org.cn/5906.html 2019-09-29 22:13 中文社区 分类:Kubernetes教 ...
- 初始STM32固件库
1-汇编编写的启动文件 startup_stm32f10x_hd.s:设置堆栈指针.设置PC指针.初始化中断向量表.配置系统时钟.对用C库函数_main,最终去到C的世界 2-时钟配置文件 syste ...
- 22-MySQL DBA笔记-其他产品的选择
第22章 其他产品的选择 本章将为读者介绍其他的数据库产品,主要是NoSQL产品的选择.读者在熟悉MySQL之外,也应该了解其他的数据库产品.本章的目的是给读者一个引导,如何选择一些NoSQL产品,而 ...