Используйте Legacy Code Tool
legacy_code ('справка')
specs = legacy_code ('инициализирует')
legacy_code ('sfcn_cmex_generate', specs)
legacy_code ('компиляция', 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.
инициализирует структуру данных Legacy Code Tool, specs = legacy_code('initialize')specs, который указывает характеристики существующего C или Кода С++ и свойств S-функции, которую генерирует Legacy Code Tool.
генерирует исходный файл S-функции, как задано структурой данных Legacy Code Tool, legacy_code('sfcn_cmex_generate', specs)specs.
компилирует и соединяет S-функцию, сгенерированную Legacy Code Tool на основе структуры данных, legacy_code('compile', specs, compilerOptions) specs и параметров компилятора, которые вы можете задать. Параметры компилятора должны быть поддержаны mex (MATLAB) функция.
генерирует, компилирует и соединяет S-функцию на единственном шаге. Если поле legacy_code('generate_for_sim', specs, modelname) Options.useTlcWithAccel структуры данных Legacy Code Tool установлено в логическую единицу (true), функция также генерирует файл TLC для ускоренных моделирований.
генерирует Блок s-function маскированный для S-функции, сгенерированной Legacy Code Tool на основе структуры данных, legacy_code('slblock_generate', specs, modelname) specs. Блок появляется в модели Simulink®, заданной modelname. Если вы не используете modelname, блок появляется в пустом образцовом окне редактора.
генерирует файл TLC для S-функции, сгенерированной Legacy Code Tool на основе структуры данных, legacy_code('sfcn_tlc_generate', specs)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 если
Опции. язык ='C ++'
Вы используете один из следующих объектов Симулинка с набором свойств 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 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'. Если вы не используете этот аргумент, блок появляется в пустом образцовом окне редактора.