7a18d2ce28
背景:.ioc 的 KeepUserCode 只保护 USER CODE 标记区,标记之外的手工改动 重生成即被覆盖,且多数不报编译错(2026-09-29 实测一次覆盖 4 处,含 HardFault_Handler 崩溃采集被打回空 while(1)、两个 FreeRTOS 加固宏被删)。 新增 scripts/check_cubemx_survival.py: - 16 项易失清单(IWDG 延后启动 / 崩溃采集 / 栈溢出检测 / 堆失败钩子 / 断言改造 / 看门狗模块与工程挂载 / 复位原因锁存 / HAL 驱动与使能 / .ioc 关键项),断言前剥掉 C 注释防误报 - 哈希基线漂移检测(.cubemx_survival_baseline.json),--write 重建 - 标记区外存量以 WARN 提示(3 个 Fault 处理函数、栈注释) 已挂 pre-commit cubemx-survival 钩子(改动 .ioc / Src / Inc / task_watchdog / .uvprojx 时触发)。 文档:看门狗设计说明 §10.2 新增"重生成不丢的三层手段"方法论 (L1 写 .ioc > L2 搬进 USER CODE 区(可自造标记区)> L3 审计兜底) 及 .ioc / USER CODE 区可用位置 / 存量清单三张对照表;AGENTS.md 平台约束 新增该规则;pre-commit 使用说明 §2.12 新增钩子详解。 门禁:build 0 错误 0 警告;pre-commit 全通过。
22 lines
812 B
JSON
22 lines
812 B
JSON
{
|
|
"snapshot": {
|
|
"iwdg-defer-start": "0aad7da77d2ed59c",
|
|
"hardfault-report": "83aa6eee48e67318",
|
|
"hardfault-report-impl": "20bee193982cd39b",
|
|
"stack-overflow-check": "4548c9c6ef1b2409",
|
|
"malloc-failed-hook": "4548c9c6ef1b2409",
|
|
"assert-not-deadloop": "d4a00718ab2bd071",
|
|
"assert-impl": "b7fd1fadb4522edf",
|
|
"stack-overflow-hook-impl": "b7fd1fadb4522edf",
|
|
"watchdog-module": "3c70ea43ff03523e",
|
|
"watchdog-in-project": "328ce92129bdc449",
|
|
"reset-cause-latch": "52fc71acbb0f1aed",
|
|
"iwdg-hal-driver": "4b902875a84554e9",
|
|
"hal-iwdg-enabled": "c8c9b916b05464b9",
|
|
"ioc-keepusercode": "b5bea41b6c623f7c",
|
|
"ioc-iwdg-present": "d3a6e667048c95db",
|
|
"ioc-task-stacks": "72969c5a8569f4d2"
|
|
},
|
|
"_note": "CubeMX 存活审计基线;改动用 --write 重建"
|
|
}
|