MISRA C に準拠したコードの生成の有効化

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-MXFMISRA-98 および MISRA-2004 準拠に関する現在の影響評価について説明します。

手順

  1. MicroC プロジェクトを作成して、アプリケーションを開発します。MicroC には、既に MISRA C に関するさまざまな型と設定が組み込まれています。
  2. 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 違反があります。

フィードバック