주요 콘텐츠

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

사용자 지정 스토리지 클래스 디자이너를 사용하여 스토리지 클래스 생성

생성된 코드에서 데이터의 표시 방식을 제어하려면 ExportToFile과 같은 내장 스토리지 클래스를 사용할 수 있습니다(Organize Parameter Data into a Structure by Using Struct Storage Class 참조). 내장된 스토리지 클래스가 요구 사항을 충족하지 않는 경우, 사용자 정의 스토리지 클래스를 생성할 수 있습니다. Define Service Interfaces, Storage Classes, Memory Sections, and Function Templates for Software Architecture 항목을 참조하십시오.

코드 매핑 편집기를 사용하여 모델에 적용할 수 있는 스토리지 클래스를 정의하려면 Embedded Coder Dictionary를 사용하십시오. 또는 Simulink® 데이터 클래스 패키지에 스토리지 클래스를 생성하고, Embedded Coder 사전에서 해당 패키지를 참조하도록 하십시오.

데이터 클래스 패키지에는 모델 인터페이스 요소에 매핑할 수 있는 스토리지 클래스 및 메모리 섹션 정의가 포함되어 있습니다. 데이터 클래스 패키지는 SignalParameter 데이터 클래스도 정의할 수 있으며, 이를 통해 신호, 상태 및 블록 파라미터의 값과 기타 특성을 지정하는 데이터 객체를 생성할 수 있습니다. 데이터 객체를 사용하면 객체의 값만 변경함으로써 신호, 상태 및 파라미터의 특성을 모델 전체에 걸쳐 변경할 수 있습니다. 패키지에서 생성한 데이터 객체는 해당 패키지가 정의한 스토리지 클래스를 사용할 수 있습니다. 자세한 내용은 Data Objects 항목을 참조하십시오.

Simulink에 기본으로 포함된 Simulinkmpt와 같은 패키지를 사용하거나, 사용자 지정 스토리지 클래스 디자이너를 사용하여 직접 패키지를 생성할 수 있습니다.

사용자 지정 스토리지 클래스 디자이너를 사용하여 메모리 섹션을 생성하는 방법에 대한 자세한 내용은 Control Data and Function Placement in Memory by Inserting Pragmas 항목을 참조하십시오.

사용자 정의 패키지에 정의된 스토리지 클래스 생성 및 적용

이 예제는 사용자 정의 데이터 클래스 패키지에 스토리지 클래스를 정의하고, 데이터 객체에 해당 스토리지 클래스를 적용함으로써 모델에서 생성된 코드를 제어하는 방법을 보여줍니다.

예제 모델 살펴보기

CustomStorageClasses 모델을 엽니다.

open_system('CustomStorageClasses')

이 예제에서는 모델에 포함된 여러 신호 및 파라미터의 선언과 정의를 하나의 선언 헤더 파일과 하나의 정의 파일로 내보냅니다.

데이터 클래스 패키지 생성

데이터 클래스 패키지에서 스토리지 클래스를 정의하려면, 해당 패키지의 MATLAB 네임스페이스 폴더 내에 데이터 클래스를 생성하십시오.

  1. +myPackage 폴더 안으로 이동하여 Signal.m 파일을 찾으십시오.

  2. Signal.m을 열고 Signal 클래스의 정의를 수정하십시오. setupCoderInfo 메서드를 정의하는 메서드 섹션의 주석 처리를 해제하십시오. useLocalCustomStorageClasses 함수를 호출할 때, 'packName' 'myPackage'로 바꾸십시오. useLocalCustomStorageClasses 함수를 사용하면 myPackage에서 정의한 스토리지 클래스를 myPackage를 통해 생성한 데이터 객체에 적용할 수 있습니다.

    methods
        function setupCoderInfo(h)
          % Use custom storage classes from this package
          useLocalCustomStorageClasses(h, 'myPackage');
        end
      end % methods
    
  3. Signal.m을 저장하고 닫으십시오.

  4. +myPackage 폴더 안으로 이동하여 Parameter.m 파일을 찾으십시오.

  5. Parameter.m 파일을 열고, Signal.m 파일에서 4단계에서 수행했던 것과 동일한 편집을 수행하십시오.

  6. Parameter.m을 저장하고 닫으십시오.

