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

Процесс создания включает генерирующийся код в 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 (ссылки на другие модели), сборка модели создает специальные подпапки в вашей папке Генерации кода, чтобы организовать код для моделей, на которые ссылаются. Эти папки генерации кода существуют вместе с папками сборки продукта и названы slprj. Для получения дополнительной информации смотрите, Генерируют Код для Иерархии Модели - ссылки.

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

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

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

Примечание

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

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

  2. В диалоговом окне 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

  3. Нажмите Apply.

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

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

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

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

Выбрать системный конечный файл GRT:

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

  2. В диалоговом окне Configuration Parameters, в поле System target file, вводят grt.tlc. Затем нажмите Apply.

    Вы видите выборы для Toolchain (Automatically locate an installed toolchain), и Build Configuration (Faster Builds).

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

Примечание

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

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

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

  2. В диалоговом окне Configuration Parameters задайте настройки:

    1. Используйте настройки по умолчанию для продвинутых параметров 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)

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

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

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

      1. Из списка Shared code placement выберите Shared location. Процесс сборки помещает сгенерированный код для утилит в подпапке в вашей папке Генерации кода.

      2. Под Advanced parameters снимите флажок Classic call interface.

      3. Под Advanced parameters установите флажок Single output/update function.

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

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

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

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

  1. С myAircraftExample открытая модель, выполните одно из этих действий:

    • На вкладке Apps откройте приложение Simulink Coder. Во вкладке C Code нажмите Build.

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

    • Запуститесь 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 папка в вашей папке Генерации кода.

    Примечание

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

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

    >> 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, который содержит файлы, которые составляют отчет генерации кода. Для получения дополнительной информации см. Отчеты для Генерации кода.

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

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

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

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

Для получения дополнительной информации смотрите, Конфигурируют Процесс сборки Make-файла Набора инструментальных средств или Шаблона.

Похожие темы