exponenta event banner

Управление файлами процесса построения

Чтобы применить сгенерированные исходные и заголовочные файлы кода из процесса построения, полезно понять файлы, создаваемые процессом построения, и условия, управляющие созданием файлов. Эта информация обеспечивает доступ к сгенерированным ресурсам кода, таким как:

  • Открытый интерфейс с точками входа модели

  • Перечислимые типы, соответствующие встроенным типам данных

  • Структуры данных, описывающие сигналы, состояния и параметры модели

Генератор кода создает model.* в процессе создания и сборки кода. Можно настроить имена файлов для созданных заголовков, исходных файлов и файлов данных. Дополнительные сведения см. в разделе Настройка сгенерированных имен файлов (встроенный кодер). Генератор кода создает дополнительные папки и файлы зависимостей для поддержки общих утилит и ссылок на модели. Дополнительные сведения о папках, создаваемых процессом построения, см. в разделе Управление папками процесса построения. Пример использования проекта для управления папками процесса построения см. в разделе Создание кода и моделирование моделей в проекте.

В зависимости от архитектур моделей и вариантов генерации кода процесс построения целевого файла системы на основе GRT может создавать файлы, которые процесс построения не создает для целевого файла системы на основе ERT. Кроме того, для целевых системных файлов на основе ERT пакеты процесса сборки создавали файлы иначе, чем для целевых системных файлов на основе GRT. См. раздел Управление упаковкой файлов сгенерированных модулей кода (встроенный кодер).

Примечание

По умолчанию процесс построения удаляет чужие (не созданные) исходные файлы в папке построения. Можно сохранить файлы из других источников в папке сборки, следуя инструкциям в разделе «Сохранить файлы внешнего кода в папке сборки».

В таблице описываются файлы, созданные участниками. В пределах созданных имен файлов, показанных в таблице, model представляет имя модели, для которой создается код. subsystem представляет имя подсистемы в модели. При выборе параметра Создать отчет о создании кода генератор кода создает набор HTML-файлов. Существует один HTML-файл для каждого исходного файла плюс model_contents.html индексный файл в html в папке сборки. Исходные и заголовочные файлы в таблице имеют отношения зависимостей. Описания других зависимостей файлов см. в разделах Управление зависимостями файлов процесса построения и Добавление зависимостей процесса построения.

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

builtin_typeid_types.h

Определяет перечисляемый тип, соответствующий встроенным типам данных.

Построение модели создает этот файл, если применяется одно или несколько из следующих условий:

  • Модель содержит диаграмму Stateflow, использующую сообщения.

  • Конфигурация модели позволяет вести журнал MAT-файлов.

  • Конфигурация модели включает параметры C API в меню «Создание кода» > «Интерфейс».

modelsources.txt

Список дополнительных источников для включения в компиляцию.

model.bat

Содержит команды пакетного файла Windows ®, которые задают среду компилятора и вызывают make утилита.

Дополнительные сведения об использовании этого файла см. в файле model.bat.

model.c

model.cpp

Соответствует файлу модели.

Компилятор целевого языка создает этот файл исходного кода C или C++. Файл содержит:

  • Включить файлы model.h и model_private.h

  • Данные, за исключением данных, помещенных в model_data.c

  • Специфичный для модели код планировщика

  • Код решателя для конкретной модели

  • Регистрационный код модели

  • Код алгоритма

  • Дополнительные функции оболочки GRT

model.exe (платформа Windows)

model (платформы UNIX ® и Macintosh)

Исполняемый файл программы.

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

model.h

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

Подсистема .c или .cpp файлы в модели включают model.h. Этот файл включает в себя:

  • Экспортированные символы данных Simulink ®

  • Экспортированные родительские данные компьютера Stateflow ®

  • Структуры данных модели, в том числе rtM

  • Функции точек входа модели

Дополнительные сведения см. в файле model.h.

model.mk

Созданный makefile, который управляет компиляцией и привязкой созданного кода к окончательному двоичному файлу с помощью make полезность системы разработки.

Если установить MAKEFLAGS переменная среды, не выбирайте параметры с этой переменной, конфликтующие с текущей make утилита, используемая процессом построения.

model.rtw

Представляет скомпилированную модель.

По умолчанию процесс сборки удаляет этот ASCII-файл после завершения процесса сборки. Можно сохранить файл для проверки.

model_capi.h

model_capi.c

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

Дополнительные сведения см. в разделе Обмен данными между сгенерированным и внешним кодом с помощью C API.

model_data.c

Содержит (если генерируется условно) объявления для структуры данных параметров и структуры данных постоянного блока ввода-вывода, а также нулевые представления для типов данных структуры, используемых моделью.

