前回ボード入手のKendryte、K210についてC/C++で恒例Lチカをしてみたいと思います。以前はK210についてはMAiX PyというMicroPython環境ばかりでしたが、C/C++でも環境が整ってきたようで随分使えるようになっていました。ビルドに使う環境はWindows PC上の VSCode + PlatformIO です。
※「鳥なき里のマイコン屋」投稿順Indexはこちら
まずはK210のソフトウエア開発に欠かせないご本家KendryteのGitHubへのリンクから。
今回のソフト作成は PlatformIO 利用なので、PlatformIOのK210についてのドキュメンテーションにも目を通しておくべきかと思いました。リンクは以下に。
開発用のフレームワークは3種類
PlatformIOでK210のC/C++での開発に使えるフレームワークは、以下の3種類であるようです。
-
- K210 Standalone SDK
- K210 FreeRTOS SDK
- Maixduino (Arduino互換)
ぼちぼちと3種類やってみるつもりですが、今回は一番お手軽な Arduino互換のフレームワークでLチカします。なおこちらのフレームワークは、Standalone SDKの上に「一皮被せた」ものみたいです。
APIなどは、以下のドキュメントから調べることができます。見る限り結構充実している?Arduinoベースでもそうとうできるのでないかしらん。
勿論、VSCode+PlatformIOを使わずに、ご本家 ArduinoIDE環境下でMaixduinoすることも可能であります。
プロジェクトの作成
PlatformIOのHOMEから、Project Wizardを呼び出してやれば、プロジェクトの作成は簡単にできます。今回の設定を以下に示します。
ArduinoベースのLチカなので、ソースも要らないか、とは思ったのですが、念のため、今回使用のものを以下に。
#include <Arduino.h> int counter; void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); counter = 0; } void loop() { if ((counter++ % 2) == 0) { digitalWrite(LED_BUILTIN, HIGH); } else { digitalWrite(LED_BUILTIN, LOW); } delay(2000); }
なお、LED_BUILTIN端子の実体は13番端子で、回路図を確認するとUSER LEDのREDにつながってました。前回調べたとおりUSER LEDはRGBタイプで色を変えられます。上記の方法だと赤で点滅する筈。
オブジェクトファイルのuploadでトラぶる
MAiX BiTボードをUSBに接続した後で、PCのデバイスマネージャで確認すると、comポートが2つ見えるのです。手元の環境では、
com11とcom12
として見えました。この状態で何も指定せずにビルドしたオブジェクトを upload しようとすると com12が使われました。そして、以下のようにエラー!
[INFO] COM Port Selected Manually: COM12 [INFO] Default baudrate is 115200 , later it may be changed to the value you set. [INFO] Trying to Enter the ISP Mode... *************** Greeting fail, check serial port ([ERROR] No vaild Kendryte K210 found in Auto Detect, Check Your Connection or Specify One by`-p COM3` ) *** [upload] Error 1 ============================================================================================== [FAILED] Took 37.02 seconds ==============================================================================================
「手動で設定してみろや」みたいな事が書いてあったので、もう一つのcomポートをcom11を使うように設定してみたら、うまく行きました。
その際の Platformio.ini ファイルの内容が以下に。
[env:sipeed-maix-bit-mic] platform = kendryte210 board = sipeed-maix-bit-mic framework = arduino upload_protocol = kflash upload_port = com11
なお、upload_protocolのデフォルトは kflash になっています。わざわざiniファイルで指定してあるのは、後でRISC-V Debugger試してみるかと思っているためです。でも配線メンドイな。今回は無しでOK。
LチカOK
冒頭のアイキャッチ画像にLチカしているところの写真を掲げました。USBポートの右上のLEDがユーザLEDでこれが予定通り赤色点滅します。
Lチカのビルド後のメモリ使用の様子がこちら。
RAM: [ ] 0.5% (used 32432 bytes from 6291456 bytes) Flash: [ ] 0.4% (used 68247 bytes from 16777216 bytes)
なんといっても MAiX BiTは、RAM 6Mバイト(他にAIアクセラレータ専用部分が2Mあるらしい)、Flash 16Mバイトという組み込みにしては広大なメモリを搭載しているので、Lチカなど吹けば飛ぶような(飛ばないケド)割合しか使いませぬ。
こんだけメモリあるので楽しみだな。次は64ビットのRISC-Vの件かね。