chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

ESP32C3用にMicroPythonをビルドしようとしてエラーになる

RISC-Vを搭載しているESP32C3用にMicroPythonをビルドしようとしてエラーになる

~/lang/upy/firm/esp32/micropython/ports/esp32$ make BOARD=GENERIC_C3

CMake Error at /home/sumi/lang/upy/firm/esp32/esp-idf/tools/cmake/targets.cmake:57 (message):
  Unable to resolve 'esp32c3' for setting toolchain file.
Call Stack (most recent call first):
  /home/sumi/lang/upy/firm/esp32/esp-idf/tools/cmake/project.cmake:256 (__target_set_toolchain)
  CMakeLists.txt:58 (project)

unable to resolveと怒られても何が悪いのか原因かわからず、ググってみた。同じようなエラーに遭遇している人の書き込みあり
https://esp32.com/viewtopic.php?t=21002

使用されているバージョンの idf、esp32c3 のサポートは、リリース/v4.3 から開始する必要があります。

古いSDKだとESP32C3がサポートされていないことがわかった。
改めて読み直すとGitHubにも、「対象マイコンがESP32C3の場合は4.3.1以上を指定すること」と書かれていた。*1

ESP32-S2 and ESP32-C3 require v4.3.1 or later.

4.4をインストール

cd esp-idf/
git checkout v4.4
git submodule update --init --recursive
./install.sh 
source export.sh 

再度ビルドすると正常に終了した

make BOARD=GENERIC_C3

~/lang/upy/firm/esp32/micropython/ports/esp32$ ls build-GENERIC_C3/micropython.bin 
build-GENERIC_C3/micropython.bin

*1:よく読んでから作業しろと言われそうだが、どれが重要な情報なのか頭を打たないとわからない