- 添加SpiOta.h和SpiOta.cpp文件以实现SPI OTA功能 - 在项目配置中添加SPI_I2S外设组件支持 - 设置外部晶振值为8MHz (HXTAL_VALUE=8000000U) - 调整ROM0大小从512KB减小到2KB以适应引导程序需求 - 移除评估板相关文件和看门狗驱动文件以优化存储空间
39 lines
949 B
C++
39 lines
949 B
C++
#ifndef MAIN_H
|
|
#define MAIN_H
|
|
|
|
#include <stdint.h>
|
|
|
|
/**
|
|
* @brief Bootloader 顶层调度对象。
|
|
*
|
|
* 负责初始化系统硬件,并根据 Flash 中保存的应用状态决定
|
|
* 是直接跳转主应用、等待 OTA 请求,还是执行备份恢复流程。
|
|
*/
|
|
class BootloaderSystem {
|
|
public:
|
|
/**
|
|
* @brief 初始化 Bootloader 运行所需的硬件外设。
|
|
*
|
|
* 初始化内容包括 SysTick、串口、CAN、OTA 状态机、SPI OTA
|
|
* 以及睡眠状态检查。
|
|
*
|
|
* @return 无。
|
|
*/
|
|
void initHardware();
|
|
|
|
/**
|
|
* @brief 执行 Bootloader 主流程。
|
|
*
|
|
* 该函数会读取应用状态标志,并根据状态决定后续行为:
|
|
* - 直接跳转主应用;
|
|
* - 在限定时间内等待 OTA 请求;
|
|
* - 从备份应用区恢复后跳转;
|
|
* - 永久停留在 Bootloader 等待升级。
|
|
*
|
|
* @return 无。
|
|
*/
|
|
void run();
|
|
};
|
|
|
|
#endif
|