exponenta event banner

Словарь встроенного кодера

Создание определений кода, управляющих созданием кода для данных и функций модели

Описание

Embedded Coder Dictionary - это графический интерфейс для создания пользовательских определений кода. Применяя эти определения в моделях, пользователь и пользователь могут создавать код, соответствующий определенной архитектуре программного обеспечения по умолчанию. Например, можно создать собственный класс хранения, который пользователь и пользователи могут применять по умолчанию к категории данных модели, такой как входные данные корневого уровня, или к отдельным элементам данных, таким как параметры.

Можно создать следующие типы определений кода:

  • Классы хранения, управляющие кодом, создаваемым для данных модели.

  • Шаблоны настройки функций, управляющие присвоением имен функциям точки входа модели, например model_step. Шаблоны также применяют разделы памяти к функциям точки входа.

  • Разделы памяти, которые управляют размещением данных и функций в памяти. Созданный код включает в себя пользовательские украшения, например, прагматики, синтаксис которых задан пользователем.

Общие сведения о создании определений генерации кода см. в разделе Определение классов хранения, разделов памяти и шаблонов функций для архитектуры программного обеспечения.

В словаре Embedded Coder ® имеется вкладка для каждого типа определения кода. На каждой вкладке настраиваются свойства определений кода. Таблица используется для настройки свойств и сравнения определений. Для доступа к свойствам, которые не отображаются в таблице, используйте инспектор свойств. Для проверки результатов при настройке свойств используйте предварительный просмотр псевдокода.

Определения, созданные в словаре, можно применить к элементам модели с помощью редактора сопоставления кодов (см. раздел Настройка генерации кода C по умолчанию для категорий элементов и функций данных). Для создания классов хранения и разделов памяти, которые можно использовать вне редактора сопоставлений кодов, используйте конструктор пользовательских классов хранения (см. раздел Создание определений кодов для внешних объектов данных).

Открытие словаря встроенного кодера

  • Чтобы открыть Embedded Coder Dictionary, в окне модели на вкладке C Code выберите Code Interface > Embedded Coder Dictionary.

    В окне Embedded Coder Dictionary отображаются определения генерации кода, которые хранятся в файле модели. Если модель связана со словарем данных, в окне также отображаются определения, которые хранятся в этом словаре данных или, если применимо, в словаре, на который имеется ссылка. Столбец Источник указывает, где хранится каждое определение.

  • Чтобы открыть Embedded Coder Dictionary в словаре данных Simulink ®, на панели «Иерархия моделей» проводника моделей:

    1. В узле словаря выберите узел Embedded Coder.

      Если узел не отображается, щелкните правой кнопкой мыши узел словаря и выберите Показать пустые разделы.

    2. На панели «Диалоговое окно» (правая панель) выберите «Открыть словарь встроенного кодера».

Примеры

Создание и проверка класса хранения

В модели создайте класс хранения, который агрегирует внутренние данные модели, включая состояния блоков, в структуру, характеристиками которой можно управлять. Затем проверьте класс хранения, сгенерировав код из модели.

  1. Открыть пример модели rtwdemo_roll.

    rtwdemo_roll

  2. Если модель не открывается в приложении Embedded Coder, откройте приложение и перейдите на вкладку C Code.

  3. На вкладке C Code выберите Code Interface > Embedded Coder Dictionary. В окне Embedded Coder Dictionary отображаются определения генерации кода, которые хранятся в файле модели.

  4. В окне Embedded Coder Dictionary нажмите кнопку Add.

  5. Выберите новый класс хранения, который появится в нижней части списка. StorageClass1 . На панели «Инспектор свойств» справа задайте значения свойств, перечисленные в этой таблице.

    СобственностьСтоимость
    ИмяInternalStruct
    Файл заголовкаinternalData_$R.h
    Файл определенияinternalData_$R.c
    Тип складаStructured
    Свойства структуры > Имя типаinternalData_T_$M
    Свойства структуры > Имя экземпляраinternalData_$M

    После внесения изменений на нижней панели убедитесь, что предварительный просмотр псевдокода отражает ожидаемое.

  6. Вернуться к редактору модели. Чтобы открыть редактор «Сопоставления кода», под холстом дважды щелкните «Сопоставления кода». На вкладке «Значения по умолчанию» разверните раздел «Сигналы». Выберите строку сигналов, состояний и внутренних данных и установите для класса хранения значение InternalStruct.

  7. В диалоговом окне «Параметры конфигурации» на панели «Создание кода» > «Размещение кода» задайте для параметра «Формат упаковки файлов» значение Modular.

  8. Создать код.

  9. В представлении «Код редактора Simulink» откройте и проверьте файл. internalData_rtwdemo_roll.h. Файл определяет тип структуры internalData_T_, поля которого представляют состояния блоков в модели.

    /* Storage class 'InternalStruct', for system '<Root>' */
    typedef struct {
      real32_T FixPtUnitDelay1_DSTATE;     /* '<S7>/FixPt Unit Delay1' */
      real32_T Integrator_DSTATE;          /* '<S1>/Integrator' */
      int8_T Integrator_PrevResetState;    /* '<S1>/Integrator' */
    } internalData_T_;

    Файл также объявляет глобальную структурную переменную с именем internalData_.

    /* Storage class 'InternalStruct' */
    extern internalData_T_ internalData_;

  10. Открыть и проверить файл internalData_rtwdemo_roll.c. Файл выделяет память для internalData_.

    /* Storage class 'InternalStruct' */
    internalData_T_ internalData_;

