/* * 模块名称:main.h 桩(boot_stats 主机单测专用) * 模块功能:只提供 App/util/boot_stats.c 真正用到的 **RCC_CSR 复位标志位掩码**, * 让被测源在 PC 上编得动(真实 main.h 会拉整棵 HAL/CMSIS 头树)。 * 创建日期:2026-10-27(道G task-12) * * ⚠ 位号与宏名必须与 CMSIS 一致(本仓真值取自 * Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h 的 RCC_CSR_xxx_Pos): * BOR=25 / PIN=26 / POR=27 / SFT=28 / IWDG=29 / WWDG=30。 * 改了被测代码而这里缺宏 → 编译直接失败,不会出现"桩悄悄放过"的假绿; * 改了位号(不会发生,芯片固定)则断言会红——优先级链是本项目唯一出处, * 见 App/util/boot_stats.h 的 boot_stats_cause_from_csr 函数头。 */ #ifndef MAIN_H #define MAIN_H #ifdef __cplusplus extern "C" { #endif #include #define RCC_CSR_BORRSTF ((uint32_t)0x02000000u) /* bit25 掉电复位 */ #define RCC_CSR_PINRSTF ((uint32_t)0x04000000u) /* bit26 引脚复位 */ #define RCC_CSR_PORRSTF ((uint32_t)0x08000000u) /* bit27 上电复位 */ #define RCC_CSR_SFTRSTF ((uint32_t)0x10000000u) /* bit28 软件复位 */ #define RCC_CSR_IWDGRSTF ((uint32_t)0x20000000u) /* bit29 独立看门狗 */ #define RCC_CSR_WWDGRSTF ((uint32_t)0x40000000u) /* bit30 窗口看门狗 */ #ifdef __cplusplus } #endif #endif /* MAIN_H */