데이터 클래스를 만드는 방법에 대한 자세한 내용은 Define Data Classes 항목을 참조하십시오.

데이터 클래스 패키지에 스토리지 클래스 생성

사용자 지정 스토리지 클래스 디자이너를 사용하여 데이터 클래스 패키지에서 정의하는 스토리지 클래스를 생성하거나 편집할 수 있습니다.

  1. 현재 폴더에 MATLAB 네임스페이스 폴더인 +myPackage가 있는지 확인하십시오.

  2. 열고 싶은 패키지의 이름을 지정하여 cscdesigner 명령을 입력하면 사용자 지정 스토리지 클래스 디자이너가 열립니다. 이 예제에서는 'myPackage'를 지정하십시오. cscdesigner 명령어에서 패키지의 네임스페이스 폴더를 지정할 때는 + 문자를 생략하십시오.

    cscdesigner('myPackage')
    
  3. ‘사용자 지정 스토리지 클래스 디자이너’의 ‘사용자 지정 스토리지 클래스 정의’ 섹션에서 스토리지 클래스 ExportToFile을 선택합니다.

  4. 이름의 경우, ExportToGlobal을 지정하십시오.

  5. 헤더 파일의 경우, 지정을 선택하십시오. 표시되는 새 입력란에 헤더 파일 이름 global.h를 입력하십시오.

  6. 정의 파일의 경우, 지정을 선택하십시오. 표시되는 새 필드에 정의 파일 이름인 global.c를 입력하십시오.

  7. 확인을 클릭합니다. 를 클릭하여 변경 사항을 myPackage 패키지에 저장합니다.

데이터 객체에 스토리지 클래스 적용하기

데이터 클래스 패키지에서 정의한 스토리지 클래스를 데이터 객체에 적용하려면, 해당 패키지에서 데이터 객체를 생성하고 해당 객체가 스토리지 클래스를 사용하도록 구성하십시오.

  1. 예제 모델에 포함된 일부 신호와 파라미터를 나타내는 데이터 객체를 생성하십시오. myPackage 패키지를 사용하여 데이터 객체를 생성합니다.

    % Signals
    tempalarm = myPackage.Signal;
    pressurealarm = myPackage.Signal;
    O2alarm = myPackage.Signal;
    rpmalarm = myPackage.Signal;
    
    % Parameters
    templimit = myPackage.Parameter(202);
    pressurelimit = myPackage.Parameter(45.2);
    O2limit = myPackage.Parameter(0.96);
    rpmlimit = myPackage.Parameter(7400);
    
  2. 각 객체의 스토리지 클래스를 ExportToGlobal로 설정합니다.

    % Signals 
    tempalarm.CoderInfo.StorageClass = 'Custom';
    tempalarm.CoderInfo.CustomStorageClass = 'ExportToGlobal';
    pressurealarm.CoderInfo.StorageClass = 'Custom';
    pressurealarm.CoderInfo.CustomStorageClass = 'ExportToGlobal';
    O2alarm.CoderInfo.StorageClass = 'Custom';
    O2alarm.CoderInfo.CustomStorageClass = 'ExportToGlobal';
    rpmalarm.CoderInfo.StorageClass = 'Custom';
    rpmalarm.CoderInfo.CustomStorageClass = 'ExportToGlobal';
    
    % Parameters
    templimit.CoderInfo.StorageClass = 'Custom';
    templimit.CoderInfo.CustomStorageClass = 'ExportToGlobal';
    pressurelimit.CoderInfo.StorageClass = 'Custom';
    pressurelimit.CoderInfo.CustomStorageClass = 'ExportToGlobal';
    O2limit.CoderInfo.StorageClass = 'Custom';
    O2limit.CoderInfo.CustomStorageClass = 'ExportToGlobal';
    rpmlimit.CoderInfo.StorageClass = 'Custom';
    rpmlimit.CoderInfo.CustomStorageClass = 'ExportToGlobal';
    
  3. 객체를 생성하고 ExportToGlobal 스토리지 클래스를 지정한 각 신호에 대해 신호 이름은 Simulink의 Signal 객체로 연결이 맺어져야 함 속성을 선택하십시오.

    % Signal tempalarm
    portHandles = get_param('CustomStorageClasses/RelOp1','PortHandles');
    outputPortHandle = portHandles.Outport;
    set_param(outputPortHandle,'MustResolveToSignalObject','on')
    
    % Signal pressurealarm
    portHandles = get_param('CustomStorageClasses/RelOp2','PortHandles');
    outputPortHandle = portHandles.Outport;
    set_param(outputPortHandle,'MustResolveToSignalObject','on')
    
    % Signal O2alarm
    portHandles = get_param('CustomStorageClasses/RelOp3','PortHandles');
    outputPortHandle = portHandles.Outport;
    set_param(outputPortHandle,'MustResolveToSignalObject','on')
    
    % Signal rpmalarm
    portHandles = get_param('CustomStorageClasses/RelOp4','PortHandles');
    outputPortHandle = portHandles.Outport;
    set_param(outputPortHandle,'MustResolveToSignalObject','on')
  4. 객체를 생성하고 ExportToGlobal 스토리지 클래스를 지정한 파라미터의 값을 설정하려면 업데이트 다이어그램을 실행하십시오.

