exponenta event banner

Использовать makecfg для настройки созданных Makefile для S-функций

С помощью схемы инструментов или шаблона makefile для Building Code можно настроить созданные makefile для S-функций. С помощью настройки можно указать дополнительные элементы для процесса сборки S-функций:

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

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

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

  • Определения макросов препроцессора

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

  • Связать объекты

Чтобы настроить созданный make-файл, выполните следующие действия.

  1. В папке файла MEX S-функции, содержащей компоненты S-функции, создайте makecfg.m или specificSFunction_makecfg.m файл. При создании makecfg.m файл активен для любой S-функции в папке MEX-файла S-функции, используемой моделью. A 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');

Связанные темы