Использовать инструмент 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 задано логическое значение 1 (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
Функция и SS_OPTION_USE_TLC_WITH_ACCELERATOR
SimStruct Опция 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. Для получения дополнительной информации смотрите Использование 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. Для получения дополнительной информации смотрите Использование 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'
- Время расчета представлено как настраиваемый параметр. Сгенерированный код может получить доступ к параметру путем вызова функций MEX API, таких как mxGetPr
или mxGetData
.
Исправлено - Шаг расчета, которое вы явным образом задаете. Для получения информации о том, как задать шаг расчета, смотрите Задать Шаг расчета.
Если вы задаете это поле, необходимо указать его последнее.
Задайте опции S-функции
Options
- структура, которая управляет опциями S-функции. Поля структуры включают:
canBeCalledConditionally
- Логическое значение, задающее настройку S-функции SS_OPTION_CAN_BE_CALLED_CONDITIONALLY
опция. По умолчанию значение true (1
).
convertNDArrayToRowMajor
- логическое значение, задающее автоматическое преобразование матрицы между форматом основного столбца и форматом основной строки. Основной формат столбца используется MATLAB, Simulink и сгенерированным кодом. Формат основной строки используется C. По умолчанию значение false
(0
). Если в данный момент задана предыдущая версия опции, convert2DMatrixToRowMajor
функция автоматически задает новое convertNDArrayToRowMajor
опция.
Примечание
Эта опция не поддерживает 2-D матрицу комплексных данных.
isMacro
- логическое значение, определяющее, является ли унаследованный код макросом C. По умолчанию значение false (0
).
isVolatile
- Логическое значение, задающее настройку S-функции SS_OPTION_NONVOLATILE
опция. По умолчанию значение true (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-функция быть совместима с Verifier™ покрытия модели и Simulink Design. По умолчанию значение false
(0
).
useTlcWithAccel
- Логическое значение, задающее настройку S-функции SS_OPTION_USE_TLC_WITH_ACCELERATOR
опция. По умолчанию значение true (1
).
modelname
Имя модели Simulink, в которую Legacy Code Tool должен вставить маскированный Блок s-function, сгенерированное при задании legacy_code
с вектором символов действия 'slblock_generate'
. Если вы опускаете этот аргумент, блок появится в пустом окне редактора моделей.