ESP32のマルチコアでSDカードを読んで「assert failed」エラーが出て解決した話

ESP32

以前の記事でESP32のCore1でメインの処理(LEDを光らせる)をしながらCore0でSDカード内の画像データを読み込むということをしたのだが、久しぶりに同じプログラムを書き込んだら「assert failed」というエラーが起きてしまった。

エラーの原因は不明なのだが、結論から言うとSD.begin()をSetup内ではなくCore0内で実行しないとエラーが出ることが判明。
もう一点、Core0をWhile(1)で無限ループさせるときは”vTaskDelay(1)”を挟まないとWatchDogエラーが起きるので注意。

もう一つの解決法:ESP32ライブラリのバージョンを下げる

こっちを先に行えばよかった。。。
Boardマネージャのesp32を1.0.6に戻して書き込みを行うとエラーが起こらなくなります。

コメント

タイトルとURLをコピーしました