Main Content

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

ブロックの使用法

hisl_0020: MISRA C:2012 準拠で推奨されないブロック

ID: タイトルhisl_0020: MISRA C:2012 準拠で推奨されないブロック
説明

生成コードの MISRA C:2012 準拠性を高めるには、以下に従ってください。

A

Simulink® ブロック サポート テーブルに記載された、コード生成をサポートするブロックのみを使用する。

BSimulink ブロック サポート テーブルで「量産コードには非推奨」と記載されているブロックを使用しない。
C

3 次スプライン内挿法または外挿法を使用する Lookup Table ブロックを使用しない。具体的なブロックは以下のとおりです。

D推奨されない Lookup Table ブロックを使用しない。推奨されない Lookup Table ブロックは Lookup および Lookup2D
Eモデルまたはサブシステムに S-Function Builder ブロックを使用しない。
Fモデルまたはサブシステムに From Workspace ブロックを使用しない。
G

モデルまたはサブシステムに以下の String ブロックを使用しない。

メモ:

このガイドラインや他のモデリング ガイドラインに従うと、C/C++ の量産コード生成に適していないモデル構成を排除できると同時に、MISRA C:2012 標準に準拠したコードを生成できる可能性が高まります。

ブロック サポート テーブルを表示するには、Block Support Table ブロックを使用します。ブロック サポート テーブルで脚注 (4) が付いているブロックは、"製品コードで推奨されません。" と分類されます。

根拠A、B、C、D、E、F、G生成コードの品質と MISRA C:2012 準拠性を高める。
モデル アドバイザー チェック

A、B、C、D、E、F、G の場合: Check for blocks not recommended for MISRA C:2012 (Simulink Check)

A と B の場合: Check for blocks not recommended for C/C++ production code deployment (Simulink Check)

参照
  • DO-331, Section MB.6.3.2.b ‘Low-level requirements are accurate and consistent’
    DO-331, Section MB.6.3.2.e ‘Low-level requirements conform to standards’
    DO-331, Section MB.6.3.4.d ‘Source code conforms to standards’

  • IEC 61508-3, Table A.3 (3) - Language subset

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) - Use of language subsets

  • EN 50128, Table A.4 (11) - Language Subset

  • MISRA C:2012

最終更新R2018b

hisl_0101: MISRA C:2012 準拠性を高めるために、不変の比較演算を避ける

ID: タイトルhisl_0101: MISRA C:2012 準拠性を高めるために、不変の比較演算を避ける
説明

生成コードの MISRA C:2012 準拠性を高めるには、不変の結果との比較演算を避けます。比較演算は以下のブロックで実行されます。

  • If

  • Logic

  • Relational Operator

  • Switch

  • Switch Case

  • Compare to Constant

メモ

Simulink Design Verifier™ の設計エラー検出機能を使用して解析を実行できます。詳細については、デッド ロジックの検出 (Simulink Design Verifier)を参照してください。Simulink Design Verifier ライセンスをお持ちの場合、モデル アドバイザー チェックのデッド ロジックの検出 (Simulink Design Verifier)を使用できます。

根拠生成コードの MISRA C:2012 準拠性を高める。
モデル アドバイザー チェックモデル アドバイザー チェックを使用して、このモデリング ガイドラインへの準拠を確認することはできません。
参照
  • MISRA C:2012, Rule 14.3

  • MISRA C:2012, Rule 2.1

最終更新R2018a

不変の比較は、単純比較演あるいは複合比較演算で発生します。複合比較演算では、完全な計算が不変の場合は、個々のコンポーネントは変数にできます。

"単純": uint8 は常に 0 以上です。

"単純": uint8 は、256 を超える値にできません。

"複合": 比較演算は相互に排他的です。

Stateflow® :

hisl_0102: MISRA C:2012 準拠性を高めるループ制御変数のデータ型

ID: タイトルhisl_0102: MISRA C:2012 準拠性を高めるループ制御変数のデータ型
説明

生成コードの MISRA C:2012 準拠性を高めるには、以下のループ制御カウンター値として使用する変数に整数データ型を使用します。

  • Stateflow および MATLAB® で作成されるループ。

  • For Iterator ブロック。

根拠生成コードの MISRA C:2012 準拠性を高める。
モデル アドバイザー チェックCheck data type of loop control variables (Simulink Check)
参照
  • ISO 26262-6, Table 1 (1c) - Enforcement of strong typing

  • MISRA C:2012, Rule 14.1

最終更新R2018a