Рабочий процесс процесса сборки для систем реального времени

Процесс создания включает генерирующийся код в C или C++ из модели и создания исполняемой программы от сгенерированного кода. Этот пример может использовать типичный в реальном времени (GRT) или системный конечный файл (STF) встроенного в реальном времени (ERT) для генерации кода. Получившаяся автономная программа работает на вашем компьютере разработчика, независимом от внешней синхронизации и событий.

Работающая папка

Этот пример использует локальную копию модели slexAircraftExample, сохраненной в ее собственной папке, aircraftexample. Настройте свою рабочую папку можно следующим образом:

  1. В Браузере текущей папки MATLAB® перейдите к папке, к которой у вас есть доступ для записи.

  2. Чтобы создать рабочую папку, введите следующую команду MATLAB:

    mkdir aircraftexample
  3. Сделайте aircraftexample вашей рабочей папкой:

    cd aircraftexample
  4. Откройте модель slexAircraftExample:

    slexAircraftExample

    Модель появляется в Редакторе Simulink® окно модели.

  5. В окне модели выберите File> Save As. Перейдите к своей рабочей папке, aircraftexample. Сохраните копию модели slexAircraftExample как myAircraftExample.

Создайте папки папки и генерации кода

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

Когда модель содержит блоки Model (ссылки на другие модели), сборка модели создает специальные подпапки в вашей папке Генерации кода (Simulink), чтобы организовать код для моделей, на которые ссылаются. Эти папки генерации кода существуют вместе с папками сборки продукта и названы slprj. Сгенерируйте Код для Моделей, на которые Ссылаются, описывает перешедшие структуры папок генерации кода в Model Explorer.

Под папкой slprj подпапка под названием _sharedutils содержит сгенерированный код, который может быть совместно использован моделями.

Установите параметры модели для генерации кода

Чтобы сгенерировать код из вашей модели, необходимо изменить некоторые образцовые параметры конфигурации. В частности, системный конечный файл типичного в реальном времени (GRT) и большинство других системных конечных файлов требуют, чтобы модель задала решатель фиксированного шага.

Примечание

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

Установить образцовые параметры конфигурации при помощи диалогового окна Configuration Parameters:

  1. Откройте модель myAircraftExample, если это не уже открыто.

  2. От окна модели откройте диалоговое окно Configuration Parameters путем выбора Simulation> Model Configuration Parameters.

  3. Выберите Configuration Parameters> Solver. Введите следующие значения параметров (некоторые могли уже быть установлены):

    • Время начала: 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

  4. Нажмите Apply.

  5. Сохраните модель. Параметры симуляции сохраняются с моделью для использования на будущих сеансах.

Сконфигурируйте процесс сборки

Чтобы сконфигурировать процесс сборки для вашей модели, выберите системный конечный файл, набор инструментальных средств или обработайте по шаблону make-файл и команду make.

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

Выбрать системный конечный файл GRT с помощью диалогового окна Configuration Parameters:

  1. С открытой моделью myAircraftExample выберите Simulation> Model Configuration Parameters, чтобы открыть диалоговое окно Configuration Parameters.

  2. Выберите Configuration Parameters> Code Generation.

  3. Для System target file введите grt.tlc и нажмите Apply.

    Configuration Parameters> панель Code Generation отображает выборы для System target file (grt.tlc), Toolchain (Automatically locate an installed toolchain) и Build Configuration (Faster Builds).

    Примечание

    Если вы нажимаете Browse, System Target File Browser открывает и отображает системные конечные файлы на пути MATLAB. Некоторые системные конечные файлы требуют дополнительных продуктов. Например, ert.tlc требует Embedded Coder®.

  4. Сохраните модель.

Установите параметры генерации кода

С открытой моделью myAircraftExample выберите Simulation> Model Configuration Parameters:

  1. Выберите Code Generation> Report> Create code generation report. Это действие позволяет программному обеспечению создать и отобразить отчет генерации кода для модели myAircraftExample.

  2. Используйте настройки Code Generation> Comments по умолчанию.

  3. Code Generation> опции Symbols управляет стилем сгенерированного кода. Используйте настройки по умолчанию.

  4. Они Code Generation> параметры Advanced parameters управляют многословием сборки и отладкой:

    • 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)

    Используйте настройки по умолчанию.

  5. Выберите Code Generation> Interface.

    • Для параметра Shared code placement выберите Shared location. Процесс сборки помещает сгенерированный код для утилит в подпапке в вашей папке Генерации кода (Simulink).

    • Снимите флажок Advanced parameters> Classic call interface.

  6. Нажмите Apply и сохраните модель.

