wide_snow’s blog

30代の組込みエンジニア(ファーマー)による技術メモの記録

スポンサードリンク

TOPPERS/FMPシミュレーション実行環境の作成方法(成功編)

wide-snow.hatenablog.com

 

TOPPERS/FMPシミュレーション実行環境の作成方法1(失敗編)ーまとめ
「Sourcery G++ Liteを使う必要がある」
ことが分かりました。
 
今回はクリーンインストールしたWindows 7 32bit環境に対して
Sourcery G++ Liteをインストールし、シミュレーション環境を作成します。
 

テスト用TOPPERS/FMPを入手

にある「マルチプロセッサアプリケーション プログラミングライブ」というリンクをクリックします。
 

f:id:wide_snow:20160417091114p:plain

 
conf2011_multicore_live.zip
がダウンロードされます。この中に以下のドキュメントやソースコードが入っています。
conf2011_multicore_live.zip
+- fmp_1_2_log.zip
+- multiprocessor_programming_live.pdf
+- README.txt
+- skyeye_devm_package-1.0.5.zip
+- TLV_1.3.zip 
 

Cygwinを入手してインストール

ツールは様々なサイトで解説されているので、それらを参考にインストールします。
Cygwinのバージョンによって若干インストール出来る項目が違うようですが
デフォルト設定に加え「Select Packages」で下記を追加インストールしています。
Devel
+- gcc-core: GNU Compiler Collection (C, OpenMP)
+- gcc-g++: GNU Compiler Collection (C++)
+- gdb: The GNU Debugger
+- make: The GNU version of the ‘make' utility
 全て
Libs
 検索画面に”boost”を入れてヒットしたもの全て
 

f:id:wide_snow:20160417091130p:plain

 

f:id:wide_snow:20160417091138p:plain

 

f:id:wide_snow:20160417091147p:plain

 

f:id:wide_snow:20160417091155p:plain

 

f:id:wide_snow:20160417091203p:plain

 

f:id:wide_snow:20160417091211p:plain

 

f:id:wide_snow:20160417091218p:plain

 

f:id:wide_snow:20160417091228p:plain

 

f:id:wide_snow:20160417091237p:plain

 

f:id:wide_snow:20160417091249p:plain

 

Sourcery G++ Liteを入手してインストール

conf2011_multicore_live.zipの中に入っているREADME.txtには
ロスコンパイラ(Sourcery G++ Lite)インストーラである
「arm-2009q3-68-arm-none-eabi.exe 」を
から入手するように指示されています。
 
ところが、2016/04/13時点では無料版が入手出来なくなっており
無料評価版(有効期間:30日間)を使うか製品版を購入するしかありません。
 
前回の失敗編では別の開発ツールを探したのですが、今回は
arm-2009q3-68-arm-none-eabi.exe
をインターネット上から捜索することにしました。
 

arm-2009q3-68-arm-none-eabi.exeの入手

googleで「arm-2009q3-68-arm-none-eabi sourceforge
と検索したところ該当ファイルがダウンロード出来ましたので
これを使用します。
 

arm-2009q3-68-arm-none-eabi.exeのインストール

インストール先以外はデフォルト設定のままインストールを進めます。
 

f:id:wide_snow:20160417092207p:plain

インストール先を空白がないフォルダパス
C:¥cygwin¥usr¥local¥SourceryG++Lite
にしてインストールを行います。
 

起動することを確認する

Cygwinを再起動し、
$ arm-none-eabi-gcc -v
を実行します。
バージョンが表示されていればインストールは正常に終了しています。
表示されない場合はパスが通っていないと思われるので
$ vi ~/.bashrc
を起動して
PATH=/usr/local/SourceryG++Lite/bin:${PATH}
を追加してください。
 

SkyEyeのインストール

README.txtに従ってインストールを行います。
(SkyEyeって何?という人は、multiprocessor_programming_live.pdfを参照してください)
 

f:id:wide_snow:20160417091416p:plain

「管理者として実行」を選択します。
 

f:id:wide_snow:20160417091426p:plain

事前にC:¥cygwin¥usr¥local¥binにSkyEyeをコピーし、regist.batを実行します。
 

FMPカーネル展開

README.txtに従ってファイルの展開を行います。
今回は
c:¥cygwin¥home¥win7user¥
にfmp_1_2_logフォルダを展開しています。
 

サンプルプログラムおよびMakefile作成

Cygwin上で
$ cd /home/win7user/conf2011_multicore_live/fmp_1_2_log/obj/sample
$ ../../configure -T at91skyeye_gcc
を実行すると
syntax error at ../../configure line 79, near "do Getopt("
BEGIN not safe after errors--compilation aborted at ../../configure line 104.
というエラーが出るので、対象となるファイルを修正します。
なお、コマンドラインのパラメータ”-T"はターゲット名を指定するためのものです。
 
本エラーの原因は、perlのバージョンが新しくなったことによる影響のようです。
configureの中身を修正します。
・require “getopt.pl”; -> use Getopt::Std;
・do Getopt(“TAaULDltmdpgP”); -> getopt (“TAaULDltmdpgP”);
・do ****(); -> ****();
※ do ****()は何種類かあるので全て修正します。
該当関数:do uname();、do convert();、do get_path();、do get_objext();、do generate();
 
これで再々実行すると、以下のようなメッセージが出て正常終了しました。
$ ../../configure -T at91skyeye_gcc
configure: Generating Makefile from ../../sample/Makefile.
configure: Generating sample1.c from ../../sample/sample1.c.
configure: Generating sample1.h from ../../sample/sample1.h.
configure: Generating sample1.cfg from ../../sample/sample1.cfg.
 

ビルド

Cygwin上で
$ make depend
を再度実行します。
何箇所かでsyntax errorが発生しますが、Makefile作成のときと同じように
・require “getopt.pl”; -> use Getopt::Std;
・do Getopt(“****”); -> getopt (“****”);
・do ****(); -> ****();
※ do ****()は何種類かあるので全て修正します。
に変更します。
該当ファイル:
utils¥genoffset
utils¥makedep
 
修正後に
$ make depend
を再度実行すると
「cfg.exeが動作するときにcygboost_system-mt-1_43.dllがない」
とエラーが表示されます。c:¥cygwin¥binを見ると“cygboost_system-1_58.dll”
というファイルはあるのですが、コンフィギュレータのcfg.exeが古すぎて
cygwinのバージョンと合わないようです・・・。
 

コンフィギュレータを入れ替えて再度ビルド

からコンフィギュレータファイル(Release 1.9.4)を入手して元のファイルと入れ替えます。
元のファイルは
c:¥cygwin¥home¥win7user¥conf2011_multicore_live¥fmp_1_2_log¥cfg¥cfg
にあります。
 
入れ替え後に
$ make depend
を実行すると
rm -f Makefile.depend
Generating Makefile.depend.
とメッセージが表示されて正常に終了しますので
$ make
を実行してビルドを完了させます。
check complete
とメッセージが表示されれば正常に終了しています。
 

サンプルプログラムの実行

README.txtに従ってサンプルプログラムを実行します。
Cygwinを2つ起動して
[Cygwin 1]
$ cd /home/win7user/fmp_1_2_log/obj/sample
$ skyeye -e fmp.exe -c ../../target/at91skyeye_gcc/skyeye_pe2.conf
[Cygwin 2]
$ cd /home/win7user/fmp_1_2_log/obj/sample
$ skyeye -e fmp.exe -c ../../target/at91skyeye_gcc/skyeye_pe1.conf
 
を実行することでサンプルプログラムが実行されます。
 

f:id:wide_snow:20160417092232p:plain