feat(can): CAN休眠唤醒移动到BOOT以进行以支持40k硬件看门狗

- 更新深度睡眠实现,在跳转到bootloader前记录睡眠状态到Flash
- 添加gd32c10x_fmc.h头文件以支持Flash内存控制功能
- 将prepare_deep_sleep重命名为app_prepare_deep_sleep以提高命名清晰度
- 在CAN通信检测中添加应用层休眠准备功能
- 在接收OTA启动ID时解锁FMC、设置APP为非激活状态并锁定FMC
- 移除main.cpp中的看门狗复位休眠逻辑
- 在config.h中添加睡眠配置相关的常量定义
- 改进OTA_SET函数的Flash写入逻辑,优化数据更新流程
- 在OTA初始化和应用移动过程中添加FMC解锁锁定操作
This commit is contained in:
cbb
2026-01-12 01:03:43 +08:00
parent 72506ce87d
commit 9f84c85a28
8 changed files with 132 additions and 98 deletions
+7 -1
View File
@@ -5,8 +5,9 @@
// 如果使用CMSIS DSP库,需要定义ARM_MATH_CM4
#define ARM_MATH_CM4
#define EEP_DEBUG 1
#define EEP_DEBUG 0
#define OTA_DEBUG 1
#define SLEEP_DEBUG 1
// Flash分区配置
constexpr u32 BOOTLOADER_SIZE = 0x4000; // 16KB
@@ -15,6 +16,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 相关
constexpr u32 OTA_CONFIG_NUM = 6;