Создание и запуск программы

Процесс сборки генерирует код С из модели. Это затем компилирует и соединяет сгенерированную программу, чтобы создать исполняемое изображение. Создавать и запускать программу:

  1. С открытой моделью myAircraftExample инициируйте генерацию кода и процесс сборки для модели при помощи любой из следующих опций:

    • Нажмите кнопку Build Model.

    • Нажмите Ctrl+B.

    • Выберите Code> C/C++ Code> Build Model.

    • Вызовите команду rtwbuild из командной строки MATLAB.

    • Вызовите команду slbuild из командной строки MATLAB.

    Некоторые сообщения относительно генерации кода и компиляции появляются в Командном окне. Первоначальное сообщение:

    ### 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 в вашей папке Генерации кода (Simulink).

    Примечание

    После генерации кода для модели myAircraftExample процесс сборки отображает отчет генерации кода. Смотрите Генерацию Отчета (Simulink Coder) для получения дополнительной информации о том, как создать и использовать отчет генерации кода.

  2. Чтобы видеть содержимое рабочей папки после сборки, введите команда ls или dir:

    >> dir
    
    .                               myAircraftExample.slx           slprj
    ..                              myAircraftExample.slx.autosave
    myAircraftExample.exe           myAircraftExample_grt_rtw
  3. Чтобы запустить исполняемый файл из Командного окна, введите !myAircraftExample. Символ ! передает команду, которая следует за ним к операционной системе, которая запускает автономную программу myAircraftExample.

    >> !myAircraftExample
    
    ** starting the model **
    ** created myAircraftExample.mat **
  4. Чтобы видеть файлы, созданные в папке сборки, используйте 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.c

Автономный код С, который реализует модель

myAircraftExample.h

Включать заголовочный файл, содержащий определения параметров и переменных состояния

myAircraftExample_private.h

Заголовочный файл, содержащий распространенный, включает определения

myAircraftExample_types.h

Предописания типов данных используются в коде

rtmodel.h

Основной заголовочный файл для включения сгенерированного кода в статической основной программе (ее имя не изменяется, и это просто, включает myAircraftExample.h),

Отчет генерации кода, что вы создали для модели myAircraftExample, отображает ссылку для каждого из этих файлов. Можно щелкнуть по ссылке, исследуют содержимое файла.

Папка сборки содержит другие файлы, используемые в процессе сборки. Они включают:

  • myAircraftExample.mk — Make-файл для создания исполняемого использования заданного Набора инструментальных средств.

  • Объект (.obj) файлы

  • myAircraftExample.bat — Файл проверки партии

  • rtw_proj.tmw — Файл маркера

  • buildInfo.mat — Создайте информацию для перемещения сгенерированного кода к другой среде разработки

  • defines.txt — Определения препроцессора, требуемые для компиляции сгенерированного кода

  • myAircraftExample_ref.rsp — Данные, чтобы включать как параметры командной строки к mex (только системы Windows)

Папка сборки также содержит подпапку, html, который содержит файлы, которые составляют отчет генерации кода. Для получения дополнительной информации см. Отчеты для Генерации кода (Simulink Coder).

Индивидуально настраиваемая генерация make-файла

После создания кода генератор кода производит индивидуально настраиваемый make-файл, model .mk. Сгенерированный make-файл дает команду системной утилите make компилировать и соединять исходный код, сгенерированный из модели, любой необходимой программы обвязки, библиотек или обеспеченных пользователями модулей. Генератор кода производит файл model .mk независимо от подхода, который вы используете для управления процессом сборки:

  • Если вы используете подход набора инструментальных средств, генератор кода создает model .mk на основе модели Toolchain settings. Можно изменить генерацию make-файла через API rtwmakecfg.m.

  • Если вы используете подход make-файла шаблона, генератор кода создает model .mk из системного файла шаблона, system .tmf (где system обозначает выбранное системное имя конечного файла). Системный make-файл шаблона разработан для вашего системного конечного файла. Можно изменить make-файл шаблона, чтобы задать компиляторы, параметры компилятора и дополнительную информацию для создания исполняемого файла.

Для получения дополнительной информации смотрите, Выбирают Build Approach и Configure Build Process.

Похожие темы