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

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

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

Модули сгенерированного кода

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

Модули кода и Заголовочные файлы, Затронутые Упаковкой Файла, обобщают структуру исходного кода, который производит генератор кода.

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

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

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

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

modelC или .cpp

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

model_private.h

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

modelH

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

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

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

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

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

model_data.c или .cpp

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

model_types.h

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

rtwtypes.h

Задает типы данных, структуры и макросы, требуемые сгенерированным кодом. Для получения дополнительной информации смотрите Размещение Управления rtwtypes.h для Разделяемого Служебного Кода (Simulink Coder).

multiword_types.h

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

  • MAT-file logging

  • External mode

model_reference_types.h

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

builtin_typeid_types.h

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

  • MAT-file logging

  • Модель C API configuratoin параметр

zero_crossing_types.h

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

ert_main.c или .cpp

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

rtmodel.h

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

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

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

model_capi.c или .cpp

model_capi.h

(дополнительный файл), Обеспечивает структуры данных, которые позволяют под управлением программе получить доступ к сигналам модели, состояниям и параметрам без режима external mode. Изучить, как сгенерировать и использовать model_capi.c или .cpp и .h файлы, смотрите, обмениваются Данными Между Сгенерированным и Внешним Кодом Используя API C (Simulink Coder).

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

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

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

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

  3. В минимуме сообщите процессу сборки о местоположении ваших исходных и объектных файлов с параметром конфигурации модели Additional build information.

  4. Ваш процесс разработки мог потребовать генерирующегося кода для конкретного микропроцессора или макетной платы и развертывания кода по целевому компьютеру с системой кросс-разработки. Чтобы выполнить эти цели, сделайте более обширные модификации к основанному на ERT системному конечному файлу.

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

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

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

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

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

modelC

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

modelH

model_types.h

model_private.h

model_data.c (условное выражение)

'none'

Compact (with separate data file)

modelC

modelH

model_data.c (условное выражение)

model_private.h

model_types.h (условное выражение, смотрите Удаленные Файлы Согласно Файлу Упаковочный Формат),

Compact

modelC

modelH

model_data.c

model_private.h

model_types.h (условное выражение, смотрите Удаленные Файлы Согласно Файлу Упаковочный Формат),

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

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

Удаленный файлСгенерированное содержимое в файле
model_private.hmodelC и modelH
model_types.hmodelH
model_data.cmodelC

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

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

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

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

  • Compact: Служебный код сгенерирован в modelC.

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

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

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

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

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

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

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

Похожие темы