Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Embedded Coder のチェック

Embedded Coder のチェックの概要

コード生成のモデルを構成するには、Embedded Coder® のモデル アドバイザー チェックを使用します。

参考

C/C++ 量産組み込み用コードで推奨されないブロックをチェック

チェック ID: mathworks.codegen.PCGSupport

コード生成でサポートされていないブロックまたは C/C++ 量産組み込み用コードに推奨されていないブロックを特定します。

説明

このチェックで、C/C++ 量産コード生成に適していないモデル構成を部分的に特定します。Simulink® Coder™ および Embedded Coder の場合、Simulink ブロック サポートのテーブルにこのようなモデル構成の ID が示されています。

一部のインスタンスでは、このチェックはコード生成でサポートされているブロックにフラグを立てます。これらのブロックについては、サポート メモで提供される脚注情報を確認し、モデル アドバイザーで提供される推奨アクションに従う必要があります。

このチェックの推奨事項に従うと、CERT C 標準、CWE 標準、ISO/IEC TS 17961 標準に準拠するコードが生成される可能性が高くなります。

Embedded Coder および Simulink Check™ で使用できます。

結果と推奨アクション

条件推奨アクション
モデルまたはサブシステムに量産組み込み用コードに使用されるべきではないブロックが含まれている。結果にリストされるブロックを置き換えることを検討してください。状態を特定するには、問題のある項目のリストの要素をクリックします。
モデルまたはサブシステムに量産コード生成でサポートされるが推奨されないブロックが含まれている。サポート メモを確認し、モデル アドバイザーで提供される推奨アクションに従います。

機能および制限事項

次のことが可能です。

  • このチェックはライブラリ モデルで実行できます。

  • ライブラリにリンクされたブロックの内容を解析します。

  • マスク サブシステムの内容を解析します。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートを除外できます。

編集時のチェック

このチェックは編集時のチェックでサポートされます。

参考

非効率的な飽和コードを生成するコンフィギュレーション パラメーターをチェック

チェック ID: mathworks.codegen.EfficientTunableParamExpr

コードの効率を向上させることができる最適化設定のモデル コンフィギュレーションをチェックします。

説明

このチェックで、C/C++ 量産コード生成に推奨されるモデル コンフィギュレーション パラメーターを特定します。Embedded Coder では、これらのモデル コンフィギュレーション パラメーターによってコード効率が向上します。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
最適化によってコード生成が抑制され、選択した調整可能なパラメーター式の整数オーバーフローを防止する。飽和コードの除去を選択する。Embedded Coder を保有し、ERT ベースのシステム ターゲット ファイルを使用している場合、コンフィギュレーション パラメーターRemove Code from Tunable Parameter Expressions That Saturate Out-of-Range Valuesを選択するか、パラメーター EfficientTunableParamExpron に設定します。
最適化によって、NaN 値に対して浮動小数点から整数への変換結果を処理するコード生成が抑制される。変換コードの除去を選択する。Embedded Coder を保有し、ERT ベースのシステム ターゲット ファイルを使用している場合、コンフィギュレーション パラメーター浮動小数点から整数への変換で NaN が 0 にマッピングされて飽和したコードを削除を選択するか、パラメーター EfficientMapNaN2IntZeroon に設定します。

アクション結果

[設定の変更] をクリックすると、コード生成の効率に影響を与える可能性があるモデル最適化設定が構成されます。次の場合は安全上の懸念はありません。

  • [調整可能なパラメーター式から範囲外の値を飽和させるコードを削除] パラメーター。調整可能な式の項であるパラメーターに対して、シミュレーションに全範囲の値が含まれるが、Simulink は飽和に関する警告を生成しない場合。

  • [浮動小数点から整数への変換で NaN が 0 にマッピングされて飽和したコードを削除] パラメーター。モデル シミュレーションに NaN 入力値が含まれていない場合。

機能および制限事項

  • ライブラリ モデル上で実行されない。

  • ブロックまたはチャートの対象外指定は許可されない。

参考

計算量が多い範囲外のチェック コードを生成する Lookup Table ブロックの特定

チェック ID: mathworks.codegen.LUTRangeCheckCode

ブレークポイントまたはインデックス値に対する範囲外の入力を防止するコードを生成する Lookup Table ブロックを特定します。

説明

このチェックにより、有効なブレークポイント値の範囲外になる入力を防止するコードが次のブロックで生成されないことが検証されます。

また、このチェックにより、有効なインデックス値の範囲外になる入力を防止するコードが Interpolation Using Prelookup ブロックで生成されないことも検証されます。

推奨アクションに従うことで、生成コードの実行効率性と ROM 効率性の両方が向上します。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション

Lookup Table ブロックが範囲外のチェック コードを生成する。

ブロック ダイアログ ボックスの設定を変更し、範囲外のチェック コードが生成されないようにします。

  • 1-D Lookup Table ブロック、2-D Lookup Table ブロック、n-D Lookup Table ブロック、Prelookup ブロックの場合、[生成コードの範囲外入力に対する保護を削除する] のチェック ボックスをオンにします。

  • Interpolation Using Prelookup ブロックの場合、[生成コードの範囲外インデックスに対する保護を削除] のチェック ボックスをオンにします。

機能および制限事項

次のことが可能です。

  • このチェックはライブラリ モデルで実行できます。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

アクション結果

[変更] をクリックすると、Lookup Table ブロックで範囲外のチェック コードが生成されなくなり、生成コードが効率的になります。

編集時のチェック

このチェックは編集時のチェックでサポートされます。

参考

論理ブロックの出力タイプのチェック

チェック ID: mathworks.codegen.LogicBlockUseNonBooleanOutput

出力データ型に boolean を使用しない論理ブロックを特定します。

説明

このチェックにより、次のブロックの出力データ型が boolean であることが検証されます。

  • Compare To Constant

  • Compare To Zero

  • Detect Change

  • Detect Decrease

  • Detect Fall Negative

  • Detect Fall Nonpositive

  • Detect Increase

  • Detect Rise Nonnegative

  • Detect Rise Positive

  • Interval Test

  • Interval Test Dynamic

  • Logical Operator

  • Relational Operator

出力データ型に boolean を使用すると生成コードの実行効率性が向上します。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
論理ブロックの出力データ型が boolean ではない。 ブロックのダイアログ ボックスで、[出力データ型]boolean に設定します。