코드 생성 및 검사

예제 모델에 대한 코드를 생성합니다.

  1. 모델 창에서 Embedded Coder 앱을 엽니다.

  2. 예제 모델에 대한 코드를 생성합니다.

    slbuild('CustomStorageClasses')
    
  3. 코드 뷰에서 생성된 헤더 파일 global.h를 확인하십시오. 이 파일에는 ExportToGlobal 스토리지 클래스를 사용하도록 구성된 모델 신호 및 파라미터에 대한 extern 선언이 포함되어 있습니다.

    /* Declaration for custom storage class: ExportToGlobal */
    extern boolean_T O2alarm;
    extern real_T O2limit;
    extern boolean_T pressurealarm;
    extern real_T pressurelimit;
    extern boolean_T rpmalarm;
    extern real_T rpmlimit;
    extern boolean_T tempalarm;
    extern real_T templimit;
    
  4. 생성된 파일 global.c를 확인합니다. 이 파일에는 ExportToGlobal 스토리지 클래스를 사용하도록 구성된 모델 신호 및 파라미터의 정의가 포함되어 있습니다.

    /* Definition for custom storage class: ExportToGlobal */
    boolean_T O2alarm;
    real_T O2limit = 0.96;
    boolean_T pressurealarm;
    real_T pressurelimit = 45.2;
    boolean_T rpmalarm;
    real_T rpmlimit = 7400.0;
    boolean_T tempalarm;
    real_T templimit = 202.0;
    

내장 스토리지 클래스 수정하기

Simulink 패키지의 ExportToFile과 같은 내장 스토리지 클래스는 직접 수정할 수 없지만, 복사본을 생성한 다음 그 복사본을 수정할 수는 있습니다. csc_registration.m 파일이 없는 새 패키지를 생성한 후, 사용자 지정 스토리지 클래스 디자이너를 처음 열면 Simulink가 내장 스토리지 클래스의 정의를 해당 패키지로 복사합니다. 그런 다음 ‘사용자 지정 스토리지 클래스 디자이너’에서 복사한 정의 내용을 수정할 수 있습니다. 또는, 패키지에서 내장 스토리지 클래스를 계속 사용할 수 있도록 하려면 복사를 클릭하여 클래스 중 하나를 복사한 다음, 복사된 클래스를 수정하십시오.

스토리지 클래스 속성 구성을 통한 데이터 표현 제어

‘사용자 지정 스토리지 클래스 디자이너’는 스토리지 클래스와 메모리 섹션을 생성하고 관리하기 위한 툴입니다. 명령 프롬프트에서 mypkg와 같은 특정 패키지에 대한 사용자 지정 스토리지 클래스 디자이너를 열려면 cscdesigner 함수를 사용하십시오.

cscdesigner('mypkg')

패키지가 포함된 MATLAB® 네임스페이스 폴더의 이름은 +로 시작합니다. cscdesigner 함수를 사용할 때는 패키지 이름에서 +를 생략하십시오.

모델 내 데이터에 스토리지 클래스가 미치는 영향을 제어하려면, ‘사용자 지정 스토리지 클래스 디자이너’에서 스토리지 클래스의 속성을 지정하십시오. 생성된 코드에서 특정 유형의 데이터를 생성하는 방법을 확인하려면 이 테이블의 정보를 참조하십시오.

