Embedded Coder

주요 특징

  • MATLAB Coder 및 Simulink Coder를 확장하는 최적화 및 코드 구성 옵션
  • Simulink® 데이터 사전 기능을 이용한 스토리지 클래스, 유형, 앨리어스 정의
  • 프로세서별 코드 최적화
  • RTOS 유무에 관계없이 멀티레이트, 다중 작업, 멀티코어 코드 실행
  • 코드 검증(SIL 및 PIL 테스팅, 맞춤형 주석, 코드 및 요구 사항과 관련한 모델 추적을 보여주는 코드 보고서 포함)
  • Texas Instruments의 Code Composer Studio, Analog Devices VisualDSP++®, 기타 파트너사 임베디드 개발 환경 등의 통합
  • Simulink에서 ASAP2, AUTOSAR, DO-178, IEC 61508, ISO 26262 및 MISRA C®를 포함한 표준 지원
A fixed-point model with generated code and its simulation mode set for SIL execution.
생성된 코드와 SIL 실행을 위한 시뮬레이션 모드 세트를 지원하는 고정 소수점 모델 Embedded Coder를 사용하면 양산용 임베디드 시스템을 위한 코드를 신속하게 생성하고 문서화하며 테스트할 수 있습니다.

Target의 구성 및 이용

Embedded Coder의 코드 생성 설정을 구성하려면 MATLAB Coder 프로젝트 유저 인터페이스 또는 Simulink Model Explorer를 사용합니다. MATLAB 명령 및 스크립트를 이용하여 각 설정을 직접 구성할 수도 있습니다.

MATLAB Coder 프로젝트 유저 인터페이스에서 다음을 수행할 수 있습니다.

  • MATLAB 파일 및 함수용 코드 생성
  • Embedded Coder 기능 사용
  • 코드 생성을 위한 프로젝트 설정 구성
  • 다중 프로젝트 생성, 불러오기, 재사용

Simulink Model Explorer에서 다음을 수행할 수 있습니다.

  • Simulink 모델 및 서브시스템용 코드 생성
  • Embedded Coder Target 선택
  • 코드 생성을 위한 Target 구성
  • 다중 구성 세트 생성, 불러오기, 재사용

Target 선택

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

MATLAB 구성 객체의 경우 다음 출력 Target 중 하나를 지정합니다.

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

Simulink 시스템 Target 파일의 경우에는 생성된 코드를 실행할 실시간 환경을 지정합니다. Embedded Coder는 즉시 실행 가능한 다수의 구성을 위한 대상 파일을 포함하고 있으며 파트너사 및 맞춤형 Target도 지원합니다. 내장 Target에는 다음이 포함됩니다.

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

AUTOSAR Target — C 코드 및 AUTOSAR 소프트웨어 컴포넌트 개발을 지원하는 런타임 인터페이스를 생성합니다.

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

IDE Link Target — Texas Instruments의 Code Composer Studio와 같이 지원되는 파트너사 IDE(통합 개발 환경)를 사용하여 컴파일 및 배포를 위한 코드를 생성합니다.

임베디드 하드웨어 특징 정의

MATLAB 또는 Simulink 코드 생성을 위해 사전 정의 목록에서 배포 프로세서를 선택하거나 일반 Target 설정을 사용합니다. 또한 맞춤형 환경을 위해 사전 정의 목록을 확장할 수도 있습니다.

Simulink Model Explorer, which provides access to a predefined list or generic settings for specifying the microprocessor for code deployment.
코드 배포용 마이크로프로세서를 지정할 수 있도록 사전 정의 목록 또는 일반 설정에 대한 액세스를 제공하는 Simulink Model Explorer. Embedded Coder는 8비트, 16비트, 32비트를 포함한 모든 마이크로프로세서 또는 DSP를 위한 코드를 생성합니다.

맞춤형 데이터 정의 및 관리

Embedded Coder를 사용하면 생성된 코드에서 모델 데이터가 표시되는 방식을 정의하고 관리할 수 있습니다. 소프트웨어 통합을 용이하게 하기 위해, 엔트리 포인트 함수 및 글로벌 데이터용 MATLAB Coder 프로젝트 유저 인터페이스를 통해 MATLAB 데이터의 클래스, 크기, 복잡성 등을 지정할 수 있습니다.

MATLAB 코드의 경우 Embedded Coder는 고정 소수점 객체를 포함한 모든 MATLAB Coder 데이터 정의를 지원합니다.

Simulink 모델의 경우 Embedded Coder는 코드 생성을 위해 다음의 데이터 사양과 데이터 사전 기능을 지원합니다.

Simulink data object — constant, volatile, exported global, imported global, define directive, structure, bit field(bit-packed 구조 포함), get/set 액세스 메소드 등을 포함한 사전 정의된 스토리지 클래스를 제공합니다.

Module Packaging data object — 룩업 테이블 보정 또는 튜닝을 위한 메모리 세그먼트와 같이 대량 프로덕션에 일반적으로 사용되는 고급 데이터 객체를 위한 사전 구성 특성을 제공합니다.

User data type — 복합 데이터를 위한 추상적인 타입을 만들어 생성된 코드에 모델 데이터가 표시되는 방식을 세밀하게 관리하고, 레거시 데이터와 연동하며, Simulink 기본 타입을 확장하거나 대체할 수 있습니다.

