一、严重问题(Critical)
1.1 芯片通信失败无重试机制
问题描述:
- 所有芯片通信失败后直接返回ERROR,不重试
- 瞬时通信故障会导致端口状态异常
- UART通信在工业环境容易受干扰
问题代码:
// poepse_sm.c:277 ret = srosIfSetApi(pIfEntry->ifUnit, SYS_IF_HWAPIFUNC, &func); if (ret != OK) { stateMachine = PSE_PORT_STATEMACHINE_INIT; expireTime = PSE_TIMEOUT_OVERLOAD; return stateMachine; // 直接失败,不重试 }修复方案:
// 添加重试机制 #define PSE_CHIP_RETRY_MAX 3 #define PSE_CHIP_RETRY_DELAY_MS 100 int32_t pseChipCmdWithRetry(uint32_t ifUnit, tHwApiFunc *func, int32_t isSet) { int32_t ret = ERROR; int32_t retry = 0; for (retry = 0; retry < PSE_CHIP_RETRY_MAX; retry++) { if (isSe