M5Burnerで使えるfirmware imageをArduino IDEで作る
事前設定
環境設定(Preference)で、アップロード時のコマンドラインが表示されるように、以下のように設定変更する。
Arduino IDE -> Preference -> Show verbose output duringのupload側にチェック
https://gyazo.com/c10edf344c7ad7f271a8794820535cfd
コマンドラインの確認
普段通りにuploadを行い、upload時のコマンドラインを確認する。
https://gyazo.com/856e7ee7538451335d3bc2bd76c28963
コマンドラインを作る
以下、コマンドラインの*.binファイルは、例えば/private/var/folders/m7/ll3z93xd03vcj420lw3g_wqw0000gn/T/arduino/sketches/083215005AF5E0A4921FC731B59D3230/などのディレクトリの中に生成されていますが、ここでは簡単のためにディレクトリ名は省略しています。
ディレクトリを省略すると、例えば以下のようなコマンドラインが与えられて、フラッシュの書き込みが行われていることがわかります。
$ esptool --chip esp32s3 --port "/dev/cu.usbmodem14201" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 8MB 0x0 M5bit-less.ino.bootloader.bin 0x8000 M5bit-less.ino.partitions.bin 0xe000 boot_app0.bin 0x10000 M5bit-less.ino.bin
ここで、以下のようにコマンドラインオプションを変更します。
以下のオプションは削除
--port "/dev/cu.usbmodem14201"
--baud 921600
--before default_reset
--after hard_reset
-z
以下のオプションは変更
write_flash -> merge_bin
実際のコマンド: フラッシュへの書き込みからM5Stack用のイメージバイナリの作成に変更する。
--flash_size 8MB -> --flash_size keep
以下のオプションを追加
-o <出力するバイナリファイル名>
merge_binの後に追加してください。
できあがったコマンドラインは、例えば以下のようになります。
ここでは、m5bitless.binが作成したファームウエアイメージファイルになります。
$ esptool --chip esp32s3 merge_bin -o m5bitless.bin --flash_mode dio --flash_freq 80m --flash_size keep 0x0 M5bit-less.ino.bootloader.bin 0x8000 M5bit-less.ino.partitions.bin 0xe000 boot_app0.bin 0x10000 M5bit-less.ino.bin