legacy_code

Использовать инструмент 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.

specs = legacy_code('initialize') инициализирует структуру данных Legacy Code Tool, specs, который регистрирует характеристики существующего кода C or C++ и свойства S-функции, которую генерирует Legacy Code Tool.

legacy_code('sfcn_cmex_generate', specs) генерирует исходный файл S-функции, как задано структурой данных Legacy Code Tool, specs.

legacy_code('compile', specs, compilerOptions) компилирует и связывает S-функцию, сгенерированную Legacy Code Tool на основе структуры данных, specs, и опции компилятора, которые вы можете задать. Опции компилятора должны поддерживаться MEX-функцией.

legacy_code('generate_for_sim', specs, modelname) генерирует, компилирует и связывает S-функцию в один шаг. Если на Options.useTlcWithAccel для поля структуры данных Legacy Code Tool задано логическое значение 1 (true), функция также генерирует файл TLC для ускоренных симуляций.

legacy_code('slblock_generate', specs, modelname) генерирует маскированный блок S-Function для S-функции, сгенерированной Legacy Code Tool на основе структуры данных, specs. Блок появляется в Simulink® модель, заданная modelname. Если вы опускаете modelnameблок появляется в пустом окне редактора моделей.

legacy_code('sfcn_tlc_generate', specs) генерирует TLC- файла для S-функции, сгенерированной Legacy Code Tool на основе структуры данных, 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'. Если вы опускаете этот аргумент, блок появится в пустом окне редактора моделей.

Введенный в R2006b