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

fanxinyu
Posts: 9
Joined: Tue Apr 27, 2021 2:15 pm

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

Postby fanxinyu » Thu May 13, 2021 3:41 am

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

ESP_YJM
Posts: 300
Joined: Fri Feb 26, 2021 10:30 am

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

Postby ESP_YJM » Mon Jun 07, 2021 2:59 am

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

Who is online

Users browsing this forum: Google [Bot] and 85 guests