鬱猫のつぶやき

鬱猫が日々思っていることをつづります

Maixduino を使ってみる

先日、Amazonで注文していたSipeed Maixduinoキットが届いたので、遊んでみる。

開発環境のセットアップ

gnu-toolchain があるので、これを落としてきてビルドする。

$ git clone --recursive https://github.com/kendryte/kendryte-gnu-toolchain
$ cd kendryte-gnu-toolchain
$ mkdir build
$ cd build
$ ../configure --prefix=/opt/kendryte-toolchain --with-cmodel=medany --with-arch=rv64imafc --with-abi=lp64f
$ make
$ sudo make install

makeにはなかなか時間がかかる。

あと、Maixduino のflashにプログラムを書き込むためのツールを入れる必要がある。これはpipで導入することが可能。

$ sudo pip3 install kflash

サンプルプログラムのビルド

まず、standalone-sdkを手元にクローンしてくる。次に、いくつか用意されているサンプルプログラムを手元にクローンしてくる。サンプルプログラムに関しては、standalone-sdkのsrcファイル以下に展開するのが良い。standalone-sdkのsrcディレクトリの下にサンプルプログラムのリポジトリに含まれる aes_128_test などのプログラムが入った状態になれば準備完了。

standalone-sdkディレクトリに入り、サンプルプログラムのうち lcd をビルドする。

$ cd kendryte-standalone-sdk
$ mkdir build
$ cd build
$ cmake ../ -DPROJ=lcd -DTOOLCHAIN=/opt/kendryte-toolchain/bin
$ make

flashへの書き込み

ビルドしたバイナリをflashに書き込むにはkflashを使う。( 私の環境では/dev/ttyUSB0 を指定して上手くいったが、環境によってはデバイスファイル名は違うはず。)

$ kflash -p /dev/ttyUSB0 -B goE lcd.bin

書き込みに失敗する場合は、sudo をつけるか、

$ sudo usermod -a -G dialout $(whoami)

を実行する。(参考: GitHub - kendryte/kflash.py: kflash, A Python-based cross-platform Kendryte K210 UART ISP Utility

書き込みを実行すると以下のような出力が端末に表示される。

[INFO] COM Port Selected Manually:  /dev/ttyUSB0 
[INFO] Default baudrate is 115200 , later it may be changed to the value you set. 
[INFO] Trying to Enter the ISP Mode... 
*
[INFO] Greeting Message Detected, Start Downloading ISP 
Downloading ISP: |=========================================================================================================================================================================| 100.0% 10kiB/s
[INFO] Booting From 0x80000000 
[INFO] Wait For 0.1 second for ISP to Boot 
[INFO] Boot to Flashmode Successfully 
[INFO] Selected Flash:  On-Board 
[INFO] Initialization flash Successfully 
Programming BIN: |=========================================================================================================================================================================| 100.0% 10kiB/s
[INFO] Rebooting...

Maixduinoを再起動すると、LCDCanaan Kendryte K210が表示される。

f:id:tsunekoh:20190714105534j:plain

ドキュメントが結構充実しているので、これを見ながらもっと遊んでみることにしよう。

こういう端末買うの初めてなので、わかっていなかったのだが、標準出力に出た内容を確認する場合は、

$ cat /dev/ttyUSB0

で一応取得できる。