このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
MISRA C:2012 コーディング規約用のモデル アドバイザー チェック
モデルまたはサブシステムに MISRA C:2012 準拠のコードを生成する可能性があることをチェックできます。
参考
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 ブロックが含まれている可能性がある。 | ブロック パラメーター [任意の出力要素が割り当てられない場合のアクション] をいずれかの推奨値に設定します。
|
機能および制限事項
ライブラリ モデルで実行されます。
ライブラリにリンクされたブロックの内容を解析します。
マスク サブシステムの内容を解析します。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートの対象外指定が許可されます。
編集時チェック. このチェックは編集時チェックでサポートされます。ただし、編集時チェックでは Assignment ブロックが Iterator subsystem 内にあるかどうかを判断できないため、次のチェック条件はサポートされません。
ブロック パラメーター [任意の出力要素が割り当てられない場合のアクション] をいずれかの推奨値に設定します。
Assignment ブロックが Iterator subsystem 内にない場合は [エラー]。
Assignment ブロックが Iterator subsystem 内にある場合は [警告]。
参考
MISRA C:2012, Rule 9.1
ISO/IEC TS 17961: 2013, uninitref
CERT C, EXP33-C
CWE, CWE-908
MISRA C (Embedded Coder)
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 ブロックを置き換えることを検討してください。 |
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 ライセンスをお持ちの場合は、ブロックおよびチャートの対象外指定が許可されます。
編集時チェック. このチェックは編集時チェックでサポートされます。
参考
MISRA C:2012, Rule 3.1
MISRA C (Embedded Coder)
MISRA C:2012 のコンフィギュレーション パラメーターをチェック
チェック ID: mathworks.misra.CodeGenSettings
MISRA C:2012 準拠のコード生成に影響を与える可能性のあるコンフィギュレーション パラメーターを特定します。
説明
このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードが生成される可能性が高くなります。
Embedded Coder および Simulink Check で使用できます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
数学とデータ型 | |
コンフィギュレーション パラメーター [固定小数点の正味勾配計算に除算を使用] が [オン] または [整数の逆数の場合にのみ除算を使用] に設定されていない。 | [固定小数点の正味勾配計算に除算を使用] を [オン] または [整数の逆数の場合にのみ除算を使用] に設定します。 |
コンフィギュレーション パラメーター [Inf または NaN のブロックの出力] が コンフィギュレーション パラメーター [Inf または NaN のブロックの出力] が | [非有限数のサポート] に応じて次のようにします。
|
コンフィギュレーション パラメーター [Model Verification ブロックを有効にする] が [ローカル設定を使用] または [すべて有効] に設定されている。 | [Model Verification ブロックを有効にする] を [すべて無効] に設定します。 |
コンフィギュレーション パラメーター [指示のないイベント ブロードキャスト] が [なし] または [警告] に設定されている。 | [指示のないイベント ブロードキャスト] を [エラー] に設定します。 |
コンフィギュレーション パラメーター [オーバーフロー時にラップ] が [なし] に設定されている。 | コンフィギュレーション パラメーター [オーバーフロー時にラップ] を [警告] または [エラー] に設定します。 |
ハードウェア実行 | |
コンフィギュレーション パラメーター [製品ハードウェアの符号付き整数の除算の丸め] が [未定義] に設定されている。 | [製品ハードウェアの符号付き整数の除算の丸め] を [ゼロ方向] または [負方向] に設定します。 |
コンフィギュレーション パラメーター [算術シフトとして符号付き整数を右にシフト] が選択されている。 | [算術シフトとして符号付き整数を右にシフト] をオフにします。 |
シミュレーション ターゲット | |
コンフィギュレーション パラメーター [コンパイル時の MATLAB 関数の再帰限界値] が 0 以外の値に設定されている。 | [コンパイル時の MATLAB 関数の再帰限界値] を 0 に設定します。 |
コンフィギュレーション パラメーター [MATLAB 関数での動的メモリ割り当て] が選択されている。 | [MATLAB 関数での動的メモリ割り当て] をオフにします。 |
コンフィギュレーション パラメーター [MATLAB 関数の実行時再帰を有効にする] が選択されている。 | [MATLAB 関数の実行時再帰を有効にする] をオフにします。 |
コード生成 | |
次のパラメーターのいずれかが選択されている場合に、コンフィギュレーション パラメーター [ビットフィールド宣言子の型指定子] が
| [ビットフィールド宣言子の型指定子] を uint_T に設定します。 |
コンフィギュレーション パラメーター [キャスト モード] が [標準準拠] に設定されていない。 | [キャスト モード] を [標準準拠] に設定します。 |
コンフィギュレーション パラメーター [コード置換ライブラリ] が [なし] または [AUTOSAR 4.0] に設定されていない。 | [コード置換ライブラリ] を |
コンフィギュレーション パラメーター [エクスターナル モード] が選択されている。 | [エクスターナル モード] をオフにします。 |
コンフィギュレーション パラメーター [共有定数の生成] が選択されている。 | [共有定数の生成] をオフにします。 |
コンフィギュレーション パラメーター [コメントを含める] がオフになっている。 | [コメントを含める] を選択します。 |
コンフィギュレーション パラメーター [MAT ファイルのログ] が選択されている。 | [MAT ファイルのログ] をオフにします。 |
ERT ベースのターゲット システムで、コンフィギュレーション パラメーター [MATLAB ユーザー コメント] がオフになっている。 | [MATLAB ユーザー コメント] を選択します。 |
コンフィギュレーション パラメーター [識別子の最大の長さ] の値が指定されていない。 | 値を実装に応じた制限に設定します。既定の設定は 31 です。 |
コンフィギュレーション パラメーター [かっこのレベル] が [標準 (標準準拠のためのかっこ)] または [最大 (かっこで優先度を指定)] に設定されていない。 | [かっこのレベル] を [標準 (標準準拠のためのかっこ)] または [最大 (かっこで優先度を指定)] に設定します。 |
ERT ベースのターゲット システムで、[ファイル パッケージ化形式] が | [関数宣言に static キーワードを保持] を選択します。 |
コンフィギュレーション パラメーター [2 のべき乗での乗算を符号付きのビット単位シフトに置換] が選択されている。 | [2 のべき乗での乗算を符号付きのビット単位シフトに置換] をオフにします。 |
コンフィギュレーション パラメーター [共有コードの配置] が [自動] に設定されている。 | [共有コードの配置] を |
ERT ベースのターゲット システムで、コンフィギュレーション パラメーター [連続時間のサポート] が選択されている。 | [連続時間のサポート] をオフにします。 |
ERT ベースのターゲット システムで、コンフィギュレーション パラメーター [インラインでない S-Function のサポート] が選択されている。 | [インラインでない S-Function のサポート] をオフにします。 |
コンフィギュレーション パラメーター [到達不能な場合、switch ステートメントの default ケースを生成しない] が選択されている。 | [到達不能な場合、switch ステートメントの default ケースを生成しない] をオフにします。 |
コンフィギュレーション パラメーター [システム生成の識別子] が [クラシック] に設定されている。 | [システム生成の識別子] を [短縮形] に設定します。 |
コンフィギュレーション パラメーター [システム ターゲット ファイル] が GRT ベースのターゲットに設定されている。 | [システム ターゲット ファイル] を ERT ベースのターゲットに設定します。 |
[コード インターフェイスのパッケージ化] が [再利用可能な関数] に設定されている場合に、コンフィギュレーション パラメーター [モデルの初期化に動的メモリ割り当てを使用] が選択されている。 | [モデルの初期化に動的メモリ割り当てを使用] をオフにします。 メモ [コード インターフェイスのパッケージ化] が |
アクション結果
[すべて変更] をクリックすると、パラメーター値が推奨値に変わります。
メモ
GRT ベースのターゲットが設定されたモデルに対して [すべて変更] をクリックした場合、モデル アドバイザーは [システム ターゲット ファイル] コンフィギュレーション パラメーターを ERT ベースのシステムに更新しません。
パラメーター サブチェックは、結果テーブルで "D" が付いたパラメーターの結果によって異なります。結果が "D-Warning" である場合、結果テーブルの [現在の値] 列には、そのサブチェックに対して "前提条件の制約を満たしていません" と示されます。パラメーターの変更後、チェックを再実行します。
メモ
一部のサブチェックは ERT ベース システムのコンフィギュレーション パラメーターに固有です。モデルを ERT ベース システムに変更しない限り、これらのパラメーターは [すべて変更] をクリックしても更新されません。
機能および制限事項
次のパラメーター設定は、チェックの参考情報です。
BooleansAsBitfields
CodeInterfacePackaging
ERTFilePackagingFormat
SupportNonFinite
このチェックでは参照モデルは確認されません。
参考
浮動小数点値の等式演算と不等式演算のチェック
チェック ID: mathworks.misra.CompareFloatEquality
浮動小数点値の等式演算と不等式演算を特定します。
説明
このチェックは浮動小数点値の等式演算または不等式演算の原因となるソースにフラグを付けます。
このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準および CWE 標準に準拠するコードが生成される可能性が高くなります。
浮動小数点値の等式演算または不等式演算を含むブロックが Polyspace® の注釈で正当化される場合、このチェックはフラグを付けません。チェックを実行すると、正当化情報のある等式演算または不等式演算を含むブロックは、[正当化情報のあるブロック] テーブルにリストされます。
Embedded Coder および Simulink Check で使用できます。
メモ
モデルに Stateflow の要素が含まれている場合、Stateflow® ライセンスが必要です。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデル オブジェクトに浮動小数点値の等式演算または不等式演算がある。 | 等式演算と不等式演算には浮動小数点ではない値を使用することを検討してください。 |
機能および制限事項
次のことが可能です。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
MISRA C:2012, Dir 1.1
CERT C, FLP02-C
CWE, CWE-1077
コードへの注釈付けと既知の検証結果または許容可能な検証結果の非表示 (Polyspace Bug Finder)
MISRA C (Embedded Coder)
符号付き整数のビット演算のチェック
チェック ID: mathworks.misra.CompliantCGIRConstructions
符号付き整数のビット演算を含む Simulink ブロックを特定します。
説明
このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準および CWE 標準に準拠するコードが生成される可能性が高くなります。
Embedded Coder および Simulink Check で使用できます。
メモ
モデルに Stateflow の要素が含まれている場合、Stateflow ライセンスが必要です。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルに符号付き整数のビット演算を含むブロックがある。 | 符号なし整数のビット演算を使用することを検討してください。 |
機能および制限事項
次のことが可能です。
このチェックでは、モデル全体に対してコードが生成されることを想定しています。サブシステムのビルドまたはエクスポート関数によってコードが生成されると、チェックにより正しくない結果が生成される場合があります。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
MISRA C:2012, Rule 10.1
CERT C, INT13-C
CWE, CWE-682
MISRA C (Embedded Coder)
再帰関数の呼び出しのチェック
チェック ID: mathworks.misra.RecursionCompliance
Stateflow チャートで再帰関数呼び出しを特定します。
説明
このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードが生成される可能性が高くなります。このチェックは再帰関数呼び出しをもつチャートにフラグを付けます。
Embedded Coder および Simulink Check で使用できます。
メモ
モデルに Stateflow の要素が含まれている場合、Stateflow ライセンスが必要です。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
チャートに再帰関数呼び出しがある。 | 再帰関数呼び出しを削除します。 |
参考
MISRA C:2012, Rule 17.2
チャートでの望ましくない再帰の回避 (Stateflow)
default ケースをもたない switch case 式のチェック
チェック ID: mathworks.misra.SwitchDefault
default ケースをもたない switch case 式を特定します。
説明
このチェックは、default ケースがなく switch case 式をもつモデル オブジェクトにフラグを付けます。
このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準、CWE 標準、ISO/IEC TS 17961 標準に準拠するコードが生成される可能性が高くなります。
default ケースをもたないブロックが Polyspace の注釈で正当化される場合、このチェックはフラグを付けません。チェックを実行すると、正当化情報のある default ケースをもたないブロックは、[正当化情報のあるブロック] テーブルにリストされます。
Embedded Coder および Simulink Check で使用できます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデル オブジェクトに default ケースがない switch case 式が含まれている。 | Switch Case ブロックの場合、ブロック パラメーター [default ケースを表示] を選択して default ケースを明示的に指定することを検討してください。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
編集時チェック. このチェックは編集時チェックでサポートされます。
参考
MISRA C:2012, Rule 16.4
ISO/IEC TS 17961: 2013, swtchdflt
CERT C, MSC01-C
CWE, CWE-478
コードへの注釈付けと既知の検証結果または許容可能な検証結果の非表示 (Polyspace Bug Finder)
MISRA C (Embedded Coder)
C/C++ 量産コード展開に推奨されないブロックがないかチェック
チェック ID: mathworks.codegen.PCGSupport
コード生成でサポートされていないか、C/C++ 量産コード展開に推奨されないブロックを特定します。
説明
このチェックで、C/C++ 量産コード生成に推奨されないモデル構成を部分的に特定します。Simulink Coder™ および Embedded Coder の場合、Simulink ブロック サポート (Simulink Coder)のテーブルにこのようなモデル構成の ID が示されています。
場合によっては、このチェックはコード生成でサポートされているブロックにフラグを付けます。これらのブロックについては、サポート メモで提供される脚注情報を確認し、モデル アドバイザーで提供される推奨アクションに従う必要があります。
このチェックの推奨事項に従うと、CERT C 標準、CWE 標準、ISO/IEC TS 17961 標準に準拠するコードが生成される可能性が高くなります。
Embedded Coder および Simulink Check で使用できます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルまたはサブシステムに、量産コード展開に使用されるべきではないブロックが含まれている。 | 結果にリストされるブロックを置き換えることを検討してください。状態を特定するには、問題のある項目のリストの要素をクリックします。 |
モデルまたはサブシステムに、量産コード生成でサポートされるが推奨されないブロックが含まれている。 | サポート メモを確認し、モデル アドバイザーで提供される推奨アクションに従います。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
ライブラリにリンクされたブロックの内容を解析します。
マスク サブシステムの内容を解析します。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートを除外できます。
編集時チェック
このチェックは編集時チェックでサポートされます。
参考
コード生成向けにサポートされている製品とブロックの使用 (Simulink Coder)
セキュリティで保護されたコーディング標準 (Embedded Coder) Secure Coding (Embedded Coder)
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 受信側インターフェイスの入力端子にマッピングします。 |
データ アクセス モードが ImplicitReceive 、ExplicitReceive 、または EndToEndRead のときに、AUTOSAR 受信側インターフェイス ポートに一致するエラー ポートがない。 | 欠落しているエラー ポートを追加して、対応する AUTOSAR 受信側インターフェイスの入力端子にマッピングします。 |
機能および制限事項
次のことが可能です。
トップ レイヤー/ルート レベル モデルを解析します。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
MISRA C:2012, Directive 4.7
MISRA C (Embedded Coder)
コードへの注釈付けと既知の検証結果または許容可能な検証結果の非表示 (Polyspace Bug Finder)
AUTOSAR の要素とプロパティの設定 (AUTOSAR Blockset)
AUTOSAR コンポーネントの構成 (AUTOSAR Blockset)
モデル関数内の欠落している const 修飾子をチェック
チェック ID: mathworks.misra.ModelFunctionInterface
入力データのポインター内で欠落している const 修飾子を特定します。
説明
このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードが生成される可能性が高くなります。このチェックは、const 修飾子をもたない入力データのポインターにフラグを付けます。
Embedded Coder および Simulink Check で使用できます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
const 修飾子が入力データのポインターに定義されていない。 | const 修飾子を入力データのポインターに追加することを検討してください。 |
参考
MISRA C:2012, Rule 8.13
MISRA C (Embedded Coder)
整数の語長をチェック
チェック ID: mathworks.misra.IntegerWordLengths
ハードウェア実行設定に準拠していない整数の語長を特定します。
説明
このチェックはハードウェア実行設定で許容されているビット数を超える語長の整数にフラグを付けます。
このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準および CWE 標準に準拠するコードが生成される可能性が高くなります。
Embedded Coder および Simulink Check で使用できます。
メモ
モデルに Stateflow の要素が含まれている場合、Stateflow ライセンスが必要です。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデル オブジェクトにハードウェア実行設定に準拠していない整数の語長が含まれている。 | 長さが許容されているビット数を超えないように整数を更新します。許容されているビット数は、[コンフィギュレーション パラメーター] ダイアログ ボックスの [ハードウェア実行] 、 [デバイスの詳細] ペインで確認できます。 |
機能および制限事項
次のことが可能です。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
MISRA C:2012, Rule 10.1
CERT C, INT13-C
CWE, CWE-682
MISRA C (Embedded Coder)
バス要素の名前として使用されるバス オブジェクト名のチェック
チェック ID: mathworks.misra.BusElementNames
バス要素の名前として使用されるバス オブジェクト名を識別します。
説明
このチェックを使用すると、組み込みアプリケーション用の MISRA C:2012 準拠コードが生成される可能性が高くなります。このチェックは、Simulink.Bus オブジェクト名が Simulink.Bus 要素名として使用されたインスタンスにフラグを付けます。
Embedded Coder および Simulink Check で使用できます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
バス オブジェクト名がバス要素名として使用されている。 | フラグの付いたバス オブジェクト名またはバス要素名を変更して、同一にならないようにします。 |
参考
MISRA C:2012, Rule 5.6
MISRA AC AGC, Rule 5.3
MISRA C (Embedded Coder)