Управляйте выражением встроенных значений параметров скаляра в сгенерированном коде. Параметры блоков кажутся встроенными в сгенерированном коде, когда вы устанавливаете 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'
Кликните по гиперссылке, чтобы перейти к блоку в модели.