Используйте makecfg, чтобы Настроить Сгенерированные Make-файлы для S-функций

С набором инструментальных средств или подход make-файла шаблона для строительных норм и правил, можно настроить сгенерированные make-файлы для S-функций. Посредством индивидуальной настройки можно задать дополнительные элементы для процесса сборки S-функции:

  • Исходные файлы и папки

  • Включайте файлы и папки

  • Имена библиотеки

  • Макроопределения препроцессора

  • Флаги компилятора

  • Объекты ссылки

Настроить сгенерированный make-файл:

  1. В папке файла MEX S-функции, которая содержит ваши компоненты S-функции, создайте makecfg.m или specificSFunction_makecfg.m файл. Если вы создаете makecfg.m файл, это активно для любой S-функции в папке файла MEX S-функции, которую использует модель. specificSFunction_makecfg.m файл активен, только если модель использует соответствующую S-функцию.

  2. В файле, который вы создаете, используйте RTW.BuildInfo функции, чтобы задать дополнительные элементы для процесса сборки S-функции. Например, можно использовать:

    • addCompileFlags задавать параметры компилятора.

    • addDefines задавать макроопределения препроцессора.

  3. Сохраните созданный файл.

После генерации кода, в папке файла MEX S-функции, генератор кода ищет makecfg.m и specificSFunction_makecfg.m файлы. Если файлы присутствуют, генератор кода использует эти файлы, чтобы настроить сгенерированный make-файл, model.mk.

Например, рассмотрите папку, которая содержит signalConvert.mexa64 (Двоичный файл S-функции) и signalConvert.tlc (встроенная S-реализация-функции) после фазы TLC процесса сборки. S-функция требует дополнительного файла исходного кода, filterV1.c, который расположен в anotherFolder. Можно создать файл, signalConvert_makecfg.m, это использует RTW.BuildInfo функции, чтобы задать filterV1.c для процесса сборки.

function signalConvert_makecfg(objBuildInfo)

absolute = fullfile('$(START_DIR)', 'anotherFolder');

addIncludePaths(objBuildInfo, absolute);
addSourcePaths(objBuildInfo, absolute);
addSourceFiles(objBuildInfo,'filterV1.c');

Похожие темы