Подготовьте rtwdemo_secondOrderSystem модели
для генерации кода и генерации C89/C90 совместимых Кодов С с помощью Simulink® Coder™ инструмент Quick Start. Затем проверьте сгенерированный код.
Инструмент Quick Start выбирает основные настройки генерации кода на основе ваших целей и приложения. Для примера инструмент Quick Start конфигурирует модель с помощью решателя с фиксированным шагом, который необходим для генерации кода.
Откройте rtwdemo_secondOrderSystem
модели путем ввода имени модели в Командном окне.
Сохраните копию модели в записываемое место в MATLAB® путь.
Если вкладка C Code еще не открыта, в галерее Apps, в разделе Code Generation, нажмите Simulink Coder.
Откройте инструмент Simulink Coder Quick Start. На вкладке C Code нажмите Quick Start.
Пройдите по шагам инструмента Quick Start. Каждый шаг задает вопросы о коде, который вы хотите сгенерировать. Для этого руководства используйте настройки по умолчанию. Инструмент проверяет соответствие выбора модели и представляет изменения параметра, необходимые для генерации кода.
На Generate Code этапе примените предложенные изменения и сгенерируйте код из модели, нажав Next.
Нажмите Finish. В редакторе Simulink Editor вернитесь на вкладку C Code. Настройте индивидуальные настройки генерации кода, перегенерируйте код и проверьте результаты в отчете генерации кода.
Генератор кода создает папку rtwdemo_secondOrderSystem_ert_rtw
в текущей рабочей папке и помещает файлы исходного кода в эту папку. Сгенерированный код находится в двух основных файлах: rtwdemo_secondOrderSystem.c
и rtwdemo_secondOrderSystem.h
. Файл rtwdemo_secondOrderSystem.c
содержит код алгоритма, включая код решателя ОДУ. Данные модели и функции точки входа доступны вызывающему абоненту путем включения rtwdemo_secondOrderSystem.h
. The rtwdemo_secondOrderSystem.h
файл включает в себя extern
объявления для выходов блоков, непрерывных состояний, выхода модели, точек входа и временных данных.
В текущей папке генератор кода создает slprj/target/_sharedutils
папка.. Эта папка содержит файл rtwtypes.h
, который определяет стандартные типы данных, которые по умолчанию использует сгенерированный код. Эта одноуровневая папка содержит сгенерированные файлы, которые могут или должны использоваться совместно несколькими моделями.
Код, который вы генерируете из модели, включает функции точки входа, которые вы вызываете из кода приложения, такие как внешняя основная программа. Для модели, основанной на скорости, эти функции включают функцию инициализации, функцию выполнения и, опционально, функции завершения и сброса. Функции обмениваются данными с кодом вашего приложения через управляемый вами интерфейс данных.
Откройте отчет генерации кода. На вкладке C Code нажмите Open Report.
Откройте раздел Code Interface Report. Проверьте функции точки входа, которые производит генератор кода для модели. Для функций initialize, execution (шаг) и endinate генератор кода использует эти имена:
rtwdemo_secondOrderSystem_initialize
rtwdemo_secondOrderSystem_step
rtwdemo_secondOrderSystem_terminate
Функции имеют void-void
интерфейс, что означает, что они не передают аргументы. Функции получают доступ к данным через разделяемые данные структуры. Примеры таких данных включают в себя вход и вывод уровня системы, которые функции обмениваются с кодом приложения.
Проверьте функции точки входа в сгенерированном коде. На левой панели отчета о генерации кода в разделе Generated Code щелкните имя файла rtwdemo_secondOrderSystem.c
. Используйте поле Find для поиска образцов строки secondOrderSystem_step
. Используйте стрелы справа от поля Find, чтобы пройти через каждый образец. Сделайте то же самое для файла заголовка rtwdemo_secondOrderSystem.h
. Затем проверьте код для функций инициализации и завершения.
Затем проверьте, соответствуют ли результаты симуляции модели сгенерированным исполняемым результатам программы.