생성된 코드의 데이터 유형기법
구조체유형FlatStructure로 설정하십시오. 구조화된 데이터 생성 항목을 참조하십시오.
거시적데이터 초기화Macro로 설정하고 신호의 경우를 지우십시오. 매크로 생성 항목을 참조하십시오.
포인터데이터 액세스Pointer로, 데이터 범위자동, 가져옴 또는 Instance specific로 설정하십시오. 포인터 변수는 외부 코드에서 정의해야 합니다.
static 데이터 (파일 범위 데이터)데이터 범위파일로 설정하십시오.
const 또는 volatile 데이터메모리 섹션const, volatile 또는 둘 다를 지정하는 메모리 섹션으로 설정합니다. 예를 들어, 내장 메모리 섹션인 MemConst, MemVolatile 또는 MemConstVolatile 중 하나를 사용하십시오. 자신만의 메모리 섹션을 만들려면 Control Data and Function Placement in Memory by Inserting Pragmas를 참조하십시오.
데이터를 읽고 쓰기 위한 외부 함수 호출사용자 지정 Accessor 함수나 매크로 호출 항목을 참조하십시오.

스토리지 클래스 사용자가 속성 값을 지정할 수 있도록 허용

데이터 범위와 같은 일부 스토리지 클래스의 속성에 대해서는, ‘사용자 지정 스토리지 클래스 디자이너’에서 값을 직접 지정하는 대신, 해당 스토리지 클래스의 사용자가 값을 지정할 수 있도록 허용할 수 있습니다. 몇 가지 속성 값만 다른 여러 개의 스토리지 클래스 대신, 단일하고 유연한 스토리지 클래스를 생성할 수 있습니다.

예를 들어, 생성된 코드에서 전역 변수를 반환하는 스토리지 클래스를 생성한다고 가정해 봅시다. 사용자가 모델 내의 한 신호에 대해서는 데이터 범위 속성을 내보냄으로 설정하고, 다른 신호에 대해서는 가져옴으로 설정할 수 있도록 스토리지 클래스를 구성할 수 있습니다.

사용자 지정 스토리지 클래스 디자이너에서, 이러한 방식으로 구성하려는 각 속성에 대해 속성 값을 Instance specific으로 설정하십시오. 그러면 사용자가 데이터 항목에 스토리지 클래스를 적용하면, 해당 속성이 사용자에게는 해당 데이터 항목의 사용자 지정 특성으로 표시됩니다. 인스턴스별 사용자 지정 특성에 대한 자세한 내용은 Storage Class Properties 항목을 참조하십시오.

매크로 생성

코드 생성 과정에서 매크로를 반환하는 스토리지 클래스를 만들려면, 데이터 초기화Macro로 설정하고 신호의 경우를 지우십시오.