機能および制限事項

次のことが可能です。

  • このチェックはライブラリ モデルで実行できます。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

アクション結果

[変更] をクリックすると、論理ブロックで boolean が出力データ型として使用されるようになります。論理ブロックで出力型に uint8 が使用される場合、[変更] をクリックすると出力型が boolean に変更されます。

ハードウェア実装のチェック

チェック ID: mathworks.codegen.HWImplementation

不整合があるか、条件が不足しているハードウェア実装設定を特定します。

説明

Simulink および Simulink Coder ソフトウェアには、ターゲットの仕様が 2 セット必要です。1 つ目のセットは最終的な目的の量産ターゲットを記述します。2 つ目のセットは現在選択中のターゲットを記述します。この構成が一致しないと、コード ジェネレーターは量産ターゲットの動作をエミュレートするために追加のコードを作成します。ハードウェア属性の不整合または指定不足は、ターゲット ハードウェアのコード生成が非効率または不適切になる原因となる可能性があります。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
ハードウェア実行パラメーターが推奨値に設定されていない。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [ハードウェア実行] ペインで、次のパラメーターを指定します。

  • バイト順 (ProdEndianess)

  • 製品ハードウェアの符号付き整数の除算の丸め (ProdIntDivRoundTo)

[コンフィギュレーション パラメーター] ダイアログ ボックスで、次のパラメーターを指定します。

  • テスト ハードウェアでのバイト順 (TargetEndianess)

  • テスト ハードウェアの符号付き整数の除算の丸め (TargetIntDivRoundTo)

ハードウェア実行の [製品ハードウェア] 設定が [テスト ハードウェア] 設定と一致しない。[コンフィギュレーション パラメーター] ダイアログ ボックスで、[テスト ハードウェアを製品ハードウェアと同じにする] (ProdEqTarget) チェック ボックスをオンにすることを検討するか、一致するように設定を変更します。

参考

ランタイム環境の構成

問題のあるソフトウェア環境仕様の特定

チェック ID: mathworks.codegen.SWEnvironmentSpec

問題のあるソフトウェア環境設定を特定します。

説明

  • いくつかのソフトウェア環境設定に対するサポートは、非効率なコード生成や最適でない結果につながる場合があります。

  • ISO® や MISRA® のような C の業界標準規格では、最初の 31 文字以内が固有である識別子が必要です。

  • 弱い Simulink I/O データ型の Stateflow® チャートは非効率なコードにつながります。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
識別子の最大の長さが C の業界標準規格に準拠していない。[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][Identifier] ペインで、[識別子の最大の長さ] パラメーターを 31 文字に設定します。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][インターフェイス] ペインのパラメーターが推奨値に設定されていない。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][インターフェイス] ペインで、次のパラメーターをオフにします。

  • サポート: 連続時間

  • サポート: 非有限数

[コンフィギュレーション パラメーター] ダイアログ ボックスで、[インラインでない S-Function のサポート] をオフにします。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][Identifier] ペインのパラメーターが推奨値に設定されていない。[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][Identifier] ペインで、[スカラーのインライン パラメーターの生成] パラメーターを [リテラル] に設定します。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][インターフェイス] ペインで、[サポート: 可変サイズの信号] が選択されている。これにより、コードが非効率になる可能性があります。可変サイズ信号をサポートしない場合は、[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][インターフェイス] ペインで、[サポート: 可変サイズの信号] をオフにします。
モデルに弱い Simulink I/O データ型の指定をもつ Stateflow チャートが含まれている。Stateflow チャートのプロパティ [Simulink I/O で厳密な型指定] を選択します。このプロパティを選択した後、モデル内でデータ型を調整しなければならない場合があります。

制限

Stateflow チャートを使用する場合は Stateflow ライセンスが必要です。

参考

Simulink 入出力での厳密なデータ型指定 (Stateflow)

問題のあるコード計測 (データ I/O) の特定

チェック ID: mathworks.codegen.CodeInstrumentation

問題のあるコード計測を特定します。

説明

  • 生成コードの計測により、最適でない結果を引き起こす可能性があります。

  • テスト ポイントにはグローバル メモリが必要であり、量産コードの生成には適していません。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
インターフェイス パラメーターが推奨値に設定されていない。[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][インターフェイス] ペインで、パラメーターを推奨値に設定します。
ブロックがアサーション コードを生成する。[コンフィギュレーション パラメーター] ダイアログ ボックスで、ブロック単位またはグローバルに [Model Verification ブロックを有効にする][すべて無効] に設定します。
ブロックの出力信号に 1 つ以上のテスト ポイントがあり、Embedded Coder ライセンスがある場合に、[コンフィギュレーション パラメーター] ダイアログ ボックスで [テスト ポイント信号を無視] チェック ボックスがオフになっている。

指定したブロック出力信号からテスト ポイントを削除します。各信号について、[信号プロパティ] ダイアログ ボックス[テスト ポイント] チェック ボックスをオフにします。

または、モデルで ERT ベースのシステム ターゲット ファイルを使用している場合は、[コンフィギュレーション パラメーター] ダイアログ ボックスで [テスト ポイント信号を無視] チェック ボックスをオンにし、コード生成中にテスト ポイントを無視します。

機能および制限事項

Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

非効率なアルゴリズムを生成するブロックの特定

チェック ID: mathworks.codegen.UseRowMajorAlgorithm

非効率なアルゴリズムを生成するブロックを特定します。

説明

このチェックは、モデルの配列レイアウトに基づいて、生成コードで非効率なアルゴリズムを生成するブロックを特定します。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
列優先のコード生成に対して、コンフィギュレーション パラメーター [配列のレイアウト][Column-major] に設定されている。コンフィギュレーション パラメーター [行優先の配列レイアウトに最適化されたアルゴリズムを使用] をオフにします。
行優先のコード生成に対して、コンフィギュレーション パラメーター [配列のレイアウト][行優先] に設定されている。コンフィギュレーション パラメーター [行優先の配列レイアウトに最適化されたアルゴリズムを使用] をオンにします。

機能および制限事項

  • マスク サブシステムの内容を解析します。

参考

MISRA C:2012 のコンフィギュレーション パラメーターをチェック

チェック ID: mathworks.misra.CodeGenSettings

MISRA C:2012 準拠コード生成に影響を与える可能性のあるコンフィギュレーション パラメーターを特定します。

説明

