exponenta event banner

Управление упаковкой файлов сгенерированных модулей кода

Генератор кода создает модули кода. Конфигурация упаковки файлов определяет, где генератор кода помещает код в модули кода и файлы заголовков.

Чтобы найти и проверить созданные файлы кода, используйте представление «Код» или отчет о создании кода HTML. Отчет о создании кода содержит гиперссылки в комментариях, которые можно щелкнуть для просмотра созданного кода в браузере справки MATLAB ®. Дополнительные сведения см. в разделе Отслеживание в сгенерированном коде.

Сгенерированные модули кода

Генератор кода создает папку построения в рабочей папке для хранения созданного исходного кода. Папка построения содержит файлы объектов, make-файл и другие файлы, созданные в процессе создания кода. Имя папки построения по умолчанию: model_ert_rtw.

Модули кода и файлы заголовка, на которые влияет упаковка файлов, суммируют структуру исходного кода, создаваемого генератором кода.

Сгенерированный набор файлов можно настроить несколькими способами:

  • Форматы упаковки файлов: Управление количеством исходных файлов, созданных для модели. Выберите параметр конфигурации модели Формат упаковки файлов. Дополнительные сведения см. в разделе Настройка модулей сгенерированного кода.

Модули кода и заголовочные файлы, на которые влияет упаковка файлов

ФайлОписание

model.c или .cpp

Содержит точки входа для кода, реализующего алгоритм модели (например, model_step, model_initialize, и model_terminate).

model_private.h

Содержит локальные макросы и локальные данные, необходимые модели и подсистемам. Этот файл включен в model.c файл как #include заявление. Нет необходимости включать model_private.h при сопряжении рукописного кода с сгенерированным кодом модели.

model.h

Объявляет структуры данных модели и открытый интерфейс с точками входа модели и структурами данных. Обеспечивает интерфейс со структурой данных модели в реальном времени (model_M) с макросами метода доступа.

Генератор кода:

  • Создает отдельный файл заголовка для каждого блока функции Simulink в модели.

  • Включает model.h в подсистеме .c или .cpp файлы модели.

При интерфейсе рукописного кода с сгенерированным кодом для одной или нескольких моделей включите model.h для каждой из этих моделей.

model_data.c или .cpp

Содержит (если генерируется условно) объявления для структуры данных параметров, структуры данных постоянного блока ввода-вывода и любых нулевых представлений для типов данных структуры модели. Если модель не использует эти структуры данных и нулевые представления, model_data.c или .cpp не сгенерирован. Эти структуры и нулевые представления объявлены extern в model.h.

model_types.h

Предоставляет форвардные объявления для структуры данных модели в реальном времени и структуры данных параметров. Объявления функций многократно используемых функций могут требовать этих объявлений. Предоставляет определения типов для пользовательских типов, используемых моделью.

rtwtypes.h

Определяет типы данных, структуры и макросы, необходимые для созданного кода. Дополнительные сведения см. в разделе Управление размещением rtwtypes.h для общего служебного кода.

multiword_types.h

Содержит определения типов для широких типов данных и их фрагментов. Файл создается при использовании многословных типов данных или при выборе одного или нескольких из следующих параметров конфигурации модели:

  • Ведение журнала файлов MAT

  • Внешний режим

model_reference_types.h

Содержит определения типов для мостов синхронизации. Файл создается для ссылочной модели или модели, содержащей блоки модели.

builtin_typeid_types.h

Определяет перечисляемый тип, соответствующий встроенным типам данных. Файл создается, когда модель содержит диаграмму Stateflow ®, использующую сообщения, или при выборе одного или нескольких из следующих параметров конфигурации:

  • Ведение журнала файлов MAT

  • Параметр конфигурации модели C API

zero_crossing_types.h

Содержит определения пересечения нулей для моделей с запускаемыми подсистемами, где триггер rising, falling, или either. Файл создается только при необходимости для модели.

ert_main.c или .cpp

(необязательный файл) Если выбран параметр конфигурации модели Генерация примера основной программы (Generate a example main program), этот файл будет создан. Дополнительные сведения см. в разделе Создание примера основной программы.

rtmodel.h

(необязательный файл) Если очистить параметр конфигурации модели Создать пример основной программы, этот файл будет создан. Дополнительные сведения см. в разделе Создание примера основной программы.

