diff --git a/docs/内存管理/RAM使用分析与优化方案.md b/docs/内存管理/RAM使用分析与优化方案.md index 62afb799..9ae0bf0b 100644 --- a/docs/内存管理/RAM使用分析与优化方案.md +++ b/docs/内存管理/RAM使用分析与优化方案.md @@ -47,10 +47,10 @@ dhara 失败类 +84;RO 另 +208,全是该失败类名表)→ `ER_IROM1` | 区域 | 用量 | 容量 | 占比 | |---|---|---|---| -| ER_IROM1 | 275,976 B (269.51 KB) | 1,048,576 B (1024 KB) | 26.3% | -| RW_IRAM1 | 94,312 B (92.10 KB) | 131,072 B (128 KB) | 72.0% | +| ER_IROM1 | 276,556 B (270.07 KB) | 1,048,576 B (1024 KB) | 26.4% | +| RW_IRAM1 | 94,336 B (92.12 KB) | 131,072 B (128 KB) | 72.0% | | RW_CCM | 57,376 B (56.03 KB) | 65,280 B (64 KB) | 87.9% | -| **Flash (ROM 合计)** | **278,012 B (271.5 KB)** | 1,048,576 B (1024 KB) | **26.5%** | +| **Flash (ROM 合计)** | **278,608 B (272.1 KB)** | 1,048,576 B (1024 KB) | **26.6%** | 各区的容量与常量来源: diff --git a/docs/内存管理/RAM预算台账.md b/docs/内存管理/RAM预算台账.md index 5dfcf031..43a32a4f 100644 --- a/docs/内存管理/RAM预算台账.md +++ b/docs/内存管理/RAM预算台账.md @@ -15,19 +15,19 @@ | 区域 | 用量 | 容量 | 占比 | 门禁(≤92%) | |---|---|---|---|---| -| ER_IROM1 (Flash) | 275,976 B | 1,048,576 B | 26.3% | 参考 | +| ER_IROM1 (Flash) | 276,556 B | 1,048,576 B | 26.4% | 参考 | | RW_CCM | 57,376 B | 65,280 B | 87.9% | PASS | | UNINIT_CCM | 48 B | 256 B | 18.8% | 参考 | -| RW_IRAM1 | 94,312 B | 131,072 B | 72.0% | PASS | +| RW_IRAM1 | 94,336 B | 131,072 B | 72.0% | PASS | | 子系统(静态 RW+ZI;除 RTOS 堆在 CCM 外均在 SRAM1) | 现值 | 配额 | 状态 | |---|---|---|---| | 网络 | 13,702 B | 12 KB | ⚠ 超 1.4 KB | | 存储 | 7,072 B | 12 KB | OK | -| UI | 36,429 B | 16 KB | ⚠ 超 19.6 KB | +| UI | 36,441 B | 16 KB | ⚠ 超 19.6 KB | | RTOS 堆 | 57,376 B | 56 KB | 堆=配额 | | 应用 | 26,333 B | 8 KB | ⚠ 超 17.7 KB | -| 其它 | 10,768 B | — | 参考 | +| 其它 | 10,780 B | — | 参考 | - **门禁**:pre-commit `mem-budget` 钩子(`scripts/ram_baseline.py --gate`)—— diff --git a/scripts/size_attestation.json b/scripts/size_attestation.json index 3e00317d..4fbb3ef0 100644 --- a/scripts/size_attestation.json +++ b/scripts/size_attestation.json @@ -1,25 +1,25 @@ { - "built_at": "2026-10-30T09:29:38+08:00", - "fingerprint": "b29b75a36f5fbaa28273483432f6a950eb34efcf9b9b1db595ea1bb87ebac16f", + "built_at": "2026-10-30T09:56:12+08:00", + "fingerprint": "b29f701a66a01554000d5ec5f001a79ff3a247e67b978e8909ef885e07fdabb9", "fingerprint_files": 1466, "fingerprint_source": "git-index", "gated_regions": [ "RW_IRAM1", "RW_CCM" ], - "git_head": "899e4a6bdf1b272e6cb8c5b8cf35aa2b329996ef", + "git_head": "0cabed0b5c071db2b394e0449d941bfb636bdf6b", "map": "MDK-ARM/STM32F407-Demo/STM32F407-Demo.map", - "map_mtime": 1793323741, + "map_mtime": 1793325110, "pct": { - "ER_IROM1": 26.32, + "ER_IROM1": 26.37, "RW_CCM": 87.89, - "RW_IRAM1": 71.95, + "RW_IRAM1": 71.97, "UNINIT_CCM": 18.75 }, "regions": { "ER_IROM1": { "max": 1048576, - "size": 275976 + "size": 276556 }, "RW_CCM": { "max": 65280, @@ -27,7 +27,7 @@ }, "RW_IRAM1": { "max": 131072, - "size": 94312 + "size": 94336 }, "UNINIT_CCM": { "max": 256, @@ -37,10 +37,10 @@ "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": 246160, - "ro_data": 29816, - "rw_data": 2036, - "zi_data": 149700 + "code": 246720, + "ro_data": 29836, + "rw_data": 2052, + "zi_data": 149708 }, "threshold_pct": 92.0, "worktree_dirt_at_stamp": 0, diff --git a/scripts/test_coverage_baseline.json b/scripts/test_coverage_baseline.json index 2e5d16e4..fc8abac3 100644 --- a/scripts/test_coverage_baseline.json +++ b/scripts/test_coverage_baseline.json @@ -370,11 +370,11 @@ }, "Drivers/BSP/ScreenLink/sb_link.c": { "func_rate": 1.0, - "funcs_covered": 13, - "funcs_valid": 13, - "line_rate": 0.971, - "lines_covered": 201, - "lines_valid": 207 + "funcs_covered": 15, + "funcs_valid": 15, + "line_rate": 0.9712, + "lines_covered": 236, + "lines_valid": 243 }, "Drivers/BSP/ScreenLink/sb_proto.c": { "func_rate": 1.0, @@ -656,10 +656,10 @@ }, "sb_link": { "files": { - "Drivers/BSP/ScreenLink/sb_link.c": 207, + "Drivers/BSP/ScreenLink/sb_link.c": 243, "Drivers/BSP/ScreenLink/sb_proto.c": 75 }, - "lines_total": 282, + "lines_total": 318, "ok": true }, "sb_proto": { @@ -839,12 +839,12 @@ "files_generated_excluded": 5, "files_tested": 51, "files_untested": 172, - "func_rate": 0.924, - "funcs_covered": 596, - "funcs_valid": 645, - "line_rate": 0.9016, - "lines_covered": 8020, - "lines_valid": 8895, + "func_rate": 0.9243, + "funcs_covered": 598, + "funcs_valid": 647, + "line_rate": 0.9019, + "lines_covered": 8055, + "lines_valid": 8931, "modules_ok": 47, "modules_total": 47 }, @@ -858,7 +858,7 @@ "path": "Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c" }, { - "code_lines": 525, + "code_lines": 533, "path": "App/task/ui_task.c" }, { @@ -874,12 +874,12 @@ "path": "App/task/adc_task.c" }, { - "code_lines": 353, - "path": "Drivers/BSP/UI/ui_w_setview.c" + "code_lines": 356, + "path": "Drivers/BSP/UI/ui_menu_view.c" }, { - "code_lines": 329, - "path": "Drivers/BSP/UI/ui_menu_view.c" + "code_lines": 353, + "path": "Drivers/BSP/UI/ui_w_setview.c" }, { "code_lines": 300, @@ -977,6 +977,10 @@ "code_lines": 112, "path": "Drivers/BSP/UI/ui_page_ac.c" }, + { + "code_lines": 103, + "path": "Drivers/BSP/UI/ui_port.c" + }, { "code_lines": 101, "path": "Drivers/BSP/NET/net_types.h" @@ -1001,10 +1005,6 @@ "code_lines": 83, "path": "Drivers/BSP/NET/net_socket.h" }, - { - "code_lines": 79, - "path": "Drivers/BSP/UI/ui_port.c" - }, { "code_lines": 77, "path": "App/algo/prot_set.h" @@ -1033,6 +1033,10 @@ "code_lines": 55, "path": "App/protocol/iec104/iec104_link.h" }, + { + "code_lines": 55, + "path": "Drivers/BSP/ScreenLink/sb_link.h" + }, { "code_lines": 54, "path": "Drivers/BSP/TPAFE5160/tpafe5160.h" @@ -1049,10 +1053,6 @@ "code_lines": 50, "path": "App/log/sys_log.h" }, - { - "code_lines": 50, - "path": "Drivers/BSP/ScreenLink/sb_link.h" - }, { "code_lines": 47, "path": "Drivers/BSP/UI/ui_w_soe.h" @@ -1202,7 +1202,7 @@ "path": "Drivers/BSP/NET/net_pending.h" }, { - "code_lines": 25, + "code_lines": 26, "path": "Drivers/BSP/UI/ui_port.h" }, {