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 или Кода С++ и сгенерированной S-функции. Кроме того, функция может сгенерировать, скомпилировать и соединить и создать маскированный блок для заданной S-функции. Другие опции включают генерацию

  • Файл TLC для симуляции в Режиме Accelerator или генерации кода

  • Файл rtwmakecfg.m, который можно настроить, чтобы задать зависимый источник и заголовочные файлы, которые находятся в различной директории, чем та из сгенерированной S-функции

legacy_code('help') инструкции по отображениям для использования Legacy Code Tool.

specs = legacy_code('initialize') инициализирует структуру данных Legacy Code Tool, specs, который указывает характеристики существующего 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 (MATLAB) функция.

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 и опцию S-функции SS_OPTION_USE_TLC_WITH_ACCELERATOR для получения дополнительной информации.

  • Используйте программное обеспечение Simulink Coder™, чтобы сгенерировать код из вашей модели Simulink. Для получения дополнительной информации смотрите Вызовы Импорта Внешнего Кода в Сгенерированный код с Legacy Code Tool (Simulink Coder).

legacy_code('sfcn_makecfg_generate', specs) генерирует файл _makecfg.m sFunction для 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-функции

Опции Структура, которая управляет опциями S-функции. Поля структуры включают:

  • isMacro — Логическое значение, задающее, является ли унаследованный код макросом C. По умолчанию значение является ложным (0).

  • isVolatile — Логическое значение, задающее установку S-функции опция SS_OPTION_NONVOLATILE. По умолчанию значение верно (1).

  • canBeCalledConditionally — Логическое значение, задающее установку S-функции опция SS_OPTION_CAN_BE_CALLED_CONDITIONALLY. По умолчанию значение верно (1).

  • useTlcWithAccel — Логическое значение, задающее установку S-функции опция SS_OPTION_USE_TLC_WITH_ACCELERATOR. По умолчанию значение верно (1).

  • language — Вектор символов, задающий или 'C' или 'C++' как выходной язык S-функции, которую произведет Legacy Code Tool. По умолчанию значением является 'C'.

    Примечание

    Legacy Code Tool может взаимодействовать через интерфейс с функциями C++, но не объектами C++. Для работы вокруг, смотрите Ограничения Legacy Code Tool в документации Simulink.

  • 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).

  • convertNDArrayToRowMajor — Логическое значение, задающее автоматическое преобразование матрицы между главным столбцом форматом и главным строкой форматом. Главный столбцом формат используется MATLAB, Simulink и сгенерированным кодом. Главный строкой формат используется C. По умолчанию значением является false (0). Если вы в настоящее время задаете предыдущую версию опции, convert2DMatrixToRowMajor, функция автоматически задает новую опцию convertNDArrayToRowMajor.

    Примечание

    Эта опция не поддерживает 2D матрицу комплексных данных.

  • supportCoverage — Логическое значение, задающее, должна ли сгенерированная S-функция быть совместима с Покрытием модели. По умолчанию значением является false (0).

  • supportCoverageAndDesignVerifier — Логическое значение, задающее, должна ли сгенерированная S-функция быть совместима с Покрытием модели и Simulink Design Verifier™. По умолчанию значением является false (0).

  • outputsConditionallyWritten — Логическое значение, задающее, пишет ли унаследованный код условно выходные порты. Если true, сгенерированная S-функция указывает, что память, сопоставленная с каждым выходным портом, не может быть перезаписана и глобальна (SS_NOT_REUSABLE_AND_GLOBAL). Если false, память, сопоставленная с каждым выходным портом, является допускающим повторное использование и является локальным (SS_REUSABLE_AND_LOCAL). По умолчанию значением является false (0). Для получения дополнительной информации смотрите ssSetOutputPortOptimOpts.

modelname

Имя модели Simulink, в которую Legacy Code Tool должен вставить Блок s-function маскированный, сгенерированный, когда вы задаете legacy_code с вектором символов действия 'slblock_generate'. Если вы не используете этот аргумент, блок появляется в пустом окне редактора моделей.

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