電子コントロールユニットで用いられるソフトウェアコードの品質を評価するため、Motor Industry Software Reliability Association (MISRA) は自動車および航空機用ソフトウェアでの C コードの使用におけるガイドラインを導入しました。1998 年に、MIRA Ltd. は MISRA C (MISRA C:1998) を公開し、Safety Integrity Level (SIL) 2 以降を満たす、標準化され構造化された言語の制限されたサブセットを提示しました。
それから、MISRA C:2004、自動コード生成のコンテキストにおける MISRA AC AGC 規格、C++ 向け MISRA C++:2008、および MISRA C:2012 規格などの、いくつかの規格に対する更新が行われてきました。
MISRA C の詳細については、misra.org.uk を参照してください。
Simulink、Stateflow、および Embedded Coder は、MISRA C® に対応した組み込みソフトウェアの生成に広く使われています。Polyspace® code verification 製品を使用して、手書きまたは生成されたコードの MISRA C 準拠を解析します。Polyspace Bug Finder は MISRA-C:2004、MISRA-C++:2008、MISRA C:2012、および MISRA AC AGC コーディングルールの検知をサポートします。
コード生成アドバイザーを用いてコードジェネレーターが MISRA C:2012 規格準拠コードを生成するように、モデルまたはサブシステムを設定できます。生成されたコードは Polyspace を使用して MISRA 準拠がチェックされ、結果はモデルまでトレースできます。モデルレベルに注釈を追加して、非準拠の理由を提示することができます。
MISRA に準拠した生成コードについて詳細を見る。
MISRA C 準拠の作業をさらに支援するため、MathWorks は Simulink および Stateflow モデルを持つ Embedded Coder を使用する MISRA Support Table を提供します。
MISRA C 解析パッケージには次のものが含まれます。
- ルールの要約および詳細サンプル記載のドキュメンテーション
- Simulink モデル