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 установлено в логическую единицу (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 Функция 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. Для получения дополнительной информации смотрите Использование 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' — Шаг расчета представлен как настраиваемый параметр. Сгенерированный код может получить доступ к параметру путем вызова 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'. Если вы не используете этот аргумент, блок появляется в пустом окне редактора моделей.

Представленный в R2006b