exponenta event banner

Создание кода с помощью быстрого запуска встроенного кодера

Модель rtwdemo_roll представляет собой систему управления автопилотом для летательного аппарата. Вы готовитесь rtwdemo_roll для создания встроенного кода с помощью Embedded Coder ® Quick Start, который выбирает основные настройки создания кода в зависимости от ваших целей и приложения.

Создание кода с помощью средства быстрого запуска

  1. Открытая модель rtwdemo_roll.

  2. Сохраните копию модели в доступное для записи расположение по пути поиска MATLAB.

  3. Если вкладка C Code еще не открыта, в коллекции Apps в разделе Code Generation выберите Embedded Coder.

  4. На вкладке Код C (C Code) щелкните Быстрый запуск (Quick Start).

  5. Переходите к шагам инструмента быстрого запуска. Каждый шаг задает вопросы о коде, который требуется создать. В данном учебном пособии используются уже выбранные значения по умолчанию. Инструмент проверяет выбранные значения на соответствие модели и отображает изменения параметров, необходимые для создания кода.

  6. На шаге Создать код примените предложенные изменения и создайте код из rtwdemo_roll нажав кнопку Далее.

  7. Нажмите кнопку Готово, а затем вернитесь на вкладку Код C. На этой вкладке можно настроить настройки генерации кода, а затем проверить результаты в представлении Код рядом с моделью.

Проверка созданного кода

Созданный код отображается в двух основных файлах: rtwdemo_roll.c и rtwdemo_roll.h. В текущей папке MATLAB ® rtwdemo_roll_ert_rtw содержит эти основные файлы.

В текущей папке генератор кода создает slprj папка. Эта папка содержит rtwtypes.h , который определяет стандартные типы данных, используемые по умолчанию в сгенерированном коде. Как правило, эта родственная папка содержит сгенерированные файлы, которые могут или должны совместно использоваться несколькими моделями.

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

Откройте редактор Сопоставления кода (Code Mappings), щелкнув Сопоставления кода (Code Mappings) под схемой модели. На вкладке Функции можно просмотреть отдельные функции точки входа, создаваемые генератором кода. Эти созданные функции вызываются из внешнего кода или из версии созданной основной функции, которую вы изменяете. Для функции шага базовой скорости модели на основе скорости и для функций шага для моделей функций экспорта можно настроить имя функции и аргументы.

Просмотрите список функций точки входа, создаваемых генератором кода для модели. Этот ракурс используется для выборочного задания для каждой функции шаблона настройки функции (определения кода) и имени. В данном учебном пособии генератор кода использует параметры по умолчанию (поставляемые) для шаблонов адаптации и имен функций точек входа. Генератор кода называет функцию инициализации rtwdemo_roll_initialize и функция выполнения (шаг) rtwdemo_roll_step. Обе функции начального уровня имеют void-void интерфейс (они не передают аргументов). Эти функции получают доступ к данным через общие структуры данных. Примеры таких данных включают в себя ввод и вывод на уровне системы, которые обмениваются функциями с кодом приложения.

Для просмотра этих функций точки входа в сгенерированном коде:

  1. В правой части окна «Редактор Simulink ®» на панели «Код» найдите панель поиска.

  2. В строке поиска введите rtwdemo_roll_step. Чтобы найти каждый экземпляр имени функции шага в созданных файлах кода, щелкните предложение поиска.

  3. Используйте стрелки справа для перехода к каждому экземпляру, включая определение функции шага в rtwdemo_roll.c и объявление в rtwdemo_roll.h. Количество попаданий в каждый файл можно также просмотреть в меню файла в левом верхнем углу.

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

Затем сконфигурируйте интерфейс данных для генерации кода и просмотрите созданный код.