MISRA C 준수 코드의 생성 사용

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-MXFMISRA-98MISRA-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" 특성을 사용하는 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 위반이 있습니다.

피드백