読者です 読者をやめる 読者になる 読者になる

wide_snow’s blog

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

スポンサードリンク

TOPPERS/FMPシミュレーション実行環境の作成方法(失敗編)2ーまとめ

前回の記事

 

wide-snow.hatenablog.com

 のまとめです。

手順を最適化しました。

 
現時点での結論としては
「skyeyeでシミュレーション環境を作成しようと思った場合
 fmp_1_2_log¥target¥at91skyeye_gcc¥at91skyeye.ld
 と記載されており、ところどころで”__cs3_”の記述があるので
 Sourcery G++ Liteを使用しないとダメそう」
です。
 

テスト用のTOPPERS/FMPを入手する。

にある「マルチプロセッサアプリケーション プログラミングライブ」というリンクをクリックします。
 
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を入手してインストール

ほとんどデフォルト設定のままですが
「Select Packages」で何個か追加インストールしています。
Devel
+- gcc-core: GNU Compiler Collection (C, OpenMP)
+- gcc-g++: GNU Compiler Collection (C++)
+- make: The GNU version of the make utility
 全て
Libs
 検索画面に”boost”を入れてヒットしたもの全て
 

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

LaunchPadを入手

右側にあるDownloadから「gcc-arm-none-eabi-5_3-2016q1-20160330-win32.exe」をダウンロードします。
 

LaunchPadをインストール

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

Cygwinのパスを通す

gcc-arm-none-eabiを使用するために「.bashrc」を変更します。
$ vi ~/.bashrc
 
PATH=/usr/local/2016q1/bin:${PATH}
を追加します。”/usr/local/2016q1”はLaunchpadインストール時に指定したフォルダ名です。
 

起動することを確認する

Cygwinを再起動し、
$ arm-none-eabi-gcc -v
を実行します。
バージョンが表示されていればインストールは正常に終了しています。
 

SkyEyeのインストール

README.txtに従ってインストールを行います。
(SkyEyeって何?という人は、multiprocessor_programming_live.pdfを参照してください)
C:¥cygwin¥usr¥local¥binにSkyEyeをコピーしたあと
管理者権限でコマンドプロンプトを起動してregist.batを実行します。
 

FMPカーネル展開

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

最新のコンフィギュレータを入手して入れ替え

から最新のコンフィギュレータファイル(Release 1.9.5)を入手して元のファイルと入れ替えます。
元のファイルは
c:¥cygwin¥home¥win7user¥conf2011_multicore_live¥fmp_1_2_log¥cfg¥cfg
にあります。
 

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

Cygwin上で
$ cd /home/win7user/conf2011_multicore_live/fmp_1_2_log/obj/sample
$ ../../configure -T at91skyeye_gcc
を実行します。
なお、コマンドラインのパラメータ”-T"はターゲット名を指定するためのものです。
 
syntax error at ../../configure line 79, near "do Getopt("
BEGIN not safe after errors--compilation aborted at ../../configure line 104.
とエラーが発生します。これは、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作成のときと同じように
・do ****(); -> ****();
に変更します。
 
Cygwin上で
$ make depend
を再度実行します。
今度は
c:¥cygwin¥usr¥local¥2016q1¥arm-none-eabi¥bin¥ld.exeが
cannot open linker script file arm-names.inc : No such file or directory
というエラーを応答します。

 

まとめはここまでです。