espressif / esp-mesh-lite

A lite version Wi-Fi Mesh, each node can access the network over the IP layer.
126 stars 18 forks source link

Mesh lite通信过程中出现error=12: Not enough space的报错 (AEGHB-570) #68

Closed kkkintama closed 6 months ago

kkkintama commented 7 months ago

5块ESP32-C3-DevKitM-1开发板做Mesh Lite的串口透传通信测试,demo是基于no_router的例程改的,大致逻辑是子节点从串口接收数据发送给根节点,然后根节点将接收到的数据广播给所有子节点,当4个子节点以100ms间隔同时发送64bytes的数据时,根节点会间歇性连续报出下面这个log: [ESP_Mesh_Lite_Comm]: [sock=55]: sendto() has failed error=12: Not enough space

各组件版本如下: [1/5] espressif/cmake_utilities (0.5.3) [2/5] espressif/esp_modem (1.1.0) [3/5] espressif/iot_bridge (0.11.1) [4/5] espressif/mesh_lite (0.10.0) [5/5] idf (5.1.3)

wifi缓存相关参数我按照idf手册中wifi配置优化改动过了,大致如下: I (406) wifi:Init data frame dynamic rx buffer num: 16 I (416) wifi:Init static rx mgmt buffer num: 5 I (416) wifi:Init management short buffer num: 32 I (416) wifi:Init dynamic tx buffer num: 16 I (426) wifi:Init static tx FG buffer num: 2 I (426) wifi:Init static rx buffer size: 1600 I (436) wifi:Init static rx buffer num: 8 I (436) wifi:Init dynamic rx buffer num: 16 I (436) wifi_init: rx ba win: 16 I (446) wifi_init: tcpip mbox: 32 I (446) wifi_init: udp mbox: 16 I (446) wifi_init: tcp mbox: 16 I (456) wifi_init: tcp tx win: 16384 I (456) wifi_init: tcp rx win: 16384 I (466) wifi_init: tcp mss: 1440 I (466) wifi_init: WiFi IRAM OP enabled I (476) wifi_init: WiFi RX IRAM OP enabled I (476) wifi_init: LWIP IRAM OP enabled

请问什么原因会导致mesh lite报not enough space的错误?是否有相关参数可以优化来扩大缓存?

xcguang commented 7 months ago

没内存了,可以想办法优化些内存

kkkintama commented 6 months ago

参考idf编程手册内存优化部分进行了参数调整,暂时没有再报错了。