Page 1 of 1

MQTT客户端栈大小分配过大而导致无法初始化

Posted: Thu May 13, 2021 3:41 am
by fanxinyu
在配置MQTT客户端时,因为我想接收很大的数据包(最大500k)。因此我想一次接收完成(扩展了psram)。所以我在配置MQTT客户端时将栈大小设置为114688,将接收缓冲区大小设置为102400.但是这样就导致esp_mqtt_client_start()这个函数无法返回,且报错E (7296) MQTT_CLIENT: Error create mqtt task;我想咨询一下,idf(v4.1)对MQTT的栈大小有最大限制么?最大可以设多大呢?

Re: MQTT客户端栈大小分配过大而导致无法初始化

Posted: Mon Jun 07, 2021 2:59 am
by ESP_YJM
Task 栈大小取决你剩余内存的大小,你配置的 114 K 大小栈太大了,内存不够。另外你 MQTT 栈可以不用这么大,你接收数据的不要用数组,数组占用 Task 栈空间,你可以 malloc 一段空间,这个属于堆,不占用 Task 栈空间。