製品間でのシステム ターゲット ファイルのサポートの比較
システム ターゲット ファイル (grt.tlc
など) を選択すると、選択内容によってランタイム環境とコード生成機能が定義されます。コード生成ワークフローの目的に合致するシステム ターゲット ファイル機能を特定します。
コード ジェネレーターはシステム ターゲット ファイルを使用して、特定のターゲット ハードウェアや特定のオペレーティング システムでの実行を目的としたコードを生成します。システム ターゲット ファイルは他のランタイム環境固有のファイルを呼び出します。ターゲット ハードウェア用にモデルのコード生成パラメーターを構成する方法の詳細については、ランタイム環境オプションの構成を参照してください。
システム ターゲット ファイルの種類によって特定の生成コードの機能がサポートされます。システム ターゲット ファイルの TLC 変数 CodeFormat
の値と対応するフィールド値 rtwgensettings.DerivedFrom
によって、システム ターゲット ファイルの種類と生成コードの機能を指定します。これらの選択は、コード生成プロセスの過程で下されるコード生成制御の決定に適用されます。選択には、モデルのビルドによって以下を生成するかどうか、およびその生成方法が含まれます。
特定のデータ構造 (
SimStruct
やrtModel
など)静的または動的メモリ割り当てコード
生成されるモデル関数の呼び出しインターフェイス
カスタム システム ターゲット ファイルの開発の場合、CodeFormat
値は、コード生成ターゲット間で異なります。
システム ターゲット ファイルが TLC 変数
CodeFormat
の値を含まない場合、汎用リアルタイム ターゲット (GRT) の既定値はRealTime
です。対応するrtwgensettings.DerivedFrom
フィールドの値はgrt.tlc
(既定値) です。カスタム システム ターゲット ファイルを開発していて Embedded Coder ソフトウェアをお持ちの場合、組み込みリアルタイム ターゲット (ERT) 用に TLC 変数
CodeFormat
の値をEmbedded-C
に設定することを検討します。対応するrtwgensettings.DerivedFrom
フィールドの値はert.tlc
です。ERT システム ターゲット ファイルは GRT システム ターゲット ファイルよりも多くの生成コードの機能をサポートします。
この例は、TLC 変数 CodeFormat
の値を設定する方法および対応する rtwgensettings.DerivedFrom
フィールドの値を ert.tlc
に設定する方法について示しています。
%assign CodeFormat = "Embedded-C" /% BEGIN_RTW_OPTIONS rtwgensettings.DerivedFrom = 'ert.tlc'; END_RTW_OPTIONS %/
メモ
モデルのコードを生成するために TLC 変数 CodeFormat
の値を、対応する rtwgensettings.DerivedFrom
フィールドの値と一緒に使用します。値を明示的に選択していない場合は、既定値が適用されます。rtwgensettings.DerivedFrom
フィールドに対しては、'ert.tlc'
または 'grt.tlc'
を使用します。詳細については、システム ターゲット ファイル構造体を参照してください。
GRT および ERT システム ターゲット ファイル用に既定で生成される最適化された呼び出しインターフェイスの詳細については、生成された C 関数インターフェイスをモデルのエントリポイント関数用に構成を参照してください。
GRT および ERT システム ターゲット ファイルを使用したコード生成では、リアルタイム モデル データ構造体 (rtModel
) が使用されます。この構造体は、シミュレーション構造体 SimStruct
よりずっとコンパクトな形式でモデル固有の情報をカプセル化します。生成コードの効率的な機能の多くは、SimStruct
よりも rtModel
の生成に依存します。これには次が含まれます。
整数の絶対値および経過時間サービス
非同期のタスク用の独立タイマー
信号、状態、およびパラメーターの監視用の改善された C API コードの生成
サイズを最小化するためのデータ構造の枝刈り (ERT から派生したシステム ターゲット ファイルのみ)
rtModel
のデータ構造の詳細については、リアルタイム モデル データ構造体を参照してください。
製品のシステム ターゲット ファイルの比較
システム ターゲット ファイル ブラウザーを使用して、多くのシステム ターゲット ファイルから選択できます。この選択によって、コンフィギュレーション オプションを試し、モデルを異なるコンフィギュレーションで保存できます。
必要なソフトウェアがシステムにない場合、非 GRT システム ターゲット ファイル用のコードをビルドしたり、生成したりすることはできません。たとえば、ERT システム ターゲット ファイルには Embedded Coder®、SLDRT システム ターゲット ファイルには Simulink® Desktop Real-Time™ が必要となります。
モデルのシステム ターゲット ファイルを選択すると、ビルド プロセス制御としてツールチェーン アプローチまたはテンプレート makefile アプローチのいずれかが選択されます。これらのアプローチの詳細については、Simulink モデルから生成されたコードのビルドに使用するアプローチを参照してください。
システム ターゲット ファイル ブラウザーから使用できるシステム ターゲット ファイル
サポートされるシステム ターゲット ファイル | ファイル名 | リファレンス |
---|---|---|
Embedded Coder (PC または UNIX® プラットフォーム用) |
| |
Embedded Coder の Visual C++® ソリューション ファイルを作成 |
(CMake ツールチェーンが必要です。メモを参照してください) | |
AUTOSAR 用の Embedded Coder |
| |
汎用リアルタイム (PC または UNIX プラットフォーム用) |
| |
Visual C++ ソリューション ファイルを作成 |
(CMake ツールチェーンが必要です。メモを参照してください) | |
ラピッド シミュレーション (PC または UNIX プラットフォームの既定) |
| RSim システム ターゲット ファイルを使用したホスト コンピューターでのハイブリッド動的システムの高速化、調整およびテスト |
UNIX プラットフォーム用のラピッド シミュレーション |
| RSim システム ターゲット ファイルを使用したホスト コンピューターでのハイブリッド動的システムの高速化、調整およびテスト |
Visual C++ コンパイラ用のラピッド シミュレーション |
| RSim システム ターゲット ファイルを使用したホスト コンピューターでのハイブリッド動的システムの高速化、調整およびテスト |
PC または UNIX プラットフォーム用の S-Function |
| |
UNIX プラットフォーム用の S-Function |
| |
Visual C++ コンパイラ用の S-Function |
| |
ASAM-ASAP2 データ定義 |
(将来のリリースで削除される予定です。A2L ファイルを生成する方法の詳細については、ASAP2 ファイルおよび CDF キャリブレーション ファイルの生成を参照してください)。 | |
Simulink Desktop Real-Time |
| Set Run in Kernel Mode Code Generation Parameters (Simulink Desktop Real-Time) |
Simulink Real-Time™ |
| Simulink Real-Time Options Pane (Simulink Real-Time) |
メモ
デバッグ構成をもつ Visual C++ ソリューション (.sln
) ファイルを作成するには、ツールチェーンフィールドに CMake ツールチェーンを指定します。たとえば、[Microsoft Visual Studio Project 2019 | CMake (64-bit Windows)]
や [Microsoft Visual Studio Project 2017 | CMake (64-bit Windows)]
です。CMake ツールチェーンの詳細については、CMake ビルド プロセスの構成を参照してください。
コード スタイルおよび STF サポートの比較
コード ジェネレーターは 2 つのスタイルのコードを生成します。そのひとつは、ラピッド プロトタイピング (および、コード生成を使用したシミュレーション) に適します。もうひとつは組み込みアプリケーションに適します。この表は、システム ターゲット ファイルと対応するコード スタイルを示します。
システム ターゲット ファイル別のコード スタイル一覧
システム ターゲット ファイル | コード スタイル | 目的 |
---|---|---|
Embedded Coder 組み込みリアルタイム (ERT) | 組み込み | C/C++ 生成コードの組み込みアプリケーション開発の開始点 |
Simulink Coder™ 汎用リアルタイム (GRT) | ラピッド プロトタイピング | リアルタイム オペレーティング システム作業プリミティブを使用しないラピッド プロトタイピング ターゲット ハードウェアを作成するための開始点、および生成された C/C++ コードをデスクトップ コンピューター上で確認するための開始点 |
ラピッド シミュレーション (RSim) | ラピッド プロトタイピング | デスクトップ コンピューター上でのリアルタイム シミュレーションの提供、および高速シミュレーション ツールまたはバッチ シミュレーション ツールの提供。 |
S-Function | ラピッド プロトタイピング | 別の Simulink モデル内でシミュレーションを行うための C MEX S-Function の作成。 |
Simulink Desktop Real-Time | ラピッド プロトタイピング | デスクトップ コンピューターがバックグラウンドで Microsoft® Windows® を実行しているときに、割り込みレベルでリアルタイムでモデルを実行。 |
Simulink Real-Time | ラピッド プロトタイピング | Simulink Real-Time カーネルを実行しているデスクトップ コンピューター上でリアルタイムでモデルを実行。 |
サードパーティ ベンダーでは、自社製品のコード生成をサポートするためのシステム ターゲット ファイルを追加提供しています。サードパーティ製品の詳細については、ベンダーの Web ページまたは MathWorks® Connections Program の Web ページ (https://www.mathworks.com/products/connections
) を参照してください。
製品別の生成コードの機能比較
リアルタイム システム ターゲット ファイル (GRT など) のコード生成プロセスは、多くの組み込みコードの最適化を提供します。ERT ベースのシステム ターゲット ファイルを選択すると、GRT より多くの拡張機能が提供されます。システム ターゲット ファイルの選択によってコード生成製品の利用可能な機能が決まります。開発プロセスと一致するコード生成ターゲットを選択するため、この表を使用して Simulink Coder で利用可能なコード生成機能および Embedded Coder で利用可能なコード生成機能を比較します。
Simulink Coder と Embedded Coder のコード生成機能の比較
機能 | Simulink Coder | Embedded Coder |
---|---|---|
|
|
|
カスタム ストレージ クラス (CSC) | コード生成は CSC を無視します。オブジェクトには既定の | CSC をもつコード生成はサポートされます |
HTML コード生成レポート | 基本 HTML コード生成レポート | モデルへの追加の詳細とハイパーリンクをもつ強化レポート |
シンボル形式 | シンボル (信号やパラメーター用など) はハードコード化された既定値に従って生成されます | 生成シンボルに関する詳細なコントロールです。 |
生成シンボル用のユーザー定義識別子の最大長 | サポートあり | サポートあり |
終了関数の生成 | 生成物 | 終了関数を抑制するオプション |
組み合わせた出力/更新関数 | 別個の出力/更新関数が生成されます | 組み合わせた出力/更新関数を生成するオプション |
最適化されたデータ初期化 | 使用できません | 0 値のメモリや I/O 端子など、不要な初期化コードの生成を抑制するオプション |
コメント生成 | コメント生成を含むか抑制する基本オプション | オプションは、コメント内の Simulink ブロック説明、Stateflow® オブジェクト説明、Simulink データ オブジェクト説明を含みます |
モジュール パッケージ化機能 (MPF) | サポートなし | さまざまなコード カスタマイズ機能。Manage Replacement of Simulink Data Types in Generated CodeおよびMPT Data Object Propertiesを参照。 |
システム ターゲット ファイル用に最適化されたデータ型のヘッダー ファイル | フル | システム ターゲット ファイルに必要な定義を含む最適化された |
ユーザー定義型 | ユーザー定義型はコード生成の既定の基本型に設定されます | ユーザー定義のデータ型エイリアスがコード生成でサポートされます |
レート グループ | サポートなし | サポートあり |
メインのプログラム モジュールの自動生成 | サポートされません。静的なメインのプログラム モジュールが与えられます。 | メインのプログラム モジュールの自動生成とカスタマイズ可能生成はサポートされます (静的なメインのプログラムも使用可能) |
再利用可能な (マルチ インスタンス) コード生成 | 動的メモリ割り当てをもつ再利用可能なコードを生成するオプション | 静的または動的メモリ割り当てをもつ再利用可能なコードを生成するオプション |
ソフトウェア制約オプション | 浮動小数点、複素数、非有限数のサポートは有効です | 浮動小数点、複素数、非有限数のサポートを有効/無効にするオプション |
アプリケーションのライフ スパン | 既定の設定は | ユーザー指定。整数タイマー用に最も効率的なワード サイズを決めます。 |
ANSI®-C/C++ コード生成 | サポートあり | サポートあり |
ISO®-C/C++ コード生成 | サポートあり | サポートあり |
GNU®-C/C++ コード生成 | サポートあり | サポートあり |
| サポートなし | サポートあり |
MAT ファイルの変数名の修飾子 | サポートあり | サポートあり |
データ交換:C API、ASAP2、エクスターナル モード | サポートあり | サポートあり |
STF 別の生成コードの機能比較
コード ジェネレーターは異なる種類のシステム ターゲット ファイルに対して決められた生成コードの機能をサポートします。各システム ターゲット ファイルの中で、TLC 変数 CodeFormat
の値が機能セットを特定します。
この表は、さまざまなシステム ターゲット ファイルによるアプリケーションのサポート状況をまとめています。
アプリケーション | システム ターゲット ファイル (STF) |
---|---|
固定ステップまたは可変ステップの加速 | RSIM、S-Function、モデル参照 |
固定ステップのリアルタイムの展開 | GRT、ERT、Simulink Real-Time、Simulink Desktop Real-Time、... |
この表は、[システム ターゲット ファイル] のそれぞれの選択に対して使用できるさまざまなオプションを例外の注意とともにまとめています。
システム ターゲット ファイル (STF) で生成されるコードでサポートされる機能
システム ターゲット ファイル (STF) | ||||||||
---|---|---|---|---|---|---|---|---|
機能 |
(メモ 1 を参照) |
(メモ 1 を参照) |
(メモ 1 を参照) |
(メモ 1 を参照) |
(メモ 1 を参照) |
(メモ 1 を参照) |
(メモ 1 を参照) | その他 (メモ 1 を参照) |
静的なメモリ割り当て | X | X |
|
| X | X | X | |
動的メモリ割り当て | X (メモ 4、5 を参照) | X (メモ 4、5 を参照) |
| X | X |
| X |
|
連続時間 | X | X |
| X | X | X | X |
|
C/C++ MEX S-Function | X | X |
| X | X | X | X |
|
S-Function (インライン化) | X | X |
| X | X | X | X | X |
RAM/ROM の使用量を最小化 |
| X |
|
|
|
| X2 | X |
エクスターナル モードをサポートします | X | X |
|
| X | X | X |
|
ラピッド プロトタイピング | X |
|
|
|
| X | X | X |
量産コード |
| X |
|
|
|
| X2 | X (メモ 3 を参照) |
バッチ パラメーター調整とモンテカルロ法 |
|
| X |
| X |
|
|
|
システムレベルのシミュレーター |
|
| X |
|
|
|
|
|
ハード リアルタイムで実行します | X (メモ 3 を参照) | X (メモ 3 を参照) |
|
|
| X | X | X5 |
含まれる非リアルタイム実行可能プログラム | X | X |
|
| X |
|
|
|
モデルの複数のインスタンス | X (メモ 4、5 を参照) | X (メモ 4、5 を参照) |
| X4 |
|
| X (メモ 4、5 を参照) | X (メモ 4、5 を参照) |
可変ステップ ソルバーをサポートします |
|
|
| X | X |
|
|
|
SIL/PIL をサポートします | X | X |
|
|
|
|
| X |
メモ
システム ターゲット ファイル:
grt.tlc
— 汎用リアルタイム ターゲットert.tlc
— 組み込みリアルタイム ターゲットert_shrlib.tlc
— 組み込みリアルタイム ターゲットの共有ライブラリrtwsfcn.tlc
(削除予定) — S-Function ターゲットrsim.tlc
— ラピッド シミュレーション ターゲットsldrt.tlc
— Simulink Desktop Real-Time ターゲットspeedgoat.tlc
— Simulink Real-Time ターゲットその他 — Simulink Coder の組み込みリアルタイム機能がサポートするその他のシステム ターゲット ファイル
GRT ベースのシステム ターゲット ファイルには適用されません。ERT ベースのシステム ターゲット ファイルのみに適用されます。
既定の GRT および ERT
rt_main
ファイルはハード リアルタイムの実行をエミュレートします。明示的にリアルタイム クロックに接続されているときはハード リアルタイムで実行します。Stateflow チャートまたはチャートを含むサブシステムの複数のインスタンスについて、コードを生成することができます。ただし、エクスポートされたグラフィカル関数がチャートに含まれる場合を除きます。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード インターフェイスのパッケージ化] フィールドで、
[再利用可能な関数]
を選択します。