Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

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

関連記事

kanetugu2018
福井在住の組み込みエンジニアです。
https://github.com/tmori/athrill
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away