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

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

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

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

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

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

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

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

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

  • Классы памяти: Задайте и используйте классы памяти, которые разделяют сгенерированные структуры данных на различные файлы на основе имен файлов, которые вы задаете. Для получения дополнительной информации смотрите Упорядочить данные параметра в структуру при помощи Класса памяти Struct.

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

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

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

model.c или .cpp

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

model_private.h

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

model.h

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

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

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

  • Включает 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-file logging

  • External mode

model_reference_types.h

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

builtin_typeid_types.h

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

  • MAT-file logging

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

zero_crossing_types.h

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

ert_main.c или .cpp

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

rtmodel.h

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

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

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

model_capi.c или .cpp

model_capi.h

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

Пользовательские модули Кода

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

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

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

  3. Как минимум, сообщите процессу сборки о местоположении ваших исходных и объектных файлов с параметр конфигурации <reservedrangesplaceholder0> модели.

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

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

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

Model параметра конфигурации <reservedrangesplaceholder1> задает, как генератор кода упаковывает исходный код в файлы. Можно задать параметр равным 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

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

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

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

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

  • Compact: Код утилиты генерируется в model.c.

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

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

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

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

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

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

  • Модель, для которой Shared code placement установлено в Auto, который использует объекты данных, для которых Data scope установлено в Exported

Похожие темы