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

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

Рабочая папка

Этот пример использует локальную копию 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 задайте значения параметров конфигурации для решателя:

    • Start time: 0.0

    • Stop time: 60

    • Type: 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. В Параметры конфигурации окне в поле System target file введите grt.tlc. Затем нажмите Apply.

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

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

Примечание

Если щелкнуть Browse, откроется браузер системных целевых файлов, который отобразит системные целевые файлы в пути MATLAB. Некоторые системные целевые файлы требуют дополнительных продуктов. Для примера, ert.tlc требует Embedded Coder®.

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

  1. Откройте myAircraftExample модель, если она еще не открыта.

  2. В диалоговом окне Параметров конфигурации задайте настройки:

    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.

    • Запустите 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. The ! символ передает команду, которая следует за ней, операционной системе, которая запускает автономную 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

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

Дополнительные сведения см. в разделах Выбор подхода к сборке и Настройка процесса сборки.

Похожие темы