netTask 栈 1024→960:按静态最坏链核算并同步 .ioc/README/审计基线

静态最坏链 2664B(日志主导:链上 5 帧各含 192B __con_line + 尾部 696B)
3840B 配置下余量 1176B(30.6%),过 stack_report 规则
net_drain_chip_rx scratch 静态化实测仅省 16B 栈、反增 256B BSS,已回退
.ioc FREERTOS.Tasks01 同步 960(L1 记账,重生成不丢)
This commit is contained in:
2026-10-09 17:14:52 +08:00
parent 9734c2526a
commit ed463716f6
5 changed files with 11 additions and 5 deletions
+1 -1
View File
@@ -16,7 +16,7 @@
"hal-iwdg-enabled": "c8c9b916b05464b9",
"ioc-keepusercode": "b5bea41b6c623f7c",
"ioc-iwdg-present": "d3a6e667048c95db",
"ioc-task-stacks": "72969c5a8569f4d2"
"ioc-task-stacks": "3262f737d92dcbee"
},
"_note": "CubeMX 存活审计基线;改动用 --write 重建"
}
+1 -1
View File
@@ -58,7 +58,7 @@ STM32F407ZGTx @168MHz(HSE 8MHz → PLL M=4/N=168/P=2);**仅 Keil MDK-ARM v
| Task | 栈 (words) | 优先级 |
|---|---|---|
| defaultTask | 1024 | Normal |
| netTask | 1024 | Normal |
| netTask | 960 | Normal |
| ftpTask | 1024 | Normal |
| testTask | 2048 | BelowNormal |
| uiTask | 4096 | BelowNormal |
+1 -1
View File
@@ -70,7 +70,7 @@ main.c
| 任务 | 栈大小 | 优先级 | 职责 |
|------|--------|--------|------|
| defaultTask | 1024 words | Normal | FTL + FatFS 挂载、配置引擎属主、syslog 唯一写者 |
| netTask | 1024 words | Normal | 网络初始化 + CH395F 轮询 |
| netTask | 960 words | Normal | 网络初始化 + CH395F 轮询 |
| ftpTask | 1024 words | Normal | FTP 服务(等待网络+存储就绪) |
| testTask | 2048 words | BelowNormal | 硬件测试入口 |
| uiTask | 4096 words | BelowNormal | LVGL UI 界面 |
+1 -1
View File
@@ -73,7 +73,7 @@ FREERTOS.Events01=sys_evt,Dynamic,NULL
FREERTOS.FootprintOK=true
FREERTOS.IPParameters=Tasks01,configENABLE_FPU,FootprintOK,configTOTAL_HEAP_SIZE,Queues01,Events01
FREERTOS.Queues01=netMsgQueue,8,net_msg_t,0,Dynamic,NULL,NULL
FREERTOS.Tasks01=defaultTask,24,1024,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;netTask,24,1024,StartNetTask,Default,NULL,Dynamic,NULL,NULL;ftpTask,24,1024,StartFtpTask,As weak,NULL,Dynamic,NULL,NULL;testTask,16,2048,start_test_task,As weak,NULL,Dynamic,NULL,NULL;uiTask,16,4096,StartUiTask,Default,NULL,Dynamic,NULL,NULL
FREERTOS.Tasks01=defaultTask,24,1024,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;netTask,24,960,StartNetTask,Default,NULL,Dynamic,NULL,NULL;ftpTask,24,1024,StartFtpTask,As weak,NULL,Dynamic,NULL,NULL;testTask,16,2048,start_test_task,As weak,NULL,Dynamic,NULL,NULL;uiTask,16,4096,StartUiTask,Default,NULL,Dynamic,NULL,NULL
FREERTOS.configENABLE_FPU=1
FREERTOS.configTOTAL_HEAP_SIZE=49152
File.Version=6
+7 -1
View File
@@ -80,7 +80,13 @@ const osThreadAttr_t defaultTask_attributes = {
osThreadId_t netTaskHandle;
const osThreadAttr_t netTask_attributes = {
.name = "netTask",
.stack_size = 1024 * 4,
/* 1024→960: 静态最坏链 2664B(发送停滞→断连→重监听→SPI故障→日志尾,真实直调链,
* 日志主导:链上 5 帧各含 192B __con_line + 尾部 ~696B);3840B 配置余量 1176B
* (30.6%),过 stack_report 规则(≥max(1024B ISR, 30%))。运行时水位仅 ~1.1KB
* (错误尾未触发,不可作依据)。曾试 net_drain_chip_rx scratch 静态化,实测仅省
* 16B 栈(ARMCC 已叠放不重叠局部量)反增 256B BSS,已回退——见 net_socket.c 注释。
* ⚠ 注释位于 .ioc 生成区之外,CubeMX 重生成会丢(值本身在 FREERTOS.Tasks01 里,不丢)。 */
.stack_size = 960 * 4,
.priority = (osPriority_t) osPriorityNormal,
};
/* Definitions for ftpTask */