주요 콘텐츠

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

생성된 코드에서 데이터를 표현하기 위해 내장 및 사전 정의된 스토리지 클래스 사용

생성된 코드에서 데이터 요소의 표시 방식과 배치 위치를 제어하려면 내장 스토리지 클래스나 Embedded Coder® 사전의 미리 정의된 스토리지 클래스를 사용하십시오. 요구 사항을 충족할 스토리지 클래스를 선택할 때는 해당 스토리지 클래스의 미리 정의된 속성과 사용자 지정 가능한 속성을 모두 고려하십시오. 각 내장 또는 사전 정의된 스토리지 클래스와 그 속성에 대한 개요는 Choose Storage Class for Controlling Data Representation in Generated Code를 참조하십시오.

나열된 스토리지 클래스로는 충족되지 않는 특별한 요구 사항이 있고, ERT 기반 타깃에 대한 코드 생성을 수행하는 경우, 새로운 스토리지 클래스를 정의하여 사용할 수 있습니다. Define Service Interfaces, Storage Classes, Memory Sections, and Function Templates for Software Architecture사용자 지정 스토리지 클래스 디자이너를 사용하여 스토리지 클래스 생성를 참조하십시오.

속성에 따라 내장형 또는 사전 정의된 스토리지 클래스 선택

다음 테이블에는 데이터를 표현하기 위해 내장형 또는 사전 정의된 스토리지 클래스를 선택할 때 고려해야 할 주요 속성이 나열되어 있습니다. 특정 스토리지 클래스의 일부 속성은 사용자 지정 가능하지만, 다른 속성은 미리 정의되어 있으며 테이블에 명시적으로 표시됩니다. 여기서 model는 스토리지 클래스가 적용된 데이터 요소를 포함하는 현재 모델을 가리킵니다.

각 스토리지 클래스 및 해당 구성 가능한 속성(Owner 포함)에 대한 자세한 내용은 Choose Storage Class for Controlling Data Representation in Generated Code를 참조하거나 테이블에서 스토리지 클래스 이름을 클릭하십시오. 모든 스토리지 클래스 속성(Owner 제외) 및 해당 구성 설정에 대한 자세한 내용은 Embedded Coder Dictionary를 참조하거나 테이블에서 해당 속성 이름을 클릭하십시오.

사용자 지정 가능한 HeaderFile 속성을 가진 스토리지 클래스의 경우:

사용자 지정 가능한 DefinitionFile 속성을 가진 스토리지 클래스에 대한 자세한 내용은 데이터 정의 파일 패키징를 참조하십시오.

스토리지 클래스Storage TypeData ScopeData InitializationHeader FileDefinition File소유자Preserve array dimensions
ExportedGlobalUnstructuredExportedAutomodel.hmodel.cmodeloff
ImportedExtern, ImportedExternPointerUnstructuredImported

몇 가지 신호와 상태: Dynamic

기타 데이터: 외부 코드에서

사용자 지정 가능 외부 코드에서modeloff
Const, Volatile, and ConstVolatileUnstructuredExportedAuto사용자 지정 가능사용자 지정 가능사용자 지정 가능사용자 지정 가능
Define, ImportedDefineUnstructuredExportedMacro사용자 지정 가능없음modeloff
ExportToFileUnstructuredExportedAuto사용자 지정 가능사용자 지정 가능사용자 지정 가능사용자 지정 가능
ImportFromFileUnstructuredImported외부 코드에서사용자 지정 가능외부 코드에서model사용자 지정 가능
FileScopeUnstructuredFileAuto없음model.cmodel사용자 지정 가능
LocalizableUnstructured

함수 또는 파일 범위: File

전역 범위: Exported

함수 범위: 함수 내부의 Static

파일 또는 전역 범위: 함수 외부의 Static

함수 또는 파일 범위: 없음

전역 범위: 사용자 지정 가능

함수 범위: 함수 소스 파일

파일 범위: model.c

전역 범위: 사용자 지정 가능

model사용자 지정 가능
StructStructuredExportedAutomodel.hmodel.cmodeloff
BitfieldStructuredExportedAutomodel.hmodel.cmodeloff
GetSetUnstructuredImported외부 코드에서외부 코드에서외부 코드에서model사용자 지정 가능
CompilerFlagUnstructuredImportedMacro없음없음modeloff
ReusableUnstructured사용자 지정 가능Dynamic

파일 범위: 없음

내보내기 또는 가져오기 범위: 사용자 지정 가능

파일 범위: model.c

내보내기 또는 가져오기 범위: 사용자 지정 가능

사용자 지정 가능off
MultiInstance

단일 인스턴스: Unstructured

다중 인스턴스: Structured

Exported

단일 인스턴스: Auto

다중 인스턴스: 없음

model.h

단일 인스턴스: model.c

다중 인스턴스: 없음

modeloff

참고

다음 두 조건이 모두 충족될 경우, 코드 생성기는 Localizable 스토리지 클래스에 매핑된 데이터를 초기화하지 않습니다:

코드 생성기는 Owner 속성이 현재 모델과 다른 모델 이름으로 설정된 스토리지 클래스에 매핑된 데이터를 정의하거나 초기화하지 않습니다. 데이터 정의 파일 패키징 항목을 참조하십시오.

스토리지 클래스 및 데이터 선언과 정의

생성된 코드 내의 데이터 요소에 대한 선언 및 정의는 해당 데이터 요소에 할당된 스토리지 클래스의 속성에 따라 달라집니다. 다음 테이블들은 내장 또는 사전 정의된 스토리지 클래스가 코드 내의 선언문과 정의문을 어떻게 제어하는지를 요약한 것입니다.

