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에서 생성된 단일 인수 이외에 또 다른 인수를 사용합니다.
코드 중심
CodeCentric 설정을 사용하는 경우 이제 리버스 엔지니어링 중에 지정한 포함 경로가 이제 make 파일에도 추가됩니다.
SDL_Suite 프로파일
프로젝트에 SDL_Suite 프로파일을 사용하는 경우, 이 프로파일에 대해 이전에 생성된 코드와 비교하여 Rational Rhapsody에서 생성된 코드가 변경되었음을 확인할 수 있습니다.
MicroC 프로파일
MicroC 프로파일을 사용하는 경우, RiCTaskEM_init 함수에 이제 뮤텍스에 대한 포인터를 제공하는 데 사용되는 추가 매개변수가 포함됩니다.

프레임워크

Microsoft 환경의 경우 RiCOSNT.hRiCOSNT.c에서 RiCOSMutex 구현이 이제 CriticalSection 사용을 기반으로 합니다. C++의 경우 이미 이와 같이 구현되었습니다. Ada의 경우에는 여전히 이전 메커니즘을 사용합니다.

C++ OXF에서는 MISRA 호환성을 높이기 위해 OMReactive.cpp의 여러 상수 선언이 수정되었습니다.

대상 모니터링 기능 향상의 일환으로 C OXF가 다음과 같이 변경되었습니다.

MXF에서 다음과 같은 유형 정의가 RiCTypes.h에 추가되었습니다.

이 버전의 Rational Rhapsody에서는 이벤트를 표시하기 위해 코드가 생성되는 방식 및 RiCEvent가 MXF에서 변경되었습니다. 이러한 변경은 MISRA 호환성을 높이기 위한 것입니다.

RiCEvent 관련 변경사항과 관련하여 생성된 코드에서 이벤트에 대한 메모리 관리가 변경되었습니다. 이전 버전에서처럼 RiCMemoryManager를 사용하는 대신 풀에서 각 RiCEvent에 메모리가 할당됩니다. 이때 풀의 크기는 C_CG::Configuration::FrameworkEventsPoolSize 특성 값에 따라 결정됩니다. 이벤트에 인수가 있는 경우 풀에서 메모리가 할당됩니다. 이때 풀의 크기는 CPP_CG::Event::BaseNumberOfInstances 특성 값에 따라 결정됩니다.

OSEK 어댑터 개선사항 - OSEK 애플리케이션에서 RES_SCHEDULER를 단일 뮤텍스로 사용하는 대신, 모델 및 MXF에 정의된 OSEK 태스크 각각에 대해 전용 뮤텍스가 사용됩니다.

MXF Mainloop 어댑터 파일이 이전에는 $OMROOT\LangC\mxf\Adaptors\MainLoop\S12\Freescale에 있었지만, 이제는 $OMROOT\LangC\mxf\Adaptors\MainLoop\Freescale\S12에 있습니다.

여러 프레임워크에서 typedef const char* Rhp_const_char_pt라는 새 유형이 추가되었습니다. 이 새 유형은 프레임워크에서 자주 사용됩니다.

버전 7.5에서 도입되었던 OXF 타이머의 멀티미디어 타이머 기반 구현이 이제 기본적으로 사용됩니다. 이 타이머 구현을 사용하지 않으려면 해당 매크로 정의를 주석 처리하십시오.

C++용 OXF에서 일부 ID 이름이 MISRA 호환성을 위해 필요한 31자 제한을 충족하기 위해 잘렸습니다.

특정 버그 수정 및 개선사항을 구현하기 위해 다음과 같은 프레임워크 메소드가 변경되었습니다.

C
  • RiCOSMessageQueue_get
  • RiCDefaultReactiveOutbound_gen
C++
  • ~LinuxThread(소멸자)
  • getThreadEndClbk
  • NTOSMessageQueue::get(ntos.cpp에 있음)
  • OMOS::endApplication(VxOS.cpplinuxos.cpp에 있음)
  • OMThread::execute
  • OXF::end
AOM 라이브러리
MXF에서 변경된 RiCEvent의 구조 및 이벤트에 대한 메모리 할당을 처리하기 위해 AOM이 다음과 같이 변경되었습니다. 모든 변경사항은 컴파일 플래그 #ifdef MICROC_OXF로 구별됩니다.
  • RICE, OM_INSTRUMENT_EVENT, OM_INSTRUMENT_EVENT_INSTANCE, NOTIFY_TAKE_EVENT 매크로가 변경되었습니다.
  • 이벤트의 RiCEvent 멤버에 대한 참조 제거 등 약간의 코드 변경사항이 있습니다.
TOM 라이브러리
  • tomTrimCarriageReturn() 메소드가 toxf.cpp에 추가되었습니다.
  • 특정 개선사항을 구현하기 위해 TOMInstance::notifyFlowDataReceive 메소드가 변경되었습니다.

MXF 어댑터

MXF 어댑터(RiCOSOsek, RiCOSMainloop 및 RiCOSAutosarRte)에 대한 API에 여러 메소드가 추가되었습니다.

빌드된 기존 어댑터가 있는 경우 컴파일 문제점을 방지하기 위해 이 새 메소드도 구현해야 합니다.

새 메소드는 다음과 같은 카테고리에 속합니다.

XMI

XMI 데이터를 Rational Rhapsody로 가져오거나 모델을 XMI로 내보내는 경우, 이제 외부 콘솔 창 대신 Rational Rhapsody 출력 창에 경고와 오류가 표시됩니다.


피드백