이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
코드 인터페이스 패키징 (컴포넌트)
생성된 코드 인터페이스를 재사용 가능한 함수, 재사용 불가능한 함수 또는 C++ 클래스 형태로 패키징
모델 구성 창: 코드 생성 / 인터페이스
설명
코드 인터페이스 패키징(컴포넌트) 파라미터는 코드 생성기가 생성된 C 또는 C++ 인터페이스 코드를 어떻게 패키징할지 지정합니다.
설정
재사용 불가 함수 (디폴트 값) | 재사용 가능 함수 | C++ 클래스재사용 불가 함수재사용할 수 없는 코드를 생성합니다. 코드 생성기는 모델 데이터 구조체를 정적으로 할당합니다. 생성된 진입점 함수는 데이터 구조에 직접 접근합니다.
이는 언어가
C로 설정되었을 때의 기본 설정입니다.재사용 가능 함수재사용이 가능하고, 다중 인스턴스를 지원하며, 재진입 가능한 코드를 생성합니다.
생성된
소스 파일에는 모델의 각 인스턴스에 대해 모델 데이터를 동적으로 할당하는 할당 함수가 포함되어 있습니다.model.c생성된 코드는 실시간 모델 데이터 구조체를 참조 방식으로 진입점 함수의 인수로 전달합니다.
코드 생성기는
헤더 파일에 실시간 모델 데이터 구조체를 내보냅니다.model.h
재사용 가능 함수선택:다중 인스턴스 코드 오류 진단 파라미터를 활성화합니다.
Function-Call Subsystem을 위해 생성된 코드는 변경되지 않습니다.
시스템 타깃 파일 파라미터가 ERT 기반 시스템 타깃 파일로 설정된 경우:
모델이 서비스 코드 인터페이스로 구성된 경우, 이
재사용 가능 함수설정은 지원되지 않습니다.재사용 가능 함수를 선택하면 모델 초기화에 동적 메모리 할당 사용 및 루트 수준 I/O 전달 형식 파라미터가 활성화됩니다.모델 초기화에 동적 메모리 할당 사용을 사용하여 할당 함수를 생성할지 여부를 제어합니다.
루트 수준 I/O 전달 형식을 사용하여 루트 수준 입력 인수 및 출력 인수가 재사용 가능한 모델 진입점 함수로 전달되는 방식을 제어할 수 있습니다. 함수에 전달되는 실시간 모델 데이터 구조체에 인수를 포함하거나, 인수를 개별적으로 전달하거나, 인수를 입력 및 출력 구조체에 대한 참조로 전달할 수 있습니다.
다음과 같이 설정하면 정적
ert_main.c모듈을 생성할 때재사용 가능 함수를 선택할 수 있습니다.모델 초기화에 동적 메모리 할당 사용 파라미터를 선택하십시오.
루트 수준 I/O 전달 형식 파라미터를
모델 데이터 구조체의 일부로 설정하십시오.
다음과 같은 경우에는
재사용 가능 함수를 선택할 수 없습니다.루트 수준 I/O를 구조체 참조 또는 모델 데이터 구조체의 일부로 전달하는 모델의
model_step함수 프로토타입을 사용자 지정합니다.다음과 같은 서브시스템을 사용하십시오.
서브시스템 블록 파라미터 함수 패키징이
재사용 불가 함수로 설정되어 있으며, 파라미터 별도의 데이터를 사용하는 함수가 활성화되어 있습니다.하나의 소스를 공유하는 여러 포트가 있습니다.
서브시스템의 여러 인스턴스에서 사용되는 포트를 가지며, 인스턴스마다 샘플 시간, 데이터형, 실수/복소수 여부, 프레임 상태 또는 차원이 서로 다릅니다.
출력 신호에 전역 스토리지 클래스를 할당합니다.
각 인스턴스마다 이름이나 파라미터 설정이 서로 다른 동일한 블록들이 포함되어 있습니다.
C++ 클래스모델에 대한 C++ 클래스 인터페이스를 생성합니다. 생성된 인터페이스는 필요한 모델 데이터를 C++ 클래스 특성으로, 모델 진입점 함수를 C++ 클래스 메서드로 캡슐화합니다.
이 값을 활성화하려면 언어 파라미터를
C++로 설정하십시오. 언어가C++로 설정되어 있을 때, 이 값이 기본 설정입니다.서비스 코드 인터페이스로 구성된 모델의 경우, 이 파라미터 설정은 해당되지 않으므로 지원되지 않습니다.
C++ 클래스를 선택하면 다중 인스턴스 코드 오류 진단 파라미터가 활성화됩니다.블록 파라미터 함수 패키징이
재사용 불가 함수로 설정되어 있고, 별도의 데이터를 갖는 함수 파라미터가 활성화된 서브시스템을 사용하는 경우C++ 클래스를 선택할 수 없습니다.
팁
코드 생성기는
에 진입점 함수들을 내보냅니다. 사용자가 작성한 코드에서 진입점 함수를 호출하려면, 해당 코드에model.h#include지시문을 추가하십시오.model.h재사용 가능 함수를 선택하면 코드 생성기가 실시간 모델 객체()에 대한 포인터를 생성합니다.model_M재사용 가능 함수를 선택하고 다중 인스턴스 코드 오류 진단 파라미터를경고또는안 함으로 설정하면, 코드 생성기가 컴파일은 되지만 재진입성이 없는 코드를 생성할 수 있습니다. 예를 들어, 신호, DWork 구조체 또는 파라미터 데이터의 스토리지 클래스가Auto이외인 경우, 코드 생성기는 전역 데이터 구조체를 생성합니다.
권장 설정
| 응용 사례 | 설정 |
|---|---|
| 디버그 | 영향 없음 |
| 추적성 | 영향 없음 |
| 효율성 | 재사용 가능 함수 또는 C++ 클래스 |
| 안전 예방 조치 | 영향 없음 |
프로그래밍 방식 사용
파라미터: CodeInterfacePackaging |
| 유형: 문자형 벡터 |
값: 'C++ class' | 'Nonreusable function' | 'Reusable function' |
기본값: TargetLang가 'C'로 설정된 경우 'Nonreusable function'; TargetLang가 'C++'로 설정된 경우 'C++ class' |
버전 내역
R2014a에 개발됨
참고 항목
Code interface packaging (subcomponent) | model_step
도움말 항목
- Model Configuration Parameters: Code Generation Interface
- Configure Generated C Function Interface for Model Entry-Point Functions
- Generate Reentrant Code from Top Models
- Combine Code Generated for Multiple Models or Multiple Instances of a Model
- Generate C++ Class Interface to Model or Subsystem Code (Embedded Coder)
- Interactively Configure C++ Interface (Embedded Coder)
- Generate Reentrant Code from Subsystems
- S-Functions for Code Reuse
- Static Main Function Module (Embedded Coder)
- Configure Generated C Function Interface for Model Entry-Point Functions (Embedded Coder)
- Generate Modular Function Code for Nonvirtual Subsystems (Embedded Coder)
- Generate Component Source Code for Export to External Code Base (Embedded Coder)