TOPPERS Advent Calendar 2020 2 日目の記事です。
はじめに
M5StickV で TOPPERS を動かしてみる で、M5StickV上でTOPPERSが動作することができたので、次は TOPPERS BASE PLATFORM を動かしてみます。TOPPERS BASE PLATFORM にはデバイスドライバーが含まれていて、M5StickV のいくつかのデバイスもサポートされています。
準備
ツールチェーン
M5StickV で TOPPERS を動かしてみる では、Platform IOでインストールされたツールチェーンをそのまま使ってみましたが、TOPPERS BASE PLAFORM(ST) の標準で指定されている The xPack GNU RISC-V Embedded GCC を使用します。
以下の順にインストールします
- Node.js
- xpm
- The xPack GNU RISC-V Embedded GCC
TOPPERS BASE PLAFORM(ST)
M5StickV で TOPPERS を動かしてみる でダウンロードした3つのファイルに加えて、
TOPPERS BASE PLAFORM(ST): asp_baseplatformv1.4.1_051120.tar.gz
M5StickV用のパッチ: TOPPERS M5StickV patch
をダウンロードします。
作業を行うディレクトリーに以下の4つのファイルを入れます。
asp-1.9.3.tar.gz
asp_arch_riscv_gcc-1.9.4.tar.gz
asp_baseplatformv1.4.1_051120.tar.gz
cfg-osx-static-1_9_5.tar.gz
toppers-m5stickv-patch.zip
解凍します
tar xvzf asp-1.9.3.tar.gz # 1. asp フォルダーが作成されます
tar xvzf asp_baseplatformv1.4.1_051120.tar.gz # 2. asp フォルダーに追加されます
tar xvzf asp_arch_riscv_gcc-1.9.4.tar.gz # 3. asp_arch_riscv_gcc-1.9.4 フォルダーが作成されます
tar xvzf cfg-osx-static-1_9_5.tar.gz # 4. cfg ファイルが作成されます
unzip toppers-m5stickv-patch.zip # 5. toppers-m5stickv-patch-main ファイルが作成されます
3 〜 5 のファイルを asp フォルダーにコピーします
cp -pr asp_arch_riscv_gcc-1.9.4/asp/* asp
mkdir -p asp/cfg/cfg
cp -p cfg asp/cfg/cfg
cp -pr toppers-m5stickv-patch-main/asp/* asp
ビルド
まず、カーネルをビルドします。
cd asp/OBJ/K210_GCC
mkdir libkernel
cd libkernel
#ツールチェーンのパス
PATH=$PATH:~/Library/xPacks/@xpack-dev-tools/riscv-none-embed-gcc/8.3.0-2.3.1/.content/bin
perl ../../../configure -T k210_gcc -f -g ../../../cfg/cfg/cfg
make depend
初回警告が表示されますので、キャンセルします。
このまま許可をクリックします。
再度実行します。
make depend
開くをクリックすると、makeが開始します。
これでビルドできるようになります。カーネルをビルドします。
make libkernel.a
アプリビルド (TEST)
カーネルがビルドできたら、アプリをビルドします。
cd ../TEST
make depend
make
M5StickVをUSBで接続して、フラッシュメモリに書き込みます。
~/.platformio/packages/tool-kflash-kendryte210/kflash.py asp.bin
VSCodeのターミナル等でシリアル接続すると、次のようなログが出力されました。
TOPPERS/ASP Kernel Release 1.9.3 for K210 (Nov 24 2020, 21:28:00)
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2004-2014 by Embedded and Real-Time Systems Laboratory
Graduate School of Information Science, Nagoya Univ., JAPAN
Copyright (C) 2017-2019 by Education Working Group TOPPERS PROJECT
mSystem logging task is started on port 1.
ASP TASK Monitor Release 1.2.0 for K210 (Nov 24 2020, 21:10:31)
Copyright (C) 2016-2019 by TOPPERS PROJECT Educational Working Group
mon>h
Display BYTE [start address] [end address]
HALF [start address] [end address]
WORD [start address] [end address]
TASK
REGISTER
Set BYTE [start address]
HALF [start address]
WORD [start address]
COMMAND [mode] mode=1 or (2)
SERIAL [port id]
TASK [task id]
Task ACTIVATE (act_tsk)
TERMINATE (ter_tsk)
SUSPEND (sus_tsk)
RESUME (rsm_tsk)
RELEASE (rel_tsk)
WAKEUP (wup_tsk)
PRIORITY [pri] (chg_pri)
Log MODE [logmask] [lowmask]
TASK [cycle time(ms)] [count]
PORT [no] [logno] [portaddress]
Help [arg1]
Rtc DATE (year #) (month #) (day #)
TIME (hour #) (min #) (sec #)
INTM mode(0-4)
WAKEUP time(sec)
CLOCK DATE:TIME
mon>
アプリビルド (DEMO)
DEMOアプリをビルドします。
cd ../DEMO
make depend
make
M5StickVをUSBで接続して、フラッシュメモリに書き込みます。
~/.platformio/packages/tool-kflash-kendryte210/kflash.py asp.bin
おわりに
TOPPERS BASE PLATFORM が動きました。他のデバイスも動かしてみたいと思います。