OTA 升级
OTA 笔记讲原理、流程和模式选择;可直接复制的 C 实现统一放在OTA 库。
学习路线
三种工作模式
| 模式 | 特点 | Ymodem 写入区 |
|---|---|---|
| 阻塞式下载 | BootLoader 等待串口文件,接收后直接写 APP | OTA_APP_ADDRESS |
| AES 备份式 | 下载密文、解密、安装并保留回滚备份 | OTA_AREA_A_ADDRESS |
| APP 后台式 | APP 下载并写状态,复位后由 BootLoader 完成安装 | OTA_AREA_A_ADDRESS |
地址模型
- A 区是下载区,下载完成后复用为旧 APP 备份区。
- B 区是解密后的新固件区。
- APP 运行区是片内 Flash 中独立的运行区域。
- A、B、APP 地址都是 OTA 逻辑地址,由 Flash Adapter 映射到实际 Backend;具体 Flash Driver 只处理 Backend 的物理地址。
手表式完整流程
下载请求 → 下载确认 → Ymodem接收 → 双缓冲队列写A区
→ DOWNLOAD_COMPLETE → 安装确认 → INSTALL_PENDING → 复位
→ 解密并校验B区 → 备份旧APP → 安装 → 验证或回滚 → 跳转APP- APP 侧由 OTA 主任务和 Flash 写任务分工,任务、两条队列和外部 Flash 互斥量统一登记到 FreeRTOS 资源表。
- 下载和安装确认使用通用回调,可由按键、LVGL、蓝牙或 UART 实现,默认超时 100 秒。
- BootLoader 通过 EEPROM 元数据在复位后继续
INSTALL_PENDING、VERIFY_NEW_APP或ROLLBACK_PENDING。 - 镜像校验和 AES 密钥来源均为 Provider;安全芯片只出现在目标工程适配层。
代码库入口
任务、队列、互斥量、信号量、软件定时器和堆内存统一从 FreeRTOS MOC 进入;资源用途和代码接口见 OTA 库。