TOPPERS/athrillをdockerで利用できるようにするまで


概要

2018年10月/TOPPERS開発者会議で athrill の紹介をしてきました.その際,現状の TOPPERS/athrill の課題について共有させて頂いたところ,新たに協力をして頂ける方に巡り合えました.とてもありがたい話です(感謝).

TOPPERS/athrill を広めていく上での当面の課題は,以下と考えています.


  • 64bit linux v850/rh850 gccが存在しないこと.

  • athrill環境のインストールに手間がかかること.

上記の内,gcc作成は苦手分野なので,協力者の方にお願いをさせて頂き,私の方では2個目の課題について,やり方を模索し情報共有していきたいと考えています.


前提とする環境

まずは,athrillの実行環境について整理します.

これまでは,Windows/MinGW,WSL, native linux(32bit/64bit)等で動作させてきましたが,

とりあえず WSL を前提にした環境構築方法について模索したいと思います.

WSLは,Windows 10 home/pro 両方で対応したいと思います.また,インストールの手間をなくすために,docker 上で athrillを動作できるようにしたいと思います.


ゴール設定


  1. WSL上で docker をインストールする手順を公開する

  2. docker hub にathrill実行環境を公開する

  3. docker hub に公開された athrill実行環境の利用方法を公開する

  4. 64bit v850 gcc のビルド手順を公開する

  5. 64bit v850 gcc を 公開した docker hub にインストールし,公開する

  6. 64bit linux 対応された cfg を 上記 docker hub にインストールし,公開する

  7. docker hub で athrill の全サンプル動作確認する


進捗状況



  • 2018.10.29 :ゴール1達成


    • Windows10 home/WSL 上で docker をインストール/サンプル動作確認できるようになりました.

    • 手順は,『WSL上でDocker Engineが動くようになっていたっぽいという話』を参照ください(感謝).

    • Windows10 home でもインストールできました.

    • ただし,BIOS設定で仮想化支援機能「Intel VT/AMD-V」を有効にしてから上記手順を実施しました.




  • 2018.11.02 :ゴール2達成


    • 協力者の方の docker image(kaizenjapan/ubuntu-athrill)を使用させて頂き,


    • 自分のdocker hub アカウントに公開しました.

    • 差分は,athrillソースを最新にして,パスを切ったくらいですが‥




  • 2018.11.02 14:19 :ゴール3達成



    • ここにathrill実行環境の利用方法を公開しました!




  • 2018.11.04 17:02 :ゴール4達成




  • 2018.11.14 12:27 :ゴール5達成


    • docker hub に 64bit Linux版v850-gccをインストールしたものを公開しました(kanetugu2015/athrill_asp3:ver3.0).




docker/athrill実行環境のインストール方法

以下のコマンドで,dockerからathrill_asp3のサンプル実行環境をダウンロードできます.

$ docker run -it kanetugu2015/athrill_asp3:ver3.0

Unable to find image 'kanetugu2015/athrill_asp3:latest' locally
latest: Pulling from kanetugu2015/athrill_asp3
d3b478b0a2b0: Already exists
adadd1c561a4: Already exists
5f00b46af26a: Already exists
3d489676f78d: Already exists
777fbb85af61: Already exists
ba59bcea44b9: Pull complete
Digest: sha256:9520a93453ce6f1a997f90189c276aa592eda7c8b6dfb61206b7d9a83d24531d
Status: Downloaded newer image for kanetugu2015/athrill_asp3:ver3.0

ダウンロードが終わると,自動的にログインした状態になります.

v850 gcc もインストール済みです.

root@1d69bbcb9ee0:/# uname -a

Linux 1d69bbcb9ee0 4.4.0-17134-Microsoft #345-Microsoft Wed Sep 19 17:47:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux
root@1d69bbcb9ee0:/# v850-elf-gcc --version
v850-elf-gcc (GCC) 4.9-GNUV850_v14.01
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


docker/athrill_asp3のサンプル実行方法

以下のコマンドで,サンプル実行フォルダに移動します.

root@8114dc33e759:/# cda

root@8114dc33e759:/athrill/sample/os/asp3/OBJ#

次に,athrillを起動します.

# athrill2 -c1 -i -m memory.txt -d device_config.txt asp

成功すると,以下のathrill起動ログが出力されます.

core id num=1

ROM : START=0x0 SIZE=512
RAM : START=0x5ff7000 SIZE=512
Elf loading was succeeded:0x0 - 0x7771 : 29.881 KB
Elf loading was succeeded:0x7774 - 0x1006c : 0.0 KB
ELF SYMBOL SECTION LOADED:index=16
ELF SYMBOL SECTION LOADED:sym_num=550
ELF STRING TABLE SECTION LOADED:index=17
Not supported:unknown typeref(*) debug_offset=0x60f1
Not supported:unknown typeref(*) debug_offset=0x9470
Not supported:unknown typeref(*) debug_offset=0x9a1d
[DBG>

asp3を実行するには,ここで「c」コマンドです!

[DBG>c

[CPU>
TOPPERS/ASP3 Kernel Release 3.2.0 for V850-ESFK3 (Oct 27 2018, 06:49:10)
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2004-2017 by Embedded and Real-Time Systems Laboratory
Graduate School of Information Science, Nagoya Univ., JAPAN

System logging task is started.
Sample program starts (exinf = 0).
E_OBJ (-1) reported by `serial_opn_por'.
task1 is running (001). |
task1 is running (002). |
task1 is running (003). |
task1 is running (004). |
task1 is running (005). |
task1 is running (006). |
task1 is running (007). |
task1 is running (008). |
^C


関連記事