このチェックの推奨事項に従うと、組み込みアプリケーションに対して MISRA C:2012 準拠コードが生成される可能性が高くなります。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション
数学とデータ型
コンフィギュレーション パラメーター [固定小数点の正味勾配計算に除算を使用][オン] または [整数の逆数の場合にのみ除算を使用] に設定されていない。[固定小数点の正味勾配計算に除算を使用][オン] または [整数の逆数の場合にのみ除算を使用] に設定します。

コンフィギュレーション パラメーター [Inf または NaN のブロックの出力][なし] または [エラー] に設定され、[非有限数のサポート][オン] に設定されている。

コンフィギュレーション パラメーター [Inf または NaN のブロックの出力][なし] に設定され、[非有限数のサポート][オフ] に設定されている。

[非有限数のサポート] の設定が次の場合。

  • [オン][Inf または NaN のブロックの出力][警告] に設定します。

  • [オフ][Inf または NaN のブロックの出力][警告] または [エラー] に設定します。

コンフィギュレーション パラメーター [Model Verification ブロックを有効にする][ローカル設定を使用] または [すべて有効] に設定されている。[Model Verification ブロックを有効にする][すべて無効] に設定します。
コンフィギュレーション パラメーター [指示のないイベント ブロードキャスト][なし] または [警告] に設定されている。[指示のないイベント ブロードキャスト][エラー] に設定します。
コンフィギュレーション パラメーター [オーバーフロー時にラップ][なし] に設定されている。コンフィギュレーション パラメーター [オーバーフロー時にラップ][警告] または [エラー] に設定します。
ハードウェア実行
コンフィギュレーション パラメーター [製品ハードウェアの符号付き整数の除算の丸め][未定義] に設定されている。[製品ハードウェアの符号付き整数の除算の丸め][ゼロ] または [負方向] に設定します。
コンフィギュレーション パラメーター [算術シフトとして符号付き整数を右にシフト] がオンになっている。[算術シフトとして符号付き整数を右にシフト] をオフにします。
シミュレーション ターゲット
コンフィギュレーション パラメーター [コンパイル時の MATLAB 関数の再帰限界値]0 以外の値に設定されている。[コンパイル時の MATLAB 関数の再帰限界値]0 に設定します。
コンフィギュレーション パラメーター [MATLAB 関数での動的メモリ割り当て] がオンになっている。[MATLAB 関数での動的メモリ割り当て] をオフにします。
コンフィギュレーション パラメーター [MATLAB 関数の実行時再帰を有効にする] がオンになっている。[MATLAB 関数の実行時再帰を有効にする] をオフにします。
コード生成

次のパラメーターのいずれかが選択されている場合に、コンフィギュレーション パラメーター [ビットフィールド宣言子の型指定子]uchar_T に設定されている。

  • boolean データをビットフィールドにパッキング

  • ステートの設定を保存するためにビットセットを使用

  • boolean データを保存するためにビットセットを使用

[ビットフィールド宣言子の型指定子]uint_T に設定します。
コンフィギュレーション パラメーター [キャスト モード][標準準拠] に設定されていない。[キャスト モード][標準準拠] に設定します。
コンフィギュレーション パラメーター [コード置換ライブラリ][なし] または [AUTOSAR 4.0] に設定されていない。

[コード置換ライブラリ][なし] または [AUTOSAR 4.0] に設定する

コンフィギュレーション パラメーター [エクスターナル モード] がオンになっている。[エクスターナル モード] をオフにします。
コンフィギュレーション パラメーター [共有定数の生成] がオンになっている。[共有定数の生成] をオフにします。

コンフィギュレーション パラメーター [コメントを含める] がオフになっている。

[コメントを含める] を選択する。
コンフィギュレーション パラメーター [MAT ファイルのログ] がオンになっている。

[MAT ファイルのログ] をオフにする

ERT ベースのターゲット システムで、コンフィギュレーション パラメーター [MATLAB ユーザー コメント] がオフになっている。[MATLAB ユーザー コメント] を選択する。
コンフィギュレーション パラメーター [識別子の最大の長さ] の値が指定されていない。値を実装に応じた制限に設定します。既定の設定は 31 です。
コンフィギュレーション パラメーター [かっこのレベル][最大 (かっこで優先度を指定)] に設定されていない。[かっこのレベル][最大 (かっこで優先度を指定)] に設定します。

ERT ベースのターゲット システムで、[ファイル パッケージ化形式][コンパクト] または [コンパクト (別々のデータ ファイル)] に設定されている場合に、コンフィギュレーション パラメーター [関数宣言に static キーワードを保持] がオフになっている。

[関数宣言に static キーワードを保持] をオンにします。
コンフィギュレーション パラメーター [2 のべき乗での乗算を符号付きのビット単位シフトに置換] がオンになっている。[2 のべき乗での乗算を符号付きのビット単位シフトに置換] をオフにします。
コンフィギュレーション パラメーター [共有コードの配置][自動] に設定されている。

[共有コードの配置][共有場所] に設定する

ERT ベースのターゲット システムで、コンフィギュレーション パラメーター [連続時間のサポート] がオンになっている。 [連続時間のサポート] をオフにします。
ERT ベースのターゲット システムで、コンフィギュレーション パラメーター [インラインでない S-Function のサポート] がオンになっている。 [インラインでない S-Function のサポート] をオフにします。
コンフィギュレーション パラメーター [システム生成の識別子][クラシック] に設定されている。[システム生成の識別子][短縮形] に設定します。
コンフィギュレーション パラメーター [システム ターゲット ファイル] が GRT ベースのターゲットに設定されている。[システム ターゲット ファイル] を ERT ベースのターゲットに設定します。
コンフィギュレーション パラメーター [コード インターフェイスのパッケージ化][再利用可能な関数] に設定されている場合に、[モデルの初期化に動的メモリ割り当てを使用] がオンになっている。

[モデルの初期化に動的メモリ割り当てを使用] をオフにします。

メモ

[コード インターフェイスのパッケージ化][再利用可能な関数] に設定されている場合にのみ選択します。

アクション結果

[すべて変更] をクリックすると、パラメーター値が推奨値に変わります。

メモ

GRT ベースのターゲットが設定されたモデルに対して [すべて変更] をクリックした場合、モデル アドバイザーは [システム ターゲット ファイル] コンフィギュレーション パラメーターを ERT ベースのシステムに更新しません。

