折腾好几天了,真搞不定了,哪位有经验的大佬帮我搞定 100 元红包奉上。
我买的是一个 esp32s3-n16r8 的开发板,板子上集成了一个 i2s 麦克风,我外接了一个 i2s 小功放并接了一个喇叭,运行 esp32 adf 官方语音唤醒识别示例 https://github.com/espressif/esp-adf/tree/master/examples/speech_recognition/wwe ,就是 master 分支代码,idf 版本是 4.4.1 。
但运行后,总是崩溃在 i2s_stream_init 函数,main 函数中 setup_player 和 start_recorder 里面都会调用这个函数,setup_player 先执行,调用没问题,start_recorder 中调用 i2s_stream_init 时单片机 reset 重启。
跟踪 i2s_stream_init 发现他会调用 heap_caps_malloc ,并且就在这里出问题,接下来的代码没有执行,s3 芯片是有外部 SPIRAN ,我都配置好了,并且 mem test 也显示 ok ,esp_get_free_heap_size 显示也有 8M 多可以用。
如果我把 setup_player 注释掉,只运行 start_recorder ,i2s_stream_init 可以成功,但也不太正常,几秒后也会崩溃,实在搞不清为什么了 :D
wx jhzzzz, qq 5488232
1
elmagnificogg 2023-03-29 10:52:00 +08:00
重启如果是内存溢出了或者其他异常会有提示,你有吗?
如果是直接重启,没有任何提示,那是看门狗挂了,你检查一下是不是各种 patch 没打上 |