MISRA C をサポートする 2 つのソリューションを使用できます。それはオブジェクト実行フレームワーク (OXF) ソリューションと MicroC-MXF ソリューションです。
このタスクについて
Rhapsody OXF ソリューションの場合:
- MISRA C 設定と MISRA C 型を IBM® Rational® Rhapsody® モデルに追加している場合、MISRA C に準拠したコードを生成できます。
Rhapsody MicroC-MXF ソリューションの場合:
- MicroC-MXF を IBM® Rational® Rhapsody®-C モデルで使用すると、MISRA C に準拠したコードを生成できます。
この資料では、最新版の Rational Rhapsody での MicroC-MXF の MISRA-98 および MISRA-2004 準拠に関する現在の影響評価について説明します。
手順
- MicroC プロジェクトを作成して、アプリケーションを開発します。MicroC には、既に MISRA C に関するさまざまな型と設定が組み込まれています。
- MISRA C 設定も、MisraTypes パッケージも、追加しないでください。MicroC には、MISRA 設定がその内部に組み込まれています。
次のタスク
注: MISRA に準拠したコードを生成する場合は、以下のモデリング構成は避ける必要があります。
MicroC と MISRA C の両方の場合:
- 「*」などの無限の多重度がある関係。
- 実行時の動的メモリー割り振りおよびインスタンス化の使用。
MicroC のみの場合:
- 以下のプロパティーを使用する RiCString、RiCMap、RiCStack、RiCCollection、RiCMemoryManager および MemAlloc。
- CG::Framework::RiCStack = "Exclude"
- CG::Framework::RiCMap = "Exclude"
- CG::Framework::RiCList = "Exclude"
- CG::Framework::RiCCollection = "Exclude"
- プロパティー CG::Framework::RapidPorts
= "NO_RAPID_PORTS" を使用する高速ポートの使用。
- 以下のプロパティーを使用する「IS_IN」および「IS_COMPLETED」状態演算子の使用。
- CG::Framework::RiCReactiveStateMacros = "Exclude"
- CG::Framework::RiCReactiveGenMacros = "Exclude"
- ハードコーディングではなく GUI 演算子による「RiCGen」演算子の使用。
- プロパティー C_CG:Class::InlineActiveBaseDoExecute = "True" を使用するインライン RiCTaskEM_doExecute()。
- 完全準拠ではない mxf 構成:
- RiCString: RiCString(.c,h) に関連した MISRA 違反があります。原因として可能性が高いのは、標準ライブラリーの非準拠です。
- RiCMap: RiCMap(.c,h) に関連した一部の MISRA 違反があります。多くの場合、マップ・ソート・アルゴリズムを使用したためです。
- RiCStack、RiCCollection、RiCHeap、RiCQueue: これらのモジュール (.c, h) に関連した MISRA 違反があります。