Используйте Legacy Code Tool
legacy_code('help')
specs
= legacy_code('initialize')
legacy_code('sfcn_cmex_generate', specs
)
legacy_code('compile', specs
, compilerOptions
)
legacy_code('generate_for_sim', specs
, modelname
)
legacy_code('slblock_generate', specs
, modelname
)
legacy_code('sfcn_tlc_generate', specs
)
legacy_code('sfcn_makecfg_generate', specs
)
legacy_code('rtwmakecfg_generate', specs
)
legacy_code('backward_compatibility')
legacy_code
функция создает MATLAB® структура для регистрации спецификации для существующего кода C or C++ и сгенерированной S-функции. Кроме того, функция может сгенерировать, скомпилировать и соединить и создать маскированный блок для заданной S-функции. Другие опции включают генерацию
Файл TLC для симуляции в Режиме Accelerator или генерации кода
rtwmakecfg.m
файл, который можно настроить, чтобы задать зависимый источник и заголовочные файлы, которые находятся в различной директории, чем та из сгенерированной S-функции
legacy_code('help')
инструкции по отображениям для использования Legacy Code Tool.
инициализирует структуру данных Legacy Code Tool, specs
= legacy_code('initialize')specs
, который указывает характеристики существующего кода C or C++ и свойства S-функции, которую генерирует Legacy Code Tool.
legacy_code('sfcn_cmex_generate',
генерирует исходный файл S-функции, как задано структурой данных Legacy Code Tool, specs
)specs
.
legacy_code('compile',
компиляции и ссылки S-функция, сгенерированная Legacy Code Tool на основе структуры данных, specs
, compilerOptions
)specs
, и параметры компилятора, которые вы можете задать. Параметры компилятора должны поддерживаться MEX-функцией.
legacy_code('generate_for_sim',
генерирует, компилирует и соединяет S-функцию на одном шаге. Если specs
, modelname
)Options.useTlcWithAccel
поле структуры данных Legacy Code Tool установлено в логическую единицу (true
), функция также генерирует файл TLC для ускоренных симуляций.
legacy_code('slblock_generate',
генерирует Блок s-function маскированный для S-функции, сгенерированной Legacy Code Tool на основе структуры данных, specs
, modelname
)specs
. Блок появляется в Simulink® модель задана modelname
. Если вы не используете modelname
, блок появляется в пустом окне редактора моделей.
legacy_code('sfcn_tlc_generate',
генерирует файл TLC для S-функции, сгенерированной Legacy Code Tool на основе структуры данных, specs
)specs
. Эта опция релевантна, если вы хотите:
Обеспечьте Режим Accelerator в программном обеспечении Simulink, чтобы использовать TLC встраивание кода сгенерированной S-функции. См. описание ssSetOptions
Функция SimStruct и SS_OPTION_USE_TLC_WITH_ACCELERATOR
Опция S-функции для получения дополнительной информации.
Используйте программное обеспечение Simulink Coder™, чтобы сгенерировать код из вашей модели Simulink. Для получения дополнительной информации смотрите Вызовы Импорта Внешнего Кода в Сгенерированный код с Legacy Code Tool (Simulink Coder).
legacy_code('sfcn_makecfg_generate',
генерирует specs
)sFunction
_makecfg.m
файл для S-функции, сгенерированной Legacy Code Tool на основе структуры данных, specs
. Если вы используете Simulink Coder, чтобы сгенерировать код из вашей модели Simulink, можно использовать эту опцию, чтобы задать дополнительные элементы для процесса сборки S-функции, такие как исходные папки, макросы препроцессора и объекты ссылки. Например, можно задать исходные файлы, что S-функция зависит от этого, находятся в папках кроме папки, содержащей сгенерированный исполняемый файл S-функции. Для получения дополнительной информации смотрите Использование makecfg, чтобы Настроить Сгенерированные Make-файлы для S-функций (Simulink Coder) и Вызовы Импорта Внешнего Кода в Сгенерированный код с Legacy Code Tool (Simulink Coder).
legacy_code('rtwmakecfg_generate',
генерирует specs
)rtwmakecfg.m
файл для S-функции, сгенерированной Legacy Code Tool на основе структуры данных, specs
. Если вы используете Simulink Coder, чтобы сгенерировать код из вашей модели Simulink, можно использовать эту опцию, чтобы задать дополнительные элементы для процесса сборки S-функции, такие как исходные папки, макросы препроцессора и объекты ссылки. Например, можно задать исходные файлы, что S-функция зависит от этого, находятся в папках кроме папки, содержащей сгенерированный исполняемый файл S-функции. Для получения дополнительной информации смотрите Использование rtwmakecfg.m API, чтобы Настроить Сгенерированные Make-файлы (Simulink Coder) и Вызовы Импорта Внешнего Кода в Сгенерированный код с Legacy Code Tool (Simulink Coder).
legacy_code('backward_compatibility')
автоматически синтаксис обновлений для использования Legacy Code Tool к поддерживаемому синтаксису, описанному на этой странице с описанием и на, Интегрирует Функции C Используя Legacy Code Tool.
specs
Структура со следующими полями:
Назовите S-функцию
SFunctionName
(Требуемый) — вектор символов, задающий имя для S-функции, которая будет сгенерирована Legacy Code Tool.
Задайте технические требования функции Legacy Code Tool
InitializeConditionsFcnSpec
— Непустой вектор символов, задающий функцию, что S-вызовы-функции инициализировать и сбросить состояния. Необходимо объявить эту функцию при помощи лексем, которые программное обеспечение Simulink может интерпретировать, как объяснено в Объявлении Технических требований Функции Legacy Code Tool.
OutputFcnSpec
— Непустой вектор символов, задающий функцию, что S-вызовы-функции на каждом временном шаге. Необходимо объявить эту функцию при помощи лексем, которые программное обеспечение Simulink может интерпретировать, как объяснено в Объявлении Технических требований Функции Legacy Code Tool.
StartFcnSpec
— Вектор символов, задающий функцию, что S-вызовы-функции, когда это начинает выполнение. Эта функция может получить доступ к аргументам S-параметра-функции и работать данные. Необходимо объявить эту функцию при помощи лексем, которые программное обеспечение Simulink может интерпретировать, как объяснено в Объявлении Технических требований Функции Legacy Code Tool.
TerminateFcnSpec
— Вектор символов, задающий функцию, что S-вызовы-функции, когда это отключает выполнение. Эта функция может получить доступ к аргументам S-параметра-функции и работать данные. Необходимо объявить эту функцию при помощи лексем, которые программное обеспечение Simulink может интерпретировать, как объяснено в Объявлении Технических требований Функции Legacy Code Tool.
Задайте ресурсы компиляции
HeaderFiles
— Массив ячеек из символьных векторов, задающий имена файлов заголовочных файлов, требуется для компиляции.
SourceFiles
— Массив ячеек из символьных векторов, задающий исходные файлы, требуется для компиляции. Можно задать исходные файлы с помощью абсолютных или относительных имен путей.
HostLibFiles
— Библиотека определения массива ячеек из символьных векторов файлы требуется для компиляции хоста. Можно задать файлы библиотеки с помощью абсолютных или относительных имен путей.
TargetLibFiles
— Библиотека определения массива ячеек из символьных векторов файлы, требуемые для цели (то есть, автономный) компиляция. Можно задать файлы библиотеки с помощью абсолютных или относительных имен путей.
IncPaths
— Определение массива ячеек из символьных векторов директории, содержащие заголовочные файлы. Можно задать директории с помощью абсолютных или относительных имен путей.
SrcPaths
— Определение массива ячеек из символьных векторов директории, содержащие исходные файлы. Можно задать директории с помощью абсолютных или относительных имен путей.
LibPaths
— Определение массива ячеек из символьных векторов директории, содержащие хост и целевые файлы библиотеки. Можно задать директории с помощью абсолютных или относительных имен путей.
Задайте шаг расчета
SampleTime
— Одно из следующего:
'inherited'
(значение по умолчанию) — Шаг расчета наследован от исходного блока.
'parameterized'
— Шаг расчета представлен как настраиваемый параметр. Сгенерированный код может получить доступ к параметру путем вызова API-функций MEX, такой как mxGetPr
или mxGetData
.
Зафиксированный — Шаг расчета, который вы явным образом задаете. Для получения информации о том, как задать шаг расчета, см. Настройку времени выборки.
Если вы задаете это поле, необходимо указать, что оно длится.
Задайте опции S-функции
Options
— Структура, которая управляет опциями S-функции. Поля структуры включают:
canBeCalledConditionally
— Логическое значение, задающее установку S-функции SS_OPTION_CAN_BE_CALLED_CONDITIONALLY
опция. По умолчанию значение верно (1
).
convertNDArrayToRowMajor
— Логическое значение, задающее автоматическое преобразование матрицы между упорядоченным по столбцам форматом и упорядоченным по строкам форматом. Упорядоченный по столбцам формат используется MATLAB, Simulink и сгенерированным кодом. Упорядоченный по строкам формат используется C. По умолчанию значением является false
(0 ). Если вы в настоящее время задаете предыдущую версию опции,
convert2DMatrixToRowMajor
, функция автоматически задает новый convertNDArrayToRowMajor
опция.
Примечание
Эта опция не поддерживает 2D матрицу комплексных данных.
isMacro
— Логическое значение, задающее, является ли унаследованный код макросом C. По умолчанию значение является ложным (0
).
isVolatile
— Логическое значение, задающее установку S-функции SS_OPTION_NONVOLATILE
опция. По умолчанию значение верно (1
).
language
— Вектор символов, задающий любой 'C'
или 'C++'
как выходной язык S-функции, которую произведет Legacy Code Tool. По умолчанию значением является 'C'
.
Примечание
Legacy Code Tool может взаимодействовать через интерфейс с функциями C++, но не объектами C++. Для работы вокруг, смотрите Ограничения Legacy Code Tool в документации Simulink.
outputsConditionallyWritten
— Логическое значение, задающее, пишет ли унаследованный код условно выходные порты. Если true
, сгенерированная S-функция указывает, что память, сопоставленная с каждым выходным портом, не может быть перезаписана и является глобальной переменной (SS_NOT_REUSABLE_AND_GLOBAL
). Если false
, память, сопоставленная с каждым выходным портом, является допускающей повторное использование и является локальной (SS_REUSABLE_AND_LOCAL
). По умолчанию значением является false
(0 ). Для получения дополнительной информации смотрите
ssSetOutputPortOptimOpts
.
singleCPPMexFile
— Логическое значение это, если true
, указывает что сгенерированный код:
Требует, чтобы вы сгенерировали и управляли встроенной S-функцией как только одним файлом (.cpp
) вместо два (.c
и .tlc
).
Обеспечивает стиль типового кодекса (уровень использования круглых скобок и сохранения порядка операнда в выражениях и выражений условия в операторах if), как задано параметрами конфигурации модели.
По умолчанию значением является false
.
Ограничения
Вы не можете установить singleCPPMexFile
поле к true
если
Options.language='C++'
Вы используете один из следующих объектов Simulink с IsAlias
набор свойств к true
:
Simulink.Bus
Simulink.AliasType
Simulink.NumericType
Спецификация функции Legacy Code Tool включает void*
или void**
представлять скалярные данные о работе для аргумента состояния
HeaderFiles
поле структуры Legacy Code Tool задает несколько заголовочных файлов
supportsMultipleExecInstances
— Логическое значение, задающее, включать ли вызов ssSupportsMultipleExecInstances
функция. По умолчанию значением является false
(0 ).
supportCodeReuseAcrossModels
— Логическое значение, задающее, может ли сгенерированная S-функция быть снова использована через иерархию модели - ссылки. Если true
, сгенерированная S-функция включает ssSetSupportedForCodeReuseAcrossModels
вызов функции. Генератор кода производит код для S-функций в slprj\ert\_sharedutils
папка.
supportCoverage
— Логическое значение, задающее, должна ли сгенерированная S-функция быть совместима с Покрытием модели. По умолчанию значением является false
(0 ).
supportCoverageAndDesignVerifier
— Логическое значение, задающее, должна ли сгенерированная S-функция быть совместима с Покрытием модели и Simulink Design Verifier™. По умолчанию значением является false
(0 ).
useTlcWithAccel
— Логическое значение, задающее установку S-функции SS_OPTION_USE_TLC_WITH_ACCELERATOR
опция. По умолчанию значение верно (1
).
modelname
Имя модели Simulink, в которую Legacy Code Tool должен вставить Блок s-function маскированный, сгенерированный, когда вы задаете legacy_code
с вектором символов действия 'slblock_generate'
. Если вы не используете этот аргумент, блок появляется в пустом окне редактора моделей.