2022/2/3
初版
Wio_ExtFlashLoad sketch build by platformio
「Wio Ext Flash Load」、
「External Flash Loader library for Wio Terminal」
にあるWio_ExtFlashLoad(WriteSampleMenu.ino)スケッチをplatformioでビルドする。
arduinoのサンプル・スケッチとして提供されているものだが、plaformioビルド環境でビルドする。
Wio_ExtFlashLoadは、アプリを起動するメニューになっており、
SDカードにビルドした.binを起き、それを選択して起動する。
以下の手順をダウンロード/ビルド/書き込みする:
# platformioの環境に入る
# プロジェクト・ディレクトリを作成する
mkdir Wio_ExtFlashLoad
cd Wio_ExtFlashLoad
mkdir src
cd src
wget https://raw.githubusercontent.com/ciniml/ExtFlashLoader/master/examples/WriteSampleMenu/WriteSampleMenu.ino
wget https://raw.githubusercontent.com/ciniml/ExtFlashLoader/master/examples/WriteSampleMenu/menu_data.h
cd ..
gedit platformio.ini
# 後節にあるplatformio.iniの内容を作成する
# ビルド&書き込み
pio run -t upload
以上で、実行すると、メニューが表示されるようになる。
wio-terminal用:
[env:seeed_wio_terminal]
platform = atmelsam
board = seeed_wio_terminal
framework = arduino
build_flags = -DWIO_TERMINAL
upload_protocol = sam-ba
monitor_speed = 115200
lib_ldf_mode = deep+
lib_deps =
https://github.com/Seeed-Studio/Seeed_Arduino_mbedtls/archive/dev.zip
https://github.com/Seeed-Studio/Seeed_Arduino_rpcUnified/archive/master.zip
https://github.com/Seeed-Studio/Seeed_Arduino_rpcBLE/archive/master.zip
https://github.com/Seeed-Studio/Seeed_Arduino_rpcWiFi/archive/master.zip
https://github.com/Seeed-Studio/Seeed_Arduino_FreeRTOS/archive/master.zip
https://github.com/Seeed-Studio/Seeed_Arduino_FS/archive/master.zip
https://github.com/Seeed-Studio/Seeed_Arduino_SFUD/archive/master.zip
#
https://github.com/Seeed-Studio/Seeed_Arduino_LCD/archive/master.zip
#
arduino-libraries/NTPClient@^3.1.0
#
ciniml/ExtFlashLoader@^0.1.2
アプリ用SDの詳細は「External Flash Loader library for Wio Terminal」に記述されているので、その中に入れる.binの作成方法について説明する。
「pio run」でビルドすると
以下に.binができる:
.pio/build/seeed_wio_terminal/firmware.bin
これをfirmware.binをapp.binにリネームしてSDにコピーする。
これだけでメニューから起動できる。
ただ、このままだとアプリ起動後、
メニューに戻ることができないので
setup()にボタンAを押しながらリセットしたときに
メニューに戻るコードを埋め込む。
(1)TFT_eSPI対応アプリの場合、「External Flash Loader library for Wio Terminal」の「アプリケーションのメニューアプリ対応」を参照のこと。
(2)LGFX対応アプリの場合は
以下のコードを埋め込む:
以下のヘッダーを追加する:
///////////////////////////////////////////
// application menu header
#include <cstdint>
#include <ExtFlashLoader.h>
///////////////////////////////////////////
変更前:
void setup() {
lcd.init();
-------------------
→
変更後:
void setup() {
//// goto application menu ///////////////
lcd.init();
pinMode(WIO_KEY_A, INPUT_PULLUP);
if( digitalRead(WIO_KEY_A) == LOW) {
lcd.print("Launching QSPI application\r\n"); // for LGFX
ExtFlashLoader::ExtFlashLoader loader;
}
//////////////////////////////////////////
//
//lcd.init();
platformio.iniには
以下のライブラリを追加する:
lib_deps =
...
<省略>
...
#
ciniml/ExtFlashLoader@^0.1.2
terminal関連:
Bootterm – a developer-friendly serial terminal program
LovyanGFX関連:
LovyanGFX - Display (LCD / OLED / EPD) graphics library (for ESP32 SPI, I2C, 8bitParallel / ESP8266 SPI, I2C / ATSAMD51 SPI) - M5Stack / M5StickC / TTGO T-Watch / ODROID-GO / ESP-WROVER-KIT / WioTerminal / and more…
LovyanGFX LCD Graphics driver
LovyanGFX-Display ライブラリを使用したスケッチをplatformioでビルドする
platformio関連:
arduinoフレームワーク用platformio.ini集
Building Core2 FactoryDemo in PlatformIO
VSCodeとPlatformIOでM5Stack Core2開発
M5Stack Core2とVSCode + PlatformIOとでM5Stackプログラミングを始めてみた。
Arduino-IDE関連:
Arduino IDE environment - M5Paper
Arduino IDEのインストールと設定 (Windows, Mac, Linux対応)
以上