このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ターゲット環境におけるコンポーネント検証
コンポーネント設計の量産コードを生成した後、コードを組み込みシステムで完全なアプリケーションとして統合、コンパイル、リンク、展開する必要があります。そのための方法の 1 つとして、オペレーティング システム、デバイス ドライバー、およびサポート ユーティリティで構成される既存のソフトウェア フレームワークにコードを手動で統合する方法があります。外部記述されたレガシまたはカスタムのコードをアルゴリズムに組み込むことができます。
ターゲット環境でのコンポーネントの検証には、プロセッサインザループ (PIL) シミュレーションを使用すると簡単です。PIL シミュレーションの詳細については、SIL シミュレーションおよび PIL シミュレーションを参照してください。
コンポーネント検証の目的
前提として、量産ソース コードの生成が完了し、必要なドライバーやスケジューラなどの外部記述されたコードを統合してあれば、統合されたソフトウェアをターゲット環境でテストすることで想定どおりに動作するかどうかを検証できます。このテストで、厳密に ANSI® C/C++ のみのコードをエクスポートするか、ANSI C/C++ とターゲット環境用に最適化されたコードを組み合わせたコードをエクスポートするかに応じて、次のいずれかの目的を達成できます。
目的 | コードのエクスポートのタイプ |
---|---|
コードの移植性と設定変更を最大化する | ANSI C/C++ |
統合を簡素化してプロセッサ リソースの使用とコードの効率を最大化する | 混合コード |
いずれの目的でも、必要な外部のドライバーやスケジューリング ソフトウェアを統合してあることが前提になります。リアルタイムの実行を実現するには、リアルタイムのスケジューリング ソフトウェアを統合しなければなりません。
コードの移植性と設定変更を最大化するには、次の図に示すように、アプリケーション コードを ANSI/ISO® C または C++ コードのみに限定します。
コードの統合を簡素化してターゲット環境におけるコードの効率を最大化するには、Embedded Coder® の次の機能を使用します。
コード インターフェイスの制御
サブシステムのエクスポート
ターゲット固有のコードの組み込み (コンパイラの最適化を含む)
次の図は、ANSI C/C++ コードとターゲット環境用に最適化されたコードが混在した状況を示したものです。
コンポーネント テストの実行
ターゲット環境でソフトウェア コンポーネントのテストを実行するワークフローは次のとおりです。
デバイス ドライバーやスケジューラなどの外部コードをコンポーネント モデル用の生成された C または C++ コードに統合します。詳細については、S-Function とコード生成を参照してください。検証の目的に応じた具体的な参照先については、次の表を参照してください。
適用対象 参照先 ANSI C/C++ コードの統合 Integrate C Functions Using Legacy Code Tool. 混合コードの統合 外部コード ベースにエクスポートするコンポーネント ソース コードの生成を参照し、
SimulinkFunctions
モデルを開きます。openExample('SimulinkFunctions')
生成された C 関数インターフェイスをモデルのエントリポイント関数用に構成、Interactively Configure C++ Interfaceを参照し、
ConfigurationInterface
モデルを開きます。openExample('ConfigurationInterface')
コード置換とは、コード置換のカスタマイズとは、コード置換ライブラリの開発と使用による生成コードの最適化 - Simulink の例
統合されたコンポーネント モデルをシミュレートします。
統合されたコンポーネント モデルのコードを生成します。
生成された C コード データ構造用のデータ インターフェイスに接続します。Write External Code to Access Generated C API CodeおよびASAP2 ファイルおよび CDF キャリブレーション ファイルの生成を参照してください。
必要に応じて、ビルド プロセスをカスタマイズおよび制御します。コード生成後のビルド プロセスのカスタマイズを参照し、
BuildInfoModel
モデルを開きます。openExample('BuildInfoModel')
ユーザーのホスト コンピューター以外の環境で生成コードをビルドするための生成コード ファイル、静的ファイル、および従属データを含む zip ファイルを作成します。生成コードの移動または共有を参照し、
BuildInfoModel
モデルを開きます。openExample('BuildInfoModel')