d9303e05a4
真机 #73:运行中改配置触发热重载,卷层(dhara)偶发返回旧/短 视图时,引擎把该视图当成文件全文:逐段按缺省解析后整盘打回 出厂默认且不自愈;此后任何一次保存又按缩小的视图做手术式 重写,文件越写越小(台架 1066B→986B,[sntp] 段整体丢失), 即真机对时静默 10.5 小时的元凶。 处置(引擎侧根因无关防御;卷层回滚归 #79/#81 已合并的 FTL 修复域): - poll:读完加三点校验(读长==stat.size、读前后 re-stat 的 size/mtime 一致),判为旧/短视图则 RAM 不动、基线不刷新、 每 2 拍自动重试自愈;首次拒绝留 1 条 DBG_ERROR+syslog, 之后每 30 拍一条 WARN 提示重启收敛。 - save:同型三点校验,视图与 stat 不符返回 -1 且文件不动, 调用方保留 dirty 下拍重试,吞段链在第一次保存即被掐断。 - 边界:「一致但陈旧」的整卷回滚引擎层无法区分,靠重启 收敛,已写入设计说明风险表与文档口径。 测试:新增 TC-CONFIG-058/059/060(旧视图保持 RAM、保存短 视图拒写、读中改写拒绝+日志限速)。cfg_file 239/239; iec104 179、run_par 67、adc_cal 117、sntp 98、 cfg_file_store_mcu 34、net_cfg 48、ftp_cfg 16、prot_set 90、 prot_dim 38 全绿;/keil-build 0 Error 0 Warning。 文档:配置文件设计说明 §(3)/§5.3/风险表/变更记录 v1.17; 单元测试说明 058–060 行;网络配置说明与产品需求 FR-CFG-3 同步口径;台账随新鲜 .map 由 ram_baseline --update 回填。
49 lines
1.2 KiB
JSON
49 lines
1.2 KiB
JSON
{
|
|
"built_at": "2026-11-05T12:35:40+08:00",
|
|
"fingerprint": "8c8ba70adaaa6d8de16a3f80efc6caf859f032eb8dc29dd129351afc4362137d",
|
|
"fingerprint_files": 1479,
|
|
"fingerprint_source": "git-index",
|
|
"gated_regions": [
|
|
"RW_IRAM1",
|
|
"RW_CCM"
|
|
],
|
|
"git_head": "0d5cd1c8d12ff40e225e3e8223958e1ab2a6f74d",
|
|
"map": "MDK-ARM/STM32F407-Demo/STM32F407-Demo.map",
|
|
"map_mtime": 1793853338,
|
|
"pct": {
|
|
"ER_IROM1": 27.24,
|
|
"RW_CCM": 87.89,
|
|
"RW_IRAM1": 72.29,
|
|
"UNINIT_CCM": 18.75
|
|
},
|
|
"regions": {
|
|
"ER_IROM1": {
|
|
"max": 1048576,
|
|
"size": 285680
|
|
},
|
|
"RW_CCM": {
|
|
"max": 65280,
|
|
"size": 57376
|
|
},
|
|
"RW_IRAM1": {
|
|
"max": 131072,
|
|
"size": 94752
|
|
},
|
|
"UNINIT_CCM": {
|
|
"max": 256,
|
|
"size": 48
|
|
}
|
|
},
|
|
"schema": 2,
|
|
"scope_note": "\u540c\u7801\u51ed\u8bc1\uff1a\u6307\u7eb9\u8986\u76d6\u56fa\u4ef6\u4f53\u79ef\u76f8\u5173\u6e90\u7801\uff0c\u53e3\u5f84\u89c1\u672c\u811a\u672c docstring",
|
|
"sizes": {
|
|
"code": 254784,
|
|
"ro_data": 30896,
|
|
"rw_data": 2072,
|
|
"zi_data": 150104
|
|
},
|
|
"threshold_pct": 92.0,
|
|
"worktree_dirt_at_stamp": 0,
|
|
"written_by": "scripts/check_size_gate.py --stamp"
|
|
}
|