Создание шаблона настройки функции

С помощью шаблона функции можно указать правило, которое управляет именами созданных функций точки входа. Этот метод помогает экономить время и затраты на обслуживание в модели с множеством функций начального уровня, таких как модель с функцией экспорта или многозадачная многозадачная модель.

В этом примере показано, как создать шаблон функции, определяющий правило именования func_$N_$R. $N - базовое имя каждой сгенерированной функции и $R - имя модели Simulink.

  1. Открыть пример модели rtwdemo_mrmtbb.

  2. Обновите блок-схему. Эта многозадачная модель имеет две скорости выполнения, поэтому сгенерированный код включает в себя две соответствующие функции точки входа.

  3. В модели задайте для параметра конфигурации модели System target file значение ert.tlc. Для использования шаблона настройки функции необходимо использовать системный целевой файл на основе ERT.

  4. В редакторе Simulink откройте приложение Embedded Coder и словарь Embedded Coder Dictionary.

  5. В словаре Embedded Coder на вкладке Function Customization Templates нажмите кнопку Add.

  6. Для нового шаблона функции задайте следующие свойства:

    • Имя для myFunctions.

    • Имя функции для func_$N_$R.

    После внесения изменений убедитесь, что предварительный просмотр псевдокода отражает ожидаемое.

  7. В окне модели откройте редактор Сопоставления кодов (Code Mappings). На закладке Function Defaults для строк Initialize/Terminate и Execution установите для параметра Function Customization Template значение myFunctions.

  8. Создать код.

  9. В представлении «Код» откройте и проверьте файл. rtwdemo_mrmtbb.c. Файл определяет две функции выполнения, func_step0_rtwdemo_mrmtbb и func_step1_rtwdemo_mrmtbb, имена которых соответствуют правилу, указанному в шаблоне функции.

Создать раздел памяти

Пример создания раздела памяти см. в разделе Управление данными и размещением функций в памяти путем вставки прагматиков.

Создание класса хранения для использования со статически и динамически инициализированными данными

В этом примере показано, как создать класс хранения, помещающий определения и объявления глобальных переменных в файлы, имена которых зависят от имени модели. Создайте две копии класса хранения, чтобы можно было использовать одну копию с данными параметров (категория данных Параметры модели) и одну копию с другими данными.

Обычно сгенерированный код инициализирует данные параметров статически, вне любой функции и динамически инициализирует другие данные в функции инициализации модели. При создании класса хранения с помощью конструктора пользовательских классов хранения или словаря встроенного кодера необходимо задать свойство Инициализация данных, чтобы указать механизм инициализации.

В словаре встроенного кодера для каждого класса хранения необходимо выбрать Static или Dynamic инициализация. Попробуйте создать одну копию класса хранения для данных параметров (Static) и одну копию для других данных (Dynamic).

