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: デッド ロジックが発生する演算を回避し、コード準拠性を高める

ID: タイトルhisl_0101: デッド ロジックが発生する演算を回避し、コード準拠性を高める
説明

生成コードの準拠性を高めるには、デッド コードまたは到達不能コードが発生する演算を回避します。

根拠より明確にしてデッド コードを確実に防止します。
モデル アドバイザー チェックCheck for unreachable and dead code (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.2.b – ‘Low-level requirements are accurate and consistent’

  • DO-331, Section MB.6.3.2.d – ‘Low-level requirements are verifiable’

  • ISO 26262-6, Table 1 (1e) – Use of well-trusted design principles

  • ISO 26262-6, Table 6 (1h) – No hidden data flow or control flow

  • MISRA C:2012, Rule 14.3

    MISRA C:2012, Rule 2.1

最終更新R2022a

非推奨:

以下の例では、デッド コードまたは到達不能コードが発生する演算を示しています。

Stateflow:

MATLAB 関数:

Simulink:

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

  • DO-331, Section MB.6.3.2.g – 'Algorithms are accurate'

  • MISRA C:2012, Rule 14.1

最終更新R2018a