パラメーター サブチェックは、結果テーブルで D が付いたパラメーターの結果によって異なります。結果が D-Warning である場合、結果テーブルの [現在の値] 列にはそのサブチェックに対して "前提条件の制約を満たしていません。" と示されます。パラメーターの変更後、チェックを再実行します。

メモ

一部のサブチェックは ERT ベース システムのコンフィギュレーション パラメーターに固有です。モデルを ERT ベース システムに変更しない限り、これらのパラメーターは [すべて変更] をクリックしても更新されません。

機能および制限事項

このチェックでは参照モデルは確認されません。

参考

MISRA C:2012 で推奨されないブロックをチェック

チェック ID: mathworks.misra.BlkSupport

MISRA C:2012 準拠のコード生成でサポートまたは推奨されないブロックがあるかどうかを特定します。

説明

このチェックの推奨事項に従うと、組み込みアプリケーションに対して MISRA C:2012 準拠コードが生成される可能性が高くなります。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション

3 次スプライン内挿法または外挿法を使用している Lookup Table ブロックがモデルまたはサブシステム内で見つかった。具体的には以下のブロックです。

Lookup Table ブロックに対して、他の内挿法および外挿法を検討してください。

推奨されない Lookup Table ブロックがモデルまたはサブシステム内で見つかった。具体的には以下のブロックです。

  • Lookup Table

  • Lookup Table (2-D)

推奨されない Lookup Table ブロックを置き換えることを検討してください。
S-Function Builder ブロックがモデルまたはサブシステム内で見つかった。S-Function Builder ブロックを量産に推奨されるブロックで置き換えることを検討してください。
From Workspace ブロックがモデルまたはサブシステム内で見つかった。From Workspace ブロックを量産に推奨されるブロックで置き換えることを検討してください。

string ブロックがモデルまたはサブシステム内で見つかった。具体的には以下のブロックです。

string ブロックを量産に推奨されるブロックで置き換えることを検討してください。

機能および制限事項

次のことが可能です。

  • このチェックはライブラリ モデルで実行できます。

  • ライブラリにリンクされたブロックの内容を解析します。

  • マスク サブシステムの内容を解析します。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

編集時のチェック-  このチェックは編集時のチェックでサポートされます。

参考

サポートされていないブロック名のチェック

チェック ID: mathworks.misra.BlockNames

/ が含まれるブロック名を特定します。

説明

このチェックの推奨事項に従うと、組み込みアプリケーションに対して MISRA C:2012 準拠コードが生成される可能性が高くなります。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション
/ を含むブロック名がモデルまたはサブシステム内で見つかった。/ をブロック名から削除します。

機能および制限事項

  • ライブラリ モデルで実行されます。

  • ライブラリにリンクされたブロックの内容を解析します。

  • マスク サブシステムの内容を解析します。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートの対象外指定を許可します。

編集時のチェック-  このチェックは編集時のチェックでサポートされます。

参考

Assignment ブロックの使用をチェック

チェック ID: mathworks.misra.AssignmentBlocks

ブロック パラメーター [任意の出力要素が割り当てられない場合のアクション][エラー] または [警告] に設定されていない Assignment ブロックを特定します。

説明

このチェックは [Simulink][Math Operations] の Simulink ブロック ライブラリで使用可能な Assignment ブロックに適用されます。

このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準、CWE 標準、ISO/IEC TS 17961 標準に準拠するコードが生成される可能性が高くなります。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション
モデルまたはサブシステム内に、ブロック パラメーター [任意の出力要素が割り当てられない場合のアクション][エラー] または [警告] に設定されていない、配列の初期化が完了していない Assignment ブロックが含まれている可能性がある。

ブロック パラメーター [任意の出力要素が割り当てられない場合のアクション] をいずれかの推奨値に設定します。

  • Assignment ブロックが Iterator Subsystem 内にない場合は [エラー]

  • Assignment ブロックが Iterator Subsystem 内にある場合は [警告]

機能および制限事項

  • ライブラリ モデルで実行されます。

  • ライブラリにリンクされたブロックの内容を解析します。

  • マスク サブシステムの内容を解析します。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートの対象外指定を許可します。

編集時のチェック-  このチェックは編集時のチェックでサポートされます。ただし、編集時のチェックは Assignment ブロックが Iterator subsystem にあるかどうかを判断できないため、次のチェック条件はサポートされていません。

ブロック パラメーター [任意の出力要素が割り当てられない場合のアクション] をいずれかの推奨値に設定します。

  • Assignment ブロックが Iterator Subsystem 内にない場合は [エラー]

  • Assignment ブロックが Iterator Subsystem 内にある場合は [警告]

参考

default ケースをもたない switch case 式のチェック

チェック ID: mathworks.misra.SwitchDefault

default ケースをもたない switch case 式を特定します。

説明

このチェックは、default ケースがなく switch case 式をもつモデル オブジェクトにフラグを立てます。

このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準、CWE 標準、ISO/IEC TS 17961 標準に準拠するコードが生成される可能性が高くなります。

このチェックは、Polyspace® の注釈で正当化される場合、default ケースをもたないブロックにフラグを立てません。チェックを実行すると、default ケースをもたないが正当化されたブロックは、[正当化情報のあるブロック] テーブルにリストされます。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション

モデル オブジェクトには、default ケースのない switch case 式が含まれる。

Switch Case ブロックの場合、ブロック パラメーター [default ケースを表示] を選択して default ケースを明示的に指定することを検討してください。

機能および制限事項

次のことが可能です。

  • このチェックはライブラリ モデルで実行できます。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

編集時のチェック-  このチェックは編集時のチェックでサポートされます。

参考

AUTOSAR 受信側インターフェイスの欠落しているエラー ポートをチェック

チェック ID: mathworks.misra.AutosarReceiverInterface

一致するエラー ポートのない AUTOSAR 受信側インターフェイスの入力端子を特定します。

説明

このチェックの推奨事項に従うと、組み込みアプリケーションに対して MISRA C:2012 準拠コードが生成される可能性が高くなります。このチェックはエラー ポートが欠落している AUTOSAR 受信側インターフェイスの入力端子にフラグを立てます。次の表は、対応するエラー ポートが欠落している場合に、チェックによりフラグが立てられる受信側インターフェイス ポートの AUTOSAR データ アクセス モード タイプを示しています。

