Embedded Coder を使用したコード生成
コード生成技術
MathWorks® コード生成技術によって、アルゴリズムに対する C または C++ コードと実行可能プログラムが生成されます。MATLAB® を使用したプログラミング的方法または Simulink® 環境での視覚的な方法でアルゴリズムを記述できます。リアルタイムおよび組み込みアプリケーションに役立つ、MATLAB 関数と Simulink ブロック用のコードを生成できます。浮動小数点アルゴリズム用に生成されたソース コードと実行可能プログラムは、MATLAB コード実行と Simulink シミュレーションの機能動作と高い忠実度で一致します。Fixed-Point Designer 製品を使用すると、モデルのシミュレーション結果とビット単位で一致する固定小数点コードを生成できます。このような広範なサポートと高い正確性が可能になるのは、コード生成が MATLAB および Simulink の実行エンジンとシミュレーション エンジンに緊密に統合されているためです。Simulink に組み込まれているアクセラレータ シミュレーション モードでは、コード生成技術が使用されています。
コード生成技術と関連製品には、システム開発用に V モデルに適用できるツールが用意されています。V モデルとは、システム開発の表現で、開発プロセスでの検証ステップに注目したものです。詳細については、システム開発用の検証および確認を参照してください。
Simulink ブロック、Stateflow® チャート、MATLAB 関数を含むモデル設計パターンや、よく使用される C 構造へのマップの詳細については、C コード構造のモデル化パターンを参照してください。
Embedded Coder を使用したコード生成ワークフロー
Embedded Coder® 製品は MATLAB Coder™ と Simulink Coder 製品を "拡張" し、組み込みソフトウェアの開発に使用できる機能を提供します。Embedded Coder 製品では、手書きのコードのような明確さと効率性をもつコードを生成できます。たとえば、次のようなことができます。
リアルタイム シミュレーター、ラピッド プロトタイピング ボード、量産で使用されるマイクロプロセッサ、および組み込みシステムにとって欠かせないコンパクトで高速なコードを生成する。
生成コードの外観をカスタマイズする。
特定のターゲット環境向けに生成コードを最適化する。
既存のアプリケーション、関数およびデータを統合する。
コード検証を容易にするトレース、レポート、およびテストの各オプションを有効にする。
コード ジェネレーターは、生成された C または C++ コードを設計、実装、検証するための 2 つのワークフローをサポートします。次の図に設計と展開環境のオプションを示します。
Stateflow ソフトウェアなど、コード生成をサポートするその他の製品が使用可能です。
コード生成用の MATLAB コードによるアルゴリズムの開発の詳細については、MATLAB コードからのコード生成を参照してください。
アルゴリズムを Simulink ブロックや Stateflow チャートとして Simulink モデルに実装し、C または C++ コードを生成する方法については、Simulink モデルからのコード生成を参照してください。
MATLAB コードからのコード生成
Embedded Coder を使用して MATLAB コード ワークフローからコードを生成するには、以下の製品が必要となります。
MATLAB
MATLAB Coder
Embedded Coder
MATLAB Coder では、プログラム制御構造、関数、行列演算などの主要な MATLAB 言語機能のサブセットがサポートされています。C または C++ コードを生成するには、MATLAB Coder プロジェクトを使用するか MATLAB コマンド ウィンドウに関数 codegen
を入力します。Embedded Coder では生成コードの関数、ファイル、データを細かく調整するための追加のオプションと高度な最適化機能を提供します。これらのオプションと最適化機能の詳細については、MATLAB コードからのコード生成のための Embedded Coder 機能を参照してください。
MATLAB コードからのコード生成方法の詳細については、コード生成のワークフローを参照してください。
Embedded Coder を使用して MATLAB コードからコード生成を開始するには、MATLAB コードからのコード生成のための Embedded Coder 機能を参照してください。
Simulink モデルからのコード生成
Embedded Coder を使用して Simulink モデル ワークフローからコードを生成するには、以下の製品が必要となります。
MATLAB
MATLAB Coder
Simulink
Simulink Coder
Embedded Coder
アルゴリズムを Simulink ブロックおよび Stateflow チャートとして Simulink モデルに実装することができます。Simulink モデルから C または C++ コードを生成するため、Embedded Coder はコード生成用にモデルを実装、構成、検証するための機能を提供しています。
MATLAB コードで記述されたアルゴリズムがある場合は、MATLAB Function ブロックを使用することで MATLAB コードを Simulink モデルやサブシステムに含めることができます。Simulink モデルの C または C++ コードを生成する場合は、MATLAB Function ブロック内の MATLAB コードが C または C++ コードとして生成され、生成されたソース コードに同梱されます。
Embedded Coder を使用して Simulink モデルからコード生成を開始するには、Simulink モデルからの C コード生成を参照してください。
Simulink ブロック、Stateflow チャート、MATLAB 関数を使用して、一般的に使用される C 構造をモデル化し、コード生成する方法については、C コード構造のモデル化パターンを参照してください。