Embedded Coder

 

Embedded Coder

임베디드 시스템에 최적화된 C 및 C++ 코드 생성

시작하기:

코드 생성을 위한 구성

Embedded Coder®의 코드 생성에 대한 설정을 구성하려면 MATLAB®의 경우 MATLAB Coder 앱을, Simulink의 경우 Embedded Coder Quick Start를 사용할 수 있습니다. MATLAB 명령 및 스크립트를 이용하여 각 설정을 직접 구성할 수도 있습니다.

MATLAB Coder 앱에서는 다음을 수행할 수 있습니다.

  • MATLAB 파일 및 함수에 대한 코드 생성
  • 프로세서 및 코드 생성 출력 선택
  • Embedded Coder 최적화 선택

Embedded Coder Quick Start for Simulink에서는 다음을 수행할 수 있습니다.

  • Simulink 모델 및 서브시스템에 대한 코드 생성
  • 프로세서 및 코드 생성 출력 선택
  • RAM 또는 실행 속도 최적화를 위해 Embedded Coder 선택
여기에 대체 텍스트 입력

Simulink에서 신속한 양산용 코드 생성에 Embedded Coder Quick Start 사용

대상 선택

Embedded Coder는 구성 객체 및 시스템 대상 파일을 사용하여 MATLAB 코드 및 Simulink 모델을 양산 품질의 소스 코드 및 실행 파일로 변환합니다.

MATLAB의 경우 다음 출력 대상 중 하나를 지정할 수 있습니다.

  • MEX-파일
  • C/C++ 정적 라이브러리
  • C/C++ 실행 파일

Simulink의 경우 다음과 같이 즉시 실행 가능한 구성 중 하나를 지정합니다.

Embedded Real-Time Target — 거의 모든 양산용 프로세서에서 효율적인 실시간 실행을 위해 부동소수점 및 고정소수점 데이터로 이루어진 ANSI/ISO C, C++ 및 캡슐화된 C++ 코드를 생성합니다.

AUTOSAR TargetAUTOSAR 소프트웨어 구성요소의 개발을 지원하는 C 코드 및 런타임 인터페이스를 생성합니다(AUTOSAR Blockset 필요).

Shared Library Target — 호스트 플랫폼에서 실행할 수 있도록 코드의 공유 라이브러리 버전을 Windows® 동적 연결 라이브러리(.dll) 파일 또는 UNIX® 공유 객체(.so) 파일로 생성합니다.

또한 MathWorks 및 이외 타사에서 제공하는 MATLAB 애드온을 통해 Embedded Coder를 확장하여 ARM®, Intel®, NXP™, STMicroelectronics®, Texas Instruments™와 같은 특정 하드웨어를 지원할 수 있습니다.

여기에 대체 텍스트 입력

하드웨어 지원 패키지를 활용하여 생성된 코드를 신속하게 임베디드 기기에 배포

사용자 정의 데이터 이용

Embedded Coder를 사용하면 생성된 코드에서 모델 데이터가 표시되는 방식을 정의하고 제어하여 소프트웨어 통합을 진행할 수 있습니다.

MATLAB 코드의 경우 Embedded Coder는 고정소수점 객체 및 사전 정의된 스토리지 클래스를 포함한 모든 MATLAB Coder 데이터 정의를 지원합니다.

Simulink 모델의 경우 Embedded Coder는 다음 데이터 사전 및 사양 기능을 지원합니다.

Embedded Coder Dictionary — 함수 인터페이스, 저장소 클래스, 메모리 섹션 등 코드 정의를 보고 사용자 정의할 수 있습니다.

Simulink 데이터 객체 — constant, volatile, exported global, imported global, define directive, structure, bit field(bit-packed 구조체 포함), get/set 액세스 메서드 등의 사전 정의된 저장소 클래스를 제공합니다.

모듈 패키징 데이터 객체 — 룩업 테이블을 보정 또는 조정하는 메모리 세그먼트와 같이 일반적으로 대량 양산에 사용되는 고급 데이터 객체에 대한 미리 구성된 특성을 제공합니다.

사용자 데이터형 — 생성된 코드에 모델 데이터가 표시되는 방식을 세밀하게 관리하고, 레거시 데이터와 연동하고, Simulink 내장 데이터형을 확장하거나 대체할 수 있도록 복잡한 데이터의 추상 데이터형을 만들 수 있습니다.

Embedded Coder를 사용하여 Simulink에서 ASAP2 형식의 데이터 교환 파일에 액세스할 수 있으며, ASAP2 표준을 사용하여 복잡한 데이터 정의를 갖는 모델 데이터를 내보낼 수 있습니다. 내장된 기본 기능을 수정하여 다른 데이터 교환 메커니즘을 만들 수도 있습니다.

여기에 대체 텍스트 입력

Embedded Coder Dictionary를 활용하여 모델 및 데이터가 생성된 코드에 나타나는 방식을 정의하고 제어

코드 최적화 및 패키징

Embedded Coder를 사용하면 함수 경계를 제어하고 표현식을 유지하며 여러 블록에 최적화를 적용하여 코드 크기를 더 줄일 수 있습니다. 전역 변수 또는 함수 파라미터를 통해 생성된 코드의 데이터 교환이 이루어집니다. 생성된 코드를 모델의 블록 및 신호로 추적할 수 있습니다.

