주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Embedded Coder 빠른 시작을 사용하여 코드 생성

모델 RollAxisAutopilot은 항공기의 오토파일럿 제어 시스템을 나타냅니다. 임베디드 코드 생성을 위해 Embedded Coder® 빠른 시작을 사용하여 RollAxisAutopilot을 준비합니다. 이 툴은 사용자의 목표와 애플리케이션을 기반으로 기본적인 코드 생성 설정을 선택합니다.

빠른 시작 툴을 사용한 코드 생성

  1. 다음 명령을 입력하여 RollAxisAutopilot 모델을 엽니다.

    openExample('ecoder/GenerateCCodeFromSimulinkModelsExample')
    

  2. C 코드 탭이 아직 열려 있지 않다면 앱 갤러리의 코드 생성 아래에서 Embedded Coder를 클릭하십시오.

  3. C 코드 탭에서 빠른 시작을 클릭하십시오.

  4. 빠른 시작 툴의 단계를 진행하다가 코드 생성 단계에서 멈춥니다. 각 단계에서 사용자가 생성하려는 코드에 대한 질문이 제기됩니다. 이 튜토리얼에서는 이미 선택된 디폴트 값을 사용합니다. 이 툴은 모델에 대한 선택 사항을 검증하고 코드 생성에 필요한 파라미터 변경 사항을 제시합니다.

  5. 코드 생성 단계에서 제안된 변경 사항을 적용하고 다음을 클릭하여 RollAxisAutopilot에서 코드를 생성합니다.

    코드 생성 완료 페이지는 다음 단계로 나아갈 수 있는 방법을 제시하고 해당 툴이 데이터 코드 인터페이스를 적용하는 코드 생성 모델을 구성했음을 알려줍니다. 데이터 인터페이스 구성은 모델 데이터 요소를 생성 코드에서 데이터 요소의 모양과 배치를 지정하는 스토리지 클래스에 매핑합니다. 함수 내보내기 모델이나 레이트 기반 모델에 대한 코드를 생성할 때 서비스 코드 인터페이스를 사용하도록 모델을 구성하는 옵션이 있습니다. 서비스 인터페이스의 이점은 다음과 같습니다.

    • 타깃 플랫폼 서비스 인터페이스 요구 사항에 맞는 사용자 지정

    • 데이터 일관성을 유지하는 코드

    • 타깃 플랫폼이 제공하는 시간 값에 액세스할 수 있는 진입점 함수

    서비스 코드 인터페이스 구성을 사용하도록 모델을 구성하는 예제는 Deploy Export-Function Component Configured for C Service Interface Code GenerationDeploy Single-Rate, Rate-Based Component Configured for C Service Interface Code Generation 항목을 참조하십시오.

  6. 마침을 클릭하십시오.

  7. C 코드 탭으로 돌아가십시오. 이 탭에서 코드 생성 사용자 지정을 구성한 다음 모델 옆에 있는 코드 보기에서 결과를 확인할 수 있습니다.

생성된 코드 검사하기

생성된 코드는 RollAxisAutopilot.cRollAxisAutopilot.h라는 두 개의 기본 파일에 나타납니다. MATLAB® 현재 폴더에서 RollAxisAutopilot_ert_rtw 폴더에는 다음과 같은 주요 파일이 들어 있습니다.

현재 폴더에 코드 생성기가 slprj 폴더를 생성합니다. 이 폴더에는 생성된 코드에서 기본적으로 사용하는 표준 데이터형을 정의하는 rtwtypes.h 파일이 들어 있습니다. 일반적으로 이 형제 폴더에는 여러 모델 간에 공유될 수 있거나 공유되어야 하는 생성된 파일이 들어 있습니다.

모델에서 생성하는 코드에는 사용자가 애플리케이션 코드에서 호출하는 진입점 함수가 포함됩니다. 레이트 기반 모델의 경우 이러한 함수에는 초기화 함수, 실행 함수, 그리고 선택적으로 종료 및 재설정 함수가 포함됩니다. 이러한 함수는 사용자가 제어하는 데이터 인터페이스를 통해 애플리케이션 코드와 데이터를 교환합니다.

모델 다이어그램 아래에 있는 코드 매핑 - 컴포넌트 인터페이스를 클릭하여 코드 매핑 편집기를 엽니다. 함수 탭에서는 코드 생성기가 생성하는 개별 진입점 함수를 볼 수 있습니다. 생성된 이런 함수를 외부 코드에서 호출하거나, 사용자가 수정한 생성된 메인 함수 버전에서 호출합니다. 레이트 기반 모델의 기본 레이트 스텝 함수와 함수 내보내기 모델을 위한 스텝 함수의 경우, 함수 이름과 인수를 사용자 지정할 수 있습니다.

코드 생성기가 모델에 대해 생성하는 진입점 함수 목록을 검토합니다. 이 보기를 사용하면 각 함수에 대해 함수 사용자 지정 템플릿(코드 정의)과 이름을 선택적으로 지정할 수 있습니다. 이 튜토리얼에서 코드 생성기는 사용자 지정 템플릿과 진입점 함수 이름에 대해 디폴트(기본 제공됨) 설정을 사용합니다. 코드 생성기는 초기화 함수의 이름을 RollAxisAutopilot_initialize로 지정하고 실행(스텝) 함수의 이름을 RollAxisAutopilot_step로 지정합니다. 두 진입점 함수 모두 void-void 인터페이스를 가지고 있습니다(즉, 이들은 인수를 전달하지 않음). 함수는 공유 데이터 구조체를 통해 데이터에 액세스할 수 있습니다. 이러한 데이터의 예로는 함수가 애플리케이션 코드와 교환하는 시스템 수준의 입력 및 출력이 있습니다.

생성된 코드에서 이러한 진입점 함수를 보려면 다음을 수행하십시오.

  1. Simulink® 편집기 창의 오른쪽에 있는 코드 보기에서 검색 표시줄을 찾습니다.

  2. 검색 표시줄에 RollAxisAutopilot_step을 입력합니다. 생성된 코드 파일 전체에서 스텝 함수 이름의 각 인스턴스를 찾으려면 검색 제안을 클릭하십시오.

  3. 오른쪽에 있는 화살표를 사용하여 RollAxisAutopilot.c의 스텝 함수 정의와 RollAxisAutopilot.h의 선언을 포함하여 각 인스턴스를 단계별로 살펴봅니다. 또한 왼쪽 상단 모서리에 있는 파일 메뉴에서 각 파일의 검색 적중 횟수를 볼 수 있습니다.

  4. 생성된 코드에서 초기화 함수 RollAxisAutopilot_initialize를 찾으려면 이 검색 단계를 반복합니다.

다음으로, 코드 생성을 위한 데이터 인터페이스를 구성하고 생성된 코드를 검토합니다.