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