Чтобы применить сгенерированный код исходные и заголовочные файлы от процесса сборки, полезно понять файлы, которые процесс сборки генерирует и условия та генерация файла управления. Эта информация обеспечивает доступ к ресурсам сгенерированного кода, таким как:
Открытый интерфейс к образцовым точкам входа
Перечислимые типы, соответствующие встроенным типам данных
Структуры данных, которые описывают образцовые сигналы, состояния и параметры
Генератор кода создает файлы
во время генерации кода и процесса сборки. Можно настроить имена файлов для сгенерированного заголовка, источника и файлов данных. Для получения дополнительной информации смотрите, Настраивают Сгенерированные Имена файлов (Embedded Coder). Генератор кода создает дополнительные папки и файлы зависимости, чтобы поддержать совместно использованные утилиты и модели - ссылки. Для получения дополнительной информации о папках, которые создает процесс сборки, смотрите, Управляют Папками Процесса сборки. Для примера, который показывает, как использовать проект управлять папками процесса сборки, смотрите, Генерируют Код и Моделируют Модели в Проекте.model.*
В зависимости от архитектур модели и опций генерации кода, процесс сборки для основанного на GRT системного конечного файла может произвести файлы, которые процесс сборки не генерирует для основанного на ERT системного конечного файла. Кроме того, для основанных на ERT системных конечных файлов пакеты процесса сборки сгенерировали файлы по-другому, чем для основанных на GRT системных конечных файлов. Смотрите Справляются с Упаковкой Файла Модулей Сгенерированного кода (Embedded Coder).
По умолчанию процесс сборки удаляет внешний (не сгенерированный) исходные файлы в папке сборки. Возможно сохранить внешние исходные файлы в папке сборки следующим инструкции в Заповеднике Внешние Файлы кода в Папке Сборки.
Таблица описывает сгенерированные файлы принципала. В сгенерированных именах файлов, показанных в таблице, model
представляет имя модели, для которой вы генерируете код. subsystem
представляет имя подсистемы в модели. Когда вы выбираете параметр Create code generation report, генератор кода производит набор файлов HTML. Существует один файл HTML для каждого исходного файла плюс индексный файл _contents.html
model
в подпапке html
в вашей папке сборки. Исходные и заголовочные файлы в таблице имеют отношения зависимости. Для описаний других зависимостей от файла смотрите, Управляют Зависимостями от Файла Процесса сборки и Добавляют Зависимости от Процесса сборки.
Файл | Описание |
---|---|
| Задает перечислимый тип, соответствующий встроенным типам данных. Сборка модели генерирует этот файл, когда один или несколько из этих условий применяется:
|
| Перечисляет дополнительные источники, чтобы включать в компиляцию. |
| Содержит команды пакетного файла Windows®, которые устанавливают среду компилятора и вызывают утилиту Для получения дополнительной информации об использовании этого файла см. model.bat. |
| Соответствует образцовому файлу. Компилятор Выходного языка генерирует этот C или файл исходного кода C++. Файл содержит:
|
| Файл исполняемой программы. Сборка модели генерирует этот файл, если вы явным образом не указываете, что генератор кода производит код только. Сборка генерирует исполняемый файл в текущей папке (не папка сборки) под управлением утилиты |
| Задает структуры данных модели и открытый интерфейс к образцовым точкам входа и структурам данных. Обеспечивает интерфейс к структуре данных модели реального времени ( Подсистема
Для получения дополнительной информации см. model.h. |
| Сгенерированный make-файл, который управляет компиляцией и соединением сгенерированного кода в итоговый двоичный файл утилитой Если вы устанавливаете переменную окружения |
| Представляет скомпилированную модель. По умолчанию процесс сборки удаляет этот ASCII-файл, когда процесс сборки завершен. Можно принять решение сохранить файл для контроля. |
| (дополнительные файлы), Содержат структуры данных, которые описывают образцовые сигналы, состояния и параметры, не используя режим external mode. Для получения дополнительной информации смотрите, обмениваются Данными Между Сгенерированным и Внешним Кодом Используя API C. |
| Содержит (если условно сгенерировано) объявления для структуры данных параметров и постоянной структуры данных блока I/O и нулевых представлений для типов данных структуры, которые использует модель. Сборка модели генерирует этот файл, когда модель использует эти структуры данных. Объявления
|
| (дополнительный файл), Объявляет структуры, которые содержат информацию о переходе типа данных и типа данных для сгенерированных структур данных модели для поддержки режима external mode. |
| Содержит локальные константы Сгенерированные исходные файлы от сборки модели включают этот файл. Когда вы соединяете интерфейсом с внешним кодом со сгенерированным кодом из модели, включаете
Для получения дополнительной информации смотрите, Управляют Зависимостями от Файла Процесса сборки. |
| Содержит определения типа для синхронизации мостов. Сборка модели генерирует этот файл для модели, на которую ссылаются, или модели, содержащей блоки модели - ссылки. |
| (дополнительный файл) команды языка Contains MATLAB®, что использование режима external mode, чтобы инициализировать связь режима external mode. |
| Предоставляет предописания для структуры данных модели реального времени и структуры данных параметров. Сгенерированные заголовочные файлы от сборки модели включают этот файл. Объявления функции допускающих повторное использование функций могут использовать эти структуры. |
| Содержит определения типа для нескольких-слов широкие типы данных и их фрагменты размера слова. Если ваш код использует типы данных многословные, включайте этот заголовочный файл. Сборка модели генерирует этот файл, когда один или несколько из этих условий применяется:
|
| Объявляет и инициализирует глобальные неличные значения для Сборка модели генерирует эти файлы, когда один или несколько из этих условий применяется:
|
| Содержит директивы Процесс сборки не создает эти модули во время генерации кода. Модули включают |
| Предоставляет существенные определения типа, операторы Для основанных на GRT системных конечных файлов Для основанных на ERT системных конечных файлов, которые не генерируют интерфейс GRT и не иметь невстроенных S-функций, Для получения дополнительной информации см. rtwtypes.h и Управляйте Зависимостями от Файла Процесса сборки. |
| Файлы маркера. Процесс сборки генерирует эти файлы, чтобы помочь утилите |
| Содержит определения типа для специальных математических констант (таких как π и e) и задает макрос Сборка модели генерирует этот файл, когда сгенерированный код требует определения математической константы или когда тело функции не получает доступ к необходимому образцовому аргументу функции. |
| (дополнительные файлы), Обеспечивают функции, которые невстроенные S-функции используют в модели. Невстроенные S-функции используют функции |
| (дополнительный файл), Содержит исходный код C для каждой невстроенной невиртуальной подсистемы, или скопируйте код, когда подсистема сконфигурирована, чтобы поместить код в отдельный файл. |
| (дополнительный файл), Содержит экспортируемые символы для невстроенных невиртуальных подсистем. |
model
.batЭтот файл содержит команды пакетного файла Windows, которые устанавливают среду компилятора и вызывают утилиту make
.
Если вы используете подход набора инструментальных средств для процесса сборки, также можно использовать этот пакетный файл, чтобы извлечь информацию от сгенерированного make-файла,
. Информация включает макроопределения и значения, которые появляются в make-файле, таком как model.mk
CFLAGS
(Флаги компилятора 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.h
main.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
или simstruc_types.h
.
Часто, сгенерированный код требует что переполнение целочисленных операций или потеря значимости в определенных значениях. Например, когда код ожидает 16-битное целое число, код не принимает 8-битное или 32-битный целочисленный тип. Язык C не устанавливает норму для количества битов в типах, таких как char
, int
и другие. Так, нет никакого универсально принятого типа данных в C, чтобы использовать для размерных целых чисел.
Чтобы разместить эту функцию языка C, сгенерированный код использует измеренные целочисленные типы, такие как int8_T
, uint32_T
и другие, которые не являются стандартными типами C. В rtwtypes.h
сгенерированный код сопоставляет эти размерные целочисленные типы с соответствующим базовым типом ключевого слова C с помощью информации в панели Hardware Implementation параметров конфигурации.
Генератор кода производит оптимизированную версию rtwtypes.h
для основанных на ERT системных конечных файлов, когда эти условия применяются:
Configuration Parameters> Code Generation> Interface> Advanced parameters> Classic call interface не выбран.
Модель не содержит невстроенные 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 для Разделяемого Служебного Кода.