Simulink에서 프로젝트 데이터를 설계하고 관리하는 데 유용한 툴은 다음과 같습니다.

Custom Storage Class Designer — 생성된 코드에 데이터 구조 가져오기, 데이터 내보내기, 메모리 보존, ASAM이나 ASAP2 같은 교환 표준을 준수하는 데이터 자동 생성 등의 맞춤형 정의 및 선언을 시각적으로 생성할 수 있습니다.

Simulink Model Explorer — Simulink 모델 및 Stateflow® 차트에 사용되는 모든 데이터가 표시되며, 사용자 정의가 가능한 뷰를 통해 정보를 데이터 사전 형식으로 맞춤 설정할 수 있습니다.

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

A custom storage class created using the Customer Storage Class Designer.
직관적인 그래픽 인터페이스를 통해 복합 데이터 유형을 설계하고 확인하며 검증할 수 있는 Custom storage Class Designer를 사용하여 생성한 맞춤형 스토리지 클래스.

코드 최적화 및 패키징

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

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

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

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

  • 모델에서 프리프로세서 컴파일을 위하여 매크로를 사용하여 코드 변형 생성
  • Boolean 데이터와 Stateflow 상태를 bitset로 저장
  • 각 생성 파일의 형식 제어
  • 글로벌 데이터의 정의 및 참조 방식 결정
  • 주석의 내용 및 위치 지정
MATLAB example of target-specific math extensions and reusable function optimizations.
Simulink example of target-specific math extensions and reusable function optimizations.
Target별 수학 확장 및 재사용 가능한 함수 최적화의 MATLAB 예제(왼쪽) 및 Simulink 예제(오른쪽). Embedded Coder는 Target별 최적화와 포터블 코드 최적화를 통해 코드 효율성을 높입니다.

코드 주석, 추적 및 문서화

Embedded Coder는 생성된 코드를 MATLAB 파일과 함수 또는 Simulink 모델 및 서브시스템과 관련하여 검사하는 다수의 기능을 제공합니다. 이 기능을 사용하여 가능한 작업은 다음과 같습니다.

  • 모듈 및 모델 구성 설정을 설명하는 코드 보고서 생성
  • 생성된 글로벌 데이터, 데이터 유형 및 함수에 대한 식별자 형식 제어
  • 함수 도움말 텍스트를 포함하여 MATLAB 코드를 생성 코드의 주석으로 포함

Simulink에서 Embedded Coder를 사용하면 높은 수준의 요구 사항을 요구 사항 소스 링크와 함께 코드 주석으로 삽입할 수도 있습니다(Simulink Verification and Validation 필요). Simulink 코드 생성을 위한 코드 보고서에는 코드 인터페이스 설명서, 추적 기능 보고서, 생성된 소스 파일 및 코드 표시 등이 포함됩니다. 모델과 생성된 코드 사이에 양방향 링크가 있어, 코드의 각 행과 그에 대응하는 Simulink 모델 요소(서브시스템, 블록, MATLAB 함수 및 코드, Stateflow 차트 및 각 transition들 포함) 사이를 탐색하기가 쉽습니다. 링크를 클릭하여 해당 모델 요소 또는 코드 행을 강조 표시함으로써 코드 검토와 디버깅이 용이해집니다.

Simulink code generation report highlighting bidirectional traceability between algorithm and implementation.
알고리즘 및 구현 사이의 양방향 추적성을 표시하는 Simulink 코드 생성 보고서

코드 실행 및 검증

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

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

Simulink의 Embedded Coder는 Simulink Coder가 제공하는 실시간 실행 프레임 워크를 크게 확장합니다. 기본적으로 코드는 RTOS(실시간 운영 체제) 유무에 관계없이 싱글 태스크, 멀티 태스크 또는 비동기 모드에서 실행할 수 있습니다. SIL(software-in-the-loop) 및 PIL(processor-in-the-loop) 테스팅을 사용하여 코드 실행 결과를 검증할 수도 있습니다.

메인 프로그램 생성

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

레이트 그룹화

Embedded Coder는 모델에 지정된 샘플링 주기에 따라 싱글 레이트 또는 멀티레이트 코드를 생성합니다. 멀티레이트의 다중 작업 모델의 경우 모델의 기본 레이트 작업과 각 서브 레이트 작업별로 별도의 함수를 생성하는 '레이트 그룹화'라는 전략을 채용합니다.

링크 및 Target 사용

생성된 코드의 자동 배포, 통합, 최적화, 실행은 지원되는 파트너사 IDE, 마이크로프로세서, RTOS(Wind River Systems® VxWorks® 포함)에 사용할 수 있습니다.

SIL 및 PIL 테스팅 수행

Embedded Coder는 Simulink 시뮬레이션 모드나 S-function 블록을 사용하여 Simulink(SIL 테스팅용)에서, 또는 임베디드 Target(PIL 테스팅용)에서 생성 코드의 실행을 자동화합니다. 코드 생성 검증 API는 테스트 실행을 자동화하고 테스트 결과를 원본 모델에서 나온 시뮬레이션 결과와 비교하는 프로세스도 자동화합니다. 파트너사 툴과의 통합으로, 테스트 완전성을 측정하기 위한 구조적 코드 커버리지 분석이 가능합니다. 

Embedded Coder 평가판 사용

평가판 신청

MATLAB/Simulink 기반의 프로그래머블 SoC 설계 및 검증

웨비나 보기