AUTOSAR データ アクセス モード タイプチェックによるフラグの有無
ImplicitReceiveあり
ExplicitReceiveあり
QueuedExplicitReceiveなし
ErrorStatusなし
ModeReceiveなし
IsUpdatedなし
EndToEndReadあり
ExplicitReceiveByValなし
otherwiseなし

欠落しているエラー ポートが Polyspace の注釈によって正当化される場合、このチェックはフラグを立てません。チェックを実行すると、正当化情報のある欠落しているエラー ポートは、[正当化情報のあるブロック] テーブルにリストされます。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション

AUTOSAR 受信側インターフェイスの入力端子に一致するエラー ポートがない。

対応する AUTOSAR 受信側インターフェイスの入力端子に、欠落しているエラー ポートを追加してマッピングしてください。

データ アクセス モードが ImplicitReceiveExplicitReceive、または EndToEndRead の場合、AUTOSAR 受信側インターフェイス ポートに一致するエラー ポートがない。

対応する AUTOSAR 受信側インターフェイスの入力端子に、欠落しているエラー ポートを追加してマッピングしてください。

機能および制限事項

次のことが可能です。

  • トップ レイヤ/ルート レベル モデルを解析します。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

バス要素の名前として使用されるバス オブジェクト名のチェック

チェック ID: mathworks.misra.BusElementNames

バス要素の名前として使用されるバス オブジェクト名を識別します。

説明

このチェック ボックスを使用すると、組み込みアプリケーションに対して MISRA C:2012 準拠コードが生成される可能性が高くなります。このチェックは Simulink.Bus オブジェクト名が Simulink.Bus 要素名として使用されるインスタンスにフラグを付けます。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション
バス オブジェクト名がバス要素名として使用されている。フラグの付いたバス オブジェクト名またはバス要素名を変更して、同一にならないようにします。

参考

セキュリティで保護されたコーディング標準のコンフィギュレーション パラメーターをチェック

チェック ID: mathworks.security.CodeGenSettings

セキュリティで保護されたコーディング標準への準拠性に影響を与える可能性のあるコンフィギュレーション パラメーターを特定します。

説明

このチェックの推奨事項に従うと、セキュリティで保護されたコーディング標準 CERT C、CWE、ISO/IEC TS 17961 に準拠するコードが生成される可能性が高くなります。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション
診断

コンフィギュレーション パラメーター [Inf または NaN のブロックの出力][なし] または [エラー] に設定され、[非有限数のサポート][オン] に設定されている。

コンフィギュレーション パラメーター [Inf または NaN のブロックの出力][なし] に設定され、[非有限数のサポート][オフ] に設定されている。

[非有限数のサポート] の設定が次の場合。

  • [オン] の場合、[Inf または NaN のブロックの出力][警告] に設定します。

  • [オフ] の場合、[Inf または NaN のブロックの出力][警告] または [エラー] に設定します。

コンフィギュレーション パラメーター [Model Verification ブロックを有効にする][ローカル設定を使用] または [すべて有効] に設定されている。[Model Verification ブロックを有効にする][すべて無効] に設定します。
コンフィギュレーション パラメーター [指示のないイベント ブロードキャスト][なし] または [警告] に設定されている。[指示のないイベント ブロードキャスト][エラー] に設定します。
コンフィギュレーション パラメーター [オーバーフロー時にラップ][なし] に設定されている。[オーバーフロー時にラップ][警告] または [エラー] に設定する。
ハードウェア実行
コンフィギュレーション パラメーター [製品ハードウェアの符号付き整数の除算の丸め][未定義] に設定されている。[製品ハードウェアの符号付き整数の除算の丸め][ゼロ] または [負方向] に設定します。
コンフィギュレーション パラメーター [算術シフトとして符号付き整数を右にシフト] がオンになっている。[算術シフトとして符号付き整数を右にシフト] をオフにします。
シミュレーション ターゲット
コンフィギュレーション パラメーター [コンパイル時の MATLAB 関数の再帰限界値]0 以外の値に設定されている。[コンパイル時の MATLAB 関数の再帰限界値]0 に設定します。
コンフィギュレーション パラメーター [MATLAB 関数での動的メモリ割り当て] がオンになっている。[MATLAB 関数での動的メモリ割り当て] をオフにします。
コンフィギュレーション パラメーター [MATLAB 関数の実行時再帰を有効にする] がオンになっている。[MATLAB 関数の実行時再帰を有効にする] をオフにします。
コード生成
コンフィギュレーション パラメーター [コード置換ライブラリ][なし] または [AUTOSAR 4.0] に設定されていない。[コード置換ライブラリ][なし] または [AUTOSAR 4.0] に設定します。
コンフィギュレーション パラメーター [エクスターナル モード] がオンになっている。[エクスターナル モード] をオフにします。

コンフィギュレーション パラメーター [コメントを含める] がオフになっている。

[コメントを含める] を選択する。
コンフィギュレーション パラメーター [MAT ファイルのログ] がオンになっている。[MAT ファイルのログ] をオフにします。
ERT ベースのターゲット システムで、コンフィギュレーション パラメーター [MATLAB ユーザー コメント] がオフになっている。[MATLAB ユーザー コメント] を選択する。
コンフィギュレーション パラメーター [2 のべき乗での乗算を符号付きのビット単位シフトに置換] がオンになっている。[2 のべき乗での乗算を符号付きのビット単位シフトに置換] をオフにします。
ERT ベースのターゲット システムで、コンフィギュレーション パラメーター [連続時間のサポート] がオンになっている。 [連続時間のサポート] をオフにします。
ERT ベースのターゲット システムで、コンフィギュレーション パラメーター [インラインでない S-Function のサポート] がオンになっている。 [インラインでない S-Function のサポート] をオフにします。
コンフィギュレーション パラメーター [システム ターゲット ファイル] が GRT ベースのターゲットに設定されている。[システム ターゲット ファイル] を ERT ベースのターゲットに設定します。
コンフィギュレーション パラメーター [モデルの初期化に動的メモリ割り当てを使用] がオンになっている。[モデルの初期化に動的メモリ割り当てを使用] をオフにします。

メモ

[コード インターフェイスのパッケージ化][再利用可能な関数] に設定されている場合にのみ選択します。

アクション結果

[すべて変更] をクリックすると、パラメーター値が推奨値に変わります。

メモ

