MISRA C를 지원하는 두 개의 솔루션 즉, OXF(Object
Execution Framework) 및 MicroC-MXF 솔루션을 사용할 수 있습니다.
이 태스크 정보
Rhapsody® OXF 솔루션의 경우:
- MISRA C 설정 및 MISRA C 유형을 IBM® Rational® Rhapsody® 모델에 추가하는 경우
MISRA C 준수 코드를 생성할 수 있습니다.
Rhapsody MicroC-MXF 솔루션의 경우:
- IBM® Rational® Rhapsody®-C 모델이 있는 MicroC-MXF를
사용하여 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" 특성을 사용하는 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 위반이 있습니다.