diff --git a/Drivers/BSP/NET/lftpd/lftpd_inet.c b/Drivers/BSP/NET/lftpd/lftpd_inet.c index 759b5d60..66a128d8 100644 --- a/Drivers/BSP/NET/lftpd/lftpd_inet.c +++ b/Drivers/BSP/NET/lftpd/lftpd_inet.c @@ -162,6 +162,12 @@ int lftpd_inet_read_line(int socket, char *buffer, size_t buffer_len) } total_read_len += read_len; + /* 预算语义="字节间隔超时"而非"整行总时长":收到任何字节即证明对端 + * 存活,重置 t0。原形态下 t0 只在入口置一次,慢速/保活型客户端的零散 + * 短行会被 30s 总预算误掐(台架 2026-11-13:FileZilla 会话周期性 + * "control channel closed by peer (ret=-1)",NOOP 保活救不回来)。 + * 空闲回收语义不变:零字节静默满预算仍由 rem==0 判超时释放。 */ + t0 = xTaskGetTickCount(); char *p = strstr(buffer, "\r\n"); if (p != NULL) { diff --git a/docs/内存管理/RAM使用分析与优化方案.md b/docs/内存管理/RAM使用分析与优化方案.md index 2d585ce8..0d972fcc 100644 --- a/docs/内存管理/RAM使用分析与优化方案.md +++ b/docs/内存管理/RAM使用分析与优化方案.md @@ -47,10 +47,10 @@ dhara 失败类 +84;RO 另 +208,全是该失败类名表)→ `ER_IROM1` | 区域 | 用量 | 容量 | 占比 | |---|---|---|---| -| ER_IROM1 | 288,624 B (281.86 KB) | 1,048,576 B (1024 KB) | 27.5% | +| ER_IROM1 | 288,628 B (281.86 KB) | 1,048,576 B (1024 KB) | 27.5% | | RW_IRAM1 | 97,248 B (94.97 KB) | 131,072 B (128 KB) | 74.2% | | RW_CCM | 57,376 B (56.03 KB) | 65,280 B (64 KB) | 87.9% | -| **Flash (ROM 合计)** | **290,712 B (283.9 KB)** | 1,048,576 B (1024 KB) | **27.7%** | +| **Flash (ROM 合计)** | **290,716 B (283.9 KB)** | 1,048,576 B (1024 KB) | **27.7%** | 各区的容量与常量来源: diff --git a/docs/内存管理/RAM预算台账.md b/docs/内存管理/RAM预算台账.md index 4f7872f5..a45a0369 100644 --- a/docs/内存管理/RAM预算台账.md +++ b/docs/内存管理/RAM预算台账.md @@ -15,7 +15,7 @@ | 区域 | 用量 | 容量 | 占比 | 门禁(≤92%) | |---|---|---|---|---| -| ER_IROM1 (Flash) | 288,624 B | 1,048,576 B | 27.5% | 参考 | +| ER_IROM1 (Flash) | 288,628 B | 1,048,576 B | 27.5% | 参考 | | RW_CCM | 57,376 B | 65,280 B | 87.9% | PASS | | UNINIT_CCM | 48 B | 256 B | 18.8% | 参考 | | RW_IRAM1 | 97,248 B | 131,072 B | 74.2% | PASS | diff --git a/scripts/ram_baseline.tsv b/scripts/ram_baseline.tsv index a67acea0..b0c83aa3 100644 --- a/scripts/ram_baseline.tsv +++ b/scripts/ram_baseline.tsv @@ -21,4 +21,4 @@ date code ro rw zi er_irom1 er_pct iram1 iram1_pct ccm ccm_pct top_rwzi 2026-11-09 255160 31204 2080 152152 286364 27.3 96808 73.9 57376 87.9 heap_4.o=57376;lv_mem_core_builtin.o=16384;nand_ftl.o=8288;lftpd.o=7884;ui_net_sink.o=6802;ui_port.o=6432;wave_ring.o=5296;sb_link.o=4376;ch395f.o=4162;console_log.o=4132 2026-11-10 255160 31204 2080 152152 286364 27.3 96808 73.9 57376 87.9 heap_4.o=57376;lv_mem_core_builtin.o=16384;nand_ftl.o=8288;lftpd.o=7884;ui_net_sink.o=6802;ui_port.o=6432;wave_ring.o=5296;sb_link.o=4376;ch395f.o=4162;console_log.o=4132 2026-11-11 256024 31760 2080 152368 287784 27.4 97024 74.0 57376 87.9 heap_4.o=57376;lv_mem_core_builtin.o=16384;nand_ftl.o=8288;lftpd.o=7884;ui_net_sink.o=6802;ui_port.o=6432;wave_ring.o=5332;sb_link.o=4376;ch395f.o=4162;console_log.o=4132 -2026-11-13 256588 32036 2088 152584 288624 27.5 97248 74.2 57376 87.9 heap_4.o=57376;lv_mem_core_builtin.o=16384;nand_ftl.o=8288;lftpd.o=7884;ui_net_sink.o=6802;ui_port.o=6432;wave_ring.o=5332;sb_link.o=4376;ch395f.o=4162;console_log.o=4132 +2026-11-13 256592 32036 2088 152584 288628 27.5 97248 74.2 57376 87.9 heap_4.o=57376;lv_mem_core_builtin.o=16384;nand_ftl.o=8288;lftpd.o=7884;ui_net_sink.o=6802;ui_port.o=6432;wave_ring.o=5332;sb_link.o=4376;ch395f.o=4162;console_log.o=4132 diff --git a/scripts/size_attestation.json b/scripts/size_attestation.json index a8e89b3d..51373aca 100644 --- a/scripts/size_attestation.json +++ b/scripts/size_attestation.json @@ -1,15 +1,15 @@ { - "built_at": "2026-11-13T16:02:07+08:00", - "fingerprint": "f6c08bfe7cee85ff075041fcbdf57f41bb43bd99c6d58fa70bc9fd341d435176", + "built_at": "2026-11-13T16:24:41+08:00", + "fingerprint": "bb41550b69ceb55ea8934919f892116874c980ee7122942733b4f13559d84ebe", "fingerprint_files": 1479, "fingerprint_source": "git-index", "gated_regions": [ "RW_IRAM1", "RW_CCM" ], - "git_head": "a98d4e06e8fa47dcd15ba5d1364651d1769e4b1b", + "git_head": "72779cab007093dd993a45f60c9eec2ccca86134", "map": "MDK-ARM/STM32F407-Demo/STM32F407-Demo.map", - "map_mtime": 1794556900, + "map_mtime": 1794558267, "pct": { "ER_IROM1": 27.53, "RW_CCM": 87.89, @@ -19,7 +19,7 @@ "regions": { "ER_IROM1": { "max": 1048576, - "size": 288624 + "size": 288628 }, "RW_CCM": { "max": 65280, @@ -37,7 +37,7 @@ "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": 256588, + "code": 256592, "ro_data": 32036, "rw_data": 2088, "zi_data": 152584