Использовать устаревший инструмент кода
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 или C++ и генерируемой S-функции. Кроме того, функция может генерировать, компилировать и связывать и создавать маскированный блок для указанной S-функции. Другие варианты включают создание
Файл TLC для моделирования в режиме Accelerator или генерации кода
Один rtwmakecfg.m файл, который можно настроить для указания зависимых исходных и заголовочных файлов, которые находятся в каталоге, отличном от каталога созданной S-функции
legacy_code('help') отображает инструкции по использованию прежнего инструмента кода.
инициализирует структуру данных Legacy Code Tool, specs = legacy_code('initialize')specs, который регистрирует характеристики существующего кода C или 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-функциональный блок для 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 Функция SimStruct и SS_OPTION_USE_TLC_WITH_ACCELERATOR Опция S-функции для получения дополнительной информации.
Используйте программу Simulink Coder™ для создания кода из модели Simulink. Дополнительные сведения см. в разделе Импорт вызовов внешнего кода в сгенерированный код с помощью прежнего инструмента кодирования (Simulink Coder).
legacy_code('sfcn_makecfg_generate', генерирует specs)sFunction_makecfg.m файл для S-функции, генерируемый инструментом Legacy Code Tool на основе структуры данных, specs. Эта опция применима только при использовании программного обеспечения Simulink Coder для создания кода из модели Simulink. Дополнительные сведения см. в разделах Использование makecfg для настройки сгенерированных Makefile для S-функций (Simulink Coder) и Импорт вызовов внешнего кода в сгенерированный код с помощью прежнего инструмента Code Tool (Simulink Coder).
legacy_code('rtwmakecfg_generate', генерирует specs)rtwmakecfg.m файл для S-функции, генерируемый инструментом Legacy Code Tool на основе структуры данных, specs. Эта опция применима только при использовании программного обеспечения Simulink Coder для создания кода из модели Simulink. Дополнительные сведения см. в разделах Использование API rtwmakecfg.m для настройки сгенерированных Makefiles (Simulink Coder) и Импорт вызовов внешнего кода в сгенерированный код с помощью прежнего инструмента Code Tool (Simulink Coder).
legacy_code('backward_compatibility') автоматически обновляет синтаксис для использования устаревшего инструмента кода до поддерживаемого синтаксиса, описанного на этой справочной странице и в разделе Интеграция функций C с использованием устаревшего инструмента кода.
specsСтруктура со следующими полями:
Назовите S-функцию
SFunctionName (Обязательно) - вектор символов, указывающий имя S-функции, генерируемой инструментом кода прежней версии.
Определение спецификаций функций устаревших инструментов кода
InitializeConditionsFcnSpec - непустой символьный вектор, задающий функцию, которую S-функция вызывает для инициализации и сброса состояний. Необходимо объявить эту функцию с помощью маркеров, которые программное обеспечение Simulink может интерпретировать, как описано в разделе Объявление спецификаций устаревших функций инструмента кода.
OutputFcnSpec - непустой символьный вектор, задающий функцию, которую S-функция вызывает на каждом временном шаге. Необходимо объявить эту функцию с помощью маркеров, которые программное обеспечение Simulink может интерпретировать, как описано в разделе Объявление спецификаций устаревших функций инструмента кода.
StartFcnSpec - символьный вектор, определяющий функцию, вызываемую S-функцией при начале выполнения. Эта функция может обращаться к аргументам параметра S-функции и рабочим данным. Необходимо объявить эту функцию с помощью маркеров, которые программное обеспечение Simulink может интерпретировать, как описано в разделе Объявление спецификаций устаревших функций инструмента кода.
TerminateFcnSpec - символьный вектор, определяющий функцию, вызываемую S-функцией при завершении выполнения. Эта функция может обращаться к аргументам параметра S-функции и рабочим данным. Необходимо объявить эту функцию с помощью маркеров, которые программное обеспечение Simulink может интерпретировать, как описано в разделе Объявление спецификаций устаревших функций инструмента кода.
Определение ресурсов компиляции
HeaderFiles - массив ячеек символьных векторов, задающих имена файлов заголовков, необходимых для компиляции.
SourceFiles - массив ячеек символьных векторов, определяющих исходные файлы, необходимые для компиляции. Можно указать исходные файлы, используя абсолютные или относительные имена путей.
HostLibFiles - массив ячеек символьных векторов, задающих библиотечные файлы, необходимые для компиляции хоста. Можно указать файлы библиотеки, используя абсолютные или относительные имена путей.
TargetLibFiles - массив ячеек символьных векторов, задающих библиотечные файлы, необходимые для целевой (то есть автономной) компиляции. Можно указать файлы библиотеки, используя абсолютные или относительные имена путей.
IncPaths - массив ячеек символьных векторов, задающих каталоги, содержащие файлы заголовков. Можно указать каталоги, используя абсолютные или относительные имена путей.
SrcPaths - массив ячеек символьных векторов, задающих каталоги, содержащие исходные файлы. Можно указать каталоги, используя абсолютные или относительные имена путей.
LibPaths - массив ячеек символьных векторов, задающих каталоги, содержащие файлы главной и целевой библиотек. Можно указать каталоги, используя абсолютные или относительные имена путей.
Укажите время образца
SampleTime - Одно из следующих:
'inherited' (по умолчанию) - образец времени наследуется от исходного блока.
'parameterized' - Время выборки представляется как настраиваемый параметр. Сгенерированный код может получить доступ к параметру путем вызова функций MEX API, таких как mxGetPr или mxGetData.
Исправлено (Fixed) - образец времени, явно указанного пользователем. Сведения о том, как указать время выборки, см. в разделе Указание времени выборки.
Если вы указываете это поле, вы должны указать его последним.
Определение опций 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++. Описание обхода см. в разделе Ограничения устаревших инструментов кода в документации 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 поле в структуре «Устаревший инструмент кода» определяет несколько заголовочных файлов
supportsMultipleExecInstances- логическое значение, определяющее необходимость включения вызова ssSupportsMultipleExecInstances функция. По умолчанию используется значение false (0).
supportCodeReuseAcrossModels- логическое значение, определяющее возможность повторного использования сгенерированной S-функции в ссылочной иерархии модели. Если true, генерируемая S-функция включает в себя ssSetSupportedForCodeReuseAcrossModels вызов функции. Генератор кода создает код для S-функций в slprj\ert\_sharedutils папка.
supportCoverage- логическое значение, указывающее, должна ли сгенерированная S-функция быть совместима с покрытием модели. По умолчанию используется значение false (0).
supportCoverageAndDesignVerifier- логическое значение, определяющее, должна ли создаваемая S-функция быть совместимой с Verifier™ «Покрытие модели» и «Дизайн Simulink». По умолчанию используется значение false (0).
useTlcWithAccel - логическое значение, определяющее настройку S-функции; SS_OPTION_USE_TLC_WITH_ACCELERATOR вариант. По умолчанию используется значение true (1).
modelnameИмя модели Simulink, в которую Legacy Code Tool должен вставить маскированный S-функциональный блок, созданный при указании legacy_code с вектором символов действия 'slblock_generate'. Если этот аргумент пропущен, блок появится в пустом окне редактора модели.