工况和昆明云内配合使用时,工况设备会重启
相关文章
https://www.cnblogs.com/chino-ll/p/18026637
实验目的
工况升级时,复现死机问题
试验环境
工况软件版本是199,设备号464761859043359
试验结果
复现死机问题
死机问题排查
1、拔掉can线,远程升级固件,不会死机
说明,是can接收数据、处理数据的问题
2、can接收处理数据代码数量多,且涉及1939,对这一块内容陌生,一点点看代码,分析代码,比较耗时间。这一块的代码,逻辑是没问题的,只是哪里没处理好,导致死机了。通过二分法屏蔽代码,排除问题
3、屏蔽掉can消息队列,没有出现重启现象
4、一步步屏蔽代码,一点点排查问题
5、屏蔽如下代码后,没有出现死机
说明,找到问题根源了;细看代码,有操作数组,若数组溢出,破坏堆、栈内容,容易造成死机
6、正向验证,打印数组下标
发现数组溢出
7、修改代码,反复试验,未发生死机,问题解决
打印数据如下
点击查看代码
[10:31:14.138]收←◆[(OneMessage.Mxe.Data[0]-1)*7u] value is 7
[(OneMessage.Mxe.Data[0]-1)*7u+1] value is 8
[(OneMessage.Mxe.Data[0]-1)*7u+2] value is 9
[(OneMessage.Mxe.Data[0]-1)*7u+3] value is 10
[(OneMessage.Mxe.Data[0]-1)*7u+4] value is 11
[(OneMessage.Mxe.Data[0]-1)*7u+5] value is 12
[(OneMessage.Mxe.Data[0]-1)*7u+6] value is 13
[10:31:14.196]收←◆[(OneMessage.Mxe.Data[0]-1)*7u] value is 28
[(OneMessage.Mxe.Data[0]-1)*7u+1] value is 29
[(OneMessage.Mxe.Data[0]-1)*7u+2] value is 30
[(OneMessage.Mxe.Data[0]-1)*7u+3] value is 31
[(OneMessage.Mxe.Data[0]-1)*7u+4] value is 32
[10:34:55.160]收←◆[(OneMessage.Mxe.Data[0]-1)*7u] value is 14
[(OneMessage.Mxe.Data[0]-1)*7u+1] value is 15
[(OneMessage.Mxe.Data[0]-1)*7u+2] value is 16
[(OneMessage.Mxe.Data[0]-1)*7u+3] value is 17
[(OneMessage.Mxe.Data[0]-1)*7u+4] value is 18
[(OneMessage.Mxe.Data[0]-1)*7u+5] value is 19
[(OneMessage.Mxe.Data[0]-1)*7u+6] value is 20
[(OneMessage.Mxe.Data[0]-1)*7u] value is 21
[(OneMessage.Mxe.Data[0]-1)*7u+1] value is 22
[(OneMessage.Mxe.Data[0]-1)*7u+2] value is 23
[(OneMessage.Mxe.Data[0]-1)*7u+3] value is 24
[(OneMessage.Mxe.Data[0]-1)*7u+4] value is 25
[(OneMessage.Mxe.Data[0]-1)*7u+5] value is 26
[(OneMessage.Mxe.Data[0]-1)*7u+6] value is 27
如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。