feat(SpiOta): 添加SPI OTA协议硬件握手功能
- 添加对BOOT实际支持的OTA协议帧(REQ/DATA/CANCEL)的过滤, 对不支持的帧类型(如CAN bridge命令)返回ERROR响应,避免误处理 - 实现SPI Ready硬件握手功能,复用PB6引脚作为SPI Ready信号输出, CS下降沿拉低表示从机忙碌,响应完成后拉高表示就绪 - 新增setSpiReady接口用于控制SPI Ready引脚状态, 确保与DCU_APP行为一致,适配ESP32的硬件握手时序 - 修复因未知帧类型被误认为CANCEL而导致OTA状态机被频繁重置的问题 ```
This commit is contained in:
@@ -46,6 +46,12 @@ public:
|
||||
static bool hasActiveSession();
|
||||
static u16 copyTxFrame(u8 *out, u16 max_len);
|
||||
|
||||
/** @brief 翻转 SPI Ready 握手引脚(PB6)电平。
|
||||
* @param[in] ready true=就绪(HIGH), false=忙(LOW)。
|
||||
* @note GPIO BSRR/BRR 写入原子,无需临界区;可由 ISR 与主循环共同调用。
|
||||
* 与 DCU_APP AppSpiCommand::setSpiReady 行为一致,适配 ESP32 硬件握手。 */
|
||||
static void setSpiReady(bool ready);
|
||||
|
||||
static void isrProcessFrame();
|
||||
static void tryProcessCompleteFrame();
|
||||
static void isrLogFrame(const char *tag, const u8 *data, u16 len);
|
||||
|
||||
Reference in New Issue
Block a user