데이터 선언 및 파라미터 정의

스토리지 클래스선언정의
ExportedGlobalextern datatype identifier;

datatype identifier = value;

ImportedExternextern datatype identifier;외부 코드
ImportedExternPointerextern datatype *identifier;외부 코드
Constextern const datatype identifier;const datatype identifier = value;
Volatileextern volatile datatype identifier;volatile datatype identifier = value;
ConstVolatile extern const volatile datatype identifier;const volatile datatype identifier = value;
Define#define identifier value없음
ImportedDefine#define identifier value없음
ExportToFileextern datatype identifier;

datatype identifier = value;

ImportFromFileextern datatype identifier;외부 코드
FileScopestatic datatype identifier = value;static datatype identifier = value;
Struct

유형 정의:

typedef struct struct_name_tag {
  datatype identifier;
} struct_name_type;

선언:

extern struct_name_type struct_name;

struct_name_type struct_name = {value;}
Bitfield

유형 정의:

typedef struct struct_name_tag {
  datatype identifier : nbits;
} struct_name_type;

선언:

extern struct_name_type struct_name;

struct_name_type struct_name = {value;}
GetSet외부 코드외부 코드
CompilerFlag없음없음
MultiInstance

단일 인스턴스:

extern datatype identifier;

다중 인스턴스:

typedef struct {datatype identifier;} model_T;

단일 인스턴스:

datatype identifier = value;

다중 인스턴스: 없음

루트 레벨 I/O 데이터, 신호, 상태 및 데이터저장소에 대한 데이터 선언 및 정의

스토리지 클래스선언정의
ExportedGlobalextern datatype identifier;

datatype identifier;

ImportedExternextern datatype identifier;외부 코드
ImportedExternPointerextern datatype *identifier;외부 코드
Volatileextern volatile datatype identifier;volatile datatype identifier;
ExportToFileextern datatype identifier;

datatype identifier;

ImportFromFileextern datatype identifier;외부 코드
FileScopestatic datatype identifier;static datatype identifier;
Localizable

함수 범위:

datatype identifier;

파일 범위:

static datatype identifier;

전역 범위:

datatype identifier;

함수 범위:

datatype identifier;

파일 범위:

static datatype identifier;

전역 범위:

datatype identifier;

Struct

유형 정의:

typedef struct struct_name_tag {
  datatype identifier;
} struct_name_type;

선언:

extern struct_name_type struct_name;

struct_name_type struct_name;
Bitfield

유형 정의:

typedef struct struct_name_tag {
  datatype identifier : nbits;
} struct_name_type;

선언:

extern struct_name_type struct_name;

bitfield_name_type bitfield_name;
GetSet외부 코드외부 코드
Reusable

파일 범위:

static datatype identifier;

내보내기 또는 가져오기 범위:

extern datatype identifier;

파일 범위:

static datatype identifier;

내보낸 범위:

datatype identifier;

가져온 범위: 외부 코드

MultiInstance

단일 인스턴스:

extern datatype identifier;

다중 인스턴스:

typedef struct {datatype identifier;} model_T;

단일 인스턴스:

datatype identifier;

다중 인스턴스: 없음

스토리지 클래스, 데이터 선언 및 정의, 파일 패키징

내보낸 범위 데이터 선언 파일 패키징

다음 테이블은 다음 스토리지 클래스에 대해 데이터 선언의 파일 배치 방식이 데이터 선언 모델 파라미터 및 (사용 가능한 경우) HeaderFile 속성에 따라 어떻게 달라지는지를 요약한 것입니다:

  • ExportToFile

  • Const

  • Volatile

  • ConstVolatile

  • Define

  • Localizable (전역 범위)

  • Reusable (내보낸 범위)

데이터 선언HeaderFile위치
Auto없음

model.h

InSourceFile없음

Define: model.h

기타 스토리지 클래스: 생성된 선언이 없습니다

InSeparateHeaderFile없음

데이터 선언 파일 이름로 지정된 헤더 파일(예: global.h)

모든 설정my_header.hmy_header.h

가져온 스코프 데이터 선언 파일 패키징

다음 테이블은 다음 스토리지 클래스에 대해 데이터 선언의 배치 방식이 파일 패키징 형식 모델 파라미터와 (사용 가능한 경우) HeaderFile 속성에 따라 어떻게 달라지는지를 요약한 것입니다:

  • ImportedExtern

  • ImportedExternPointer

  • ImportedFromFile

  • Reusable (가져온 범위)

파일 패키징 형식HeaderFile위치
Modular없음model_private.h
Compact없음 model.h
CompactWithDataFile없음 model.h
모든 설정my_header.hmy_header.h

데이터 정의 파일 패키징

다음 테이블은 다음 스토리지 클래스에 대해 데이터 정의의 파일 배치 방식이 데이터 정의 모델 파라미터 및 (사용 가능한 경우) DefinitionFileOwner 속성에 따라 어떻게 달라지는지를 요약한 것입니다.

  • ExportToFile

  • Const

  • Volatile

  • ConstVolatile

  • Localizable (전역 범위)

  • Reusable (내보낸 범위)

데이터 정의DefinitionFileOwner위치
Auto없음없음 또는 현재 모델명

model.c

InSourceFile없음없음 또는 현재 모델명

model.c

InSeparateSourceFile없음없음 또는 현재 모델명

데이터 정의 파일 이름로 지정된 헤더 파일(예: global.c)

모든 설정my_source.c없음 또는 현재 모델명my_source.c
모든 설정기타 모델명데이터 정의 배치를 위해 데이터 객체의 소유자 사용가 활성화되었을 때 정의가 생성되지 않음

참고 항목

도움말 항목