ETロボコンシミュレータ 体験報告
モデルベース開発をするのであればシミュレータ環境は欲しいところ。
TOPPERS/箱庭プロジェクトからリリースされたシミュレータの使い方を体験するチュートリアルがあるので、追試してみました。
https://qiita.com/kanetugu2018/items/0e521f4779cd680dab18
環境
Windows10 1909 18363.476 WSL Ubuntu18.04 gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Unity 2018.3.7f1 のインストール
Unityはバージョンアップによる機能追加が多く、互換性もボチボチ壊れるので、インストールするバージョンは合わせるのがよい。 2018.3.7f1 はLTS版ではないようなので、LTS版のページに飛んでしまうと見つけられない。
インストーラをダウンロードしたら、ダイアログにしたがって進められる。
WSL のインストール
私の環境ではインストール済みだった。UbuntuのLTS版である18.04を使っている。
Rubyのインスト―ル
ロボット制御プログラム(つまり、EV3のファーム)のソースを自動生成するツールがあるのだが、それがrubyで出来ている。
sudo apt install ruby
Windows Terminalをインストール
WSL上で開発を進めることになるので、実用できるターミナルがあるとインストール作業が捗る。 Windows Terminal (preview) がMicrosoft Storeからリリースされているのでそれを使う。
athrillのインストール
このページを参考にした。
$ make timer32=true
のところでエラーがでた。
$ gcc -O3 -c -g -Wall -Wunknown-pragmas -Wimplicit-int -Wtrigraphs -std=gnu99 -mtune=native -march=native -mfpmath=both -I. -I../../../athrill/trunk/src/inc -I../../../athrill/trunk/src/lib -I../src/cpu -I../src/cpu/config -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/api -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/api -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/config -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/config/os/target/os_asp -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/target -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/target/os -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/device -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/inc -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/os/target/os_asp -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/protocol/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/node/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/topic/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/comm/cimpl/target/lwip -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/comm/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/packet/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/packet/template/version/kinetic -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/packet/cimpl/version/kinetic -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/protocol/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/transfer/cimpl -DTARGET_ATHRILL -DLWIP_TRANSPORT_ETHERNET -DOS_LINUX -DSUPRESS_DETECT_WARNING_MESSAGE ../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/comm/cimpl/mros_comm_tcp_client_factory_cimpl.c In file included from ../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/config/mros_sys_config.h:9:0, from ../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/comm/cimpl/mros_comm_tcp_client_factory_cimpl.c:19: ../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/config/os/target/os_asp/mros_os_config.h:15:28: error: unknown type name ‘intptr_t’; did you mean ‘__intptr_t’? extern void cyclic_handler(intptr_t exinf); ^~~~~~~~ __intptr_t Makefile.env:61: recipe for target 'mros_comm_tcp_client_factory_cimpl.o' failed make[1]: *** [mros_comm_tcp_client_factory_cimpl.o] Error 1 make[1]: Leaving directory '/mnt/e/src/github.com/tmori/athrill-target/v850e2m/build_linux' Makefile:70: recipe for target 'libmros.a' failed make: *** [libmros.a] Error 2
インストール作業中にビルドエラーが出てしまったので中断。解決できそうか判断でき次第再開することになりそう。
.cソースに #include <stdint.h>や #include "stdint.h" を追加するだけでは解決しないようです。
今日はここまで。解決できれば次回に続きます。
(2019/12/03 続き)
athrill-targetで make するとビルドエラーが発生する件はリポジトリごと再取得することで回避できました。
gcc5とgcc7での結果を比較するためにgcc-5をaptでインストールしたことも関係あるかもしれません。
原因は分からないのですが、インストール作業を進めることを優先します。
athrill用gcc
V850向けクロスコンパイラを取得します。
$ wget https://github.com/tmori/athrill-gcc/releases/download/v1.0/athrill-gcc-package.tar.gz $ tar xzvf athrill-gcc-package.tar.gz │make[1]: Leaving directory '/mnt/e/src/github.com/tmori/athrill-target/v850e2m/build_linux' athrill-gcc-package/ │ranlib libmain.a libcui.a libcpu.a libbus.a libmpu.a libdevice.a libloader.a libstd.a libmros.a athrill-gcc-package/athrill-gcc.tar.gz │gcc -O3 -Wl,--allow-multiple-definition libmain.a libcui.a libcpu.a libbus.a libmpu.a libdevice.a libloader.a libstd.a libmros.a -o athathrill-gcc-package/binutils-2.24.tar.gz │rill2 -lpthread -lm athrill-gcc-package/libgmps.tar.gz │/bin/cp athrill2 ../../../athrill/trunk/src/../../bin/linux/ athrill-gcc-package/README.txt $ cd athrill-gcc-package/ $ tar xzvf athrill-gcc.tar.gz $ sudo mv usr/local/athrill-gcc /usr/local
箱庭用 EV3RT 開発環境のダウンロード
git clone https://github.com/tmori/athrill-sample.git
以上でインストール作業は終わりです。 最後に、ソースの修正やドキュメントの更新を迅速に対応して頂いた @tmori さんありがとうございました。