4a4ad6bc5f
现状口径:/keil-build 与 /serial-boot-test 是 DSH 会话的技能调用名, 不是 shell 命令;「名 + 命令行参数」的命令形态改为可执行体 run_boot_test.py 的真实调用。 - AGENTS.md:别名说明重写为「技能调用名不是 shell 命令」,两条目改 「编译(/keil-build)」「串口回归(/serial-boot-test)」 - keil-build / serial-boot-test 两 skill 调用名与示例同步;task-worktree 方案文档去掉 @build/@test 惯例从句;@task 保留(不在点名范围) - 123 文件现状陈述全改;台架捕获、变更记录/时间线、rename 映射输入 等 41 行历史证据保留旧名 - gen_memory_svg.py 6 处措辞随改,3 张 SVG 产物同批重跑 - 顺手补并行方案同行漏网计数 51→52 钩子 验证:提交期快钩子对 123 文件实跑全 Passed;check_doc_links --all rc=0(3038 处、无法判定 0);check_mermaid --all rc=0;YAML 解析 52 钩子不变;skill-size rc=0;py_compile 全过;字节卫生零漂移。
67 lines
6.9 KiB
XML
67 lines
6.9 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 880 620" width="880" height="620" style="font-family:Consolas,'Courier New',monospace; font-size:12px; background:#fff">
|
||
<defs>
|
||
<style>
|
||
.title { font-size:14px; font-weight:bold; }
|
||
.label { font-size:11px; }
|
||
.legend-text { font-size:10px; }
|
||
.bar-seg { stroke:#fff; stroke-width:0.5; }
|
||
</style>
|
||
</defs>
|
||
<text x="440.0" y="22" text-anchor="middle" class="title">FreeRTOS 任务栈预算(9 任务;栈全部从 56KB FreeRTOS 堆分配,堆位于 CCM)</text>
|
||
<text x="440.0" y="40" text-anchor="middle" class="legend-text" fill="#777">数据: 2026-10-22 构建 + 同日真机 [STACK] 水位(data/stack_report_20261022.md);最坏 = max(静态最坏链, 实测峰值);判定线 = 余量 ≥ max(1024B ISR, 配置×30%)</text>
|
||
<text x="190" y="54" class="legend-text" fill="#555">浅色条 = 分配栈 深色条 = 最坏占用(max(静态最坏, 实测峰值)) 下方文字 = 实测余量/判定</text>
|
||
<text x="186" y="72" text-anchor="end" dominant-baseline="central" class="label" fill="#333">defaultTask</text>
|
||
<rect class="bar-seg" x="190" y="64" width="203.1" height="16" fill="#BBDEFB" rx="3"/>
|
||
<rect x="190" y="64" width="120.0" height="16" fill="#2196F3" rx="3"/>
|
||
<text x="190" y="91" dominant-baseline="central" class="legend-text" fill="#333">配置 5120B | 实测峰值 2152B | 最坏 3024B | 余量 2096B (40%) <tspan fill="#2E7D32" font-weight="bold">PASS</tspan></text>
|
||
<text x="186" y="112" text-anchor="end" dominant-baseline="central" class="label" fill="#333">netTask</text>
|
||
<rect class="bar-seg" x="190" y="104" width="152.3" height="16" fill="#BBDEFB" rx="3"/>
|
||
<rect x="190" y="104" width="75.9" height="16" fill="#2196F3" rx="3"/>
|
||
<text x="190" y="131" dominant-baseline="central" class="legend-text" fill="#333">配置 3840B | 实测峰值 1116B | 最坏 1912B | 余量 1928B (50%) <tspan fill="#2E7D32" font-weight="bold">PASS</tspan></text>
|
||
<text x="186" y="152" text-anchor="end" dominant-baseline="central" class="label" fill="#333">ftpTask</text>
|
||
<rect class="bar-seg" x="190" y="144" width="162.5" height="16" fill="#BBDEFB" rx="3"/>
|
||
<rect x="190" y="144" width="57.8" height="16" fill="#2196F3" rx="3"/>
|
||
<text x="190" y="171" dominant-baseline="central" class="legend-text" fill="#333">配置 4096B | 实测峰值 1404B | 最坏 1456B | 余量 2640B (64%) <tspan fill="#2E7D32" font-weight="bold">PASS</tspan></text>
|
||
<text x="186" y="192" text-anchor="end" dominant-baseline="central" class="label" fill="#333">uiTask</text>
|
||
<rect class="bar-seg" x="190" y="184" width="650.0" height="16" fill="#FFE0B2" rx="3"/>
|
||
<rect x="190" y="184" width="160.8" height="16" fill="#FF9800" rx="3"/>
|
||
<text x="190" y="211" dominant-baseline="central" class="legend-text" fill="#333">配置 16384B | 实测峰值 4052B | 最坏 4052B | 余量 12332B (75%) <tspan fill="#2E7D32" font-weight="bold">PASS</tspan></text>
|
||
<text x="186" y="232" text-anchor="end" dominant-baseline="central" class="label" fill="#333">testTask</text>
|
||
<rect class="bar-seg" x="190" y="224" width="325.0" height="16" fill="#FFE0B2" rx="3"/>
|
||
<rect x="190" y="224" width="29.2" height="16" fill="#FF9800" rx="3"/>
|
||
<text x="190" y="251" dominant-baseline="central" class="legend-text" fill="#333">配置 8192B | 实测峰值 736B | 最坏 736B | 余量 7456B (91%) <tspan fill="#2E7D32" font-weight="bold">PASS</tspan></text>
|
||
<text x="186" y="272" text-anchor="end" dominant-baseline="central" class="label" fill="#333">timeSyncTask</text>
|
||
<rect class="bar-seg" x="190" y="264" width="101.6" height="16" fill="#BBDEFB" rx="3"/>
|
||
<rect x="190" y="264" width="50.1" height="16" fill="#2196F3" rx="3"/>
|
||
<text x="190" y="291" dominant-baseline="central" class="legend-text" fill="#333">配置 2560B | 实测峰值 648B | 最坏 1264B | 余量 1296B (50%) <tspan fill="#2E7D32" font-weight="bold">PASS</tspan></text>
|
||
<text x="186" y="312" text-anchor="end" dominant-baseline="central" class="label" fill="#333">adcTask</text>
|
||
<rect class="bar-seg" x="190" y="304" width="101.6" height="16" fill="#C8E6C9" rx="3"/>
|
||
<rect x="190" y="304" width="52.4" height="16" fill="#4CAF50" rx="3"/>
|
||
<text x="190" y="331" dominant-baseline="central" class="legend-text" fill="#333">配置 2560B | 实测峰值 952B | 最坏 1320B | 余量 1240B (48%) <tspan fill="#2E7D32" font-weight="bold">PASS</tspan></text>
|
||
<text x="186" y="352" text-anchor="end" dominant-baseline="central" class="label" fill="#333">iec104Task</text>
|
||
<rect class="bar-seg" x="190" y="344" width="101.6" height="16" fill="#BBDEFB" rx="3"/>
|
||
<rect x="190" y="344" width="57.8" height="16" fill="#2196F3" rx="3"/>
|
||
<text x="190" y="371" dominant-baseline="central" class="legend-text" fill="#333">配置 2560B | 实测峰值 540B | 最坏 1456B | 余量 1104B (43%) <tspan fill="#2E7D32" font-weight="bold">PASS</tspan></text>
|
||
<text x="186" y="392" text-anchor="end" dominant-baseline="central" class="label" fill="#333">protectTask</text>
|
||
<rect class="bar-seg" x="190" y="384" width="81.2" height="16" fill="#BBDEFB" rx="3"/>
|
||
<rect x="190" y="384" width="34.6" height="16" fill="#2196F3" rx="3"/>
|
||
<text x="190" y="411" dominant-baseline="central" class="legend-text" fill="#333">配置 2048B | 实测峰值 828B | 最坏 872B | 余量 1176B (57%) <tspan fill="#2E7D32" font-weight="bold">PASS</tspan></text>
|
||
<text x="186" y="434" text-anchor="end" dominant-baseline="central" class="label" fill="#333">idle</text>
|
||
<rect class="bar-seg" x="190" y="428" width="20.3" height="12" fill="#90A4AE" rx="2"/>
|
||
<text x="214.3125" y="434" dominant-baseline="central" class="legend-text" fill="#333">512B(未实测)</text>
|
||
<text x="186" y="456" text-anchor="end" dominant-baseline="central" class="label" fill="#333">timer</text>
|
||
<rect class="bar-seg" x="190" y="450" width="40.6" height="12" fill="#90A4AE" rx="2"/>
|
||
<text x="234.625" y="456" dominant-baseline="central" class="legend-text" fill="#333">1024B(未实测)</text>
|
||
<text x="190" y="480" class="label" fill="#555">堆总量: 57344B(configTOTAL_HEAP_SIZE=56KB,位于 RW_CCM) 任务栈合计: 47360B(含 testTask 8192B)</text>
|
||
<text x="190" y="496" class="label" fill="#555">产品构建 8 任务栈 = 39168B + 内核栈 1536B 实测: free=15800B / min_ever=8464B(2026-10-22)</text>
|
||
<text x="190" y="512" class="label" fill="#555">判定: 9/9 PASS(testTask 无实测,取静态最坏链)</text>
|
||
<rect x="190" y="536" width="10" height="10" fill="#2196F3" rx="2"/>
|
||
<text x="204" y="544" class="legend-text" fill="#333">Normal 优先级</text>
|
||
<rect x="320" y="536" width="10" height="10" fill="#FF9800" rx="2"/>
|
||
<text x="334" y="544" class="legend-text" fill="#333">BelowNormal 优先级</text>
|
||
<rect x="490" y="536" width="10" height="10" fill="#4CAF50" rx="2"/>
|
||
<text x="504" y="544" class="legend-text" fill="#333">AboveNormal 优先级(adcTask)</text>
|
||
<rect x="710" y="536" width="10" height="10" fill="#90A4AE" rx="2"/>
|
||
<text x="724" y="544" class="legend-text" fill="#333">内核栈 idle/timer</text>
|
||
</svg>
|