Построение модели создает этот файл, когда модель использует эти структуры данных. extern объявления для структур отображаются в model.h. При наличии этот файл содержит:

  • Параметры постоянного блока ввода-вывода

  • Включить файлы model.h и model_private.h

  • Определения нулевых представлений для определяемых пользователем типов данных структуры, используемых в модели

  • Постоянные параметры

model_dt.h

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

model_private.h

Содержит локальные define константы и локальные данные для модели и подсистем.

Сгенерированные исходные файлы из построения модели включают этот файл. При взаимодействии внешнего кода с сгенерированным кодом из модели включите model_private.h. Файл содержит:

  • Импортированные символы данных Simulink

  • Импортированные родительские данные Stateflow machine

  • Точки входа в Stateflow

  • Сведения о Coder™ Simulink (различные макросы, enums и т.д., которые являются закрытыми для кода)

Дополнительные сведения см. в разделе Управление зависимостями файлов процесса построения.

model_reference_types.h

Содержит определения типов для мостов синхронизации.

Построение модели создает этот файл для ссылочной модели или модели, содержащей ссылочные блоки модели.

model_targ_data_map.m

(необязательный файл) Содержит команды языка MATLAB ®, используемые внешним режимом для инициализации подключения внешнего режима.

model_types.h

Предоставляет форвардные объявления для структуры данных модели в реальном времени и структуры данных параметров.

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

multiword_types.h

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

Построение модели создает этот файл, если применяется одно или несколько из следующих условий:

  • Модель использует многословные типы данных.

  • Конфигурация модели позволяет вести журнал MAT-файлов.

  • Конфигурация модели включает функции «Создание кода» > «Интерфейс» > «Внешний режим».

rtGetInf.c

rtGetInf.h

rtGetNaN.c

rtGetNaN.h

rt_nonfinite.c

rt_nonfinite.h

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

Построение модели создает эти файлы, если применяется одно или несколько из следующих условий:

  • Модель содержит S-функции.

  • Для сгенерированного кода из модели требуются неокончательные числа.

  • Конфигурация модели позволяет вести журнал MAT-файлов.

  • Выбор конфигурации модели grt.tlc в качестве целевого файла системы и включает классический интерфейс вызова.

rtmodel.h

Содержит #include директивы, необходимые для статических основных программных модулей, таких как rt_main.c.

Процесс сборки не создает эти модули во время создания кода. Модули включают в себя rtmodel.h для доступа к структурам данных модели и точкам входа. При создании собственного основного программного модуля обязательно включите rtmodel.h.

rtwtypes.h

Предоставляет основные определения типов, #define операторы и перечисления.

Для целевых системных файлов на основе ERT, которые не генерируют интерфейс GRT и не имеют неинлингированных S-функций, rtwtypes.h не включает simstruc_types.h.

Дополнительные сведения см. в разделах rtwtypes.h и Управление зависимостями файлов процесса построения.

rtw_proj.tmw

sl_proj.tmw

Файлы маркеров.

Процесс сборки создает эти файлы, чтобы помочь make программа определяет, когда перекомпилировать и связать сгенерированный код.

rt_defines.h

Содержит определения типов для специальных математических констант (таких как δ и e) и определяет UNUSED_PARAMETER макро.

Построение модели создает этот файл, когда созданный код требует определения математической константы или когда тело функции не имеет доступа к требуемому аргументу функции модели.

rt_sfcn_helper.h

rt_sfcn_helper.c

(необязательные файлы) Предоставляет функции, которые неинлинные S-функции используют в модели.

Неинлинные S-функции используют функции rt_CallSys, rt_enableSys, и rt_DisableSys для вызова подсистем function-call в нисходящем направлении.

subsystem.c

(необязательный файл) Содержит исходный код C для каждой неинлинговой неинвентарной подсистемы или копирует код, если подсистема настроена на размещение кода в отдельном файле.

subsystem.h

(необязательный файл) Содержит экспортированные символы для неинлинговых неинвентарных подсистем.

model.bat

Этот файл содержит команды пакетного файла Windows, которые задают среду компилятора и вызывают make утилита.

Если для процесса построения используется подход, основанный на цепочке инструментов, этот пакетный файл можно также использовать для извлечения информации из созданного makefile. model.mk. Информация включает определения макросов и значения, отображаемые в make-файле, такие как CFLAGS(флаги компилятора C) и CPP_FLAGS(флаги компилятора C++). С папкой, содержащей model.bat в качестве текущей рабочей папки в окне команд введите:

>> system('model.bat info')

На платформах UNIX и Macintosh генератор кода не создает model.bat файл. Чтобы извлечь информацию для построения схемы инструментов из созданного make-файла в этих системах, в окне команд введите:

>> 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 определяет типы данных, структуры и макросы, необходимые для создаваемого кода. Вы включаете 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.

Связанные темы