WioTerminalについて調べておく会
なんかMaix Amigoについて調べてたら不安になってきたのでWioTerminalについても。。
端的に言えば単なるARM boardではあるので多少はマシだが辛さはあんまり変わらないといったところか。。
2CPUデザイン
M5StackのようなESP32品と比べた場合、2CPUデザインになっているのが最大の特徴か。つまり、192KiB RAMを搭載したArduinoに、UART+SPI経由でWi-Fi+BLEチップを接続したのがWioTerminalと言える。
2つのCPUで苦労も2倍だな!
ESP32はデュアルコアで1パッケージ内にアプリケーションとプロトコル処理を同居させ、プログラミングの容易さを取っている。
ハードウェア
基本的にはSeeedのサイトから辿れる。
ただの加速度センサをIMUと呼ぶのはやめて欲しいとこだな。。
Wi-Fi/BLEファームウェア
- (新) https://github.com/Seeed-Studio/seeed-ambd-firmware
- (旧) https://github.com/Seeed-Studio/seeed-ambd-sdk
旧ファームウェアはATコマンド、新ファームウェアはSPI経由のeRPCになっている。eRPCはFreescale製の Thrift風 RPC。
また新ファームウェアはArduinoCoreを使用している。
開発環境
これマジでArduinoの事しか考えてないんだよな。。というわけでArduinoベースで粘ることにする。
一応CMSISで直接使っている例もあるにはあるみたいだけど。。
Arduino
最近のArduinoは arduino-cli
というコマンドラインが提供されている。
CMakeでArduino開発を実現しようとしているプロジェクトはいくつかあるが、まぁ arduino-cli
で多くのケースでは十分なんではないかという気がする。
... まぁ個人的には十分じゃないけど。またbuildrootでコンパイラをビルドしないとダメだろうか。。
ArduinoCore
Seeedは専用のforkを持っているようだ。
FreeRTOSはsubmoduleされている。