Создайте определения кода генерации кода системы управления для данных модели и функций
Чтобы открыть Словарь Embedded Coder, в окне модели, на вкладке C Code, выбирают Code Interface> Embedded Coder Dictionary.
Окно Embedded Coder Dictionary отображает определения генерации кода, которые хранятся в файле модели. Если модель соединена со словарем данных, окно также отображает определения, которые хранятся в том словаре данных или, если применимо, в словаре, на который ссылаются. Столбец Source указывает, где каждое определение хранится.
Открыть Словарь Embedded Coder в Simulink® словарь данных, в панели Model Hierarchy Model Explorer:
Под узлом словаря выберите узел Embedded Coder.
Если вы не видите узел, щелкните правой кнопкой по узлу словаря и выберите Show Empty Sections.
В панели Dialog (правая панель), нажмите 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 |
После внесения ваших изменений, в нижней области, проверяют, что предварительный просмотр псевдокода отражает то, что вы ожидаете.
Возвратитесь к редактору моделей. Чтобы открыть редактор Отображений Кода, ниже холста, дважды кликают Отображения Кода. На вкладке Data Defaults расширьте раздел Signals. Выберите строку Signals, states, and internal data и установите Storage Class на InternalStruct
.
В диалоговом окне Configuration Parameters, на Code Generation> панель Code Placement, устанавливает File packaging format на Modular
.
Сгенерируйте код.
В Редакторе 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_;
Откройте и смотрите файл 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 системный конечный файл.
В Редакторе Simulink откройте приложение Embedded Coder и откройте Словарь Embedded Coder.
В Словаре Embedded Coder, на вкладке 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
, чьи имена соответствуют правилу, что вы задали в шаблоне функции.
Для примера, который показывает, как создать раздел memory, смотрите Данные об Управлении и Функциональное Размещение в Памяти Вставкой Прагм.
В этом примере показано, как создать класс памяти, который помещает определения глобальной переменной и объявления в файлах, имена которых зависят от имени модели. Вы создаете две копии класса памяти так, чтобы можно было использовать одну копию с данными о параметре (категория данных Model parameters) и одну копию с другими данными.
Как правило, сгенерированный код инициализирует данные о параметре статически, вне любой функции, и инициализирует другие данные динамически в функции инициализации модели. Когда вы создаете класс памяти при помощи Custom Storage Class Designer или Словаря Embedded Coder, вы устанавливаете свойство Data Initialization задать механизм инициализации.
В Словаре Embedded Coder, для каждого класса памяти, необходимо выбрать Static
или Dynamic
инициализация. Рассмотрите создание одной копии класса памяти для данных о параметре (Static
) и одна копия для других данных (Dynamic
).
Открытая модель rtwdemo_roll
в качестве примера.
Если вкладка C Code не открыта, откройте приложение Embedded Coder и кликните по вкладке C Code.
Выберите Code Interface> Embedded Coder Dictionary
В Словаре Embedded Coder нажмите 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, чтобы обратиться к определениям генерации кода, которые вы храните в пакете (см., Создают Определения Кода для Внешних Объектов данных). Те определения затем кажутся доступными для выбора в редакторе Отображений Кода. В этом примере вы конфигурируете Словарь Embedded Coder в rtwdemo_roll
отсылать к определениям, сохраненным во встроенном пакете в качестве примера ECoderDemos
.
Откройте словарь Embedded Coder для rtwdemo_roll
. Для инструкций смотрите, Создают и Проверяют Класс памяти.
В окне Embedded Coder Dictionary нажмите Manage Packages.
В диалоговом окне Manage Packages нажмите Refresh. Ожидайте, пока больше опций не появляется в Select package выпадающий список.
Установите Select package на ECoderDemos
и нажмите Load.
В окне Embedded Coder Dictionary, на вкладке Storage Classes, таблица показывает классы памяти, заданные в ECoderDemos
пакет. Теперь в rtwdemo_roll
, можно выбрать эти классы памяти в редакторе Отображений Кода на вкладке Data Defaults.
Чтобы разгрузить пакет, в диалоговом окне Manage Packages, выбирают пакет в Select package выпадающий список и нажимают Unload.
Для примера, который показывает, как совместно использовать определения генерации кода между моделями при помощи словарей данных, см. Словарное определение Embedded Coder Доли Между Моделями.
Для примера, который показывает, как сконфигурировать отображения кода по умолчанию в разделяемом Словаре Embedded Coder, смотрите, Конфигурируют Отображение Кода По умолчанию в Разделяемом Словаре.
Эти свойства появляются в панели Property Inspector в окне Embedded Coder Dictionary. В таблице некоторые свойства, кажется, как столбцы упрощают пакетное редактирование.
Классы памятиName
— Имя класса памятиStorageClass1
(значение по умолчанию) | текстИмя класса памяти. Имя должно быть уникальным среди классов памяти в словаре.
Для списков встроенных и классов памяти в качестве примера, которые обеспечивает Simulink, смотрите, Выбирают Storage Class for Controlling Data Representation in Generated Code.
Description
— Цель и функциональность класса памятиПользовательский текст, который можно использовать, чтобы описать цель и функциональность класса памяти.
Source
— Местоположение определения класса памятиЭто свойство доступно только для чтения.
Местоположение определения класса памяти.
Built-in
— Если Simulink.
Имя модели — Заданный в модели Simulink.
Имя словаря — Заданный в словаре данных Simulink (см. то, Что Словарь Данных?).
Имя пакета — Заданный в пакете Simulink или в пользовательском пакете (см., Создает Классы памяти при помощи Custom Storage Class Designer).
Data Access
— Спецификация, чтобы получить доступ к даннымDirect
(значение по умолчанию) | Function
| Pointer
Спецификация, чтобы получить доступ к данным, сопоставленным с моделью. Доступ к данным непосредственно (Direct
), через настраиваемый get
и set
функции (Function
), или при помощи указателя (Pointer
). Для получения дополнительной информации см. Доступ к данным Через Функции при помощи Классов памяти в Словаре Embedded Coder.
Установка этого свойства к Function
или Pointer
:
Наборы DataScope
к Imported
.
Средние значения, что вы не можете задать свойства мультиэкземпляра.
Устанавливает PreserveDimensions
свойство к false
. Чтобы сохранить размерности многомерных массивов в сгенерированном коде, установите DataAccess
к Direct
.
Кроме того, устанавливая это свойство на Function
включает эти свойства:
AccessMode
AllowedAccess
GetFunctionName
SetFunctionName
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 | Пользовательский текст лексемы, который вы задаете для модели как описано в Управлении форматом Идентификатора |
Если вы устанавливаете Data Scope на Exported
, необходимо использовать одну из лексем $R
или $N
в значении этого свойства.
Если вы устанавливаете Data Scope на Imported
, вы не можете установить значение этого свойства к $N.h
, но можно использовать $N
лексема.
Definition File
— Имя исходного файла, который задает данные$N.c
(значение по умолчанию) | текстИмя исходного файла, который задает данные в виде имени или называющий правило. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
Лексема | Описание |
---|---|
$R | Имя корневой модели |
$N | Имя связанного элемента данных |
$G | Имя класса памяти |
$U | Пользовательский текст лексемы, который вы задаете для модели как описано в Управлении форматом Идентификатора |
Установка 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 | Исказите текст, который гарантирует уникальность |
$U | Пользовательский текст лексемы. Смотрите Управление форматом Идентификатора. |
Это свойство включено только, когда вы устанавливаете Data Access на Function
.
Name of Setter
— Имя set
функция, которая изменяет связанные данныеset_$N$M
(значение по умолчанию) | текстИмя set
функция, которая выбирает, изменяет данные в виде имени или называющий правило. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
Лексема | Описание |
---|---|
$N | Имя связанного элемента данных (требуется) |
$R | Имя корневой модели |
$M | Исказите текст, который гарантирует уникальность |
$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 определяет, является ли это класс хранения единственного экземпляра или класс памяти мультиэкземпляра типом данных и контекстом модели в иерархии модели - ссылки.
Выбор этого свойства включает разделам 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 | Пользовательский текст лексемы, который вы задаете для модели как описано в Управлении форматом Идентификатора |
$M | Искажающий имя вставленный текст, при необходимости, чтобы избежать столкновений имени |
Установка Storage Type к Structured
включает это свойство.
Instance Name
— Имя переменной структуры$N$G$M
(значение по умолчанию) | текстИмя переменной структуры в сгенерированном коде в виде имени или правила именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.
Лексема | Описание |
---|---|
$R | Имя корневой модели |
$N | Базовое имя присоединенной функции, такой как step |
$G | Имя класса памяти |
$U | Пользовательский текст лексемы, который вы задаете для модели как описано в Управлении форматом Идентификатора |
$M | Искажающий имя вставленный текст, при необходимости, чтобы избежать столкновений имени |
Установка Storage Type к Structured
включает это свойство.
Data Initialization
— Как инициализировать данныеAuto
(значение по умолчанию) | Dynamic
| Static
| None
Спецификация, что сгенерированный код инициализирует данные.
Auto
— Сгенерированный код статически инициализирует данные о параметре и динамически инициализирует данные состояния и сигнала.
Dynamic
— Сгенерированный код инициализирует данные как часть функции точки входа инициализации модели.
Static
— Сгенерированный код инициализирует данные в том же операторе, который задает и выделяет память для данных. Оператор присваивания появляется наверху .c
или .cpp
исходный файл, за пределами функции.
None
— Сгенерированный код не инициализирует данные.
Если вы выбираете Const, вы не можете установить это свойство на Dynamic
.
Установка этого свойства к Dynamic
отключает Const.
Memory Section
— Местоположение в памяти, чтобы выделить данныеNone
(значение по умолчанию) | существующий раздел memoryМестоположение в памяти, чтобы выделить данные в виде раздела memory, который существует в Словаре Embedded Coder по вкладке Memory Sections. Для получения информации о разделах памяти смотрите Данные об Управлении и Функциональное Размещение в Памяти Вставкой Прагм.
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 | Пользовательский текст лексемы, который вы задаете для модели как описано в Управлении форматом Идентификатора |
$C | Для разделяемых служебных функций, контрольная сумма, вставленная, чтобы избежать столкновений имени |
$M | Искажающий имя вставленный текст, при необходимости, чтобы избежать столкновений имени |
Memory Section
— Местоположение в памяти, чтобы выделить функциюNone
(значение по умолчанию) | существующий раздел memoryМестоположение в памяти, чтобы выделить функцию в виде раздела memory, который существует в Словаре Embedded Coder по вкладке Memory Sections. Для получения информации о разделах памяти смотрите Данные об Управлении и Функциональное Размещение в Памяти Вставкой Прагм.
Name
— Имя раздела memoryИмя раздела memory. Имя должно быть уникальным среди разделов memory в словаре. Embedded Coder обеспечивает встроенные разделы памяти, перечисленные в этой таблице.
Раздел Memory | Описание |
---|---|
MemConst | Примените спецификатор типа хранения const к данным. |
MemVolatile | Примените спецификатор типа хранения volatile к данным. |
MemConstVolatile | Примените спецификаторы типа хранения const и volatile к данным. |
Description
— Цель и функциональность раздела memoryПользовательский текст, который можно использовать, чтобы описать цель и функциональность раздела memory.
Source
— Местоположение определения раздела memoryЭто свойство доступно только для чтения.
Местоположение определения раздела memory.
Имя модели — Заданный в модели Simulink.
Имя словаря — Заданный в словаре данных Simulink (см. то, Что Словарь Данных?).
Имя пакета — Заданный в пакете Simulink или в пользовательском пакете (см., Создает Определения Кода для Внешних Объектов данных).
Comment
— Прокомментируйте, чтобы вставить в сгенерированный кодКомментарий к коду, который генератор кода включает с прагмами или другими художественными оформлениями, которые вы задаете с Pre Statement и Post Statement.
Pre Statement
— Код, чтобы вставить перед данными или функциональным кодомКод, такой как прагмы, чтобы вставить перед определениями и объявлениями данных или функций, которые находятся в разделе memory.
Можно использовать маркерный $R
представлять имя модели, которая использует раздел memory.
Когда вы устанавливаете Statements Surround на Each variable
, можно использовать маркерный $N
представлять имя каждой переменной или функции, которая использует раздел memory.
Post Statement
— Код, чтобы вставить после данных или функционального кодаКод, такой как прагмы, чтобы вставить после определений и объявлений данных или функций, которые находятся в разделе memory.
Можно использовать маркерный $R
представлять имя модели, которая использует раздел memory.
Когда вы устанавливаете Statements Surround на Each variable
, можно использовать маркерный $N
представлять имя каждой переменной или функции, которая использует раздел memory.
Statements Surround
— Спецификация, чтобы перенести данные и функционирует отдельно или в группеEach variable
(значение по умолчанию) | Group of variables
Спецификация, чтобы вставить операторы кода (Pre Statement и Post Statement):
Вокруг каждой переменной и функции, которая использует раздел memory. Выберите Each variable
.
Однажды, вокруг целого раздела memory. Сгенерированный код агрегировал переменные и функциональные определения в непрерывный блок кода и окружает блок операторами. Выберите Group of variables
.
Класс памяти или функциональный шаблон настройки, который вы создаете в Словаре Embedded Coder, не могут использовать раздел memory, который вы загружаете от пакета (как описано в, Обращаются к Определениям Генерации кода в Пакете). Используйте раздел memory, заданный в Словаре Embedded Coder.
Класс памяти, который вы создаете в Словаре Embedded Coder, который имеет Function
доступ к данным не поддерживается для класса памяти хранилища данных.
Вы не можете создать определения генерации кода в .mdl
файл модели.
Для дополнительных ограничений для определений генерации кода в Словаре Embedded Coder словаря данных (.sldd
файл), смотрите, Развертывают Определения Генерации кода.