fix(stack): N-33 抬栈收口 defaultTask/timeSyncTask 栈余量(2 FAIL -> 0 FAIL)
既有债收口(非新引入):B7 定值持久化把 defaultTask 静态最坏链推到 3016 B、timeSyncTask 推到 1264 B,两者跌破 stack_report 判据 (余量 >= max(1024 B ISR, 配置 x 30%))。本轮只抬栈,不动调用链。 前基线(stack_report,9 任务): - defaultTask cfg 4096 B / 静态 3016 B / 余 1080 B (26%) FAIL - timeSyncTask cfg 2048 B / 静态 1264 B / 余 784 B (38%) FAIL - 其余 7 任务 PASS(net 2112/1728、ftp 1456/2640、ui 1336/15048、 test 736/7456、adc 1320/1240、iec104 1456/1104、protect 872/1176) 改动: - defaultTask 1024 -> 1280 words(4096 -> 5120 B):余 2104 B / 41% - timeSyncTask 512 -> 640 words(2048 -> 2560 B):余 1296 B / 50% - 后基线:9 任务 0 FAIL(stack_report 退出码 0) 堆开销(任务栈来自 FreeRTOS 堆,.map 静态数字不变): - defaultTask +1024 B、timeSyncTask +512 B,合计 +1536 B - 台架背书基线 heap free=17936 / min_ever=10000 B(B6),抬后 min_ever 预计 ~8464 B,仍远高于 3072 B 告警线 防丢失(CubeMX 存活 L1 纪律): - STM32F407-Demo.ioc 的 FREERTOS.Tasks01 同步改 1024 -> 1280 (.ioc 是 CubeMX 生成任务栈值的事实源,未跑重生成) - Src/freertos.c 生成区 .stack_size 与 .ioc 保持一致 - USER CODE BEGIN Variables 核算注释块补 N-33 依据(栈值理由唯一落点) - .cubemx_survival_baseline.json 经 --write 重建(仅 ioc-task-stacks 一行) task-table 生成区随栈变更再生成(README.md + AGENTS.md 的 TASK_TABLE 锚点区各 2 行,锚点区外无任何改动)。 验证:@build 0 错误 0 警告(Program Size 与改前逐字节一致); ci_local 全绿(L0 + L0.5,826/826 断言);stack_report 前后各跑一次。 台架 @test 与串口 [STACK] 水位复测在提交后单独跑。
This commit is contained in:
@@ -52,12 +52,12 @@
|
||||
<!-- TASK_TABLE:BEGIN generated by scripts/gen_task_table.py -->
|
||||
| Task | 栈 (words) | 优先级 |
|
||||
|---|---|---|
|
||||
| defaultTask | 1024 | Normal |
|
||||
| defaultTask | 1280 | Normal |
|
||||
| netTask | 960 | Normal |
|
||||
| ftpTask | 1024 | Normal |
|
||||
| testTask | 2048 | BelowNormal |
|
||||
| uiTask | 4096 | BelowNormal |
|
||||
| timeSyncTask | 512 | Normal |
|
||||
| timeSyncTask | 640 | Normal |
|
||||
| adcTask | 640 | AboveNormal |
|
||||
| iec104Task | 640 | Normal |
|
||||
| protectTask | 512 | Normal |
|
||||
|
||||
Reference in New Issue
Block a user