Чтобы применить сгенерированные исходные и заголовочные файлы кода из процесса построения, полезно понять файлы, создаваемые процессом построения, и условия, управляющие созданием файлов. Эта информация обеспечивает доступ к сгенерированным ресурсам кода, таким как:
Открытый интерфейс с точками входа модели
Перечислимые типы, соответствующие встроенным типам данных
Структуры данных, описывающие сигналы, состояния и параметры модели
Генератор кода создает в процессе создания и сборки кода. Можно настроить имена файлов для созданных заголовков, исходных файлов и файлов данных. Дополнительные сведения см. в разделе Настройка созданных имен файлов. Генератор кода создает дополнительные папки и файлы зависимостей для поддержки общих утилит и ссылок на модели. Дополнительные сведения о папках, создаваемых процессом построения, см. в разделе Управление папками процесса построения. Пример использования проекта для управления папками процесса построения см. в разделе Создание кода и моделирование моделей в проекте.model.*
В зависимости от архитектур моделей и вариантов генерации кода процесс построения целевого файла системы на основе GRT может создавать файлы, которые процесс построения не создает для целевого файла системы на основе ERT. Кроме того, для целевых системных файлов на основе ERT пакеты процесса сборки создавали файлы иначе, чем для целевых системных файлов на основе GRT. См. раздел Управление упаковкой файлов сгенерированных модулей кода.
Примечание
По умолчанию процесс построения удаляет чужие (не созданные) исходные файлы в папке построения. Можно сохранить файлы из других источников в папке сборки, следуя инструкциям в разделе «Сохранить файлы внешнего кода в папке сборки».
В таблице описаны файлы, созданные участниками. В пределах созданных имен файлов, показанных в таблице, model представляет имя модели, для которой создается код. subsystem представляет имя подсистемы в модели. При выборе параметра Создать отчет о создании кода генератор кода создает набор HTML-файлов. Существует один HTML-файл для каждого исходного файла плюс model_contents.html индексный файл в html в папке сборки. Исходные и заголовочные файлы в таблице имеют отношения зависимостей. Описания других зависимостей файлов см. в разделах Управление зависимостями файлов процесса построения и Добавление зависимостей процесса построения.
| Файл | Описание |
|---|---|
| Определяет перечисляемый тип, соответствующий встроенным типам данных. Построение модели создает этот файл, если применяется одно или несколько из следующих условий:
|
| Список дополнительных источников для включения в компиляцию. |
| Содержит команды пакетного файла Windows ®, которые задают среду компилятора и вызывают Дополнительные сведения об использовании этого файла см. в файле model.bat. |
| Соответствует файлу модели. Компилятор целевого языка создает этот файл исходного кода C или C++. Файл содержит:
|
| Исполняемый файл программы. Построение модели создает этот файл, если не указано явно, что генератор кода создает только код. Построение создает исполняемый файл в текущей папке (а не в папке построения) под управлением |
| Определяет структуры данных модели и открытый интерфейс с точками входа модели и структурами данных. Обеспечивает интерфейс со структурой данных модели в реальном времени ( Подсистема
Дополнительные сведения см. в файле model.h. |
| Созданный makefile, который управляет компиляцией и привязкой созданного кода к окончательному двоичному файлу с помощью Если установить |
| Представляет скомпилированную модель. По умолчанию процесс сборки удаляет этот ASCII-файл после завершения процесса сборки. Можно сохранить файл для проверки. |
| (необязательные файлы) Содержат структуры данных, описывающие сигналы, состояния и параметры модели без использования внешнего режима. Дополнительные сведения см. в разделе Обмен данными между сгенерированным и внешним кодом с помощью C API. |
| Содержит (если генерируется условно) объявления для структуры данных параметров и структуры данных постоянного блока ввода-вывода, а также нулевые представления для типов данных структуры, используемых моделью. Построение модели создает этот файл, когда модель использует эти структуры данных.
|
| (необязательный файл) Объявляет структуры, содержащие информацию о типе данных и переходе типа данных для созданных структур данных модели для поддержки внешнего режима. |
| Содержит локальные Сгенерированные исходные файлы из построения модели включают этот файл. При взаимодействии внешнего кода с сгенерированным кодом из модели включите
Дополнительные сведения см. в разделе Управление зависимостями файлов процесса построения. |
| Содержит определения типов для мостов синхронизации. Построение модели создает этот файл для ссылочной модели или модели, содержащей ссылочные блоки модели. |
| (необязательный файл) Содержит команды языка MATLAB ®, используемые внешним режимом для инициализации подключения внешнего режима. |
| Предоставляет форвардные объявления для структуры данных модели в реальном времени и структуры данных параметров. Созданные файлы заголовков из построения модели включают этот файл. Эти структуры могут использоваться в объявлениях функций многократно используемых функций. |
| Содержит определения типов для многословных широких типов данных и их частей размера слова. Если в коде используются многословные типы данных, включите этот файл заголовка. Построение модели создает этот файл, если применяется одно или несколько из следующих условий:
|
| Объявляет и инициализирует глобальные неокончательные значения для Построение модели создает эти файлы, если применяется одно или несколько из следующих условий:
|
| Содержит Процесс сборки не создает эти модули во время создания кода. Модули включают в себя |
| Предоставляет основные определения типов, Для целевых системных файлов на основе ERT, которые не генерируют интерфейс GRT и не имеют неинлингированных S-функций, Дополнительные сведения см. в разделах rtwtypes.h и Управление зависимостями файлов процесса построения. |
| Файлы маркеров. Процесс сборки создает эти файлы, чтобы помочь |
| Содержит определения типов для специальных математических констант (таких как δ и e) и определяет Построение модели создает этот файл, когда созданный код требует определения математической константы или когда тело функции не имеет доступа к требуемому аргументу функции модели. |
| (необязательные файлы) Предоставляет функции, которые неинлинные S-функции используют в модели. Неинлинные S-функции используют функции |
| (необязательный файл) Содержит исходный код C для каждой неинлинговой неинвентарной подсистемы или копирует код, если подсистема настроена на размещение кода в отдельном файле. |
| (необязательный файл) Содержит экспортированные символы для неинлинговых неинвентарных подсистем. |
model.batЭтот файл содержит команды пакетного файла Windows, которые задают среду компилятора и вызывают make утилита.
Если для процесса построения используется подход, основанный на цепочке инструментов, этот пакетный файл можно также использовать для извлечения информации из созданного makefile. . Информация включает определения макросов и значения, отображаемые в make-файле, такие как model.mkCFLAGS(флаги компилятора C) и CPP_FLAGS(флаги компилятора C++). С папкой, содержащей в качестве текущей рабочей папки в окне команд введите:model.bat
>> system('model.bat info')На платформах UNIX и Macintosh генератор кода не создает файл. Чтобы извлечь информацию для построения схемы инструментов из созданного make-файла в этих системах, в окне команд введите:model.bat
>> system('gmake -f model.mk info')model.hФайл заголовка объявляет структуры данных модели и открытый интерфейс с точками входа модели и структурами данных. Этот файл заголовка также обеспечивает интерфейс со структурой данных модели в реальном времени (model.h) с помощью макросов доступа. Если код взаимодействует с функциями модели или структурами данных модели, включите model_M:model.h
Экспортированные глобальные сигналы
extern int32_T INPUT; /* '<Root>/In' */
Определения глобальной структуры
/* Block parameters (auto storage) */ extern Parameters_mymodel mymodel_P;
Определения макросов модели в реальном времени (RTM)
#ifndef rtmGetSampleTime # define rtmGetSampleTime(rtm, idx) ((rtm)->Timing.sampleTimes[idx]) #endif
Функции точек входа модели (пример ERT)
extern void mymodel_initialize(void); extern void mymodel_step(void); extern void mymodel_terminate(void);
main.c (или .cpp) файл включает . Если сборка модели генерирует model.hmain.c (или .cpp) файл из сценария TLC, источник TLC может включать .model.h
#include "%<CompiledModel.Name>.h"
Если main.c является статическим исходным файлом, можно использовать фиксированное имя файла заголовка rtmodel.h. Этот файл включает в себя файл заголовка:model.h
#include "model.h" /* If main.c is generated */
или
#include "rtmodel.h" /* If static main.c is used */
Другие внешние исходные файлы могут потребовать включения для интерфейса с данными модели, например, экспортированными глобальными параметрами или сигналами. model.h сам файл может иметь дополнительные зависимости заголовка из-за требований сгенерированного кода. См. Системные файлы заголовков и файлы заголовков генератора кода. model.h
Сведения о сокращении зависимостей и количестве включенных файлов заголовков см. в разделе Управление зависимостями файлов процесса построения.
Файл заголовка rtwtypes.h определяет типы данных, структуры и макросы, необходимые для создаваемого кода. Вы включаете rtwtypes.h для целевых файлов системы GRT и ERT вместо включения tmwtypes.h.
Часто создаваемый код требует, чтобы целочисленные операции перетекали или перетекали при определенных значениях. Например, когда код ожидает 16-битное целое число, код не принимает 8-битный или 32-битный целочисленный тип. Язык C не устанавливает стандарт для количества битов в таких типах, как char, intи другие. Таким образом, в C нет общепринятого типа данных, который можно использовать для целых чисел размера.
Для адаптации этой функции языка C в создаваемом коде используются целочисленные типы размера, такие как int8_T, uint32_Tи другие, которые не являются стандартными типами C. В rtwtypes.hсгенерированный код сопоставляет эти целочисленные типы размера с соответствующим базовым типом ключевого слова C, используя информацию на панели Аппаратная реализация параметров конфигурации.
Генератор кода создает оптимизированную версию rtwtypes.h для целевых системных файлов на основе ERT, когда применяются следующие условия:
Параметры конфигурации > Создание кода > Интерфейс > Дополнительные параметры > Классический интерфейс вызова не выбран.
Модель не содержит неинлинированных S-функций.
Включать rtwtypes.h. Если включить его, например, для целевых системных файлов GRT, проще использовать код с целевыми системными файлами на основе ERT.
Для целевых файлов системы GRT и ERT местоположение rtwtypes.h зависит от того, использует ли процесс построения расположение общих утилит. Если используется общее расположение, генератор кода размещает rtwtypes.h в slprj/target/_sharedutils; в противном случае он помещает rtwtypes.h в папке построения (). См. раздел Определение сгенерированных интерфейсов кода.model_target_rtw
Исходные файлы включают rtwtypes.h если в исходных файлах используются имена типов генераторов кода или другие определения генераторов кода. Типичный пример для файлов, которые объявляют переменные, используя тип данных генератора кода, например: uint32_T myvar.
Исходный файл, который генератор кода и S-функция могут использовать макрос препроцессора MATLAB_MEX_FILE. Определение макроса происходит из mex функция:
#ifdef MATLAB_MEX_FILE #include "tmwtypes.h" #else #include "rtwtypes.h" #endif
Исходный файл для генератора кода main.c (или .cpp) файл включает rtwtypes.h без препроцессорных проверок.
#include "rtwtypes.h"
Пользовательские исходные файлы, создаваемые компилятором целевого языка, также могут генерировать эти файлы include операторов в их созданный файл.
Общий служебный код см. в разделе Управление размещением rtwtypes.h.