MQTT客户端栈大小分配过大而导致无法初始化
MQTT客户端栈大小分配过大而导致无法初始化
在配置MQTT客户端时,因为我想接收很大的数据包(最大500k)。因此我想一次接收完成(扩展了psram)。所以我在配置MQTT客户端时将栈大小设置为114688,将接收缓冲区大小设置为102400.但是这样就导致esp_mqtt_client_start()这个函数无法返回,且报错E (7296) MQTT_CLIENT: Error create mqtt task;我想咨询一下,idf(v4.1)对MQTT的栈大小有最大限制么?最大可以设多大呢?
Re: MQTT客户端栈大小分配过大而导致无法初始化
Task 栈大小取决你剩余内存的大小,你配置的 114 K 大小栈太大了,内存不够。另外你 MQTT 栈可以不用这么大,你接收数据的不要用数组,数组占用 Task 栈空间,你可以 malloc 一段空间,这个属于堆,不占用 Task 栈空间。
Who is online
Users browsing this forum: No registered users and 138 guests