From 718d399f702d3a3941dd74440f01fb42a896c55a Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Fri, 9 Oct 2026 17:17:48 +0800 Subject: [PATCH] =?UTF-8?q?net=5Fdrain=5Fchip=5Frx=20=E8=A1=A5=E5=AE=9E?= =?UTF-8?q?=E6=B5=8B=E6=B3=A8=E9=87=8A=EF=BC=9Ascratch=20=E9=9D=99?= =?UTF-8?q?=E6=80=81=E5=8C=96=E5=8F=8D=E4=BA=8F=EF=BC=8C=E5=8B=BF=E5=86=8D?= =?UTF-8?q?"=E4=BC=98=E5=8C=96"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ARMCC 把 256B 分块 scratch 与同函数内不重叠的 192B 日志缓冲叠放 实测静态化只省 ~16B 栈、反增 256B BSS,已回退并留注释防重复尝试 --- Drivers/BSP/NET/net_socket.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Drivers/BSP/NET/net_socket.c b/Drivers/BSP/NET/net_socket.c index dd2ad3d8..9163b797 100644 --- a/Drivers/BSP/NET/net_socket.c +++ b/Drivers/BSP/NET/net_socket.c @@ -1713,6 +1713,8 @@ static uint32_t s_relisten_settle_dead[NET_MAX_SOCKETS]; /* 隔离上限到期 * 函数说明:1. 中止/异常断开时芯片 RX 缓冲可能残留上一条连接的数据(实测残留约一个缓冲 = 2048B) * 2. 残渣带入下一条连接会使其在约 2KB 处被芯片拆链(上传被静默截断) * 3. 关闭前主动读空即清除;分块读避免新增静态缓冲 + * (2026-10-09 实测:ARMCC 把本 scratch 与同函数内生命周期不重叠的 + * 192B 日志缓冲叠放,局部缓冲边际栈成本仅 ~16B,静态化反亏 256B BSS,勿再"优化") */ static void net_drain_chip_rx(int sockfd) { /* 复用分块缓冲(256B/块,避免新增静态缓冲) */