perf(vd960DBN): RAM 瘦身 — .bss 省 4.8KB, 栈 1.9KB→~6.7KB (2026-08-17)
栈溢出根因确认后 .bss 瘦身四刀: - net_config.h: ETH_MAX_PACKET_SIZE 1520→768 (MSS=700最大帧758B, 省3.76KB) - iot_mqtt_srv.c: payload[1400]→800 (loop_data最大~604B, 省600B) - iot_mqtt_srv.h: IOT_MQTT_SEND_BUF_LEN 1024→800 (_iot_send_buf/resp/buf 同步, 省224B) - net_srv.c: MAX_MQTTBUF_LEN 1024→800 (512仍不够勿回改, 省224B) ⚠ ETH 768 为 MSS=700 最小安全值; 若现场有大UDP包截断改回1024。 待办: .map 确认 BLE 栈占用; RECE_BUF_LEN/ARP 表可再省; 局部大数组转static。
This commit is contained in:
@@ -47,6 +47,12 @@ extern "C" {
|
||||
|
||||
#define ETH_RXBUFNB 4 /* Number of MAC received descriptors */
|
||||
|
||||
/* 2026-08-17 RAM 瘦身: ETH_MAX_PACKET_SIZE 1520 → 768.
|
||||
最大 TCP 帧 (MSS=700) = 700+20+20+14+4 = 758B ≤ 768 ✓;
|
||||
停车场景 (TCP JSON/MQTT/SSC UDP 小包) 无 >728B UDP 数据。
|
||||
省 .bss: (1520-768)×(RX 4 + TX 1) = 3.76KB (栈空间 +3.76KB)。
|
||||
若现场出现大 UDP 包截断, 改回 1024 (省 2.48KB)。 */
|
||||
#define ETH_MAX_PACKET_SIZE 768
|
||||
#ifndef ETH_MAX_PACKET_SIZE
|
||||
#define ETH_RX_BUF_SZE 1520 /* MAC receive buffer length, an integer multiple of 4 */
|
||||
#define ETH_TX_BUF_SZE 1520 /* MAC send buffer length, an integer multiple of 4 */
|
||||
|
||||
Reference in New Issue
Block a user