Процесс создания включает генерирующийся код в C или C++ из модели и создания исполняемой программы от сгенерированного кода. Этот пример может использовать типовой в реальном времени (GRT) или системный конечный файл (STF) встроенного в реальном времени (ERT) для генерации кода. Получившаяся автономная программа работает на вашем компьютере разработчика, независимом от внешней синхронизации и событий.
Этот пример использует локальную копию slexAircraftExample
модель, сохраненная в ее собственной папке, aircraftexample
. Настройте свою рабочую папку можно следующим образом:
В Браузере текущей папки MATLAB® перейдите к папке, к которой у вас есть доступ для записи.
Чтобы создать рабочую папку, введите следующую команду MATLAB:
mkdir aircraftexample
Сделайте aircraftexample
ваша рабочая папка:
cd aircraftexample
Откройте slexAircraftExample
модель:
slexAircraftExample
Модель появляется в Редакторе Simulink® окно модели.
В окне модели выберите File> Save As. Перейдите к своей рабочей папке, aircraftexample
. Сохраните копию slexAircraftExample
модель как myAircraftExample
.
При создании кода генератор кода создает папку сборки в рабочей папке. Именем папки сборки является
, выведенный из имени исходной модели и выбранного системного конечного файла. Папка сборки хранит сгенерированный исходный код и другие файлы, созданные во время процесса сборки. Исследуйте содержание папки сборки в конце этого примера.model
_target
_rtw
Когда модель содержит блоки Model (ссылки на другие модели), сборка модели создает специальные подпапки в вашей папке Генерации кода, чтобы организовать код для моделей, на которые ссылаются. Эти папки генерации кода существуют вместе с папками сборки продукта и названы slprj
. Для получения дополнительной информации смотрите, Генерируют Код для Иерархии Модели - ссылки.
Под slprj
папка, подпапка под названием _sharedutils
содержит сгенерированный код, который может быть совместно использован моделями.
Чтобы сгенерировать код из вашей модели, необходимо изменить некоторые параметры конфигурации модели. В частности, системный конечный файл типового в реальном времени (GRT) и большинство других системных конечных файлов требуют, чтобы модель задала решатель фиксированного шага.
Примечание
Для моделей, которые задают решатели переменного шага, генератор кода производит код, только если модели также задают быструю симуляцию (rsim
) или системные конечные файлы S-функции.
Откройте myAircraftExample
модель, если это не уже открыто.
В диалоговом окне Configuration Parameters задайте значения параметра конфигурации для решателя:
Время начала: 0.0
Stop time: 60
Ввод: Fixed-step
Solver: ode5 (Dormand-Prince)
Fixed step size (fundamental sample time): 0.1
Treat each discrete rate as a separate task: Off
Нажмите Apply.
Сохраните модель.
Чтобы сконфигурировать процесс сборки для вашей модели, выберите системный конечный файл, набор инструментальных средств или обработайте по шаблону make-файл и make
команда.
В этих примерах и в большинстве приложений, вы не должны задавать эти параметры индивидуально. Примеры используют готовую-к-управляемому настройку типовой цели в реальном времени (GRT). Системный конечный файл GRT создает программу независимого исполняемого файла, которая работает на вашем рабочем компьютере.
Выбрать системный конечный файл GRT:
Откройте myAircraftExample
модель, если это не уже открыто.
В диалоговом окне Configuration Parameters, в поле System target file, вводят grt.tlc
. Затем нажмите Apply.
Вы видите выборы для Toolchain (Automatically locate an installed toolchain
), и Build Configuration (Faster Builds
).
Сохраните модель.
Примечание
Если вы нажимаете Browse, System Target File Browser открывает и отображает системные конечные файлы на пути MATLAB. Некоторые системные конечные файлы требуют дополнительных продуктов. Например, ert.tlc
требует Embedded Coder®.
Откройте myAircraftExample
модель, если это не уже открыто.
В диалоговом окне Configuration Parameters задайте настройки:
Используйте настройки по умолчанию для продвинутых параметров Code Generation, которые управляют многословием сборки и отладкой:
Verbose build (RTWVerbose
)
Retain .rtw file (RetainRTWFile
)
Profile TLC (ProfileTLC
)
Start TLC debugger when generating code (TLCDebug
)
Start TLC coverage when generating code (TLCCoverage
)
Enable TLC assertion (TLCAssert
)
Используйте настройки Code Generation> Comments по умолчанию.
Code Generation> опции Identifiers управляет стилем сгенерированного кода. Используйте настройки по умолчанию.
Выберите Code Generation> Interface.
Из списка Shared code placement выберите Shared location
. Процесс сборки помещает сгенерированный код для утилит в подпапке в вашей папке Генерации кода.
Под Advanced parameters снимите флажок Classic call interface.
Под Advanced parameters установите флажок Single output/update function.
В Code Generation> Report, выберите Create code generation report и Open report automatically. Это действие позволяет программному обеспечению создать и отобразить отчет генерации кода для myAircraftExample
модель.
Нажмите Apply и сохраните модель.
Процесс сборки генерирует код С из модели. Это затем компилирует и соединяет сгенерированную программу, чтобы создать исполняемый образ. Создавать и запускать программу:
С myAircraftExample
открытая модель, выполните одно из этих действий:
Вы видите генерацию кода и сообщения компиляции в Командном окне. Первоначальное сообщение:
### Starting build procedure for model: myAircraftExample
Содержимое многих последующих сообщений зависит от вашего компилятора и операционной системы. Итоговые сообщения включают:
### Created executable myAircraftExample.exe ### Successful completion of build procedure for model: myAircraftExample ### Creating HTML report file myAircraftExample_codegen_rpt.html
Папка генерации кода теперь содержит исполняемый файл, myAircraftExample.exe
(Платформы Microsoft® Windows®) или myAircraftExample
(Платформы UNIX®). Кроме того, процесс сборки создал slprj
папка и myAircraftExample_grt_rtw
папка в вашей папке Генерации кода.
Примечание
После генерации кода для myAircraftExample
модель, процесс сборки отображает отчет генерации кода. Смотрите Генерацию Отчета для получения дополнительной информации о том, как создать и использовать отчет генерации кода.
Чтобы видеть содержимое рабочей папки после сборки, введите dir
или ls
команда:
>> dir . myAircraftExample.slx slprj .. myAircraftExample.slx.autosave myAircraftExample.exe myAircraftExample_grt_rtw
Чтобы запустить исполняемый файл из Командного окна, введите !myAircraftExample
. !
символ передает команду, которая следует за ним к операционной системе, которая запускает автономный myAircraftExample
программа.
>> !myAircraftExample ** starting the model ** ** created myAircraftExample.mat **
Чтобы видеть файлы, созданные в папке сборки, используйте dir
или ls
управляйте снова. Точный список произведенных файлов варьируется среди платформ MATLAB и версий. Вот демонстрационный список от платформы Windows:
>> dir myAircraftExample_grt_rtw . rt_main.obj myAircraftExample_data.c .. rtmodel.h myAircraftExample_data.obj buildInfo.mat rtw_proj.tmw myAircraftExample_private.h codeInfo.mat myAircraftExample.bat myAircraftExample_ref.rsp defines.txt myAircraftExample.c myAircraftExample_types.h html myAircraftExample.h modelsources.txt myAircraftExample.mk rt_logging.obj myAircraftExample.obj
Процесс сборки создает папку сборки и называет ее
, где model
_target
_rtw
имя исходной модели и model
системный конечный файл, выбранный для модели. В этом примере папку сборки называют target
myAircraftExample_grt_rtw
.
Папка сборки включает следующие сгенерированные файлы.
Файл | Описание |
---|---|
|
Автономный код С, который реализует модель |
|
Включать заголовочный файл, содержащий определения параметров и переменных состояния |
|
Заголовочный файл, содержащий распространенный, включает определения |
|
Предописания типов данных используются в коде |
|
Основной заголовочный файл для включения сгенерированного кода в статической основной программе (ее имя не изменяется, и это просто, включает |
Отчет генерации кода, что вы создали для myAircraftExample
модель отображает ссылку для каждого из этих файлов. Можно щелкнуть по ссылке, исследуют содержимое файла.
Папка сборки содержит другие файлы, используемые в процессе сборки. Они включают:
myAircraftExample.mk
— Make-файл для создания исполняемого использования заданного Набора инструментальных средств.
Объект (.obj
) файлы
myAircraftExample.bat
— Файл проверки партии
rtw_proj.tmw
— Файл маркера
buildInfo.mat
— Создайте информацию для перемещения сгенерированного кода к другой среде разработки
defines.txt
— Определения препроцессора, требуемые для компиляции сгенерированного кода
myAircraftExample_ref.rsp
— Данные, чтобы включать как параметры командной строки к mex
(Только системы Windows)
Папка сборки также содержит подпапку, html
, который содержит файлы, которые составляют отчет генерации кода. Для получения дополнительной информации см. Отчеты для Генерации кода.
После создания кода генератор кода производит индивидуально настраиваемый make-файл, model
.mk
. Сгенерированный make-файл сообщает make
системная утилита для компиляции и исходного кода ссылки, сгенерированного из модели, любой необходимой программы обвязки, библиотек или обеспеченных пользователями модулей. Генератор кода производит файл model
.mk
независимо от подхода, который вы используете для управления процессом сборки:
Если вы используете подход набора инструментальных средств, генератор кода создает model
.mk
на основе модели Toolchain settings. Можно изменить генерацию make-файла через rtwmakecfg.m
API.
Если вы используете подход make-файла шаблона, генератор кода создает model
.mk
от системы обрабатывают по шаблону файл, system
.tmf
(где system
обозначает выбранное системное имя конечного файла). Системный make-файл шаблона спроектирован для вашего системного конечного файла. Можно изменить make-файл шаблона, чтобы задать компиляторы, параметры компилятора и дополнительную информацию для создания исполняемого файла.
Для получения дополнительной информации смотрите, Выбирают Build Approach и Configure Build Process.