[活动] [1024极海技术日] 软件查Bug的结果未必是修改软件!

[复制链接]
121|7
dffzh 发表于 2025-10-31 16:15 | 显示全部楼层 |阅读模式
前段时间有个模块在客户现场出现偶发性问题,后面研发搭建环境进行了复现和分析测试,整个过程可谓是跌宕起伏,让我刻骨铭心......

下面就是整个过程,与大家分享一下,即使未从事相关行业的读者也可以阅读,咱们只取方法,希望可以让大家在解决Bug的道路上尽量少走弯路,一步到位!
使用PLC主机扫描模块时,会偶现扫描失败,主机软件会报错;
偶发性Bug,需要反复测试才有可能会出现一次。
使用主机软件+主机+多个模块进行测试,并使用wireshark工具进行抓包分析;
复现后,进行抓包分析,发现异常的模块会上报一个EtherCAT协议栈的中止码Abort code,为0x06020000。
3546569046efbb8479.png
7350869046f015ce68.png
经过往下层的逐层分析后,判断是从站模块出问题了。
继续分析:
通过数据分析后,判断是SPI通信的读写数据出问题了。
6727969046f4adfca0.png
将SPI读写接口由寄存器操作改为HAL库函数操作,也会出现异常;
难道是SPI速率太快了?
将SPI速率由当前的10MHz改成5MHz进行测试:
从下午1:30测试到5:00,未复现异常。
然后就是上示波器进行波形测试和分析:

使用示波器测试了10MHz速率和5MHz速率时,SPI的CLK时钟波形图如下:
3485269046f62eaff4.png
6005069046f66d1d7f.png
ESC芯片和MCU的SPI通信的通信速率10MHz偏高,造成偶发性的数据接收错误;将通信速率改成5MHz后复测,未出现异常。

但是之前设计时我们是需要支持10MHz的,但为什么现在出现问题呢?
后面硬件工程师参与分析,发现滤波电容是在升级到版本的时候修改的,但BOM漏修改了!!!!
导致SPI波形出异常了!
至此,偶现Bug解决,一波三折,也得到了一些新的想法:
1、嵌入式软件是离不开硬件的软件,所以以后咱还是得多学硬件知识,才能在解决Bug的漫长道路上少走弯路,提高效率;
2、产品的任何问题,即使是偶发性或者出现概率低的Bug,咱也不能忽视,曾经有位前辈说过:随着产品生产量的增多,出现一次的Bug,以后肯定还会出现,我们必须严肃对待所有Bug!

3、对于偶发性Bug,起初无法定位为软件问题还是硬件问题或其他问题的时候,可以先尽量从软件层面去做减法,排除能想到的所有可能性,逐层深入,也许就会柳暗花明!


@Gfan 很荣幸可以参加活动!
4289769046ef993283.png

评论

这个偶发性Bug谁能想到是模块BOM出错了,居然被我找到原因了。  发表于 2025-10-31 16:18
Gfan 发表于 2025-10-31 16:17 | 显示全部楼层
妥妥的好文分享!!修bug真是路漫漫呀~~太真实了
 楼主| dffzh 发表于 2025-10-31 16:18 | 显示全部楼层
Gfan 发表于 2025-10-31 16:17
妥妥的好文分享!!修bug真是路漫漫呀~~太真实了

其实整个过程没写完呢,还有中间不少,没写。
Gfan 发表于 2025-10-31 16:27 | 显示全部楼层
dffzh 发表于 2025-10-31 16:18
其实整个过程没写完呢,还有中间不少,没写。

我就说,这么硬核的分享,过程肯定不简单
 楼主| dffzh 发表于 2025-10-31 16:36 | 显示全部楼层
Gfan 发表于 2025-10-31 16:27
我就说,这么硬核的分享,过程肯定不简单

我下午才通过一位坛友的文章发现你们这个活动,差点错过了分享。
Gfan 发表于 2025-10-31 16:41 | 显示全部楼层
dffzh 发表于 2025-10-31 16:36
我下午才通过一位坛友的文章发现你们这个活动,差点错过了分享。

哈哈哈多来极海论坛~论坛置顶还是不太醒目,看我后面多多到处宣传
 楼主| dffzh 发表于 2025-10-31 16:45 | 显示全部楼层
Gfan 发表于 2025-10-31 16:41
哈哈哈多来极海论坛~论坛置顶还是不太醒目,看我后面多多到处宣传

好的呢,以后肯定多去极海论坛逛逛。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

195

主题

1680

帖子

23

粉丝
快速回复 在线客服 返回列表 返回顶部