주요 콘텐츠

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

생성된 코드 모듈의 파일 패키징 관리

코드 생성기는 코드 모듈을 생성합니다. 파일 패키징 구성은 코드 생성기가 코드 모듈 및 헤더 파일에 코드를 배치할 위치를 제어합니다.

생성된 코드 파일을 찾아 확인하려면 코드 뷰 또는 HTML 코드 생성 리포트를 사용하십시오. 코드 생성 리포트에는 주석 내에 하이퍼링크가 포함되어 있으며, 이 링크를 클릭하면 MATLAB® 웹 브라우저에서 생성된 코드를 볼 수 있습니다. 자세한 내용은 Traceability in Generated Code 항목을 참조하십시오.

생성된 코드 모듈

코드 생성기는 생성된 소스 코드를 저장하기 위해 작업 폴더 내에 빌드 폴더를 생성합니다. 빌드 폴더에는 오브젝트 파일, makefile 및 코드 생성 과정에서 생성된 기타 파일들이 포함되어 있습니다. 빌드 폴더의 기본 이름은 model_ert_rtw입니다.

파일 패키징의 영향을 받는 코드 모듈 및 헤더 파일는 코드 생성기가 생성하는 소스 코드의 구조를 요약합니다.

생성된 파일 세트는 다음과 같은 여러 가지 방법으로 사용자 지정할 수 있습니다:

  • 파일 패키징 형식: 모델에 대해 생성되는 소스 파일의 수를 관리합니다. 모델 파라미터 파일 패키징 형식을 선택하십시오. 자세한 내용은 생성된 코드 모듈 사용자 지정 항목을 참조하십시오.

  • 비가상 서브시스템 코드 생성: 비가상 서브시스템에 대해서는 코드 생성기가 별도의 코드 파일 내에 별도의 함수를 생성하도록 지시하십시오. 함수명과 코드 파일의 이름을 직접 지정할 수 있습니다. 자세한 내용은 Generate Subsystem Code as Separate Function and Files 항목을 참조하십시오.

  • 스토리지 클래스: 지정한 파일 이름을 기준으로 생성된 데이터 구조를 서로 다른 파일로 분할하는 스토리지 클래스를 정의하고 사용합니다. 자세한 내용은 Organize Parameter Data into a Structure by Using Struct Storage Class 항목을 참조하십시오.

  • 모듈 패키징: 코드 생성을 통해 생성된 코드를 필수적인 .c, .cpp.h 파일 세트로 분할하고, 생성된 파일의 내부 구성을 제어합니다. 자세한 내용은 코드 인터페이스 구성 항목을 참조하십시오.

파일 패키징의 영향을 받는 코드 모듈 및 헤더 파일

파일설명

model.c 또는 .cpp

기본적으로, 모델 알고리즘을 구현하는 코드의 진입점(예: model_step, model_initialize, model_terminate)이 포함되어 있습니다. 진입점 함수의 파일 패키징을 변경하는 방법에 대한 자세한 내용은 Control File Packaging of Generated Entry-Point Functions and Simulink Functions 항목을 참조하십시오.

model_private.h

모델과 서브시스템에 필요한 로컬 매크로 및 로컬 데이터가 포함되어 있습니다. 이 파일은 model.c 파일에 #include 문으로 포함되어 있습니다. 손으로 작성한 코드를 모델의 생성된 코드와 연동할 때는 model_private.h를 포함할 필요가 없습니다.

model.h

모델 데이터 구조와 모델 진입점 및 데이터 구조에 대한 공용 인터페이스를 선언합니다. 액세서 매크로를 통해 실시간 모델 데이터 구조(model_M)에 대한 인터페이스를 제공합니다.

코드 생성기:

  • 모델 내의 각 Simulink Function 블록에 대해 별도의 헤더 파일을 생성합니다.

  • 모델의 .c 또는 .cpp 파일 내 서브시스템에 model.h를 포함합니다.

하나 이상의 모델에 대해 손으로 작성된 코드와 코드 생성을 연동하는 경우, 해당 모델 각각에 대해 model.h를 포함시켜야 합니다.

model_data.c 또는 .cpp

(조건부로 생성된 경우) 파라미터 데이터 구조, 상수 블록 I/O 데이터 구조 및 모델 구조 데이터형에 대한 0 표현에 대한 선언을 포함합니다. 모델이 이러한 데이터 구조와 0 표현을 사용하지 않는 경우, model_data.c 또는 .cpp는 생성되지 않습니다. 이러한 구조체와 0 표현은 model.h에서 extern로 선언됩니다.

model_types.h

실시간 모델 데이터 구조와 파라미터 데이터 구조에 대한 사전 선언을 제공합니다. 재사용 가능한 함수의 함수 선언에는 이러한 선언이 필요할 수 있습니다. 모델에서 사용하는 사용자 정의 유형에 대한 유형 정의를 제공합니다.

rt_nonfinite.c, rt_nonfinite.h, rt_zcfcn.c, rt_zcfcn.h와 같은 특정 유틸리티 파일

고정소수점 산술 연산을 지원하거나 영점교차 함수를 정의하는 유틸리티 파일. 다른 유틸리티 파일들은 파일 패키징의 영향을 받지 않으며, 대신 공유 코드 배치 모델 구성 파라미터의 영향을 받습니다. 모델에 유틸리티 코드가 필요한 블록이 포함되어 있으면 코드 생성기가 해당 유틸리티 코드를 생성합니다.

사용자가 작성한 코드 모듈