GRT ベースのターゲットが設定されたモデルに対して [すべて変更] をクリックした場合、モデル アドバイザーは [システム ターゲット ファイル] コンフィギュレーション パラメーターを ERT ベースのシステムに更新しません。

パラメーター サブチェックは、結果テーブルで D が付いたパラメーターの結果によって異なります。結果が D-Warning である場合、結果テーブルの [現在の値] 列にはそのサブチェックに対して "前提条件の制約を満たしていません。" と示されます。パラメーターの変更後、チェックを再実行します。

メモ

一部のサブチェックは ERT ベース システムのコンフィギュレーション パラメーターに固有です。モデルを ERT ベース システムに変更しない限り、これらのパラメーターは [すべて変更] をクリックしても更新されません。

参考

Secure Coding Standards

セキュリティで保護されたコーディング標準に推奨されないブロックをチェック

チェック ID: mathworks.security.BlockSupport

セキュリティで保護されたコーディング標準への準拠で推奨されないブロックを特定します。

説明

このチェックの推奨事項に従うと、セキュリティで保護されたコーディング標準 CERT C、CWE、ISO/IEC TS 17961 に準拠するコードが生成される可能性が高くなります。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション

3 次スプライン内挿法または外挿法を使用している Lookup Table ブロックがモデルまたはサブシステム内で見つかった。具体的には以下のブロックです。

Lookup Table ブロックに対して、他の内挿法および外挿法を検討してください。

推奨されない Lookup Table ブロックがモデルまたはサブシステム内で見つかった。具体的には以下のブロックです。

  • Lookup Table

  • Lookup Table (2-D)

推奨されない Lookup Table ブロックを置き換えることを検討してください。
S-Function Builder ブロックがモデルまたはサブシステム内で見つかった。S-Function Builder ブロックを量産に推奨されるブロックで置き換えることを検討してください。
From Workspace ブロックがモデルまたはサブシステム内で見つかった。From Workspace ブロックを量産に推奨されるブロックで置き換えることを検討してください。

string ブロックがモデルまたはサブシステム内で見つかった。具体的には以下のブロックです。

string ブロックを量産に推奨されるブロックで置き換えることを検討してください。

機能および制限事項

次のことが可能です。

  • このチェックはライブラリ モデルで実行できます。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

編集時のチェック-  このチェックは編集時のチェックでサポートされます。

参考

問題のあるサブシステムの設定の特定

チェック ID: mathworks.codegen.QuestionableSubsysSetting

問題のある Subsystem ブロックの設定を特定します。

説明

生成コードで void-void 関数として実装された Subsystem ブロックはグローバル メモリを使用してサブシステムの I/O を保存します。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
ブロック パラメーター [Subsystem] で、[関数のパッケージ化] オプションが [再利用できない関数] に設定されている。[Subsystem Parameters][関数のパッケージ化] パラメーターを [自動] に設定します。
Subsystem ブロックの [Subsystem] パラメーターで、[関数のパッケージ化] オプションが [再利用可能な関数] に設定されている。[Subsystem Parameters][関数のパッケージ化] パラメーターを [自動] に設定します。

機能および制限事項

Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

行優先のコード生成でサポートされないブロックをチェック

チェック ID: mathworks.codegen.RowMajorCodeGenSupport

行優先のコード生成でサポートされないブロックをチェックします。

説明

このチェックは、行優先のコード生成でサポートされないブロックを特定します。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
モデルが行優先の配列レイアウトである外部データとインターフェイスしている。コンフィギュレーション パラメーター [配列のレイアウト][Row-major] に設定する。

機能および制限事項

  • マスク サブシステムの内容を解析します。

参考

配列のレイアウトが未設定の TLC S-Function を特定

チェック ID: mathworks.codegen.RowMajorUnsetSFunction

配列のレイアウトが未設定の TLC S-Function を特定します。

説明

このチェックは、SSArrayLayoutSS_UNSET に設定されている S-Function を特定します。既定では、すべての S-Function で SSArrayLayout プロパティは SS_UNSET に設定されています。この設定により、行優先のコード生成の S-Function が無効になります。コンフィギュレーション パラメーター [配列のレイアウト][行優先] に設定されている場合、Embedded Coder は、エラーを報告します。エラーをオフにするには、[行優先コード生成の外部関数互換性][警告] または [なし] に変更します。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
列優先のコード生成に対して、コンフィギュレーション パラメーター [配列のレイアウト][Column-major] に設定されている。SSArrayLayout プロパティを Column-major に設定する。
行優先のコード生成に対して、コンフィギュレーション パラメーター [配列のレイアウト][行優先] に設定されている。SSArrayLayout プロパティを Row-major に設定する。

機能および制限事項

  • すべてのマスク サブシステムの内容を解析します。

参考

計算量の多い固定小数点および飽和のコードを生成するブロックを特定

チェック ID: mathworks.codegen.BlockSpecificQuestionableFxptOperations

最適でない結果を引き起こす可能性のある固定小数点演算を特定します。

説明

特定のブロック設定により、計算量の多い固定小数点および飽和のコードが生成される可能性があります。

結果と推奨アクション

条件推奨アクション
ブロックが計算量の多い飽和コードを生成する。[Function ブロックのパラメーター][信号属性][整数オーバーフローで飽和] の設定がアプリケーションに必要かどうかをチェックします。そうでない場合は、生成されたコード内のブロックが最も効率的に実装されるように [整数オーバーフローで飽和] パラメーターをオフにします。
Product ブロックが不適切な勾配調整係数で信号を乗算している。正味勾配計算では乗算とそれに続くシフトを使用しますが、一部のターゲット ハードウェアでは非効率です。

[最適化][固定小数点の正味勾配計算に除算を使用] パラメーターを [オン] に設定するか、正味勾配を分数で近似可能であり、ターゲット ハードウェアにおいて乗算とシフト以上に除算が効率的である場合は、[整数の逆数の場合にのみ除算を使用] に設定します。

メモ

この最適化は特定の単純性と正確性の条件が満たされている場合にのみ実行されます。詳細については、正味勾配計算の処理 (Fixed-Point Designer)を参照してください。

