Управляйте выражением встроенных значений параметров скаляра в сгенерированном коде. Параметры блоков кажутся встроенными в сгенерированном коде, когда вы устанавливаете Configuration Parameters> Optimization> Default parameter behavior к Inlined
.
Генерация кода Category:> Идентификаторы
Значение по умолчанию:
Literals
Literals
Генерирует встроенные параметры скаляра как числовые константы.
Macros
Генерирует встроенные параметры скаляра как переменные с #define
макросы. Эта установка делает сгенерированный код более читаемым.
Этот параметр:
Появляется только для основанных на ERT целей.
Требует Embedded Coder® при генерации кода.
Параметр:
InlinedPrmAccess |
Ввод: символьный вектор |
Значение:
Literals | Macros |
Значение по умолчанию:
Literals |
Приложение | Установка |
---|---|
Отладка | Никакой удар |
Трассируемость | Macros |
Эффективность | Никакой удар |
Меры безопасности | Никакой удар |
Когда вы генерируете эффективный код путем встраивания числовых значений параметров блоков (с поведением параметра Значения по умолчанию параметра конфигурации), можно сконфигурировать скалярные параметры, чтобы появиться как макросы вместо литеральных чисел. Каждый макрос имеет уникальное имя, которое основано на имени соответствующих параметров блоков.
Откройте модель sldemo_fuelsys_dd_controller
в качестве примера.
sldemo_fuelsys_dd_controller
Модель использует эти настройки параметра конфигурации:
Набор поведения параметра по умолчанию к Inlined
.
Системный набор конечного файла к ert.tlc
.
Установите параметр конфигурации, Генерируют встроенные параметры скаляра относительно Macros
.
set_param('sldemo_fuelsys_dd_controller','InlinedPrmAccess','Macros')
Сгенерируйте код из модели.
rtwbuild('sldemo_fuelsys_dd_controller')
### Starting build procedure for model: sldemo_fuelsys_dd_controller ### Successful completion of code generation for model: sldemo_fuelsys_dd_controller
Заголовочный файл sldemo_fuelsys_dd_controller_private.h
задает несколько макросов, которые представляют встроенные (ненастраиваемые) параметры блоков. Например, макросы rtCP_DiscreteFilter_NumCoe_EL_0
и rtCP_DiscreteFilter_NumCoe_EL_1
представляйте константы с плавающей точкой.
file = fullfile('sldemo_fuelsys_dd_controller_ert_rtw',... 'sldemo_fuelsys_dd_controller_private.h'); rtwdemodbtype(file,'#define rtCP_DiscreteFilter_NumCoe_EL_0',... 'rtCP_DiscreteFilter_NumCoe_EL_1',1,1)
#define rtCP_DiscreteFilter_NumCoe_EL_0 (8.7696F) #define rtCP_DiscreteFilter_NumCoe_EL_1 (-8.5104F)
Комментарии выше макроопределений указывают, что код, сгенерированный для блока Discrete Filter, использует макросы.
rtwdemodbtype(file,'Computed Parameter: DiscreteFilter_NumCoef',... 'Referenced by: ''<S12>/Discrete Filter''',1,1)
/* Computed Parameter: DiscreteFilter_NumCoef * Referenced by: '<S12>/Discrete Filter'
Кликните по гиперссылке, чтобы перейти с блоком в модели.