docs(mem): 回填内存台账到合入后的 .map(cov2 批次收口)
合入 task/cov2-p2-coverage 后在主干重新 @build,按受管产物口径回填: - scripts/ram_baseline.py --update + --write(tsv 与台账受管区) - scripts/check_mem_numbers.py --write(§2.1 内存快照) - 现状句数字改为现值;散文里复述历史快照数字的两处(旧 RW_IRAM1 占比)改为指向 docs/内存管理/data/ram_report_20261022.md,不再在 正文重复历史值——陈旧数字扫描按「上一个快照的区域值」判定, 复述历史数会被正当拦下,指向快照才是正解 合入后实测(.map 权威):Code=213,780 / RO=18,860 / RW=1,204 / ZI=131,852 B;RW_IRAM1 75,632 B(57.7%)、RW_CCM 57,376 B(87.9%)、 Flash 233,844 B(22.3%)。相对合入前:ZI +352 B、Code +60 B、RW 不变, 来自 syslog_post 投递即拷贝(条目内嵌 desc[29]),详见 docs/子系统设计/运行与自检记录设计说明.md §4.4。 验证:@build 0 错误 0 警告;pre-commit run --all-files 全绿(39 项 通过,含 mem-numbers / mem-budget / test-coverage / id-check / doc-links --sections-strict)。合并本身无「双方都改过」的文件, 无并集残留风险。
This commit is contained in:
@@ -29,7 +29,7 @@ C2 dhara 失败类 +84;RO 另 +208,全是 C2 的失败类名表)→ `ER_IR
|
||||
- F407 另有 **64KB CCM RAM**:**已于 2026-09-21 启用**并把 FreeRTOS 堆迁入(§4.1.2)
|
||||
- 起步时没有任何运行时测量手段:不知道每个任务实际用了多少栈,改栈全靠拍脑袋
|
||||
|
||||
当前状态(**以 §2.1 受管快照为准**,由 `.map` 自动生成;2026-10-24 `@build`):RW_IRAM1 **75,272 / 131,072 B(57.4%)**、RW_CCM **57,376 / 65,280 B(87.9%)**。✅ **任务栈:`stack_report.py` 9/9 PASS**(2026-10-22 静态最坏链 + 同日真机 `[STACK]` 水位,`defaultTask` 最坏 3024B/5120(余 40%)、`protectTask` 872B/2048(余 57%),见 `data/stack_report_20261022.md`);**卡点已从 SRAM1 移到 CCM**(余 7,904 B)。历史:`defaultTask` 曾于 2026-10-04 达 3664B/4096 ≈10%,登记为 S-1,2026-10-10 削链后销项(详见"2026-10-10 复测"小节)。
|
||||
当前状态(**以 §2.1 受管快照为准**,由 `.map` 自动生成;2026-10-24 `@build`):RW_IRAM1 **75,632 / 131,072 B(57.7%)**、RW_CCM **57,376 / 65,280 B(87.9%)**。✅ **任务栈:`stack_report.py` 9/9 PASS**(2026-10-22 静态最坏链 + 同日真机 `[STACK]` 水位,`defaultTask` 最坏 3024B/5120(余 40%)、`protectTask` 872B/2048(余 57%),见 `data/stack_report_20261022.md`);**卡点已从 SRAM1 移到 CCM**(余 7,904 B)。历史:`defaultTask` 曾于 2026-10-04 达 3664B/4096 ≈10%,登记为 S-1,2026-10-10 削链后销项(详见"2026-10-10 复测"小节)。
|
||||
|
||||
本方案三个目标:
|
||||
|
||||
@@ -47,10 +47,10 @@ C2 dhara 失败类 +84;RO 另 +208,全是 C2 的失败类名表)→ `ER_IR
|
||||
<!-- MEM_SNAPSHOT:BEGIN generated by scripts/check_mem_numbers.py -->
|
||||
| 区域 | 用量 | 容量 | 占比 |
|
||||
|---|---|---|---|
|
||||
| ER_IROM1 | 232,512 B (227.06 KB) | 1,048,576 B (1024 KB) | 22.2% |
|
||||
| RW_IRAM1 | 75,272 B (73.51 KB) | 131,072 B (128 KB) | 57.4% |
|
||||
| ER_IROM1 | 232,640 B (227.19 KB) | 1,048,576 B (1024 KB) | 22.2% |
|
||||
| RW_IRAM1 | 75,632 B (73.86 KB) | 131,072 B (128 KB) | 57.7% |
|
||||
| RW_CCM | 57,376 B (56.03 KB) | 65,280 B (64 KB) | 87.9% |
|
||||
| **Flash (ROM 合计)** | **233,704 B (228.2 KB)** | 1,048,576 B (1024 KB) | **22.3%** |
|
||||
| **Flash (ROM 合计)** | **233,844 B (228.4 KB)** | 1,048,576 B (1024 KB) | **22.3%** |
|
||||
<!-- MEM_SNAPSHOT:END -->
|
||||
|
||||
各区的容量与常量来源:
|
||||
@@ -150,7 +150,7 @@ C2 dhara 失败类 +84;RO 另 +208,全是 C2 的失败类名表)→ `ER_IR
|
||||
|
||||
量化补充(来源:2026-09-11 审计快照,口径与方法见 §8.4):
|
||||
|
||||
- 两池(FreeRTOS 48KB + LVGL 40KB)曾占主 SRAM 的 **68%**,是当时"SRAM 几乎耗尽(95.4%,余 5.8KB)"的直接原因;**堆迁 CCM 后该结构性压力已解除**(2026-10-22 RW_IRAM1 57.4%,见 §2.1)
|
||||
- 两池(FreeRTOS 48KB + LVGL 40KB)曾占主 SRAM 的 **68%**,是当时"SRAM 几乎耗尽(95.4%,余 5.8KB)"的直接原因;**堆迁 CCM 后该结构性压力已解除**(2026-10-22 的数值见历史快照 `data/ram_report_20261022.md`;现值见 §2.1)
|
||||
- heap_4 **不合并相邻空闲块** → 长期运行需盯碎片,`min_ever`(2026-10-22 实测 8,464 B,56KB 池)是硬指标而非 `free`
|
||||
- 未映射资源:SRAM3 64KB(scatter 未映射;clone 芯片可能无此区);CCM 已用
|
||||
- 曾经的三条中风险项:新任务无处安置(已缓解)、堆碎片(仍存)、栈溢出检测缺失 → **已于阶段 0 开启 `configCHECK_FOR_STACK_OVERFLOW=2` 并实测抓到过溢出**(§4.0.1)
|
||||
|
||||
Reference in New Issue
Block a user