Создать класс хранения
  1. Открыть пример модели rtwdemo_roll.

  2. Если вкладка C Code не открыта, откройте приложение Embedded Coder и перейдите на вкладку C Code.

  3. Выберите Code Interface > Embedded Coder Dictionary

  4. В словаре встроенного кодера нажмите кнопку Добавить.

  5. Для нового класса хранения задайте следующие свойства:

    • Имя для SigsStates

    • Файл заголовка для $R_my_data.h

    • Файл определения для $R_my_data.c

    • Инициализация данных в Dynamic

    После внесения изменений убедитесь, что предварительный просмотр псевдокода отражает ожидаемое.

  6. Нажмите кнопку «Копировать». Новый класс хранения, SigsStates_copy, появляется.

  7. Для нового класса хранения задайте следующие свойства:

    • Имя для Params

    • Инициализация данных в Static

    После внесения изменений убедитесь, что предварительный просмотр псевдокода отражает ожидаемое.

Применение класса хранения и создание кода
  1. Вернитесь к модели и откройте редактор Сопоставления кодов (Code Mappings). Под холстом модели дважды щелкните «Сопоставления кода - C».

  2. На вкладке Значения по умолчанию для строки Параметры > Параметры модели в столбце Класс хранения выберите Params.

  3. Для параметра Signals (Сигналы) > Signals (Сигналы), stations (Состояния) и внутренней строки данных установите для параметра Storage Class значение SigsStates.

  4. Настройте некоторые элементы данных параметров в модели таким образом, чтобы оптимизация не исключала эти элементы из созданного кода. На вкладке Моделирование (Modeling) щелкните Проект (Design) > Рабочее пространство модели (Model Workspace).

  5. В обозревателе моделей на центральной панели выберите три строки, которые соответствуют переменным. dispGain, intGain, и rateGain в рабочем пространстве модели.

  6. Щелкните правой кнопкой мыши одну из строк и выберите Convert to parameter object. Редактор данных модели преобразует переменные рабочего пространства в Simulink.Parameter объекты.

  7. В строке параметра dispGain, в столбце Класс хранилища нажмите кнопку Настроить. Окно модели выделяет строку для dispGain в редакторе сопоставлений кодов.

  8. Для каждой переменной в столбце Класс хранения выберите Model default: Params, что означает, что они получают класс хранения по умолчанию, указанный для параметров модели.

  9. В диалоговом окне «Параметры конфигурации» на панели «Создание кода» > «Размещение кода» задайте для параметра «Формат упаковки файлов» значение Modular.

  10. Создать код.

  11. В представлении «Код» откройте и проверьте файлы. rtwdemo_roll_my_data.c и rtwdemo_roll_my_data.h. Эти файлы определяют и объявляют глобальные переменные, которые соответствуют объектам параметров и некоторым состояниям блоков, таким как состояние блока Integrator в BasicRollMode подсистема.

    /* Storage class 'SigsStates' */
    real32_T rtFixPtUnitDelay1_DSTATE;
    real32_T rtIntegrator_DSTATE;
    int8_T rtIntegrator_PrevResetState;
    
    /* Storage class 'Params' */
    real32_T dispGain = 0.75F;
    real32_T intGain = 0.5F;
    real32_T rateGain = 2.0F;

См. Определения генерации кода в пакете

Можно настроить Embedded Coder Dictionary для обращения к определениям генерации кода, которые хранятся в пакете (см. Создание определений кода для внешних объектов данных). Эти определения появятся доступными для выбора в редакторе сопоставлений кодов. В этом примере выполняется настройка словаря встроенного кодера в rtwdemo_roll см. определения, хранящиеся во встроенном примере пакета ECoderDemos.

  1. Открыть словарь встроенного кодера для rtwdemo_roll. Инструкции см. в разделе Создание и проверка класса хранения.

  2. В окне Embedded Coder Dictionary щелкните Управление пакетами.

  3. В диалоговом окне «Управление пакетами» нажмите кнопку «Обновить». Дождитесь появления дополнительных параметров в выпадающем списке Выбрать пакет.

  4. Задать для параметра Выбрать пакет значение ECoderDemos и щелкните Загрузить (Load).

    В окне Embedded Coder Dictionary на вкладке Storage Classes в таблице показаны классы хранения, определенные в ECoderDemos пакет. Теперь, в rtwdemo_rollэти классы хранения можно выбрать в редакторе сопоставлений кодов на вкладке «Значения по умолчанию».

  5. Чтобы выгрузить пакет, в диалоговом окне Управление пакетами (Manage Packages) выберите пакет в раскрывающемся списке Выбрать пакет (Select package) и щелкните Выгрузить (Unload).