MATLAB 코드 및 Simulink 모델에서 코드를 생성하는 Embedded Coder 옵션을 사용하면 다음을 수행할 수 있습니다.

  • 수학 함수 및 연산자에 대한 프로세서 특정 코드 생성
  • 레거시 또는 외부 환경으로 내보낼 수 있도록 코드 재사용
  • 불필요한 초기화, 종료, 기록, 및 오류 처리 코드 제거
  • 정수 전용 응용 프로그램에서 부동소수점 코드 제거

추가적인 Embedded Coder 최적화 및 구성 옵션을 Simulink 모델에 사용하여 다음을 수행할 수 있습니다.

  • 프리프로세서의 컴파일 작업을 위한 매크로를 사용한 코드 변형 생성
  • 각 생성된 파일의 형식 제어
  • 전역 데이터의 정의 및 참조 방식 결정
  • 주석의 내용 및 위치 지정
여기에 대체 텍스트 입력

Simulink 모델에서 SIMD 코드 생성

코드에 주석 추가하고 추적 및 문서화하기

Embedded Coder로 MATLAB 파일 및 함수, 또는 Simulink 모델 및 서브시스템에 대해 생성된 코드를 여러 방법을 통해 검토할 수 있습니다. 예로, 다음과 같은 작업을 할 수 있습니다.

  • 코드 모듈, 함수 인터페이스, 정적 코드 메트릭을 설명하는 코드 리포트 생성
  • 생성된 전역 데이터, 데이터형 및 함수에 대한 식별자 형식 제어
  • 함수 도움말 텍스트를 포함하여 MATLAB 코드를 생성 코드의 주석으로 포함

Embedded Coder를 Simulink와 함께 사용할 경우 하이 레벨 요구 사항을 요구 사항 소스에 대한 링크를 사용하여 코드 주석으로 삽입할 수 있습니다(Requirements Toolbox™ 필요). Simulink 코드 생성에 대한 코드 리포트에는 코드 인터페이스 설명, 추적 리포트, 생성된 소스 파일 및 코드 표시도 있습니다. 모델과 생성된 코드 사이에 양방향 링크가 있어 코드의 각 행과 그에 대응하는 Simulink 모델 요소(서브시스템, 블록, MATLAB 함수 및 코드, Stateflow® 차트 및 전환 등)를 쉽게 탐색할 수 있습니다.

여기에 대체 텍스트 입력

알고리즘 및 구현 사이의 양방향 추적성을 표시하는 Simulink 코드 생성 리포트

코드 실행 및 검증

Embedded Coder를 사용하면 생성된 코드를 코드 실행 환경에 통합할 수 있습니다.

MATLAB의 경우, Embedded Coder로부터 생성된 코드는 MATLAB Coder에서 제공하는 것과 동일한 실행 프레임워크를 사용하여 실행됩니다.

Simulink의 경우, Embedded Coder를 함께 사용하면 Simulink Coder가 제공하는 실시간 실행 프레임워크를 크게 확장할 수 있습니다. 기본적으로 코드는 RTOS(실시간 운영 체제) 유무와 관계없이 싱글 태스크, 멀티 태스크 또는 비동기 모드에서 실행할 수 있습니다. Embedded Coder를 사용하여 SIL(software-in-the-loop) 및 PIL(processor-in-the-loop) 테스트에 대해 코드 실행 결과를 검증할 수도 있습니다. Simulink Test™Simulink Coverage는 테스트 실행, 결과 비교 및 커버리지 분석을 자동화할 수 있게 해줍니다. 코드 실행 프로파일링 분석 역시 지원합니다.

메인 프로그램 생성

Embedded Coder는 실시간 환경에서 코드를 배포하기 위해 사용자가 제공하는 정보를 기반으로 확장 가능한 메인 프로그램을 생성합니다. 이 기능 덕분에 모델로부터 완전한 맞춤형 실행 파일을 만들어 낼 수 있습니다.

멀티레이트, 멀티태스크, 멀티코어 코드 실행

Embedded Coder는 모델에 지정된 샘플링 주기에 따라 싱글레이트 또는 멀티레이트 코드를 생성합니다. 멀티레이트인 멀티태스킹 모델의 경우 모델의 기본 레이트 작업과 각 서브 레이트 작업별로 별도의 함수를 생성하는 '레이트 그룹화'라는 전략을 채용합니다. Simulink Concurrent Execution 모델링을 사용하여 멀티코어 처리를 위한 멀티스레드 코드를 작성할 수도 있습니다.

SIL 및 PIL 테스팅 수행

Embedded Coder는 Simulink 시뮬레이션 모드나 S-function 블록을 사용하여 생성된 코드의 실행을 Simulink(SIL 테스트용)에서의 SIL 테스팅, 또는 임베디드 대상에서의 PIL 테스팅을 위해 자동화합니다. Simulink Test™는 테스트 실행 및 원래 모델과 시뮬레이션 결과의 테스트 결과 비교를 자동화할 수 있게 해줍니다. Simulink Coverage를 사용하여 또는 타사 도구와 연동하여 구조적인 코드 커버리지 분석을 수행하여 테스트의 완전성을 측정할 수 있습니다. 코드 프로파일링 분석으로 호스트 또는 대상 프로세서에서의 실행 시간을 확인할 수 있습니다.

여기에 대체 텍스트 입력

Embedded Coder에서 생성된 코드에 대한 SIL(software-in-the-loop) 및 PIL(processor-in-the-loop) 테스트 수행