Создайте определения кода, которые код системы управления генерацию для данных моделей и функций
Чтобы открыть словарь Embedded Coder Dictionary, в окне модели, на вкладке C Code, выберите Code Interface > Embedded Coder Dictionary.
В окне Embedded Coder Dictionary отображаются определения генерации кода, которые хранятся в файле модели. Если модель связана со словарем данных, в окне также отображаются определения, которые хранятся в этом словаре данных или, если применимо, в словаре-ссылке. Столбец Source указывает, где хранится каждое определение.
Чтобы открыть Embedded Coder в Simulink® словарь данных, на панели Model Hierarchy Model Explorer:
Под узлом словаря выберите узел Embedded Coder.
Если узел не отображается, щелкните правой кнопкой мыши по узлу словаря и выберите Show Empty Sections.
На панели Диалоговое окно (правая панель) нажмите кнопку Open Embedded Coder Dictionary.
В модели создайте класс памяти, который агрегирует данные внутренней модели, включая состояния блока, в структуру, характеристиками которой можно управлять. Затем проверьте класс памяти, сгенерировав код из модели.
Откройте пример модели rtwdemo_roll.
rtwdemo_roll
Если модель не открывается в приложении Embedded Coder, откройте приложение и нажмите вкладку C Code.
На вкладке C Code выберите Code Interface > Embedded Coder Dictionary. В окне Embedded Coder Dictionary отображаются определения генерации кода, которые хранятся в файле модели.
В окне Embedded Coder Dictionary нажмите Add.
Выберите новый класс памяти, который появится в нижней части списка StorageClass1 . На панели Property Inspector справа задайте значения свойств, перечисленные в этой таблице.
| Свойство | Значение |
|---|---|
| Name | InternalStruct |
| Header File | internalData_$R.h |
| Definition File | internalData_$R.c |
| Storage Type | Structured |
| Structure Properties> Type Name | internalData_T_$M |
| Structure Properties> Instance Name | internalData_$M |
После внесения изменений в нижней панели проверьте, что предварительный просмотр псевдокода отражает то, что вы ожидаете.
Вернитесь в редактор моделей. Чтобы открыть редактор Отображения, под холстом, дважды щелкните Code Mappings. На вкладке Data Defaults разверните раздел Signals. Выберите Signals, states, and internal data строку и установите Storage Class равной InternalStruct.
В диалоговом окне Configuration Parameters, на Code Generation> Code Placement панель, набор File packaging format к Modular.
Сгенерируйте код.
В представлении Simulink Editor Code откройте и проверьте файл 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_;
Откройте и проверьте файл internalData_rtwdemo_roll.c. Файл выделяет память для internalData_.
/* Storage class 'InternalStruct' */ internalData_T_ internalData_;
С помощью шаблона функции можно задать правило, которое управляет именами сгенерированных функций точки входа. Этот метод помогает сэкономить время и усилия по техническому обслуживанию в модели со многими функциями точки входа, такими как модель экспорта функций или многозадачная модель многозадачности.
В этом примере показано, как создать шаблон функции, который задает правило именования func_$N_$R. $N - базовое имя каждой сгенерированной функции и $R - имя модели Simulink.
Откройте пример модели rtwdemo_mrmtbb.
Обновите блок. Эта многозадачная модель имеет две скорости выполнения, поэтому сгенерированный код включает две соответствующие функции точки входа.
В модели установите параметр конфигурации модели System target file равным ert.tlc. Чтобы использовать шаблон индивидуальной настройки функции, необходимо использовать системный целевой файл на основе ERT.
В Редактор откройте приложение Embedded Coder и откройте Embedded Coder Dictionary.
В словаре Embedded Coder Dictionary, на вкладке Function Customization Templates, нажмите Add.
Для нового шаблона функции задайте следующие свойства:
Name с myFunctions.
Function Name с func_$N_$R.
После внесения изменений проверьте, что предпросмотр псевдокода отражает то, что вы ожидаете.
В окне модели откройте редактор Отображения. На вкладке Function Defaults, для Initialize/Terminate и Execution строки, набор Function Customization Template к myFunctions.
Сгенерируйте код.
В представлении кода откройте и проверьте файл rtwdemo_mrmtbb.c. Файл определяет две функции выполнения, func_step0_rtwdemo_mrmtbb и func_step1_rtwdemo_mrmtbb, имена которых соответствуют правилу, заданному в шаблоне функции.
Для примера, который показывает, как создать раздел памяти, смотрите Control Data and Function Placement in Memory by Inserting Pragmas.
В этом примере показано, как создать класс памяти, который помещает определения глобальных переменных и объявления в файлы, имена которых зависят от имени модели. Вы создаете две копии класса памяти, чтобы можно было использовать одну копию с данными параметра (Model parameters типа данных) и одну копию с другими данными.
Обычно сгенерированный код инициализирует данные параметра статически, вне любой функции и инициализирует другие данные динамически, в функции инициализации модели. Когда вы создаете класс памяти с помощью Custom Storage Class Designer или Embedded Coder Dictionary, вы устанавливаете свойство Data Initialization, чтобы задать механизм инициализации.
В словаре Embedded Coder Dictionary для каждого класса памяти необходимо выбрать Static или Dynamic инициализация. Рассмотрите создание одной копии класса памяти для данных параметра (Static) и одна копия для других данных (Dynamic).
Откройте пример модели rtwdemo_roll.
Если вкладка C Code не открыта, откройте приложение Embedded Coder и щелкните вкладку C Code.
Выберите Code Interface > Embedded Coder Dictionary
В словаре Embedded Coder Dictionary нажмите Add.
Для нового класса памяти задайте следующие свойства:
Name с SigsStates
Header File с $R_my_data.h
Definition File с $R_my_data.c
Data Initialization с Dynamic
После внесения изменений проверьте, что предпросмотр псевдокода отражает то, что вы ожидаете.
Нажмите Duplicate. Новый класс памяти, SigsStates_copy, появляется.
Для нового класса памяти задайте следующие свойства:
Name с Params
Data Initialization с Static
После внесения изменений проверьте, что предпросмотр псевдокода отражает то, что вы ожидаете.
Вернитесь к модели и откройте редактор Отображения. Под полотном модели дважды кликните Code Mappings - C.
На вкладке Data Defaults для строки Parameters > Model Parameters в столбце Storage Class выберите Params.
Для Signals> Signals, states, and internal data строка, набор Storage Class к SigsStates.
Сконфигурируйте некоторые элементы данных параметров в модели, чтобы оптимизация не исключала эти элементы из сгенерированного кода. На вкладке Modeling щелкните Design > Model Workspace.
В Model Explorer на центральной панели выберите три строки, которые соответствуют переменным dispGain, intGain, и rateGain в рабочем пространстве модели.
Щелкните правой кнопкой мыши одну из строк и выберите Convert to parameter object. Этот Model Data Editor преобразует переменные рабочей области в Simulink.Parameter объекты.
В строке для параметра dispGainв Storage Class столбце щелкните Configure. В окне модели подсвечивается строка для dispGain параметр в редакторе Отображения.
Для каждой переменной в Storage Class столбце выберите Model default: Params, что означает, что они получают класс памяти по умолчанию, указанный для Model parameters.
В диалоговом окне Configuration Parameters, на Code Generation> Code Placement панель, набор File packaging format к Modular.
Сгенерируйте код.
В представлении кода откройте и проверьте файлы 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 для ссылки на определения генерации кода, которые вы храните в пакете (см. «Создание определений кода для внешних объектов данных»). Эти определения будут доступны для выбора в редакторе Отображения. В этом примере вы конфигурируете Embedded Coder в rtwdemo_roll для обращения к определениям, хранящимся во встроенном примере пакета ECoderDemos.
Откройте словарь Embedded Coder для rtwdemo_roll. Инструкции см. в разделе Создание и проверка Класса памяти.
В окне Embedded Coder Dictionary нажмите Manage Packages.
В диалоговом окне Управление пакетами нажмите Refresh. Подождите, пока в раскрывающемся списке Select package не появится больше параметров.
Установите Select package значение ECoderDemos и нажмите Load.
В окне Embedded Coder Dictionary, на вкладке Storage Classes, в таблице показаны классы памяти, определенные в ECoderDemos пакет. Теперь, в rtwdemo_rollможно выбрать эти классы памяти в редакторе Отображения на вкладке Data Defaults.
Чтобы выгрузить пакет, в диалоговом окне Управление пакетами выберите пакет в раскрывающемся списке Select package и нажмите Unload.
Для примера, который показывает, как обмениваться определениями генерации кода между моделями с помощью словарей данных, см. Раздел «Совместное определение словаря Embedded Coder между моделями».
Для примера, в котором показано, как сконфигурировать отображения кода по умолчанию в общем словаре Embedded Coder, смотрите Настройте отображение кода по умолчанию в общем словаре.
Эти свойства отображаются на панели Property Inspector окна Embedded Coder Dictionary. В таблице некоторые свойства отображаются как столбцы для облегчения редактирования пакета.
Классы памятиName - Имя класса памятиStorageClass1 (по умолчанию) | текстИмя класса памяти. Имя должно быть уникальным среди классов памяти в словаре.
Для списков встроенных и примерных классов памяти, которые предоставляет Simulink, смотрите Выбор класса памяти для управления представлением данных в Сгенерированном коде.
Description - Назначение и функциональность класса памятиПользовательский текст, который можно использовать для описания назначения и функциональности класса памяти.
Source - Расположение определения класса памятиЭто свойство доступно только для чтения.
Расположение определения класса памяти.
Built-in - Предоставляется компанией Simulink.
Имя модели - Определено в модели Simulink.
Имя словаря - Определяется в словаре данных Simulink (см. «Что такое словарь данных?»).
Имя пакета - Определяется в пакете Simulink или в пользовательском пакете (см. «Создание классов памяти при помощи Custom Storage Class Designer»).
Data Access - Спецификация для доступа к даннымDirect (по умолчанию) | FunctionСпецификация для доступа к данным, сопоставленным с моделью. Доступ к данным непосредственно (Direct) или через настраиваемые get и set функции (Function). Для получения дополнительной информации смотрите Доступ к данным через функции при помощи классов памяти в словаре Embedded Coder.
Установка значения свойства Function:
Устанавливает Data Scope на Imported.
Означает, что вы не можете задать свойства мультиобразцов.
Включает следующие свойства:
Access Mode
Allowed Access
Name of Getter
Name of Setter
Отключает свойство Preserve array dimensions. Чтобы сохранить размерности многомерных массивов в сгенерированном коде, установите Data Access равным Direct.
Data Scope - Спецификация для генерации определения данныхExported (по умолчанию) | ImportedСпецификация, что сгенерированный код определяет данные (Exported) или импорт (Imported) определение данных из внешнего кода. Встроенные классы памяти и классы памяти в пакетах, таких как Simulink, могут использовать другие опции возможностей, такие как File.
Установка значения свойства Imported:
Отключает Definition File. Чтобы включить ваши внешние исходные файлы кода в процесс сборки, используйте параметры конфигурации модели. Для получения примера см. раздел «Настройка Данных интерфейса».
Означает, что вы не можете задать Header File $N.hхотя вы можете использовать $N лексема.
Чтобы задать это свойство равным Exportedнеобходимо использовать один из лексем $N или $R в значении Header File.
Header File - Имя файла заголовка, который объявляет данные$N.h (по умолчанию) | текстИмя файла заголовка, который объявляет данные, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
| Лексема | Описание |
|---|---|
$R | Имя корневой модели |
$N | Имя связанного элемента данных |
$G | Имя класса памяти |
$U | Текст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control |
Если вы задаете Data Scope Exportedнеобходимо использовать один из лексем $R или $N в значении этого свойства.
Если вы задаете Data Scope Imported, вы не можете задать значение этого свойства $N.h, но вы можете использовать $N лексема.
Definition File - Имя исходного файла, который задает данные$N.c (по умолчанию) | текстИмя исходного файла, который определяет данные как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
| Лексема | Описание |
|---|---|
$R | Имя корневой модели |
$N | Имя связанного элемента данных |
$G | Имя класса памяти |
$U | Текст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control |
Установка значения Data Scope Imported отключает Definition File. Чтобы включить ваши внешние исходные файлы кода в процесс сборки, используйте параметры конфигурации модели. Для получения примера см. раздел «Настройка Данных интерфейса».
Access Mode - Спецификация для доступа к данным через функцииValue (по умолчанию) | PointerСпецификация для класса памяти для доступа к данным, связанным с моделью, через функции при помощи Value или Pointer. Для получения дополнительной информации смотрите Доступ к данным через функции при помощи классов памяти в словаре Embedded Coder.
Это свойство включено только, когда вы задаете Data Access Function.
Allowed Access - Спецификация для доступа к данным через функцииRead/Write (по умолчанию) | Read Only | Write OnlyСпецификация для класса памяти, разрешающая чтение и запись (Read/Write), только для чтения (Read Only), или только запись (Write Only) доступ к данным.
Это свойство включено только, когда вы задаете Data Access Function.
Name of Getter - Имя get функция, которая выбирает связанные данныеget_$N$M (по умолчанию) | текстИмя get функция, которая выбирает связанные данные, заданные как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
| Лексема | Описание |
|---|---|
$N | Имя связанного элемента данных (обязательно) |
$R | Имя корневой модели |
$M | Текст Mangle, который гарантирует уникальность |
$U | Текст лексемы пользователя. См. «Управление форматом идентификатора». |
Это свойство включено только, когда вы задаете Data Access Function.
Name of Setter - Имя set функция, которая изменяет связанные данныеset_$N$M (по умолчанию) | текстИмя set функция, которая выбирает данные изменений, заданные как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
| Лексема | Описание |
|---|---|
$N | Имя связанного элемента данных (обязательно) |
$R | Имя корневой модели |
$M | Текст Mangle, который гарантирует уникальность |
$U | Текст лексемы пользователя. См. «Управление форматом идентификатора». |
Это свойство включено только, когда вы задаете Data Access Function.
Use different property settings for single-instance and multi-instance data - Спецификация для назначения отдельных настроек хранилищаoff (по умолчанию) | onСпецификация для класса памяти, для использования параметров хранения, заданных в разделе Single-instance storage, или параметров хранения, заданных в разделе Multi-instance storage. При применении класса хранения к элементу данных словарь Embedded Coder Dictionary определяет, является ли это классом хранения с одним экземпляром или классом хранения с несколькими экземплярами, по типу данных и контексту модели в иерархии моделей-ссылок.
Выбор этого свойства включает разделы Single-instance storage и Multi-instance storage. Свойства Storage Type, Type Name и Instance Name появляются как в Single-instance storage, так и в Multi-instance storage разделах.
Storage Type - Спецификация для агрегирования данных в структуруUnstructured (по умолчанию) | StructuredСпецификация для агрегирования данных, которые используют класс памяти, в структуру в сгенерированном коде. Каждый элемент данных появляется в коде как поле структуры. Чтобы создать структуру, используйте Structured.
Установка значения свойства Structured включает Type Name и Instance Name.
Type Name - Имя типа структуры$R$N$G$M (по умолчанию) | текстИмя типа структуры в сгенерированном коде, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
| Лексема | Описание |
|---|---|
$R | Имя корневой модели |
$N | Базовое имя связанной функции, например step |
$G | Имя класса памяти |
$U | Текст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control |
$M | Текст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен |
Установка значения Storage Type Structured включает это свойство.
Instance Name - Имя структурной переменной$N$G$M (по умолчанию) | текстИмя структурной переменной в сгенерированном коде, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
| Лексема | Описание |
|---|---|
$R | Имя корневой модели |
$N | Базовое имя связанной функции, например step |
$G | Имя класса памяти |
$U | Текст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control |
$M | Текст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен |
Установка значения Storage Type Structured включает это свойство.
Data Initialization - Как инициализировать данныеAuto (по умолчанию) | Dynamic | Static | NoneСпецификация, что сгенерированный код инициализирует данные.
Auto - Сгенерированный код статически инициализирует данные параметра и динамически инициализирует данные сигнала и состояния.
Dynamic - Сгенерированный код инициализирует данные как часть функции точки входа инициализации модели.
Static - Сгенерированный код инициализирует данные в том же операторе, который определяет и выделяет память для данных. Оператор назначения появляется в верхней части .c или .cpp исходный файл, вне функции.
None - Сгенерированный код не инициализирует данные.
Если вы выбираете Const, вы не можете задать это свойство Dynamic.
Установка значения свойства Dynamic отключает Const.
Memory Section - Расположение в памяти для выделения данныхNone (по умолчанию) | существующий раздел памятиРасположение в памяти для выделения данных, заданное как раздел памяти, который существует в словаре Embedded Coder на вкладке Memory Sections. Для получения информации о разделах памяти смотрите Control Data и Function Placement in Memory путем вставки прагм.
Preserve array dimensions - Спецификация для сохранения размерностей многомерных массивовoff (по умолчанию) | onСпецификация для класса памяти, чтобы сохранить размерности многомерных массивов в сгенерированном коде. Для получения дополнительной информации см. Раздел «Сохранение размерностей многомерных массивов» в Сгенерированном коде.
Const - Спецификация для применения const определительoff (по умолчанию) | onСпецификация для применения const квалификатор данных.
Если вы выбираете это свойство, вы не можете задать Data Initialization Dynamic.
Установка значения Data Initialization Dynamic отключает это свойство.
Volatile - Спецификация для применения volatile определительoff (по умолчанию) | onСпецификация для применения volatile квалификатор данных.
Other Qualifier - Спецификация для применения пользовательского квалификатораСпецификация для применения пользовательского квалификатора к данным. Для примера некоторые архитектуры памяти поддерживают квалификаторы far и huge.
Не используйте это свойство для применения ключевого слова static. Вместо этого используйте встроенный класс памяти FileScope, который невозможно применить в редакторе Отображения. Смотрите раздел «Выбор класса памяти для управления представлением данных в сгенерированном коде».
Parameters - Разрешать ли использование с параметрами моделиoff (по умолчанию) | onСпецификация, указывающая, разрешать ли использование класса памяти с параметрами модели.
Установка значения Data Initialization Static включает это свойство.
Установка значения Data Initialization Dynamic отключает это свойство.
Чтобы задать значение этого свойства, установите Data Initialization равным None.
Signals - Разрешать ли использование с сигналами моделиon (по умолчанию) | offСпецификация, указывающая, разрешать ли использование класса памяти с сигналами модели.
Установка значения Data Initialization Dynamic включает это свойство.
Установка значения Data Initialization Static отключает это свойство.
Чтобы задать значение этого свойства, установите Data Initialization равным None.
Name - Имя шаблона функцииFunctionTemplate1 (по умолчанию) | текстИмя шаблона. Имя должно быть уникальным среди шаблонов функций в словаре. Embedded Coder предоставляет встроенные шаблоны, перечисленные в этой таблице.
| Шаблон | Описание |
|---|---|
ModelFunction | В редакторе Отображения используйте для функций точки входа функции инициализации, выполнения, завершения и сброса (см. «Настройка генерации кода по умолчанию для функций») |
UtilityFunction | В редакторе Отображения используйте общие служебные функции (см. «Настройка генерации кода по умолчанию для функций») |
Description - Назначение и функциональность шаблона функцииПользовательский текст, который можно использовать, чтобы описать назначение и функциональность шаблона функции.
Source - Расположение определения шаблона функцииЭто свойство доступно только для чтения.
Расположение определения шаблона функции.
Имя модели - Определено в модели Simulink.
Имя словаря - Определяется в словаре данных Simulink (см. «Что такое словарь данных?»).
Function Name - Имена сгенерированных функций$R$N (по умолчанию) | текстИмена функций в сгенерированном коде, заданные как правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
| Лексема | Описание |
|---|---|
$R | Имя корневой модели |
$N | Базовое имя связанной функции, например step |
$U | Текст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control |
$C | Для общих служебных функций, контрольная сумма вставлена, чтобы избежать конфликтов имен |
$M | Текст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен |
Memory Section - Расположение в памяти для выделения функцииNone (по умолчанию) | существующий раздел памятиРасположение в памяти для выделения функции, заданное как раздел памяти, который существует в словаре Embedded Coder на вкладке Memory Sections. Для получения информации о разделах памяти смотрите Control Data и Function Placement in Memory путем вставки прагм.
Name - Имя раздела памятиИмя раздела памяти. Имя должно быть уникальным среди разделов памяти словаря. Embedded Coder предоставляет встроенные разделы памяти, перечисленные в этой таблице.
| Раздел памяти | Описание |
|---|---|
MemConst | Применить проверку типа склада const к данным. |
MemVolatile | Применить проверку типа склада volatile к данным. |
MemConstVolatile | Применить проверку типа склада const и volatile к данным. |
Description - Назначение и функциональность раздела памятиПользовательский текст, который можно использовать, чтобы описать назначение и функциональность раздела памяти.
Source - Расположение определения раздела памятиЭто свойство доступно только для чтения.
Расположение определения раздела памяти.
Имя модели - Определено в модели Simulink.
Имя словаря - Определяется в словаре данных Simulink (см. «Что такое словарь данных?»).
Имя пакета - Определяется в пакете Simulink или в пользовательском пакете (см. «Создание определений кода для внешних объектов данных»).
Comment - Комментарий для вставки в сгенерированный кодКомментарий кода, который генератор кода включает с прагмами или другими украшениями, которые вы задаете с Pre Statement и Post Statement.
Pre Statement - Код для вставки перед данными или кодом функцииКод, такой как прагмы, для вставки перед определениями и объявлениями данных или функций, которые находятся в разделе памяти.
Можно использовать лексему $R чтобы представлять имя модели, которая использует раздел памяти.
Когда вы задаете Statements Surround Each variable, можно использовать лексему $N чтобы представлять имя каждой переменной или функции, которая использует раздел памяти.
Post Statement - Код для вставки после данных или кода функцииКод, такой как прагмы, для вставки после определений и объявлений данных или функций, которые находятся в разделе памяти.
Можно использовать лексему $R чтобы представлять имя модели, которая использует раздел памяти.
Когда вы задаете Statements Surround Each variable, можно использовать лексему $N чтобы представлять имя каждой переменной или функции, которая использует раздел памяти.
Statements Surround - Спецификация для переноса данных и функций отдельно или в группуEach variable (по умолчанию) | Group of variablesСпецификация для вставки операторов кода (Pre Statement и Post Statement):
Вокруг каждой переменной и функции, которая использует раздел памяти. Выберите Each variable.
Один раз, вокруг всего раздела памяти. Сгенерированный код агрегирует определения переменной и функции в смежный блок кода и окружает блок операторами. Выберите Group of variables.
Шаблон класса памяти или индивидуальной настройки функции, который вы создаете в словаре Embedded Coder, не может использовать раздел памяти, который вы загружаете из пакета (как описано в разделе «См. Определения генерации кода в пакете»). Используйте раздел памяти, заданный в словаре Embedded Coder.
Вы не можете создать определения генерации кода в .mdl файл модели.
Для дополнительных ограничений для определений генерации кода в словаре Embedded Coder словаря данных (.sldd файл), см. «Развертывание определений генерации кода».