데이터 초기화Macro로 설정하면, 정의 파일은 의미가 없습니다. 스토리지 클래스 사용자가 무의미한 정의 파일을 지정하지 못하도록 하려면, ‘사용자 지정 스토리지 클래스 디자이너’에서 정의 파일지정으로 설정하고 텍스트 상자는 비워 두십시오.

  • 헤더 파일(#define)에서 매크로를 정의하려면, 헤더 파일 속성에 해당 헤더 파일의 이름을 지정하십시오.

  • 매크로 정의를 컴파일러 옵션이나 컴파일러 플래그로 제공하려면, 데이터 액세스가져옴으로, 헤더 파일지정으로 설정하십시오. 헤더 파일 텍스트 상자는 비워 두십시오. 그러면 생성된 코드에는 해당 매크로가 정의되어 있지 않으며, (#include) 헤더 파일도 포함되지 않습니다.

    컴파일러 옵션이나 플래그를 지정하려면 사용자 지정 코드 모델 파라미터인 정의를 사용하십시오. 코드 생성 창: 사용자 지정 코드: 추가 빌드 정보: 정의를 참조하십시오.

구조화된 데이터 생성

데이터 항목을 평면 구조로 집계하는 스토리지 클래스(내장 스토리지 클래스 Struct와 유사)를 생성하려면 유형FlatStructure로 설정하십시오. 구조 특성 탭이 나타납니다.

  • 생성된 코드에 표시되는 전역 구조체 변수의 이름을 지정하려면 구조체 이름 속성과 텍스트 상자를 사용하십시오.

  • 구조체 이름Instance specific으로 설정할 경우, 스토리지 클래스의 사용자가 구조체 변수의 이름을 지정합니다. 이 경우, 코드 생성기는 변수 이름에서 구조체 유형의 이름을 도출합니다.

    구조체 유형의 이름 및 기타 특성을 보다 정밀하게 제어하려면 구조체 이름지정으로 설정하십시오. 표시되는 추가 속성을 사용하여 유형 특성을 제어하십시오.

  • 비트 필드가 포함된 구조체를 생성하려면(내장 스토리지 클래스 BitField와 유사), 비트팩 부울을 선택하십시오. 부울, 고정 소수점 또는 정수 데이터형의 항목은 코드 생성 과정에서 구조체의 비트 필드로 나타납니다.

코드 생성에서 초기값 할당 제어

  • 기본 코드 생성 초기화 전략을 사용하려면 데이터 초기화를 디폴트 값인 자동으로 설정하십시오.

    • 생성된 코드는 .c 또는 .cpp 소스 파일의 맨 위, 어떤 함수 내부도 아닌 곳에서 할당문을 사용하여 파라미터 데이터를 정적으로 초기화합니다.

    • 생성된 코드는 모델의 초기화 함수(기본적으로 model_initialize로 명명됨)의 일부로 신호 및 상태 데이터를 동적으로 초기화합니다.

  • 데이터를 정적으로 초기화하려면 데이터 초기화정적으로 설정하십시오.

  • 데이터를 동적으로 초기화하려면 데이터 초기화동적으로 설정하십시오.

  • 생성된 코드가 데이터를 초기화하지 못하도록 하려면 데이터 초기화안 함으로 설정하십시오. 외부 코드에서 데이터를 초기화할 경우, 이 설정을 사용하여 생성된 코드가 해당 초기화 내용을 덮어쓰지 않도록 하십시오. 이 설정은 Initialize Function 블록에서 지정한 데이터에는 적용되지 않습니다.

사용자 지정 Accessor 함수나 매크로 호출

내장 스토리지 클래스인 GetSet를 사용하면, 변수와 직접 상호 작용하는 대신 외부 사용자 지정 함수를 호출하는 코드를 생성할 수 있습니다. GetSet에 대한 일반적인 정보는 Access Data Through Functions with Storage Class GetSet 항목을 참조하십시오.

이와 유사한 스토리지 클래스를 생성하려면 유형AccessFunction으로 설정하십시오.

  • 외부 함수의 이름을 지정하십시오.

    • 스토리지 클래스를 사용하는 데이터 항목에 동일한 get 또는 set 함수 명명 규칙을 적용하려면, Get functionSet function지정으로 설정하십시오. 그런 다음 텍스트 상자에 함수 명명 규칙을 지정하십시오(예: get_myData_$N). 각 데이터 항목의 이름을 나타내기 위해 명명 규칙에서 $N 토큰을 사용하십시오. 토큰을 사용하지 않으면 각 데이터 항목이 지정된 get 또는 set 함수 이름을 동일하게 사용하게 되므로, 코드를 생성할 때 모델에서 오류가 발생합니다.

    • 각 데이터 항목에 대해 서로 다른 get 또는 set 함수 이름을 지정하려면, Get function 또는 Set functionInstance specific으로 설정하십시오. 나중에 데이터 항목을 생성하고 스토리지 클래스를 적용할 때, 데이터 항목의 사용자 지정 특성을 구성하여 함수 이름을 지정하십시오.

  • 헤더 파일 속성을 사용하여 getset 함수를 선언하는 헤더 파일의 이름을 지정하십시오. 이 경우, 정의 파일은 아무런 의미가 없습니다. 스토리지 클래스 사용자가 무의미한 정의 파일을 지정하지 못하도록 하려면, 정의 파일지정으로 설정하고 텍스트 상자를 비워 두십시오.

  • 스칼라 또는 배열 데이터에 대한 get 메커니즘을 함수가 아닌 매크로로 구현하면, 해당 데이터를 읽을 때 괄호를 생략하는 코드를 생성할 수 있습니다. 액세스 함수 특성 탭에서 매크로를 통해 데이터 가져오기(괄호 생략)를 선택하십시오.

외부 코드의 데이터를 사용하는 코드 생성

외부 코드에서 데이터를 정의한 경우, 중복 정의가 생성되지 않도록 하려면 생성된 코드가 기존 데이터를 읽고 쓸 수 있도록 구성해야 합니다. 사용자 지정 스토리지 클래스 디자이너에서 데이터 범위가져옴으로 설정하십시오. 코드 생성기는 전역 변수나 매크로에 대한 정의를 생성하지 않습니다.

  • 코드에서 포인터 변수를 정의한 경우, 해당 포인터와 상호작용하는 코드를 생성하려면 데이터 액세스Pointer로 설정하십시오.

  • 유형FlatStructure로 설정하여 구조화된 데이터를 생성하는 경우, 코드에서 구조체 유형과 전역 구조체 변수를 정의해야 합니다.

  • 코드에서 상태나 신호 데이터를 초기화하는 경우, 데이터 초기화안 함으로 설정하면 생성된 코드가 해당 초기화 내용을 덮어쓰는 것을 방지할 수 있습니다. Prevent Duplicate Initialization Code for Global Variables 항목을 참고하십시오.

데이터 정의 및 선언을 포함한 코드 주석 생성

생성된 코드에 표시되는 주석을 사용자 지정하려면 주석 탭에서 주석 규칙지정으로 설정하십시오. 각 데이터 항목의 선언과 함께 표시될 주석을 지정하려면 선언 주석 상자를 사용하십시오. 정의와 함께 표시될 주석을 지정하려면 정의 주석 상자를 사용하십시오.

구조화된 데이터의 경우(유형FlatStructure로 설정), 구조체 유형 정의와 함께 표시될 주석을 지정하려면 유형 주석 상자를 사용하십시오.

스토리지 클래스 구성을 검증하여 코드 생성 시 오류 방지

사용자 지정 스토리지 클래스 디자이너에서 스토리지 클래스를 구성할 때, 구성에 오류가 있는지 확인하려면 Validate를 클릭하십시오.

예를 들어, 스토리지 클래스를 검증할 때 신호의 경우가 선택된 상태에서 실수로 데이터 초기화Macro로 설정하면 경고 메시지가 표시됩니다. 생성된 코드에는 신호가 매크로 형태로 나타날 수 없습니다.

현재 폴더 외부에서도 스토리지 클래스를 사용할 수 있도록 하기

직접 생성한 스토리지 클래스를 사용하려면, 해당 클래스를 정의한 패키지에 대한 접근 권한을 부여해야 합니다. 현재 폴더를 해당 패키지가 포함된 네임스페이스 폴더로 설정하거나, 패키지 네임스페이스 폴더가 포함된 폴더를 MATLAB 경로에 추가하십시오(MATLAB 검색 경로란? 참조). 패키지 네임스페이스 폴더를 MATLAB 경로에 추가하면, 현재 폴더를 어디로 설정하든 상관없이 스토리지 클래스를 사용할 수 있습니다.

코드 매핑 편집기에서 스토리지 클래스 사용 가능하게 하기

코드 매핑 편집기에서 패키지 기반 스토리지 클래스를 사용하려면, Refer to Code Generation Definitions in a Package에 설명된 대로 Embedded Coder 사전이 해당 패키지를 참조하도록 구성하십시오.

패키지 간 스토리지 클래스 공유

패키지를 생성할 때, 내장 패키지인 Simulink나 사용자가 직접 만든 다른 패키지와 같이 다른 패키지에 정의된 스토리지 클래스를 참조할 수 있습니다. 그러면 정의된 패키지와 이를 참조하는 패키지들이 해당 스토리지 클래스를 사용할 수 있습니다. 스토리지 클래스를 변경하려면, 해당 클래스를 정의한 패키지에서 단 한 번만 변경하면 됩니다.

다른 패키지에서 정의한 스토리지 클래스를 참조하도록 패키지를 구성하려면:

  1. 사용자 지정 스토리지 클래스 디자이너에서 사용자 지정 스토리지 클래스 탭을 선택합니다.

  2. 패키지 선택을 사용하여 참조할 패키지를 선택하십시오. 해당 패키지는 쓰기 권한이 있어야 합니다.

  3. 사용자 지정 스토리지 클래스 정의 창에서, 참조를 삽입하려는 기존 정의 아래에 있는 항목을 선택합니다.

  4. 새 참조를 클릭하십시오.

    기본 이름과 속성을 가진 새로운 참조가 이전에 선택했던 정의 바로 아래에 나타납니다. 새로운 참조가 선택되면 초기 속성이 표시되는 참조 탭이 나타납니다.

  5. 이름을 사용하여 새 참조의 이름을 지정하십시오. 이름은 가져오는 패키지 내에서 고유해야 하지만, 소스 패키지의 이름과 중복될 수는 있습니다. 이름은 TLC 키워드일 수 없습니다.

  6. 패키지 내 사용자 지정 스토리지 클래스 참조를 설정하여 참조할 스토리지 클래스가 포함된 패키지를 지정하십시오.

  7. 참조할 스토리지 클래스를 지정하려면 참조할 사용자 지정 스토리지 클래스를 설정하십시오.

  8. 확인 또는 적용을 클릭하십시오. 변경 사항을 영구적으로 저장하려면 저장을 클릭하십시오.

스토리지 클래스 드롭다운 목록의 모양 제어

데이터 항목에 스토리지 클래스를 적용할 때는 드롭다운 목록에서 스토리지 클래스를 선택합니다.

  • 목록에서 사용자 지정 스토리지 클래스의 순서를 제어하려면, 사용자 지정 스토리지 클래스 디자이너에서 위로아래로 버튼을 사용하십시오. 드롭다운 목록에 표시되는 스토리지 클래스의 순서는 ‘사용자 지정 스토리지 클래스 디자이너’에서 지정한 순서와 일치합니다.

  • 스토리지 클래스 사용자가 파라미터 데이터나 신호 및 상태 데이터에 해당 스토리지 클래스를 적용하지 못하도록 하려면 파라미터의 경우신호의 경우 체크박스를 사용하십시오. 이러한 속성 중 하나를 선택 해제하면, 해당 데이터 유형에 대한 스토리지 클래스가 드롭다운 목록에 표시되지 않습니다.

    예를 들어, 데이터 초기화Macro로 설정하여 스토리지 클래스가 생성된 코드에서 매크로를 생성하는 경우, 사용자가 신호 데이터에 해당 스토리지 클래스를 적용하지 못하도록 하려면 신호의 경우를 지워야 합니다.

사용자 지정 스토리지 클래스 정의 보호

사용자 지정 스토리지 클래스 디자이너에서 저장을 클릭하면, 디자이너는 메모리 섹션 및 스토리지 클래스 정의를 패키지 네임스페이스 폴더 내의 csc_registration.m 파일에 저장합니다. 이 파일의 위치를 확인하려면 ‘사용자 지정 스토리지 클래스 디자이너’에서 파일 이름의 값을 확인하십시오.

csc_registration.m 파일을 MATLAB 파일에서 P-파일로 변환함으로써, 전체 패키지의 스토리지 클래스 정의가 변경되는 것을 방지할 수 있습니다. pcode 함수를 사용하십시오.

모범 사례로는 csc_registration.mcsc_registration.p를 패키지 네임스페이스 폴더에 보관하는 것입니다. 이렇게 하면 디자이너를 사용하여 스토리지 클래스를 수정할 때, csc_registration.p를 삭제했다가 수정이 끝난 후에 다시 생성할 수 있습니다. P-코딩된 버전의 파일이 우선 적용되므로, 패키지에 두 파일이 모두 존재할 경우 스토리지 클래스는 보호 상태가 되어 ‘사용자 지정 스토리지 클래스 디자이너’에서 이를 수정할 수 없습니다.

TLC 코드를 작성하여 생성된 코드를 더욱 세밀하게 사용자 지정하기

‘사용자 지정 스토리지 클래스 디자이너’에서 속성을 조정하여 자체 스토리지 클래스를 생성하는 것만으로는 요구 사항을 충족할 수 없는 경우, 스토리지 클래스에 대한 TLC 코드를 직접 작성하여 생성된 코드를 세밀하게 제어할 수 있습니다. ‘사용자 지정 스토리지 클래스 디자이너’의 고급 모드를 사용하여 스토리지 클래스에서 유형기타로 설정하십시오. Finely Control Data Representation by Writing TLC Code for a Storage Class 항목을 참조하십시오.

참고 항목

도움말 항목