MATLAB コードからのコード生成のための Embedded Coder 機能
Embedded Coder® 製品は、組み込みソフトウェアの開発に使用できる機能によって MATLAB® Coder™ 製品を拡張します。プロフェッショナルな手書きのコードの明確さと効率性をもつコードを生成できます。たとえば、次のようなことができます。
リアルタイム シミュレーター、オンターゲット ラピッド プロトタイピング ボード、量産で使用されるマイクロプロセッサ、および組み込みシステムにとって欠かせないコンパクトで効率的なコードを生成する。
生成コードの外観をカスタマイズする。
アプリケーション固有の要件に合わせて生成コードを最適化する。
生成コードの確認に役立つトレース オプションを有効にする。
C/C++ コードの生成に対応する次のオプションと最適化機能を備えた Embedded Coder 製品は、MATLAB Coder 製品を拡張します。
| 目的 | プロジェクトの設定 | コード構成オブジェクトのプロパティ | 詳細 |
|---|---|---|---|
| 実行時間 | |||
| 浮動小数点データおよび演算の生成を制御する | 純粋な整数のみをサポート | PurelyIntegerCode | N/A |
| 生成されたコードでループ内の配列のインデックスを簡略化する | 配列のインデックスを簡略化する | EnableStrengthReduction | Simplify Multiply Operations for Array Indexing in Loops |
| アプリケーション固有のコード要件を満たすように、生成コードにおいて関数と演算子を置き換える | [カスタム コード] タブの [コード置換ライブラリ] | CodeReplacementLibrary | Embedded Coder は追加のライブラリを提供し、カスタム コードの作成と使用を可能にする。コード置換のカスタマイズを参照してください。 |
| 関数と演算子のアプリケーション固有の実装の作成と登録 | N/A | N/A | コード置換のカスタマイズ |
| コードの外観 | |||
| 生成コードにおける単一行または複数行のコメントの使用を指定する | コメント スタイル | CommentStyle | Specify Comment Style for C/C++ Code |
| トレーサビリティ タグを含むコメントとして MATLAB ソース コードを含める。コード生成レポートでは、トレーサビリティ タグが対応する MATLAB ソース コードにリンクしています。 | コメントとして MATLAB ソース コードを含める | MATLABSourceComments | 生成される C/C++ コードにコメントを含める |
| 関数バナーで MATLAB 関数のヘルプ テキストを生成する | MATLAB 関数のヘルプ テキスト | MATLABFcnDesc | 生成される C/C++ コードにコメントを含める |
| MATLAB コードにリンクされている要件の概要を含むコメントを生成コードに含める。コード生成レポートでは、コメントが要件エディターの要件へのハイパーリンクになっています。 | コメントとしての要件の概要 | ReqsInCode | Requirements Traceability for Code Generated from MATLAB Code (Requirements Toolbox) |
| if-elseif-else のパターンを switch-case ステートメントに変換する | if-elseif-else のパターンを switch-case ステートメントに変換する | ConvertIfToSwitch | C コードのスタイルの制御 |
| 生成された外部関数の宣言に extern キーワードが含まれるように指定する | 関数の宣言で extern キーワードを保持する | PreserveExternInFcnDecls | N/A |
| 生成コード内のかっこのレベルを指定する | かっこ | ParenthesesLevel | N/A |
| 生成コードで 2 のべき乗の乗算を符号付きビット単位左シフトに置換するかどうかを指定する | 固定小数点の演算および 2 のべき乗の乗算には符号付き左シフトを使用してください | EnableSignedLeftShifts | Control Signed Left Shifts in Generated Code |
| 生成コードで符号付きビット単位右シフトを認めるかどうかを指定する | 符号付き整数の右シフトを許可 | EnableSignedRightShifts | N/A |
| 生成コードのデータ型のキャストを制御する | [すべての設定] タブの [キャスト モード] | CastingMode | Control Data Type Casts in Generated Code |
| 生成コードのインデント スタイルを指定する | [すべての設定] タブの [インデント スタイル] [すべての設定] タブの [インデント サイズ] | IndentStyleIndentSize | Specify Indent Style for C/C++ Code |
| 生成されたコード内で改行の前の最大列数を指定する | [すべての設定] タブの [列の制限] | ColumnLimit | N/A |
| 生成されたコード内で MATLAB データ型のカスタム名を指定する | カスタム データ型置換を有効化 | EnableCustomReplacementTypesReplacementTypes | データ型置換のカスタマイズ |
| 外部ヘッダー ファイルからカスタム データ型の定義をインポートする | 外部ヘッダー ファイルからカスタムの型をインポート | IsExternHeaderFiles | Import Custom Data Type Definitions from External Header Files |
| 生成された C/C++ ファイル名をカスタマイズする | 生成されるソース ファイルおよびヘッダー ファイルの名前の形式 | CustomFileNameStr | Customize C/C++ File Names Generated from MATLAB Code |
| 生成されたグローバル変数の識別子をカスタマイズする | グローバル変数 | CustomSymbolStrGlobalVar | 生成される識別子のカスタマイズ |
| 生成されたグローバルなタイプの識別子をカスタマイズする | グローバルなタイプ | CustomSymbolStrType | 生成される識別子のカスタマイズ |
| 生成されたグローバルなタイプの識別子のフィールド名をカスタマイズする | グローバルなタイプのフィールド名 | CustomSymbolStrField | 生成される識別子のカスタマイズ |
| 生成されたローカル関数の識別子をカスタマイズする | ローカル関数 | CustomSymbolStrFcn | 生成される識別子のカスタマイズ |
| 生成されたローカルな一時変数の識別子をカスタマイズする | ローカルな一時変数 | CustomSymbolStrTmpVar | 生成される識別子のカスタマイズ |
| 生成された定数のマクロの識別子をカスタマイズする | 定数のマクロ | CustomSymbolStrMacro | 生成される識別子のカスタマイズ |
| 生成された組み込み可能 mxArray タイプ (EMX 配列タイプ) の識別子をカスタマイズする | EMX 配列タイプ | CustomSymbolStrEMXArray | 生成される識別子のカスタマイズ |
| 生成された EMX 配列 (組み込み可能 mxArray) ユーティリティ関数の識別子をカスタマイズする | EMX 配列ユーティリティ関数 | CustomSymbolStrEMXArrayFcn | 生成される識別子のカスタマイズ |
| 生成コードの関数インターフェイスをカスタマイズする | [すべての設定] タブの [初期化関数が必要] [すべての設定] タブの [終了関数が必要] | IncludeInitializeFcnIncludeTerminateFcn | N/A |
| ファイル バナーおよび関数バナーをカスタマイズする | N/A | CodeTemplate | |
| 生成コード内のグローバル変数の宣言と定義を制御する | N/A | N/A | |
| MISRA™ C/C++ および AUTOSAR C++ のガイドラインに準拠するコードの生成 | [MISRA 準拠] ペイン | coder.setupMISRAConfigのリファレンス ページ参照 | Generate C/C++ Code with Improved MISRA and AUTOSAR Compliance |
| デバッグ | |||
| 生成されたファイルの情報、行数およびメモリ使用量などの静的コード メトリクス レポートを生成する | 静的コード メトリクス | GenerateCodeMetricsReport | Generating a Static Code Metrics Report for Code Generated from MATLAB Code |
| 選択したコード置換ライブラリから使用された置換を表示するコード置換レポートを生成する | コード置換 | GenerateCodeReplacementReport | |
| コード生成レポートで、単精度浮動小数点や倍精度浮動小数点、計算量の多い固定小数点演算を行う箇所を強調表示する | 潜在的なデータ型の問題を強調表示 | HighlightPotentialDataTypeIssues | Highlight Potential Data Type Issues in a Report |
| カスタム コード | |||
| アプリケーション固有のコード要件を満たすように、生成コードにおいて関数と演算子を置き換える | コード置換ライブラリ | CodeReplacementLibrary | Embedded Coder は追加のライブラリを提供し、カスタム コードの作成と使用を可能にする。コード置換のカスタマイズを参照してください。 |
| 関数と演算子のアプリケーション固有の実装の作成と登録 | N/A | N/A | コード置換のカスタマイズ |
| 検証 | |||
| MATLAB ソース コードと生成された C/C++ コード間で対話形式でトレースする | コードのトレーサビリティを有効にする | EnableTraceability | Interactively Trace Between MATLAB Code and Generated C/C++ Code |
| ソフトウェアインザループおよびプロセッサインザループの実行を使用して生成コードを検証する | N/A | VerificationMode | Code Verification Through Software-in-the-Loop and Processor-in-the-Loop Execution |
| ソフトウェアインザループまたはプロセッサインザループの実行中にコードをデバッグする | [デバッグ] ペインの [SIL または PIL でソースレベル デバッグを有効にする] | SILPILDebugging | SIL または PIL の実行中における生成コードのデバッグ |
| ソフトウェアインザループおよびプロセッサインザループの実行中に実行時間をプロファイルする | [デバッグ] ペインの [SIL/PIL のエントリ ポイント実行プロファイリングを有効にする] | CodeExecutionProfiling | SIL および PIL の実行時間プロファイリング |
| ARM に最適化されたコードの検証とプロファイルを行う | [ハードウェア] ペインの [ハードウェア ボード] | Hardware | |
| 生成された C/C++ コードの Polyspace® 検証を統合されたワークフローを使用して実行する | N/A | N/A | MATLAB Coder によって生成された C/C++ コードの Polyspace 検証 |
| 生成された C/C++ コードとカスタム C/C++ コードのカバレッジ データを抽出する | [すべての設定] タブの [C/C++ コード カバレッジを有効にする] | CodeCoverage | getCodeCoverageData |