Содержит #include директивы, требуемые rt_main.c или rt_cppclass_main.cpp статический основной программный модуль. Включает rtmodel.h для доступа к специфичным для модели структурам данных и точкам входа, поскольку статический основной программный модуль не создается во время генерации кода.

Дополнительные сведения см. в разделе Статический основной программный модуль.

model_capi.c или .cpp

model_capi.h

(необязательный файл) Предоставляет структуры данных, которые позволяют запущенной программе получать доступ к модельным сигналам, состояниям и параметрам без внешнего режима. Чтобы узнать, как создать и использовать model_capi.c или .cpp и .h см. раздел Обмен данными между сгенерированным и внешним кодом с помощью C API.

Модули написанного пользователем кода

Код, записываемый в интерфейс с сгенерированным кодом модели, обычно включает настраиваемый основной модуль. Базируйте этот модуль на основной программе, созданной генератором кода. Этот настраиваемый основной модуль может также включать в себя обработчики прерываний, блоки драйверов устройств и другие S-функции, а также другой управляющий или поддерживающий код. Шаги по настройке среды разработки для поддержки настраиваемого основного модуля:

  1. Создайте рабочую папку для собственных модулей кода.

  2. Поместите рабочую папку в путь MATLAB.

  3. Как минимум, сообщите процессу сборки местоположение исходного файла и файла объекта с параметром конфигурации модели Дополнительная информация о построении.

  4. Процесс разработки может потребовать создания кода для конкретного микропроцессора или платы разработки и развертывания кода на целевом оборудовании с системой перекрестной разработки. Для достижения этих целей внесите более обширные изменения в целевой файл системы на основе ERT.

Дополнительные сведения о настройке целевого файла системы на основе ERT в соответствии с производственными требованиями см. в разделе Целевая разработка.

Настройка сгенерированных модулей кода

Параметр конфигурации модели Формат упаковки файлов указывает, как пакеты генератора кода создавали исходный код в файлы. Можно задать для параметра значение Modular, Compact (with separate data file), и Compact. В этой таблице описываются созданные файлы и удаленные файлы для каждого формата упаковки файлов.

Созданные файлы в соответствии с форматом упаковки файлов

Формат упаковки файловСозданные файлыУдаленные файлы
Modular (по умолчанию)

model.c

файлы подсистемы (необязательно)

model.h

model_types.h

model_private.h

model_data.c (условный)

Ничего

Compact (with separate data file)

model.c

model.h

model_data.c (условный)

model_private.h

model_types.h (условный, см. раздел Удаленные файлы в соответствии с форматом упаковки файлов)

Compact

model.c

model.h

model_data.c

model_private.h

model_types.h (условный, см. раздел Удаленные файлы в соответствии с форматом упаковки файлов)

В этой таблице описывается размещение содержимого из удаленных файлов.

Удаленные файлы в соответствии с форматом упаковки файлов

Удаленный файлСозданное содержимое в файле
model_private.hmodel.c и model.h
model_types.hmodel.h
model_data.cmodel.c

Для каждой ссылочной модели можно указать другой формат упаковки файлов.

Параметр конфигурации модели Shared code placement взаимодействует с операциями упаковки файлов. Если для параметра Размещение общего кода задано значение Shared locationгенератор кода создает отдельные файлы для служебного кода в общем расположении, независимо от формата упаковки файлов. Если для параметра Размещение общего кода задано значение Autoгенератор кода генерирует код для утилит в соответствии с выбором формата упаковки файлов.

  • Modular: Некоторые общие файлы утилит находятся в папке построения.

  • Compact (with separate data file): Служебный код генерируется в model.c.

  • Compact: Служебный код генерируется в model.c.

Форматы упаковки файлов Compact и Compact (with separate data file) произвести model_types.h для моделей, содержащих:

  • Блок подсистемы вариантов. model_types.h файл содержит директивы препроцессора, определяющие объекты исполнения, связанные с блоком исполнения.

  • Классы хранения данных, генерирующие отдельный файл заголовка.

Форматы упаковки файлов Compact и Compact (with separate data file) несовместимы с:

  • Модель, содержащая подсистему, которая настроена на создание отдельных исходных файлов

  • Модель, содержащая неинлинированную S-функцию

  • Модель, для которой для параметра Размещение общего кода (Shared code placement) задано значение Auto, который использует объекты данных, для которых для области данных установлено значение Exported

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