以前に紹介したLCD開発基板で遊んでみましたので記事にしてみます。
手始めに、Arduino IDEで書き起こされたmp3プレイヤーのサンプルをVSCode+PlatformIOの環境に移植してみようと思います。サンプルプログラムはこちらからダウンロードできます。
そこで、まずは開発環境のセットアップから(VSCodeとPlatformIOはセットアップ済みという前提でお話を進めます)。
プロジェクトの作成
Boardは「Espressif ESP32-S3-DevKitC-1-N8」を選びます。

フラッシュメモリのサイズとPSRAMの有無は現状と一致していませんが、この次の手順で有効化できるため、一旦問題ありません。
platformio.iniの編集
使用するフラッシュメモリサイズの最大化とPSRAMを有効にします。
情報の出所は以下になります。
なお、デフォルトでは、Serial出力はUART経由になりますが、Serialの受信側がCDCで接続されているため、Serialで出力した内容は受信できません。Serial.println()しても何も表示されないということです。
Serialの出力先をCDCにするためにビルドオプションに-DARDUINO_USB_CDC_ON_BOOT=1を指定する必要があります。
[env:esp32-s3-devkitc-1] platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino board_build.arduino.memory_type = qio_opi board_build.flash_mode = qio board_build.psram_type = opi board_upload.flash_size = 16MB board_upload.maximum_size = 16777216 board_build.partitions = default_16MB.csv build_flags = -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=1 monitor_speed = 115200 upload_speed = 1500000
;build_type = debug
なお、PSRAMを有効化してもコンパイル終了時の使用メモリ容量の表示には反映されませんが、heap_caps_malloc()等でPSRAM領域を確保できるようになります。
あと、build_type = debugを有効にすると、以下の手順でデバッグ実行できるようになります。
デバッグしたい場合はこのコンパイルスイッチを有効にしておかないと、ローカルとデバイスのバイナリが一致せずハマるので注意しましょう。
セットアップ編は以上です。続編については鋭意作成中です。