feat(bootloader): 添加了完整的系统休眠和唤醒机制,包括:

- 实现深睡眠模式下的功耗优化
- 添加PB8引脚的外部中断唤醒功能
- 新增Flash区域用于睡眠状态管理
- 实现睡眠配置的自动检查和恢复逻辑

同时重构了OTA_SET函数,改进了Flash配置参数的写入机制,
解决了GD32 Flash特性导致的0到1写入问题,并添加了详细的
调试信息输出和错误处理。
This commit is contained in:
cbb
2026-01-12 01:06:05 +08:00
parent aefb7d4ee4
commit 1e6d47ddae
16 changed files with 1697 additions and 1439 deletions
+6
View File
@@ -5,6 +5,7 @@
#define EEPDEBUG 0
#define DEBUG_OTA 0
#define CAN_DEBUG 0
#define SLEEP_DEBUG 0
// Flash分区配置
constexpr u32 BOOTLOADER_SIZE = 0x4000; // 16KB
@@ -13,6 +14,11 @@ constexpr u32 APPLATEST_START_ADDR = 0x08011000; // APP起始地址
constexpr u32 APPBACK_START_ADDR = 0x08005000; // APPBACK起始地址
constexpr u32 APP_MAX_SIZE = 0xC000; // 48KB
constexpr u32 FMC_PAGE_SIZE = 0x400; // 1KB
constexpr u32 SLEEP_CONFIG_START = 0x0801D400; // 睡眠配置起始地址
constexpr u32 SLEEP_CONFIG_END = 0x0801D800; // 睡眠配置结束地址
constexpr u32 FLASH_EMPTY = 0xFFFFFFFF; // 空数据
constexpr u32 SLEEP_ENABLE = 0x11111111; // 睡眠使能
constexpr u32 SLEEP_DISABLE = 0x00000000; // 睡眠禁止
// BOOT 相关