Product ブロックが最初の入力に対しては除算演算、2 番目の入力に対しては乗算演算で設定されている。 乗算演算が最初に実行され、除算演算が 2 番目に実行されるように入力を反転します。
Product ブロックが複数の乗算演算を行うように設定されている。すべての分母の項を乗算してから、カスケード Product ブロックを使用して除算を 1 回行います。
Product ブロックが多数の乗算演算または除算演算を行うように設定されている。複数のブロックに演算を分割し、ブロックごとに 1 つの乗算または 1 つの除算演算を行います。
除算演算の一部として生成された防止コードが冗長である。モデルで除算演算の例外処理が発生しないことを検証し、[コンフィギュレーション パラメーター] ダイアログ ボックスで [最適化][除算演算の例外処理を防止するコードを削除] パラメーターを設定し、冗長な防止コードを削除します。
Sum ブロックの入力のデータ型範囲が出力のデータ型範囲を超えており、オーバーフローまたは飽和が発生する可能性がある。

出力およびアキュムレータのデータ型を変更し、その範囲がすべての入力範囲以上になるようにします。

たとえば、モデルに 2 つの入力がある場合

  • int8 (-128 ~ 127)

  • uint8 (0 ~ 255)

出力およびアキュムレータのデータ型範囲は -128 ~ 255 以上にしなければなりません。int16 (–32768 ~ 32767) データ型はこの条件を満たしています。

Sum ブロックに出力の勾配調整係数と異なる勾配調整係数をもつ入力が含まれている。入力、出力、アキュムレータが同じ勾配調整係数をもつようにデータ型を変更します。
Sum ブロックの入力バイアスの正味合計が出力のバイアスと異なる。 正味のバイアスの調整を 0 にするように出力スケーリングのバイアスを変更します。
MinMax ブロックの入力と出力のデータ型が異なる。入力または出力のデータ型を変更します。
MinMax ブロックの入力の勾配調整係数が出力と異なる。 入力または出力のスケーリングを変更します。
Discrete-Time Integrator ブロックの初期条件が状態と出力の両方を初期化するために使用されている。 [Function ブロック パラメーター][初期条件設定] パラメーターを [状態 (最も効率的)] に設定します。
パラメーターのオーバーフローが Compare to Zero ブロックにおいて発生した。このブロックは入力データ型を使用してゼロを表しています。入力データ型は正確にゼロを表すことができないため、入力値とゼロに最も近い表現可能な値が比較されました。ゼロを表現できる入力データ型を選択します。
パラメーターのオーバーフローが次の Compare to Constant ブロックにおいて発生した。このブロックは入力データ型を使用して [定数値] パラメーターを表しています。[定数値] パラメーターは、入力データ型が表現可能な範囲内にありません。入力信号は [定数値] パラメーターに最も近い表現可能な値と比較されました。[定数値] パラメーターを表現できる入力データ型の選択を行うか、入力データ型と一致するように [定数値] パラメーターを変更します。

機能および制限事項

  • 固定小数点コードの生成には Fixed-Point Designer™ ライセンスが必要です。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

モデル関数内の欠落している const 修飾子をチェック

チェック ID: mathworks.misra.ModelFunctionInterface

入力データのポインター内で欠落している const 修飾子を特定します。

説明

このチェックの推奨事項に従うと、組み込みアプリケーションに対して MISRA C:2012 準拠コードが生成される可能性が高くなります。このチェックは const 修飾子をもたない入力データのポインターにフラグを立てます。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション
const 修飾子が入力データのポインターに定義されていない。const 修飾子を入力データのポインターに追加することを検討してください。

参考

問題のある固定小数点演算の特定

チェック ID: mathworks.codegen.QuestionableFxptOperations

最適でない結果を引き起こす可能性のある固定小数点演算を特定します。

説明

乗算と除算の煩雑な演算を生成するブロック、計算量の多い変換コード、非効率な Lookup Table ブロックおよび計算量の多い比較コードが原因で、効率の低いコードが生成される可能性があります。

結果と推奨アクション

条件推奨アクション
整数除算の生成コードが大きい。[コンフィギュレーション パラメーター] ダイアログ ボックスの [ハードウェア実行] ペインで、[製品ハードウェアの符号付き整数の除算の丸め] パラメーターを推奨値に設定します。
ルックアップ テーブルの入力値のベクトルが等間隔ではない。ブレークポイント データが調整不可能な場合、データの間隔が等間隔で 2 のべき乗になるように調整します。fixpt_look1_func_approx を参照してください。
量子化時にルックアップ テーブルの入力値のベクトルが等間隔ではないが、等間隔に非常に近い状態である。ブレークポイント データが調整不可能な場合、データの間隔が等間隔で 2 のべき乗になるように調整します。fixpt_evenspace_cleanup を参照してください。
ルックアップ テーブルの入力値のベクトルは等間隔であるが、間隔が 2 のべき乗ではない。ブレークポイント データが調整不可能な場合、データの間隔が等間隔で 2 のべき乗になるように調整します。fixpt_look1_func_approx を参照してください。
Prelookup ブロックまたは n-D Lookup Table ブロックの [インデックス検索法][等間隔のポイント] です。ブレークポイント データの間隔は 2 のべき乗ではありません。ブレークポイント データが調整不可能な場合、データの間隔が等間隔で 2 のべき乗になるように調整します。そうしない場合は、[ブロック パラメーター] ダイアログ ボックスで別の [インデックス検索法] を指定すると時間のかかる除算を回避できます。
n-D Lookup Table ブレークポイント データが等間隔ではなく、[インデックス検索法][等間隔のポイント] ではない。ブレークポイント データが調整不可能な場合、データの間隔が等間隔で 2 のべき乗になるように調整し、[インデックス検索法][等間隔のポイント] に設定します。
n-D Lookup Table ブレークポイント データが等間隔であり [インデックス検索法][等間隔のポイント] である。しかし、間隔が 2 のべき乗ではない。ブレークポイント データが調整不可能な場合、データの間隔が等間隔で 2 のべき乗になるように調整します。fixpt_look1_func_approx を参照してください。
n-D Lookup Table ブレークポイント データは等間隔であるが、間隔が 2 のべき乗ではない。また、[インデックス検索法][等間隔のポイント] でない。[インデックス検索法][等間隔のポイント] に設定します。また、データが調整不可能な場合、2 のべき乗の等間隔にすることを検討してください。
n-D Lookup Table ブレークポイント データは等間隔であり、間隔が 2 のべき乗である。しかし、[インデックス検索法][等間隔のポイント] ではない。[インデックス検索法][等間隔のポイント] に設定します。
ブロックに生成コードでのマルチワード処理が必要である。処理の入力のワード サイズがプロセッサの最大語長を超えないように調整します。詳細については、生成されたコード内の固定小数点マルチワード処理 (Fixed-Point Designer)を参照してください。
ブロックに煩雑な乗算が必要である。

