当前位置: 首页 > news >正文

记录一次ESP32报错Guru Meditation Error: Core 1 panic‘ed (Double exception).

一、问题描述

需求: ESP32S3单片机,连接一个麦克风读取5s后,编码后发送到百度云进行语音识别。通过freertos框架,将任务放在核1中运行(放在核0同样报错)
问题: 在最后的发送语音数据中,ESP32崩溃重启,显示错误Guru Meditation Error: Core 1 panic’ed (Double exception).
尝试解决: 将任务放在loop()中运行,而不是通过freertos的task运行,可以正常运行。

二、问题解决

  1. 放在loop()中运行
  2. 增加task的任务栈空间大小,从原来的2048增加到20480之后可以正常运行了

三、扩展

后续想要将录音时间增加并发送,例如增加到10s,此时放在loop中也无法运行了。报错如下,怀疑可能式内存不够了。

Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1). 

四、相关代码

void speech_recognition_send()
{assembleJson(token);sendToSTT();        // 这一部分中更长的录音时间会导致需要的任务栈空间增加,导致任务崩溃Serial.println("Recognition complete");
}void assembleJson(String token)
{memset(data_json, '\0', data_json_len * sizeof(char));strcat(data_json, "{");strcat(data_json, "\"format\":\"pcm\",");strcat(data_json, "\"rate\":16000,");strcat(data_json, "\"channel\":1,");strcat(data_json, "\"cuid\":\"577200\",");strcat(data_json, "\"token\":\"");strcat(data_json, token.c_str());strcat(data_json, "\",");sprintf(data_json + strlen(data_json), "\"len\":%d,", adc_data_len * 2);strcat(data_json, "\"speech\":\"");strcat(data_json, base64::encode((uint8_t *)adc_data, adc_data_len * sizeof(uint16_t)).c_str());strcat(data_json, "\"");strcat(data_json, "}");// 显示长度Serial.println(strlen(data_json));// 显示JSON数据的前面部分// Serial.println(data_json);
}void sendToSTT()
{// 以下部分会受录音长度影响,超过5s很可能导致内存崩溃重启int httpCode;http_client.begin("http://vop.baidu.com/server_api");http_client.addHeader("Content-Type", "application/json");// http_client.addHeader("Accept", "application/json");httpCode = http_client.POST(data_json);if (httpCode > 0){if (httpCode == HTTP_CODE_OK){String payload = http_client.getString();Serial.println(payload);}}else{Serial.printf("[HTTP] POST failed, error: %s\n", http_client.errorToString(httpCode).c_str());}http_client.end();
}
http://www.dtcms.com/a/311085.html

相关文章:

  • 大模型Agent记忆的主流技术与优缺点解析
  • OpenCV HSV与RGB颜色模型的区别
  • 深度学习核心:神经网络-激活函数 - 原理、实现及在医学影像领域的应用
  • 【matlab例程】无迹粒子滤波(UPF)的例程,用于三维环境下多雷达目标跟踪,非线性系统
  • Maven引入其他模块无法调用,出现Unable to find main class
  • [Windows] 微软.Net运行库离线合集包 Microsoft .Net Packages AIO v13.05.25
  • chrome的数据采集插件chat4data的使用
  • Vue 服务端渲染 Nuxt 使用详解
  • WinForm之ListBox 控件
  • Android内存优化核弹方案:LeakCanary 3.0定制化与Heap Dump自动化分析实战
  • WordPress AI写作插件开发实战:从GPT集成到企业级部署
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情数据可视化分析-热词情感趋势柱状图
  • uniapp倒计时计算
  • 【Linux系统】详解,进程控制
  • NCV8402ASTT1G自保护N沟道功率MOSFET安森美/ONSEMI 过流过温保护汽车级驱动NCV8402ASTT1
  • 【论文精读】3D Gaussian Splatting for Real-Time Radiance Field Rendering
  • 八股取士-go
  • Angular初学者入门第一课——搭建并改造项目(精品)
  • MySQL(174)如何理解MySQL的多版本并发控制(MVCC)?
  • Spring框架与深度学习实战应用
  • 数字人开发02--前端服务配置
  • 【Java】不允许直接操作数据表中的数据,开发前台界面来实现对多个数据表的增删改查
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第三天(JavaScript)
  • Python编程基础与实践:Python模块与包入门实践
  • MyBatisPlus之核心注解与配置
  • JP3-3-MyClub后台后端(三)
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘seaborn’问题
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频摘要生成与智能检索优化进阶(377)
  • 2025-08 安卓开发面试拷打记录(面试题)
  • rabbitmq消息队列详述