完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在配置MQTT客户端时,因为我想接收很大的数据包(最大500k)。因此我想一次接收完成(扩展了psram)。所以我在配置MQTT客户端时将栈大小设置为114688,将接收缓冲区大小设置为102400.但是这样就导致esp_mqtt_client_start()这个函数无法返回,且报错E (7296) MQTT_CLIENT: Error create mqtt task;我想咨询一下,idf(v4.1)对MQTT的栈大小有最大限制么?最大可以设多大呢?
|
|
相关推荐
1个回答
|
|
在处理这个问题时,我们可以分为以下几个步骤:
1. **确认问题**:首先,我们需要确认问题确实是由于栈大小分配过大导致的。从你的描述来看,这个可能性很大。 2. **查找文档**:查看ESP-IDF(版本4.1)的官方文档,了解MQTT客户端栈大小的限制。但是,文档中可能没有明确的最大栈大小限制。 3. **调整栈大小**:尝试减小栈大小,例如将栈大小设置为51200(50KB),看看是否能够成功初始化MQTT客户端。 4. **分批接收数据**:如果仍然无法解决问题,可以考虑将大的数据包分批次接收。这样,即使栈大小较小,也能够处理大的数据包。 5. **使用外部存储**:如果分批接收数据仍然无法满足需求,可以考虑将接收到的数据存储到外部存储设备(如SD卡)中,以减少对栈的需求。 6. **检查其他配置**:除了栈大小之外,还需要检查其他配置,如任务优先级、任务数量等,以确保它们不会导致初始化失败。 |
|
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
437浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 20:14 , Processed in 0.687570 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号