Образцовый rtwdemo_roll
, описанный в, Генерирует код С из Моделей Simulink, представляет систему управления автопилота для самолета. Вы готовите rtwdemo_roll
к генерации встраиваемого кода при помощи Embedded Coder® Quick Start, который выбирает основные настройки генерации кода на основе ваших целей и приложения.
Открытая модель rtwdemo_roll
.
Сохраните копию модели к перезаписываемому местоположению на поисковом пути MATLAB.
Откройте инструмент Quick Start. В Редакторе Simulink® выберите Code> C/C++ Code> Embedded Coder Quick Start.
Совершенствуйтесь через шаги инструмента Quick Start. Каждый шаг задает вопросы о коде, который вы хотите сгенерировать. Для этого примера используйте значения по умолчанию, которые уже выбраны. Инструмент подтверждает ваши выборы против модели и представляет изменения параметра, требуемые сгенерировать код.
На шаге Generate Code примените предложенные изменения и сгенерируйте код от rtwdemo_roll
путем нажатия на Next.
Закройте инструмент путем нажатия на Finish.
Инструмент помещает модель в Редактор Simulink перспектива Кода. В этой перспективе можно сконфигурировать индивидуальные настройки генерации кода, и затем проверять, что результаты правильны в Представлении кода вместе с моделью.
В редакторе Отображений Кода, на вкладке Entry-Point Functions, вы видите отдельные функции точки входа, которые производит генератор кода. Вы вызываете эти сгенерированные функции из внешнего кода или от версии сгенерированной основной функции, которую вы изменяете. При необходимости можно поменять имя функции. Для ступенчатой функции тарифной ставки основанной на уровне модели и для ступенчатых функций для моделей экспорта функций, можно настроить имя функции и аргументы.
Сгенерированный код появляется в двух первичных файлах: rtwdemo_roll.c
и rtwdemo_roll.h
. В вашей текущей папке MATLAB® папка rtwdemo_roll_ert_rtw
содержит эти первичные файлы.
В вашей текущей папке генератор кода создает папку slprj
. Эта папка содержит файл rtwtypes.h
, который задает стандартные типы данных, которые сгенерированный код использует по умолчанию. В целом эта одноуровневая папка содержит сгенерированные файлы, которые могут или должны быть совместно использованы многоуровневыми моделями.
Код, который вы генерируете из модели, включает функции точки входа, которые вы вызываете от своего кода приложения. Для основанной на уровне модели эти функции включают функцию инициализации, функцию выполнения, и, опционально, оконечный и функции сброса. Функции обмениваются данными с вашим кодом приложения через интерфейс данных, которым вы управляете.
В редакторе Отображений Кода, на вкладке Entry-Point Functions, рассматривают список функций точки входа, которые генератор кода производит для модели. Используйте это представление, чтобы выборочно задать для каждой функции функциональный шаблон настройки (определение кода) и имя. Для этого примера значение по умолчанию использования генератора кода (поставило) настройки для имен функций точки входа и шаблона настройки. Генератор кода называет инициализировать функциональный rtwdemo_roll_initialize
и выполнение (шаг) функциональный rtwdemo_roll_step
. Обе функции точки входа имеют интерфейс void-void
(они не передают аргументов). Функции получают доступ к данным через структуры разделяемых данных. Примеры таких данных включают ввод и вывод уровня системы, которым функции обмениваются с кодом приложения.
Чтобы видеть эти, точка входа функционирует в сгенерированном коде:
На правой стороне Редактора Simulink перспектива Кода, в панели Представления кода, определяют местоположение панели поиска.
В панели поиска введите rtwdemo_roll_step
. Чтобы найти каждый экземпляр имени ступенчатой функции через файлы сгенерированного кода, кликните по поисковому предложению.
Используйте стрелки на праве продвинуться через каждый экземпляр, включая определение ступенчатой функции в rtwdemo_roll.c
и объявление в rtwdemo_roll.h
. Ступенчатая функция имеет интерфейс void-void
, который не передает аргументы. Можно также видеть количество поисковых хитов в каждом файле из меню файла в левом верхнем углу.
Повторите эти, поиск продвигается, чтобы определить местоположение инициализировать функции, rtwdemo_roll_initialize
в сгенерированном коде.
Затем, сконфигурируйте интерфейс данных для генерации кода и рассмотрите сгенерированный код.