feat(boot): 重构SPI OTA响应提交机制并修复CRC写入问题

- 将queueTxFrame重命名为submitResponse以更准确反映功能
- 移除已废弃的SPI ready EXTI配置和相关处理函数
- 删除未使用的feedRxBytes和copyTxFrame接口函数
- 修复CRC地址页擦除问题,确保OTA完成后能正确写入和验证CRC
- 更新BOOT固件版本号从1.0.1.2到1.0.2.1
This commit is contained in:
cbb
2026-07-15 00:35:08 +08:00
parent 1223be9ca9
commit c5d8c9798a
5 changed files with 40 additions and 75 deletions
+1 -12
View File
@@ -59,16 +59,7 @@ public:
static void onSpiInterrupt();
static void onCsExtiInterrupt();
/** @brief EXTI6(PB6 SPIready) 上升沿 ISR 入口,通知 SpiLinkState ESP32 已完成读取。
* @note 必须为 public,供 extern "C" EXTI5_9_IRQHandler 调用。 */
static void onSpiReadyExti();
/** @brief 配置 EXTI6 上升沿中断(SPIready/PB6)。 */
static void configureSpiReadyExti();
static void feedRxBytes(const u8 *data, u16 len);
static bool hasTxFrame();
static bool hasActiveSession();
static u16 copyTxFrame(u8 *out, u16 max_len);
/** @brief BOOT 主动按铃:构建请求帧并拉低 SPIready,通知 ESP32 来读。
* @param[in] frame_type 请求帧类型。
@@ -124,7 +115,7 @@ private:
const u8 **payload,
u16 *payload_len);
static ota_link_msg_type_t mapMsgType(spi_ota_frame_type_t type);
static void queueTxFrame(const u8 *frame, u16 len);
static void submitResponse(const u8 *frame, u16 len);
static uint32_t enterCritical();
static void exitCritical(uint32_t primask);
@@ -149,9 +140,7 @@ void spi_ota_spi0_init(void);
void spi_ota_exti_init(void);
void spi_ota_irq_handler(void);
void spi_ota_cs_exti_handler(void);
void spi_ota_feed_rx_bytes(const u8 *data, u16 len);
bool spi_ota_has_tx_frame(void);
u16 spi_ota_copy_tx_frame(u8 *out, u16 max_len);
#ifdef __cplusplus
}