esp32 s3 创建大任务栈的时候,任务创建失败原因;如何配置esp32的freertos的堆大小

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

esp32 s3 创建大任务栈的时候,任务创建失败原因

代码如下,使用xTaskCreate动态创建栈大小为8192*4的任务创建失败,返回值是-1,原因是freertos的堆大小溢出了

void init_ui(parameter_t *parameter)
{
  init_lcd();
    BaseType_t status = xTaskCreate(lcd_update_task, "lcd", 8192 * 4, parameter, 1, &lcd_task);
  if (status != pdPASS) {
      ESP_LOGE(UI_TAG, "xTaskCreate lcd_update_task err");
      ESP_LOGI("Free heap", "Free heap: %lu", esp_get_free_heap_size());
      ESP_LOGI("Heap Info", "Free heap size: %u bytes", xPortGetFreeHeapSize());
  }  
  status = xTaskCreate(update_ui, "ui", 4096, parameter, 1, &ui_task);
  if (status != pdPASS) {
      ESP_LOGE(UI_TAG, "xTaskCreate update_ui err");
  }    
}

解决办法

1.使用静态创建任务

static StackType_t lcdTaskStack[8192 * 4];  // 静态分配的栈
static StaticTask_t lcdTaskBuffer;      // 静态任务控制块
void init_ui(parameter_t *parameter)
{
  init_lcd();
  BaseType_t status = xTaskCreateStatic(lcd_update_task, "lc

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文武先生hh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值