Обмен определениями генерации кода между моделями с помощью словаря данных Simulink

Пример совместного использования определений генерации кода между моделями с помощью словарей данных см. в разделе Совместное использование определений словаря встроенного кодера между моделями.

Настройка сопоставлений кодов по умолчанию в словаре общего кодера

Пример настройки сопоставления кода по умолчанию в общем словаре встроенного кодера см. в разделе Настройка сопоставления кода по умолчанию в общем словаре.

Связанные примеры

Параметры

Эти свойства отображаются на панели «Инспектор свойств» окна «Embedded Coder Dictionary». В таблице некоторые свойства отображаются в виде столбцов для облегчения пакетного редактирования.

Классы хранения

Имя класса хранения. Имя должно быть уникальным среди классов хранения в словаре.

Список встроенных и примерных классов хранения, предоставляемых Simulink, см. в разделе Выбор класса хранения для управления представлением данных в сгенерированном коде.

Пользовательский текст, который можно использовать для описания назначения и функциональных возможностей класса хранения.

Это свойство доступно только для чтения.

Расположение определения класса хранения.

Спецификация для доступа к данным, связанным с моделью. Доступ к данным напрямую (Direct) или через настраиваемые get и set функции (Function). Дополнительные сведения см. в разделе Доступ к данным через функции с помощью классов хранения в словаре встроенного кодера.

Зависимости

  • Установка для этого свойства значения Function:

    • Задает для области данных значение Imported.

    • Означает, что невозможно задать свойства нескольких экземпляров.

    • Включает следующие свойства:

      • Режим доступа

      • Разрешенный доступ

      • Имя Геттера

      • Имя установщика

    • Отключает свойство Preserve array dimensions. Чтобы сохранить размеры многомерных массивов в создаваемом коде, установите для параметра Доступ к данным значение Direct.

Спецификация, определяющая данные сгенерированным кодом (Exported) или импорт (Imported) определение данных из внешнего кода. Встроенные классы хранения и классы хранения в пакетах, таких как Simulink, могут использовать другие параметры области, такие как File.

Зависимости

  • Установка для этого свойства значения Imported:

    • Отключает файл определения. Чтобы включить внешний файл исходного кода в процесс построения, используйте параметры конфигурации модели. Пример см. в разделе Настройка интерфейса данных.

    • Означает, что невозможно установить для файла заголовка значение $N.h, хотя вы можете использовать $N токен.

  • Установка для этого свойства значения Exported, необходимо использовать один из маркеров $N или $R в значении файла заголовка.

Имя файла заголовка, объявляющего данные, указанное как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.

СимволОписание
$RИмя корневой модели
$NИмя связанного элемента данных
$GИмя класса хранения
$UТекст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора

Зависимости

  • Если для параметра «Область данных» задано значение Exported, необходимо использовать один из маркеров $R или $N в значении этого свойства.

  • Если для параметра «Область данных» задано значение Imported, значение этого свойства нельзя установить равным $N.h, но вы можете использовать $N токен.

Имя исходного файла, определяющего данные, указанное как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.

СимволОписание
$RИмя корневой модели
$NИмя связанного элемента данных
$GИмя класса хранения
$UТекст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора

Зависимости

Установка для области данных значения Imported отключает файл определения. Чтобы включить внешний файл исходного кода в процесс построения, используйте параметры конфигурации модели. Пример см. в разделе Настройка интерфейса данных.

Спецификация класса хранения для доступа к данным, связанным с моделью, через функции с помощью Value или Pointer. Дополнительные сведения см. в разделе Доступ к данным через функции с помощью классов хранения в словаре встроенного кодера.

Зависимости

Это свойство включено, только если для параметра «Доступ к данным» задано значение Function.

Спецификация класса хранения, разрешающая чтение и запись (Read/Writeтолько для чтенияRead Only) или только для записи (Write Only) доступ к данным.

Зависимости

Это свойство включено, только если для параметра «Доступ к данным» задано значение Function.