생성된 모델 코드와 연동하기 위해 작성하는 코드에는 대개 사용자 지정된 메인 모듈이 포함됩니다. 이 모듈은 코드 생성이 생성한 메인 프로그램을 기반으로 작성하십시오. 이 사용자 지정 메인 모듈에는 인터럽트 핸들러, 장치 드라이버 블록 및 기타 S-Function, 그리고 기타 감독 또는 지원 코드도 포함될 수 있습니다. 사용자 지정 메인 모듈을 지원하기 위한 개발 환경을 설정하는 단계는 다음과 같습니다:

  1. 자신만의 코드 모듈을 위한 작업 폴더를 생성하십시오.

  2. 작업 폴더를 MATLAB 경로에 배치하십시오.

  3. 최소한 모델 파라미터 추가 빌드 정보를 사용하여 빌드 프로세스에 소스 파일과 오브젝트 파일의 위치를 알려주십시오.

  4. 개발 과정에서 특정 마이크로프로세서나 개발 보드용 코드를 생성하고, 크로스 개발 시스템을 통해 해당 코드를 타깃 하드웨어에 배포해야 할 수도 있습니다. 이러한 목표를 달성하기 위해, ERT 기반 시스템의 시스템 타깃 파일에 더 광범위한 수정을 가하십시오.

생산 요구 사항에 맞게 ERT 기반 시스템 타깃 파일을 사용자 지정하는 방법에 대한 자세한 내용은 타깃 하드웨어를 위한 사용자 지정 소프트웨어 항목을 참조하십시오.

생성된 코드 모듈 사용자 지정

모델 파라미터 파일 패키징 형식는 코드 생성기가 생성된 소스 코드를 파일로 어떻게 묶어 넣을지 지정합니다. 이 파라미터는 모듈식, 콤팩트(별도 데이터 파일 포함), 콤팩트로 설정할 수 있습니다. 이 테이블은 각 파일 패키징 형식별로 생성된 파일과 삭제된 파일을 설명합니다.

파일 패키징 형식에 따른 생성 파일

파일 패키징 형식생성된 파일제거된 파일
모듈식(디폴트)

model.c

서브시스템 파일 (선택 사항)

Simulink 함수와 진입점 함수(선택 사항)가 포함된 사용자 정의 파일

model.h

model_types.h

model_private.h

model_data.c (조건부)

rt_nonfinite.c, rt_nonfinite.h, rt_zcfcn.c, rt_zcfcn.h 등과 같이 비유한 값을 지원하거나 영점교차 함수를 정의하는 유틸리티 파일

없음

콤팩트(별도 데이터 파일 포함)

model.c

model.h

model_data.c (조건부)

model_private.h

model_types.h (조건부, 파일 패키징 형식에 따른 삭제된 파일 참조)

rt_nonfinite.c, rt_nonfinite.h, rt_zcfcn.c, rt_zcfcn.h 등과 같이 비유한 값을 지원하거나 영점교차 함수를 정의하는 유틸리티 파일

콤팩트

model.c

model.h

model_data.c

model_private.h

model_types.h (조건부, 파일 패키징 형식에 따른 삭제된 파일 참조)

rt_nonfinite.c, rt_nonfinite.h, rt_zcfcn.c, rt_zcfcn.h 등과 같이 비유한 값을 지원하거나 영점교차 함수를 정의하는 유틸리티 파일

이 테이블은 삭제된 파일의 콘텐츠 배치 정보를 보여줍니다.

파일 패키징 형식에 따른 삭제된 파일

제거된 파일파일 내 생성된 콘텐츠
model_private.hmodel.cmodel.h
model_types.hmodel.h
model_data.cmodel.c

참조되는 모델마다 서로 다른 파일 패키징 형식을 지정할 수 있습니다.

모델 구성 파라미터 공유 코드 배치는 파일 패키징 작업과 상호작용합니다. 공유 코드 배치공유 위치로 설정하면, 코드 생성기는 파일 패키징 형식과 관계없이 유틸리티 코드를 위한 별도의 파일을 공유 위치에 생성합니다. 공유 코드 배치자동로 설정하면, 코드 생성기는 파일 패키징 형식 선택에 따라 유틸리티용 코드를 생성합니다.

  • 모듈식: 일부 공유 유틸리티 파일은 빌드 폴더에 있습니다.

  • 콤팩트(별도 데이터 파일 포함): 유틸리티 코드는 model.c에서 생성됩니다.

  • 콤팩트: 유틸리티 코드는 model.c에서 생성됩니다.

파일 패키징 형식 콤팩트콤팩트(별도 데이터 파일 포함)는 다음을 포함하는 모델에 대해 model_types.h를 생성합니다:

  • Variant Subsystem 블록. model_types.h 파일에는 바리언트 블록과 관련된 바리언트 객체를 정의하는 전처리기 지시문이 포함되어 있습니다.

  • 별도의 헤더 파일을 생성하는 스토리지 클래스.

파일 패키징 형식 콤팩트콤팩트(별도 데이터 파일 포함)는 다음과 호환되지 않습니다:

  • 별도의 소스 파일을 생성하도록 구성된 서브시스템을 포함하는 모델

  • 인라인화되지 않은 S-Function을 포함하는 모델

  • 공유 코드 배치자동로 설정된 모델로, 데이터 범위내보냄로 설정된 데이터 객체를 사용합니다.

참고

파일 패키징 형식 파라미터는 내보낸 함수를 전역적으로 볼 수 있는 함수로 취급 파라미터를 선택한 Stateflow® 차트에는 영향을 미치지 않습니다. 이러한 내보낸 함수들은 전역 함수이며 다른 소스 파일에서도 공유됩니다. 따라서 함수들은 다른 소스 파일에서 포함할 수 있는 함수 선언이 포함된 헤더 파일을 생성해야 합니다.

참고 항목

도움말 항목