Rational Rhapsody 7.5.0.1 からのマイグレーション

このトピックで説明する問題は、IBM® Rational® Rhapsody® の 前のバージョンで作成されたプロジェクトを開くときに該当する可能性があります。

コード生成

C、C++
  • Rational Rhapsody の前のバージョンでは、 生成されたコード内で、グローバル変数宣言が関数宣言の後に現れていました。現在、グローバル変数宣言は、 関数宣言の前に現れます。
  • Embeddable プロパティーが、本来の目的どおりに コード生成に影響するようになりました。以前は、実装ファイル内に生成されるべきケースであっても、 関連コードが仕様ファイル内に生成されていました。
  • 一定の状況で、コードへの変更をラウンドトリップすると、 生成されたコード内でのフォワード宣言の場所が、Rational Rhapsody の 前のバージョンで生成されたコードとは異なる場合があります。
C
生成されたコード内で、以前は未初期化状態だった変数のインスタンスが 初期化されている場合があります。
アニメーション
  • アニメーションのコードを 現行バージョンの Rational Rhapsody で 生成すると、通常はアニメーション・コードを囲む _OMINSTRUMENT ifdef が、 これまで現れなかった場所に多数現れるようになりました。
  • アニメーション化したシーケンス図の読みやすさを向上させるために、 アニメーション化されたコードに生成される 関数 OMADD_OMSER が、Rational Rhapsody の 前のバージョンで生成されていた単一引数に加えて、2 番目の引数を使用するようになりました。
コード中心
CodeCentric 設定を使って処理すると、 リバース・エンジニアリング時に指定したインクルード・パスが makefile にも 追加されるようになりました。
SDL_Suite プロファイル
プロジェクトで SDL_Suite プロファイルを 使用している場合、Rational Rhapsody によって 生成されるコードが、 このプロファイルに対して以前生成されていたコードと比べて、変わっていることが分かります。
MicroC プロファイル
MicroC プロファイルを使用する場合、 関数 RiCTaskEM_init に、mutex へのポインターを提供するために使用される 追加パラメーターが組み込まれるようになりました。

フレームワーク

Microsoft 環境に おいて、RiCOSNT.h および RiCOSNT.c 内の RiCOSMutex 実装が、C++ では既にそうであったように、CriticalSection の使用に 基づくようになりました。 (Ada は、引き続き以前のメカニズムを使用します。)

C++ OXF では、OMReactive.cpp 内の 複数の定数宣言が、MISRA への準拠を高めるために 変更されました。

Target Monitoring 機能改善の一部として、C OXF に 次の変更が加えられました。

MXF で、次の型定義が RiCTypes.h に追加されました。

Rational Rhapsody の このバージョンでは、MXF で、RiCEvent が変更されたほか、イベントを表すコードが生成される方法が 変更されました。これらの変更は、MISRA への準拠を高めるために 実施されました。

RiCEvent 関連の 変更に関係して、生成されるコード内でのイベントのメモリー管理が 変更されました。以前のように RiCMemoryManager を使用する代わりに、 各 RiCEvent は、プールからメモリーを割り振られます。 プールのサイズは、C_CG::Configuration::FrameworkEventsPoolSize プロパティーの値によって決まります。 イベントに引数があると、メモリーがプールから割り振られ、 プールのサイズは、CPP_CG::Event::BaseNumberOfInstances プロパティーの値によって決まります。

OSEK アダプターの機能強化 - OSEK アプリケーション内で RES_SCHEDULER を単一 mutex として 使用する代わりに、モデルおよび MXF 内に定義されている OSEK タスクごとに 専用の mutex が使用されるようになりました。

以前は $OMROOT¥LangC¥mxf¥Adaptors¥MainLoop¥S12¥Freescale に置かれていた MXF Mainloop アダプター・ファイルは、 現在、$OMROOT¥LangC¥mxf¥Adaptors¥MainLoop¥Freescale¥S12 にあります。

さまざまな フレームワークで、次の新しい型 typedef const char* Rhp_const_char_pt が追加されました。 この新しい型は、各フレームワーク内で現在 頻繁に使用されています。

バージョン 7.5 で導入された、OXF タイマーの マルチメディア・タイマー・ベースの実装が、デフォルトで 使用されるようになりました。このタイマー実装の使用が望ましくない場合は、該当のマクロ定義を 次のようにコメント化してください。

C++ の OXF では、MISRA 準拠に必要な 31 文字制限を満たすため、 一部の ID 名が切り捨てられていました。

特定のバグ修正 および機能拡張を実装するために、次のフレームワークのメソッドが変更されました。

C
  • RiCOSMessageQueue_get
  • RiCDefaultReactiveOutbound_gen
C++
  • ~LinuxThread (デストラクター)
  • getThreadEndClbk
  • NTOSMessageQueue::get (ntos.cpp 内)
  • OMOS::endApplication (VxOS.cpp および linuxos.cpp 内)
  • OMThread::execute
  • OXF::end
AOM ライブラリー
RiCEvent の構造および MXF でのイベントに対する メモリー割り振りの変更に対応するために、AOM で次の変更が 行われました。これらの変更はすべて、コンパイル・フラグ #ifdef MICROC_OXF によって 区別されます。
  • 次のマクロの変更: RICE、OM_INSTRUMENT_EVENT、OM_INSTRUMENT_EVENT_INSTANCE、NOTIFY_TAKE_EVENT
  • イベントの RiCEvent メンバーへの参照の除去など、 マイナーなコード変更
TOM ライブラリー
  • メソッド tomTrimCarriageReturn()toxf.cpp に追加されました。
  • 特定の機能拡張を実装するために、 メソッド TOMInstance::notifyFlowDataReceive が変更されました。

MXF アダプター

MXF アダプターの API に 複数のメソッドが追加されました (RiCOSOsek、RiCOSMainloop、 および RiCOSAutosarRte)。

独自にビルドした既存のアダプターがある場合は、 コンパイルの問題を避けるため、これらの新規メソッドも 実装する必要があります。

新規メソッドは、次のカテゴリーに分けられます。

XMI

XMI データを Rational Rhapsody に インポートするとき、またはモデルを XMI にエクスポートするとき、警告およびエラーが、 外部コンソール・ウィンドウでなく、Rational Rhapsody 出力ウィンドウに 表示されるようになりました。


フィードバック