Название get функция, которая извлекает связанные данные, указанные как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.

СимволОписание
$NИмя связанного элемента данных (обязательно)
$RИмя корневой модели
$MМангальный текст, обеспечивающий уникальность
$UТекст маркера пользователя. См. раздел Управление форматом идентификатора.

Зависимости

Это свойство включено, только если для параметра «Доступ к данным» задано значение Function.

Название set функция, которая извлекает данные изменения, указанные как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.

СимволОписание
$NИмя связанного элемента данных (обязательно)
$RИмя корневой модели
$MМангальный текст, обеспечивающий уникальность
$UТекст маркера пользователя. См. раздел Управление форматом идентификатора.

Зависимости

Это свойство включено, только если для параметра «Доступ к данным» задано значение Function.

Спецификация для класса хранения данных для использования либо параметров хранения данных, заданных в разделе Одноэкземплярное хранение данных, либо параметров хранения данных, заданных в разделе Многоэкземплярное хранение данных. При применении класса хранения к элементу данных Embedded Coder Dictionary определяет, является ли он классом хранения с одним экземпляром или классом хранения с несколькими экземплярами по типу данных и по контексту модели в иерархии ссылок на модель.

Зависимости

При выборе этого свойства включаются разделы Одноэкземплярное хранение и Многоэкземплярное хранение. Свойства Тип хранилища (Storage Type), Имя типа (Type Name) и Имя экземпляра (Instance Name) отображаются в разделах Хранение в одном экземпляре (Single-instance storage) и Хранение в нескольких экземплярах (Multi-instance storage).

Спецификация для агрегирования данных, использующих класс хранения, в структуру в сгенерированном коде. Каждый элемент данных отображается в коде как поле структуры. Для создания структуры используйте Structured.

Зависимости

Установка для этого свойства значения Structured включает «Имя типа» и «Имя экземпляра».

Имя типа структуры в созданном коде, указанное как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.

СимволОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$GИмя класса хранения
$UТекст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора
$MПри необходимости вставляется текст с искажениями имен, чтобы избежать конфликтов имен

Зависимости

Установка для типа склада значения Structured включает это свойство.

Имя структурной переменной в созданном коде, указанное как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.

СимволОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$GИмя класса хранения
$UТекст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора
$MПри необходимости вставляется текст с искажениями имен, чтобы избежать конфликтов имен

Зависимости

Установка для типа склада значения Structured включает это свойство.

Спецификация, согласно которой сгенерированный код инициализирует данные.

  • Auto - сгенерированный код статически инициализирует данные параметров и динамически инициализирует данные сигналов и состояния.

  • Dynamic - Созданный код инициализирует данные как часть функции точки входа инициализации модели.

  • Static - Созданный код инициализирует данные в той же инструкции, которая определяет и выделяет память для данных. Оператор присвоения отображается в верхней части .c или .cpp исходный файл, вне функции.

  • None - Созданный код не инициализирует данные.

Зависимости

  • При выборе Const это свойство нельзя задать равным Dynamic.

  • Установка для этого свойства значения Dynamic отключает Const.

Расположение в памяти для выделения данных, указанное как раздел памяти, который существует в словаре встроенного кодера на вкладке «Разделы памяти». Дополнительные сведения о разделах памяти см. в разделе Управление данными и размещением функций в памяти путем вставки прагматиков.

Спецификация класса хранения для сохранения размеров многомерных массивов в созданном коде. Дополнительные сведения см. в разделе Сохранение размеров многомерных массивов в сгенерированном коде.

Спецификация для применения const квалификатор данных.

Зависимости

  • При выборе этого свойства невозможно задать для параметра «Инициализация данных» значение Dynamic.

  • Установка для инициализации данных значения Dynamic отключает это свойство.

Спецификация для применения volatile квалификатор данных.

Спецификация для применения пользовательского квалификатора к данным. Например, некоторые архитектуры памяти поддерживают квалификаторы far и huge.

Не использовать это свойство для применения ключевого слова static. Вместо этого используйте встроенный класс хранения FileScope, который нельзя применить в редакторе сопоставлений кода. См. раздел Выбор класса склада для представления контроллинговых данных в сгенерированном коде.

