Main Content

カスタム ツールチェーンの登録および実行可能ファイルのビルド

この例では、ツールチェーンを登録および使用して実行可能ファイルをビルドする方法を説明します。この例では Intel® のコンパイラを使用しています。ただし、概念とプログラミング インターフェイスはその他のツールチェーンに適用されます。ツールチェーンを登録すると、コード ジェネレーターがそのツールチェーンを使用してモデルの実行可能ファイルをビルドするようにモデルを設定できます。

ツールチェーン

ツールチェーンは、指定されたプラットフォーム用にコードをコンパイルおよびリンクするために必要なツールの集合です。ツールチェーンは、コンパイラ、リンカー、アーカイバーなどの複数のツールで構成されます。ツールチェーンのツールには複数のオプションが設定でき、ツールの仕様は設定の種類ごとにグループ化できます。

新規フォルダーの作成と関連ファイルのコピー

以下のコードは、現在の作業フォルダー (pwd) 内にフォルダーを作成します。新規のフォルダーにはこの例のファイルが含まれます。現在のフォルダーに影響を与えたくない場合や、このフォルダーでファイルを生成できない場合は、作業フォルダーを変更してからコマンドを呼び出してください。

copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos','toolchain_demo'),'toolchain_demo','f')
cd toolchain_demo

モデルを開く

rtwdemo_counter モデルを開きます。既定では、このモデルは実行可能ファイルのビルドに汎用リアルタイム ターゲット (GRT) のコンフィギュレーションとツールチェーン アプローチを使用するように構成されています。この例で示される機能は、ツールチェーン アプローチを使用するよう構成されたモデルで使用できます。

model = 'rtwdemo_counter';
open_system(model)

ツールチェーンの選択

[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[コード生成] を選択します。[ツールチェーン設定] セクションには、ツールチェーンの構成のためのパラメーターが含まれています。[ツールチェーン] ドロップダウン リストから、開発システムにインストールされた、モデル生成コードから実行可能ファイルをビルドするためのツールチェーンを選択します。

既定では、[Faster Runs] ビルド構成が選択されます。[設定を表示] をクリックすると、生成コードのビルド用に指定されたツールチェーン フラグが表示されます。現在のアプリケーション開発の目的に基づいてビルド構成を選択します。

[コンフィギュレーション パラメーター] ダイアログ ボックスを閉じます。

ToolchainInfo オブジェクトの作成

この例では、カスタム ツールチェーンを登録し、選択可能な [ツールチェーン] オプションとして追加する方法を示します。

カスタム ツールチェーンを登録する最初の手順は、ツールチェーンに関する情報を含む ToolchainInfo オブジェクトを作成することです。ツールチェーンの仕様を設定するにはメソッドを使用できます。ToolchainInfo オブジェクトはインストール間で共有できます。

Intel Compiler 用のツールチェーン定義ファイルを開きます。このファイルは、64 ビット Windows® プラットフォーム上で Intel ツールチェーンに関する情報を含む ToolchainInfo オブジェクトを作成します。

edit intel_tc

エラーと警告はカスタム コンパイラで生成されたビルドから診断メッセージ ペインに表示できます。詳細については、診断メッセージ ペインを参照してください。

ツールチェーン定義ファイルを実行して、ToolchainInfo オブジェクトを生成します。

tc = intel_tc;

ToolchainInfo オブジェクト tc を MAT ファイルに保存します。

save intel_tc tc

カスタム ツールチェーンの登録

新しいツールチェーンの ToolchainInfo オブジェクトを作成したら、登録します。ツールチェーンを RTW.TargetRegistry に登録します。ツールチェーンを登録するには、rtwTargetInfo.m ファイルに書き込みます。次に、そのファイルを MATLAB パスに追加し、システムに自動的に読み込まれるようにします。

edit rtwTargetInfo

TargetRegistry をリセットし、新しい rtwTargetInfo.m ファイルを使用するようにします。

RTW.TargetRegistry.getInstance('reset');

カスタム ツールチェーンの選択

[コンフィギュレーション パラメーター] ダイアログ ボックスを再度開きます。[ツールチェーン] をクリックします。リストに新しいツールチェーンが表示されます。Intel v18 ツールチェーンを選択します。

次のコマンドを使用すると、プログラムによって同じタスクを実行できます。

cs = getActiveConfigSet(model);
set_param(cs, 'Toolchain', tc.Name)

選択内容を確認します。

toolchain = get_param(cs, 'Toolchain')
toolchain =

    'Intel v18 | nmake makefile (64-bit Windows)'

カスタム ツールチェーンを使用したモデルのビルド

これで、新しいカスタム ツールチェーンを用いてモデルをビルドできます。

メモ: Intel ツールチェーンがインストールされていない場合は、以下のコマンドを使用してコードと makefile のみを生成できます。

set_param(cs, 'GenCodeOnly', 'on')

モデルをビルドして、新しいツールチェーンを使用するコードおよび makefile を生成します。

slbuild(model)
### Starting build procedure for: rtwdemo_counter
### Successful completion of code generation for: rtwdemo_counter

Build Summary

Top model targets built:

Model            Action          Rebuild Reason                                    
===================================================================================
rtwdemo_counter  Code generated  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 16.819s

ビルド ディレクトリの情報を取得します。

dirInfo = RTW.getBuildDir(model);

生成された makefile を調査します。

edit(fullfile(dirInfo.BuildDirectory, [model '.mk']))

Intel Compiler がインストールされていれば、ビルド プロセスの完了後に実行可能ファイルを実行できます。

if ispc
   system([model '.exe'])
else
   system(model)
end

[元に戻す]

オプションで、はじめに作成したフォルダーを削除できます。

cd ..
rmdir('toolchain_demo', 's')

上で登録したツールチェーンを削除するには、TargetRegistry をリセットします。

RTW.TargetRegistry.getInstance('reset');

モデルを閉じます。

close_system(model, 0)

ワークスペースに導入した変数を消去します。

clear INC K LIMIT RESET model tc cs toolchain