乗算演算を以下のように制限します。

  • 整数の積のサイズがターゲット整数のサイズより大きくならないようにする。

  • 推奨サイズにする。

Product ブロックが不適切な勾配調整係数で信号を乗算している。勾配調整係数が入力勾配調整係数の積になるように出力のスケーリングを変更します。
ブロックが非ゼロのバイアスをもつ信号を乗算している。乗算演算が含まれるブロックの前後に Data Type Conversion ブロックを挿入します。
Relational Operator ブロックの入力のデータ型が異なる。
  • 不変入力のデータ型とスケーリングを他の入力と一致するように変更します。

  • Relational Operator ブロックの前に Data Type Conversion ブロックを挿入し、両方の入力を共通のデータ型に変換します。

Relational Operator ブロックの入力にさまざまな勾配調整係数が含まれている。いずれかの入力のスケーリングを変更します。
Relational Operator ブロックの出力が定数である。これは Simulink Coder で削除されるデッド コードになる可能性があります。モデル設計を確認し、Relational Operator ブロックを削除するか、定数と置き換えます。

機能および制限事項

  • 固定小数点コードの生成には Fixed-Point Designer ライセンスが必要です。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

計算量の多い丸めコードを生成するブロックを特定

チェック ID: mathworks.codegen.ExpensiveSaturationRoundingCode

計算量の多い丸めコードを生成するブロックを特定します。

説明

生成した丸めコードは [整数丸めモード] パラメーター設定が原因で非効率です。

Embedded Coder で使用できます。

結果と推奨アクション

条件推奨アクション
生成されたコードが非効率である。[Function ブロック パラメーター][整数丸めモード] パラメーターを推奨値に設定します。

機能および制限事項

Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

符号付き整数のビット演算のチェック

チェック ID: mathworks.misra.CompliantCGIRConstructions

符号付き整数のビット演算を含んだ Simulink ブロックを特定します。

説明

このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準および CWE 標準に準拠するコードが生成される可能性が高くなります。

Embedded Coder および Simulink Check で使用できます。

Stateflow をモデルで使用する場合、このチェックには Stateflow ライセンスが必要です。

結果と推奨アクション

条件推奨アクション
モデルに符号付き整数のビット演算を含んだブロックがある。符号なし整数のビット演算を使用することを検討してください。

機能および制限事項

次のことが可能です。

  • このチェックでは、モデル全体に対してコードが生成されることを想定しています。サブシステムのビルドまたは関数のエクスポートによってコードが生成されると、チェックにより正しくない結果が生成される場合があります。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

再帰関数の呼び出しをチェック

チェック ID: mathworks.misra.RecursionCompliance

Stateflow チャートで再帰関数呼び出しを特定します。

説明

このチェックの推奨事項に従うと、組み込みアプリケーションに対して MISRA C:2012 準拠コードが生成される可能性が高くなります。このチェックは再帰関数呼び出しをもつチャートにフラグを立てます。

Embedded Coder および Simulink Check で使用できます。

このチェックには Stateflow のライセンスが必要です。

結果と推奨アクション

条件推奨アクション

チャートに再帰関数呼び出しがある。

再帰関数呼び出しを削除します。

参考

浮動小数点値の等式演算と不等式演算のチェック

チェック ID: mathworks.misra.CompareFloatEquality

浮動小数点値の等式演算と不等式演算を特定します。

説明

このチェックは浮動小数点値の等式演算または不等式演算の原因となるソースにフラグを立てます。

このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準および CWE 標準に準拠するコードが生成される可能性が高くなります。

このチェックは浮動小数点値の等式演算または不等式演算のあるブロックが Polyspace の注釈で正当化される場合、フラグを立てません。チェックを実行すると、[正当化情報のあるブロック] テーブルに正当化情報のある等式演算または不等式演算のブロックがリストされます。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション

モデル オブジェクトに浮動小数点数値の等式演算または不等式演算がある。

等式演算と不等式演算に浮動小数点ではない値を使用することを検討してください。

機能および制限事項

次のことが可能です。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

整数の語長をチェック

チェック ID: mathworks.misra.IntegerWordLengths

ハードウェア実行設定に準拠していない整数の語長を特定します。

説明

このチェックはハードウェア実行設定で許容されているビット数を超える語長の整数にフラグを立てます。

このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準および CWE 標準に準拠するコードが生成される可能性が高くなります。

Embedded Coder および Simulink Check で使用できます。

結果と推奨アクション

条件推奨アクション

モデル オブジェクトにハードウェア実行設定に準拠していない整数の語長が含まれている。

許容されているビット数を語調が超えないように整数を更新してください。許容されているビット数は [コンフィギュレーション パラメーター] ダイアログ ボックスの [ハードウェア実行][デバイスの詳細] ペインに表示できます。

機能および制限事項

次のことが可能です。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

ブロック名のチェック

チェック ID: mathworks.codegen.BlockNames

[コード パースペクティブ] ペイン内のブロック名に無効な文字が含まれていないかどうかをチェックします。

説明

この編集時チェックは、[コード パースペクティブ] ペイン内のブロック名を評価します。このチェックでは、以下を除くブロック名の無効な文字をレポートします。

  • 無視されたブロックまたはコード生成で推奨されないブロック

  • バーチャル Subsystem ブロック

チェックでは、ブロック名が次のガイドラインに準拠していることを検証します。

書式:

名前:

  • 数字で開始されていない

  • ブロック名の先頭にスペースが含まれていない

  • 全角文字を使用していない

  • キャリッジ リターンは可

使用可能な文字:

名前:

a b c d e f g h i j k l m n o p q r s t u v w x y z

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 _

結果と推奨アクション

条件推奨アクション

[コード パースペクティブ] ペイン内のブロック名がガイドラインに準拠していない。

ガイドラインに準拠するようにブロック名を更新します。

機能および制限事項

  • ライブラリ モデルで実行されます。

  • ライブラリにリンクされたブロックのコンテンツを解析します。

  • マスク サブシステムの内容を解析します。

  • ブロックとチャートの対象外指定を許可します。

参考