feat(can): 添加节点ID设置命令的安全防护和改进闪存写入逻辑

- 添加目标节点验证机制,防止SET_NODE_ID命令被错误处理
- 修改节点ID范围验证逻辑,限制为1到0xFF
- 调整闪存写入顺序,在确认写入成功后再发送响应
- 修复SET_NODE_ID消息处理中的边界条件检查

fix(can): 启用自动总线离线恢复功能

- 将CAN参数auto_bus_off_recovery从DISABLE改为ENABLE
- 提高CAN通信的稳定性和自动恢复能力

chore(config): 更新软件版本号并添加编译时间信息

- 将软件补丁版本从24更新到25
- 添加APP_BUILD_DATE和APP_BUILD_TIME宏定义
- 新增getAppBuildTime函数获取编译时间信息
- 添加Flash页大小相关注释说明

perf(debug): 调整ST-Link调试器时钟频率

- 将调试器时钟从10MHz降低到4MHz
- 提高调试连接的稳定性

refactor(static_test): 移除静态测试文件列表

- 删除static_test_automotive_business_20260523/files.csv文件内容
This commit is contained in:
cbb
2026-08-13 01:14:07 +08:00
parent b71fba2016
commit 42c9f2f669
15 changed files with 37 additions and 8050 deletions
+11 -2
View File
@@ -1,4 +1,4 @@
/**
/**
* @file sys/config.h
* @brief 系统服务与平台支持源文件
* @note 本文件仅补充 Doxygen 文档注释,不改变代码逻辑。
@@ -23,7 +23,7 @@
// 版本号定义 - 可根据实际项目进行调整
constexpr u16 SOFTWARE_VERSION_MAJOR = 26;
constexpr u16 SOFTWARE_VERSION_MINOR = 5;
constexpr u16 SOFTWARE_VERSION_PATCH = 24;
constexpr u16 SOFTWARE_VERSION_PATCH = 25;
constexpr u16 SOFTWARE_VERSION_BUILD = 2;
constexpr u16 HARDWARE_VERSION_MAJOR = 25;
@@ -35,6 +35,9 @@ constexpr u16 BOOT_VERSION_MAJOR = 26;
constexpr u16 BOOT_VERSION_MINOR = 1;
constexpr u16 BOOT_VERSION_PATCH = 12;
constexpr u16 BOOT_VERSION_BUILD = 0;
// 编译时间(AC6 编译器自动生成)
#define APP_BUILD_DATE __DATE__
#define APP_BUILD_TIME __TIME__
// Flash 分区配置
constexpr u32 BOOTLOADER_SIZE = 0x6000; // 24KB
@@ -65,6 +68,7 @@ constexpr u32 NODE_ID_MAGIC = 0x4E4F4445; // 魔数 'NODE' 用于验证数据
constexpr u16 DEFAULT_NODE_ID = 1; // 默认节点 ID
constexpr u16 BROADCAST_NODE_ID = 0x1FFF; // 广播 ID (所有节点响应)
constexpr u16 MAX_NODE_ID = 0x1FFE; // 最大有效节点 ID (0~0x1FFE)
constexpr u16 SETTABLE_NODE_ID_MAX = 0x00FF; // SET_NODE_ID 命令允许设置的上限 (1~0xFF)
// 节点 ID 存储结构 (存储在Flash中的格式)
// 地址偏移 0x00: 魔数 (0x4E4F4445 = 'NODE')
@@ -79,6 +83,10 @@ constexpr u8 NODE_ID_COUNTER_OFFSET = 0x08; // 写入计数器偏移
constexpr u8 NODE_ID_CRC_OFFSET = 0x0C; // CRC偏移
// BOOT 相关
// 版图/页大小核验:以下 6 个 OTA 标志位共处 0x0801E000 所在的 1KB Flash 页。
// OTA_SET 会整页擦除该页,故必须保证 FMC 页大小为 1KB(0x400),否则会连带擦除
// 相邻的 SLEEP_CONFIG(0x0801E400)/NODE_ID(0x0801E800)。GD32C103CB 实测页大小为
// 1KB(睡眠/节点 ID/EEPROM 分居相邻 1KB 页且互不影响即为佐证),与 FMC_PAGE_SIZE 一致。
constexpr u32 OTA_CONFIG_NUM = 6;
constexpr u32 n_APP_LATEST_AVAL_ADDR = 0x0801E000; // 最新 APP 可用地址
constexpr u32 n_APP_BACKUP_AVAL_ADDR = 0x0801E004; // 备份 APP 可用地址
@@ -290,3 +298,4 @@ constexpr float VBUS_RECOVERY_RATIO = 0.9f; // 恢复比例(基准电压
#endif