Важное управление размера сгенерированного кода является управлением номер и размер включенных файлов (зависимости). Чтобы сократить количество системных заголовочных файлов и сгенерированных заголовочных файлов, которых требует сгенерированный код, полезно изучить зависимости, которые процесс сборки генерирует и условия тот вывод к зависимостям.
Отношения зависимости среди сгенерированного источника и заголовочных файлов появляются на рисунке. Стрелки, прибывающие из файла, показывают на файлы, которые он включает. Другие зависимости существуют, например, на заголовочных файлах Simulink® tmwtypes.h
и simstruc_types.h
, плюс C или файлы библиотеки C++. Фигура сопоставляет отношения включения только между теми файлами, которые сгенерированы в папке сборки. Эти файлы могут сослаться на код служебной и модели - ссылки, расположенный в папке генерации кода. Для получения дополнительной информации о папках и файлах, которые создает процесс сборки, смотрите, Управляют Папками Процесса сборки и Управляют Файлами Процесса сборки.
Эти две таблицы идентифицируют условия, которые управляют созданием файлов зависимости для целей ERT и GRT. Чтобы управлять связанными со сборкой зависимостями, рассмотрите, как эти условия применяются к вашей модели и процессу генерации кода. Затем сконфигурируйте параметры модели и опции генерации кода, чтобы управлять зависимостями от файла процесса сборки.
Из-за различий в файле упаковочные опции для кода, сгенерированного с основанными на ERT системными конечными файлами, зависимости от файла отличаются немного от упаковки файла для кода, сгенерированного с основанными на GRT системными конечными файлами. Смотрите Справляются с Упаковкой Файла Модулей Сгенерированного кода (Embedded Coder).
Родительские системные заголовочные файлы (
) включайте дочерние заголовочные файлы подсистемы (model
H
). В более многоуровневых моделях подсистемы так же включают свои детские заголовочные файлы в иерархию модели. Как следствие подсистемы могут просмотреть рекурсивно в их порожденные подсистемы и представление в корневую систему потому что каждый subsystem
H
или subsystem
C
включает subsystem
.cpp
и model
H
.model
_private.h
На рисунке, файлы
, model
H
, и model
_private.h
зависьте от заголовочного файла subsystem
Hrtwtypes.h
. Если вы используете системные конечные файлы, которые не основаны на системном конечном файле ERT, исходные файлы, которые вы генерируете, могут иметь дополнительные зависимости от tmwtypes.h
и simstruc_types.h
.
Системные заголовочные файлы делают объявления функции, вводят определения и макроопределения, доступные для устаревшего или внешнего кода. Некоторые сценарии генерации кода требуют включая заголовочные файлы, которые характерны для продукта генератора кода.
Генератор кода включает некоторые системные заголовочные файлы для широко заданных случаев. Например, сгенерированный код включает <stddef.h>
когда модель содержит служебную функцию, которая требует этого заголовочного файла. Этот подход помогает идентифицировать зависимости от заголовочного файла:
Установите параметр конфигурации модели Shared code placement на 'Shared location'
и создайте модель. Генератор кода помещает служебные функции в __sharedutils
папка.
Используйте утилиту находки в файле (например, grep утилита), чтобы искать .c
и .h
файлы в __sharedutils
папка для #include
. Результаты поиска перечисляют утилиты с зависимостями от заголовочного файла.
Используйте эту информацию, чтобы идентифицировать утилиты, чтобы удалить из модели и уменьшать зависимости от заголовочного файла в сгенерированном коде.
Для получения дополнительной информации смотрите, Генерируют Разделяемый Служебный Код для Функций Фиксированной точки.
Системный заголовочный файл | Описание и условия включения для GRT или системных конечных файлов ERT |
---|---|
| Задает математические константы GRT — Сгенерированный код не включает этот файл. ERT — Сгенерированный код включает этот файл, когда код соблюдает вашу настройку модели для решателя Stop time и также:
|
| Обеспечивает математические функции с плавающей точкой GRT — Сгенерированный код включает этот файл, когда ваша модель содержит математическую функцию с плавающей точкой. ERT — Сгенерированный код включает этот файл, когда ваша модель содержит математическую функцию с плавающей точкой, если заменяющая запись библиотеки кода не заменяет функцию. Для получения дополнительной информации смотрите, Выбирают Code Replacement Library. |
| Задает NULL GRT и ERT — Сгенерированный код включает этот файл, когда ваша модель содержит служебную функцию, которая требует этого файла. |
| Обеспечивает функции файлового ввода-вывода GRT — Сгенерированный код включает этот файл, когда ваша модель включает блок To File. ERT — Сгенерированный код включает этот файл когда также:
|
| Обеспечивает служебные функции, такие как целочисленные версии GRT — Сгенерированный код включает этот файл когда также:
ERT — Сгенерированный код включает этот файл когда также:
|
| Обеспечивает функции памяти такой как GRT — Сгенерированный код включает этот файл, когда ваш код инициализации модели вызывает ERT — Сгенерированный код включает этот файл, когда блок или код инициализации модели вызывают Для списка соответствующих блоков, в Командном окне, введите:
Ищите блоки с примечанием N2. Не использовать вызовы |
Зависимости в таблице для сгенерированных заголовочных файлов применяются к системным конечным файлам grt.tlc
и ert.tlc
. Системные конечные файлы, выведенные из этих основных системных конечных файлов, могут иметь дополнительные зависимости от заголовка. Генерация кода для блоков из библиотек, целевых процессоров и пользовательских S-функций может ввести дополнительные зависимости от заголовка.
Заголовочный файл | Описание и условия включения для GRT или системных конечных файлов ERT |
---|---|
| Задает перечислимый тип, соответствующий встроенным типам данных GRT и ERT — Сгенерированный код включает этот файл, когда один или несколько из этих условий применяется:
|
| Задает структуры данных для режима external mode GRT и ERT — Сгенерированный код включает этот файл, когда ваша настройка модели включает режим external mode. |
| Задает функции режима external mode GRT и ERT — Сгенерированный код включает этот файл, когда ваша настройка модели включает режим external mode. |
| Оказывает поддержку фиксированной точки для невстроенных S-функций GRT — Сгенерированный код включает этот файл. ERT — Сгенерированный код включает этот файл когда также:
|
| Содержит определения типа для синхронизации мостов GRT и ERT — Сгенерированный код включает этот файл при создании образца модели или создавании модели, которая содержит блоки модели. |
| Задает типы данных модели специфичные GRT и ERT — Сгенерированный код включают этот файл. |
| Содержит определения типа для типов данных общемногословных и их фрагментов размера слова GRT и ERT — Сгенерированный код включает этот файл, когда один или несколько из этих условий применяется:
Для модели, которая использует типы данных многословные, генератор кода перезаписывает файл, если типы данных больше в длине, чем те из модели, для которой был в последний раз сгенерирован код. Чтобы постараться не перезаписывать этот файл, установите:
|
| Поддержите неличные числа GRT — Сгенерированный код включает этот файл, когда один или несколько из этих условий применяется:
ERT — Сгенерированный код включает этот файл, когда один или несколько из этих условий применяется:
|
| Содержит определения типа для специальных математических констант (таких как π и e) и задает GRT и ERT — Сгенерированный код включают этот файл когда также:
|
| Логгирование MAT-файла поддержек и включает: rtwtypes.h builtin_typeid_types.h multiword_types.h rt_mxclassid.h rtw_matlogging.h GRT — Сгенерированный код включает этот файл. ERT — Сгенерированный код включает этот файл, когда вы моделируете настройку, выбирает параметр MAT-file logging. Смотрите, что MAT-файл регистрирует. |
| Задает GRT и ERT — Сгенерированный код включает этот файл, когда код включает |
| Поддерживает непрерывное время GRT — Сгенерированный код включает этот файл, когда код включает ERT — Сгенерированный код включает этот файл, когда ваша настройка модели выбирает параметр Support: continuous time и когда код уже не включает |
| Режим external mode поддержек GRT — Сгенерированный код включает этот файл, когда код включает ERT — Сгенерированный код включает этот файл, когда ваша настройка модели выбирает режим external mode и когда код уже не включает |
| Логгирование MAT-файла поддержек GRT — Сгенерированный код включает этот файл, когда код включает ERT — Сгенерированный код включает этот файл, когда код включает |
| Поддерживает непрерывные состояния GRT — Сгенерированный код включает этот файл, когда код включает ERT — Сгенерированный код включает этот файл, когда ваша настройка модели выбирает параметр Support: continuous time и когда код уже не включает |
| Задает типы данных генератора кода GRT — Сгенерированный код включает этот файл. Использует многословную версию файла, который включает ERT — Сгенерированный код включает этот файл. См. rtwtypes.h. Генератор кода перезаписывает ранее сгенерированный rtwtypes.h, когда вы включаете (ранее отключенный) поддержку:
Постараться не переписывать
|
| Поддержки вызывая невстроенные S-функции, которые используют limits.h string.h tmwtypes.h simstruc_types.h GRT — Сгенерированный код включает этот файл. ERT — Сгенерированный код включает этот файл когда также:
|
| Предоставляет определения, что сгенерированный код использует и включает заголовочные файлы: rtw_matlogging.h rtw_extmode.h rtw_continuous.h rtw_solver.h sysran_types.h GRT — Сгенерированный код включает этот файл, когда код включает ERT — Сгенерированный код не включает этот файл. Для ERT, |
| Режим external mode поддержек GRT — Сгенерированный код включает этот файл, когда код включает ERT — Сгенерированный код включает этот файл, когда ваша настройка модели выбирает режим external mode и когда код уже не включает |
| Содержит определения пересечения нулем для моделей с триггируемыми подсистемами, где триггер повышается, падение, или также. Файл сгенерирован, только если необходимый моделью, как определено по условию тип триггера сигнализирует. Например, если тип данных триггерного сигнала является булевской переменной, обнаружение пересечения нулем не нужно. GRT — Сгенерированный код не включает этот файл для целей генерации кода GRT. ERT — Сгенерированный код включает этот файл, когда модель имеет условно выполняемую подсистему, где триггер использует нулевое обнаружение пересечения. Если сгенерировано, содержимое |