Сгенерируйте код при помощи Embedded Coder Quick Start

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

Сгенерируйте код с помощью инструмента Quick Start

  1. Откройте rtwdemo_roll модели.

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

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

  4. На вкладке C Code нажмите Quick Start.

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

  6. На Generate Code этапе примените предложенные изменения и сгенерируйте код из rtwdemo_rollнажав Next.

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

Смотрите сгенерированный код

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

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

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

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

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

Чтобы увидеть эти функции точки входа в сгенерированном коде:

  1. На правой стороне Simulink® Редактором окне на панели Представления кода найдите строку поиска.

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

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

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

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