動作テストを兼ねて、ここまで構築した開発環境でTOPPERSのサンプルプロジェクトをビルドします。
サンプルプロジェクトのビルド
今回のターゲットである「NUCLEO-F401RE STM32 Nucleo-64」開発ボード用のTOPPERS/ASPカーネル簡易パッケージasp_nucleo_f401re_gcc-20170211.zipをダウンロードします。
例のごとく、このバージョンはもう古いかもしれません。
最新版の入手は本家からどうぞ。
「Nucleo F401re(GCC)簡易パッケージ」の欄から、必ずasp_nucleo_f401re_gcc-20yymmdd.zipという名前のものを選んでください。
asp_nucleo_f401re_armclang-20yymmdd.zipという名前のものは、「LLVM/Clang」という別のコンパイラ用のパッケージです。
こちらは、今回は使いません。
asp_nucleo_f401re_gcc-20170211.zipを展開すると「asp_1.9.2」というディレクトリが生成されます。
前項のCygwinの導入作業により、PCには以下のディレクトリが作成されています。
C:\cygwin64
このディレクトリ以下にある「.\home\<ユーザ名>」以下に「asp_1.9.2」ディレクトリをコピーします。
(このドキュメントでは、ユーザ名を「morita」とします。)
次にCygwinのターミナルを起動し、以下のコマンドを入力し、ディレクトリを移動します。
$ cd asp_1.9.2
以下のコマンドを入力し、作業用のディレクトリを作成します。
ここでは「OBJ」という名前のディレクトリを作成します。
$ mkdir OBJ
作成した「OBJ」ディレクトリの中へ移動します。
$ cd OBJ
以下のコマンドを入力し、コンフィギュレーションを行います。
これは、「nucleo_f401re_gcc」というターゲット用のサンプルプロジェクトをこのディレクトリに生成するという意味です。
$ perl ../configure -T nucleo_f401re_gcc
この状態で「OBJ」ディレクトリを確認すると、いくつかのファイルが生成されていることが分かります。
次に、この生成されたサンプルプロジェクトをビルドします。
まずは、プロジェクトのコンフィグファイル(sample1.cfg)の情報を元に、OSに必要な定義を記したソースコード(「kernel_cfg.c」と「kernel_cfg.h」)を生成します。
それには以下のコマンドを入力します。(→下記<補足>を参照のこと。)
$ make depend
再び「OBJ」ディレクトリを確認すると、「kernel_cfg.c」と「kernel_cfg.h」が生成されていることが分かります。
次は、これらの新たに生成されたものを含め、すべてのファイルをビルドし、「elf」出力ファイル(拡張子は「.exe」)を生成します。
以下のコマンドを入力します。
$ make all
ビルドが成功すると、「asp.exe」が生成されます。
これがターゲットで実行されるプログラムのバイナリです。
<補足>
「make depend」の実行時に以下のようなエラーが出ることがあります。
これは、「cfg.exe」(コンフィグレータといいます)の実行権限がないためプログラムが実行できないという意味です。
コンフィグレータは「make depend」を実行する過程で呼ばれます。
これを解決するには、以下のコマンドでコンフィグレータに実行権限を与えます。
以下のコマンドを実行します。
$ chmod 755 ../cfg/cfg/cfg.exe
これにより「cfg.exe」に実行権限が与えられたのでコンフィグレータは正しく実行されます。
もう一度「make depend」と実行すると、今度は成功します。
0 件のコメント:
コメントを投稿