[其他产品]

固件测试需要怎么进行,防止BUG

[复制链接]
393|2
手机看帖
扫描二维码
随时随地手机跟帖
meiyaolei|  楼主 | 2025-7-1 14:51 | 显示全部楼层 |阅读模式
在MCU固件开发里,测试环节绝对是重中之重,漏测一个Bug,后续可能引发一堆麻烦事儿,像产品召回、客户投诉,甚至安全事故。
下面结合我多年的经验,分享一套实用的测试策略,从单元测试到硬件测试,覆盖全流程关键要点。

一、分层测试策略
单元测试,逐个击破,确保模块无误,从功能要求开始,一个一个点进行测试。
主要验证每个函数或模块的逻辑是否正确,像传感器驱动、PID算法、通信协议这些模块都得测。
集成测试,拼接模块,检查接口协作
验证各个模块之间交互是否正常,比如SPI通信、中断处理、任务调度这些方面等各个功能。

在多任务并发,测试当高优先级任务抢占低优先级任务时,共享资源,像全局变量、队列是否能被正确保护。可以用互斥锁或者禁用中断的方式来保护资源。
中断嵌套,模拟外设中断,比如UART接收 打断定时器中断的情况,检查上下文保存和恢复是否正确。
硬件接口时序 用逻辑分析仪 如Saleae Logic 抓取SPI时钟和数据信号,看看时序是否符合芯片手册的要求。

像有些必须要用工具的,就可以选择工具测试,像使用Saleae Logic可以抓取I2C、SPI、UART等信号,还能分析时序和协议。
不过有时还要自定义测试板,通过跳线模拟传感器故障,比如短路、断路等情况,测试固件的容错能力。

系统测试,模拟真实环境,全面检验,验证整个系统在真实环境中的表现,包括低功耗、EMC抗干扰、多传感器融合等方面。

关键测试项
低功耗验证 用电流探头 如Keysight N2820A 测量睡眠模式下的电流,确保符合规格书的要求,比如小于1μA。
EMC抗干扰 用信号发生器加上功率放大器注入干扰信号 比如80MHz - 1GHz的射频干扰 ,测试固件是否会误触发,像看门狗复位这种情况。
多传感器融合 模拟加速度计、陀螺仪、磁力计的数据,验证姿态解算算法 如Mahony滤波 的稳定性。
可以使用电流探头,精准测量μA级的电流。
或者自定义上位机 通过USB或者CAN发送模拟的传感器数据,同时监控固件的输出,比如电机控制指令。


用虚拟的外设替代实际硬件,测试固件在复杂场景下的行为,像电机控制、电池管理等场景。
PC模拟外设 用Python或者MATLAB模拟传感器输出,比如用正弦波模拟电机编码器信号,然后通过串口或者CAN与MCU通信。
专用HIL设备 像NI PXI平台,搭配FPGA模拟高速信号,像PWM、高速ADC等。
有一次HIL测试发现,固件在模拟电机堵转时没有及时关断IGBT,导致HIL设备的保护电路触发。修复这个问题后,就避免了实际硬件损坏的风险。

二、提升测试效率的实用技巧
自动化测试框架,减少人工操作,避免失误,减少人工操作,防止因为“手抖”而漏测,有的时候人也会疲劳,会出现失误的情况。
像我们公司之前做一个Python脚本,调用串口或者CAN工具发送测试命令,自动解析固件返回的数据,并生成测试报告。
Jenkins持续集成 代码提交后,自动触发单元测试和集成测试,如果测试失败就发送邮件报警。
有个项目通过Jenkins自动化测试,把回归测试的时间从4小时缩短到了10分钟,漏测率也降低了80%。调试工具链,快速定位问题,节省时间


三、实际测试中的教训总结
测试总结其实这一点很关键,但是很多人在进行的时候都不会有这一个动作,我再举一个例子,固件中的看门狗复位逻辑有漏洞,在特定的中断服务程序 ISR 中没有及时喂狗,导致客户设备运行2小时后死机。
测试时只模拟了正常流程,没有覆盖中断嵌套的场景。后面进行排查在单元测试中模拟中断嵌套,强制触发看门狗复位;修改固件,在ISR的入口和出口处统一喂狗,或者在禁用中断时临时关闭看门狗。
所以说中断相关的逻辑一定要单独测试,特别是涉及共享资源的场景。

还有一次是关于SPI时序测试,SPI时钟极性 CPOL 和相位 CPHA 配置错误,导致和传感器通信失败,但测试时没有发现,因为测试板用的传感器兼容错误的时序。
没有用逻辑分析仪抓取实际信号,只依赖传感器返回的“假数据”。
最后通过强制要求所有SPI/I2C通信都必须用逻辑分析仪验证时序;在测试脚本中加入时序检查逻辑,比如检查时钟高电平的持续时间是否符合芯片手册的要求。
所以说还是需要经验 总结,上面的就是硬件接口测试必须眼见为实,不能依赖外设的“容错能力”。



使用特权

评论回复
梦境摆渡人| | 2025-7-3 13:11 | 显示全部楼层
非常赞同,测试确实是保证固件质量的关键。单元测试和集成测试是基础,但硬件接口时序的验证也同样重要。你提到的Saleae Logic工具对于时序分析确实很有帮助。

使用特权

评论回复
bear1| | 2025-7-3 13:57 | 显示全部楼层
本帖最后由 bear1 于 2025-7-3 13:59 编辑

Saleae Logic工具 多少RMB一套?

使用特权

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

本版积分规则

认证:工程师
简介:超越自我,为设计激发灵感和想象。

244

主题

802

帖子

6

粉丝