请协助我对当前 UART 二进制协议解析器进行 CRC 与重新同步压测,确认面对错字节、半包、粘包和随机噪声时不会死循环、越界或误收有效帧。
你可以检查工程代码、构建并运行单元测试或烧录实测;不要只用正常帧证明协议解析可靠。
协议格式:帧头、长度、命令、载荷、CRC 和最大帧长以当前工程为准。
解析入口:DMA 环形缓冲、字节流解析状态机、错误恢复、超时清理和统计计数。
测试输入:正常帧、半包、粘包、错误 CRC、错误长度、随机字节、超长帧和帧头嵌套。
验收指标:有效帧顺序正确、错误帧丢弃、重新同步成功、无越界、无无限循环、无缓冲泄漏。
解析器在普通通信中基本可用,但现场日志出现过 CRC 错误后连续丢帧,怀疑状态机无法快速重新同步。
- 找到协议解析器、CRC 实现、长度检查、缓冲消费和错误计数代码;
- 检查所有长度字段是否先校验再拷贝,最大帧长和缓冲边界是否一致;
- 编写或运行压测输入,覆盖随机噪声、断包、粘包、错 CRC 和合法帧穿插;
- 记录每类输入的有效帧数、丢弃字节、错误计数、最大循环次数和缓冲水位;
- 修复状态机、CRC 校验或边界处理后,重新运行测试并保留统计;
最终输出应包含:测试用例清单、失败根因、修改文件、压测统计,以及仍需长时间现场通信验证的风险。