Спецификация, указывающая, следует ли разрешить использование класса хранения с параметрами модели.

Зависимости

  • Установка для инициализации данных значения Static включает это свойство.

  • Установка для инициализации данных значения Dynamic отключает это свойство.

  • Чтобы задать значение этого свойства, задайте для параметра «Инициализация данных» значение None.

Спецификация, указывающая, следует ли разрешить использование класса хранения с модельными сигналами.

Зависимости

  • Установка для инициализации данных значения Dynamic включает это свойство.

  • Установка для инициализации данных значения Static отключает это свойство.

  • Чтобы задать значение этого свойства, задайте для параметра «Инициализация данных» значение None.

Шаблоны настройки функции

Имя шаблона. Имя должно быть уникальным среди шаблонов функций в словаре. Встроенный кодер содержит встроенные шаблоны, перечисленные в этой таблице.

ШаблонОписание
ModelFunctionВ редакторе сопоставлений кодов используйте функции начальной точки для инициализации, выполнения, завершения и сброса (см. раздел Настройка генерации кода по умолчанию для функций).
UtilityFunctionВ редакторе сопоставлений кодов используйте для общих служебных функций (см. раздел Настройка генерации кода по умолчанию для функций).

Пользовательский текст, который можно использовать для описания назначения и функциональных возможностей шаблона функции.

Это свойство доступно только для чтения.

Расположение определения шаблона функции.

Имена функций в сгенерированном коде, указанные как правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.

СимволОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$UТекст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора
$CДля общих служебных функций контрольная сумма вставляется во избежание конфликтов имен
$MПри необходимости вставляется текст с искажениями имен, чтобы избежать конфликтов имен

Расположение в памяти для назначения функции, указанное как раздел памяти, который существует в словаре встроенного кодера на вкладке «Разделы памяти». Дополнительные сведения о разделах памяти см. в разделе Управление данными и размещением функций в памяти путем вставки прагматиков.

Разделы памяти

Имя раздела памяти. Имя должно быть уникальным среди разделов памяти в словаре. Встроенный кодер содержит встроенные разделы памяти, перечисленные в этой таблице.

Раздел памятиОписание
MemConstПрименение квалификатора типа склада const к данным.
MemVolatileПрименение квалификатора типа склада volatile к данным.
MemConstVolatileПрименение квалификаторов типа склада const и volatile к данным.

Пользовательский текст, который можно использовать для описания назначения и функциональности раздела памяти.

Это свойство доступно только для чтения.

Расположение определения раздела памяти.

Комментарий к коду, который генератор кода включает вместе с прагматиками или другими украшениями, заданными с помощью предварительного отчета и отчета о проводке.

Код, например, прагматики, для вставки перед определениями и объявлениями данных или функций, находящихся в разделе памяти.

Вы можете использовать маркер $R для представления имени модели, использующей раздел памяти.

Если для параметра Оператор (Statements) Окружить (Surround) задано значение Each variable, вы можете использовать маркер $N для представления имени каждой переменной или функции, использующей раздел памяти.

Код, например, прагматики, для вставки после определений и описаний данных или функций, находящихся в разделе памяти.

Вы можете использовать маркер $R для представления имени модели, использующей раздел памяти.

Если для параметра Оператор (Statements) Окружить (Surround) задано значение Each variable, вы можете использовать маркер $N для представления имени каждой переменной или функции, использующей раздел памяти.

Спецификация для вставки инструкций по коду (предварительные и последующие инструкции):

  • Вокруг каждой переменной и функции, которая использует раздел памяти. Выбрать Each variable.

  • Один раз, вокруг всей секции памяти. Созданный код агрегирует определения переменных и функций в смежный блок кода и окружает блок инструкциями. Выбрать Group of variables.

Ограничения

  • Класс хранения данных или шаблон настройки функции, создаваемый в словаре встроенного кодера, не может использовать раздел памяти, загружаемый из пакета (как описано в разделе Описание генерации кода в пакете). Используйте раздел памяти, определенный в словаре встроенного кодера.

  • Невозможно создать определения генерации кода в .mdl файл модели.

  • Дополнительные ограничения для определений генерации кода в словаре встроенного кодера словаря данных (.sldd файл), см. раздел Развертывание определений генерации кода.

Представлен в R2018a