Управляйте выражением скаляра встроенных значений параметров в сгенерированном коде. Параметры блоков появляются встроенными в сгенерированный код, когда вы задаете Configuration Parameters > Optimization > Default parameter behavior Inlined
.
Category: Генерация кода > Идентификаторы
По умолчанию:
Literals
Literals
Генерирует скалярные inlined параметры как числовые константы.
Macros
Генерирует скалярные inlined параметры как переменные с #define
макросы. Эта настройка делает сгенерированный код более читаемым.
Этот параметр:
Появляется только для целей, основанных на ERT.
Требуется Embedded Coder® при генерации кода.
Параметр:
InlinedPrmAccess |
Тип: Вектор символов |
Значение:
Literals | Macros |
По умолчанию:
Literals
|
Приложение | Настройка |
---|---|
Отладка | Никакого влияния |
Трассируемость | Macros |
Эффективность | Никакого влияния |
Меры безопасности | Никакого влияния |
Когда вы генерируете эффективный код путем встраивания числовых значений параметров блоков (с параметром конфигурации Поведение параметра по умолчанию), можно сконфигурировать скалярные параметры, чтобы они появлялись в виде макросов вместо буквальных чисел. Каждый макрос имеет уникальное имя, основанное на имени соответствующих параметров блоков.
Откройте пример модели sldemo_fuelsys_dd_controller
.
sldemo_fuelsys_dd_controller
Модель использует следующие настройки параметров конфигурации:
Поведение параметра по умолчанию установлено на Inlined
.
Для системного целевого файла задано значение ert.tlc
.
Установите параметр конфигурации Generate scalar inlined parameters as to Macros
.
set_param('sldemo_fuelsys_dd_controller','InlinedPrmAccess','Macros')
Сгенерируйте код из модели.
slbuild('sldemo_fuelsys_dd_controller')
### Starting build procedure for: sldemo_fuelsys_dd_controller ### Successful completion of code generation for: sldemo_fuelsys_dd_controller Build Summary Top model targets built: Model Action Rebuild Reason ================================================================================================ sldemo_fuelsys_dd_controller Code generated Code generation information file does not exist. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 25.095s
Заголовочный файл sldemo_fuelsys_dd_controller_private.h
задает несколько макросов, которые представляют inlined (nontunable) параметры блоков. Например, макросы 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'
Щелкните гиперссылку, чтобы перейти к блоку в модели.