Анализируйте интерфейс сгенерированного кода

Интерфейс кода сообщает об обзоре

Когда вы выбираете опцию Create code generation report для основанной на ERT модели, раздел Code Interface Report автоматически включен в сгенерированный отчет HTML. Раздел Code Interface Report предоставляет документацию интерфейса сгенерированного кода, включая образцовые функции точки входа и интерфейсные данные, для потребителей сгенерированного кода. Информация в отчете может помочь упростить рассмотрение кода и интеграцию кода.

Отчет интерфейса кода включает в себя следующие подразделы:

  • Entry-Point Functions — интерфейсная информация о каждой образцовой функции точки входа, включая model_initialize, model_step, и (если применимо) model_reset и model_terminate.

  • Inports и Outports — интерфейсная информация о каждом импорте модели и выходном порте.

  • Interface Parameters — интерфейсная информация о настраиваемых параметрах, которые сопоставлены с моделью.

  • Data Stores — интерфейсная информация о хранилищах глобальных данных и хранилищах данных с non-auto устройством хранения данных, которые сопоставлены с моделью.

Для ограничений, которые применяются к отчетам интерфейса кода, смотрите Ограничения Отчета Интерфейса Кода.

В целях рисунка этот раздел использует следующие модели:

  • rtwdemo_basicsc (с кнопкой ExportedGlobal Storage Class, нажатой в окне модели) для примеров подразделов отчета

  • rtwdemo_mrmtbb для примеров синхронизации информации

  • rtwdemo_fcnprotoctrl для примеров аргумента функции и информации о возвращаемом значении

Генерация отчета интерфейса кода

Чтобы сгенерировать код соединяют интерфейсом с отчетом для вашей модели:

  1. Откройте свою модель, перейдите к панели Code Generation диалогового окна Configuration Parameters и выберите ert.tlc или ERT-based System target file, если вы уже не выбраны.

  2. Перейдите к Code Generation> панель Report диалогового окна Configuration Parameters и выберите опцию Create code generation report, если это уже не выбрано. rtwdemo_basicsc, rtwdemo_mrmtbb и модели rtwdemo_fcnprotoctrl, используемые в этом разделе, выбирают несколько опций панели Report по умолчанию. Но выбирая только Create code generation report, генерирует раздел Code Interface Report в отчете HTML.

    Также можно программно выбрать опцию путем выдачи следующей команды MATLAB®:

    set_param(bdroot, 'GenerateReport', 'on')

    Если параметр Code-to-model выбран, сгенерированный отчет содержит гиперссылки на модель. Оставьте это значение выбранным, если вы не планируете использовать отчет вне среды MATLAB.

  3. Создайте модель. Если вы выбрали опцию панели Report Open report automatically, отчет генерации кода открывается автоматически после того, как процесс сборки завершен. (В противном случае можно открыть его вручную из папки сборки модели.)

  4. Чтобы отобразить отчет интерфейса кода для вашей модели, перейдите к панели Contents отчета HTML и щелкните по ссылке Code Interface Report. Например, вот отчет интерфейса сгенерированного кода для модели rtwdemo_basicsc (с кнопкой ExportedGlobal Storage Class, нажатой в окне модели).

Для справки, перемещающейся по содержимому подразделов отчета интерфейса кода, смотрите Перешедшие Подразделы Отчета Интерфейса Кода. Для справки, интерпретирующей содержимое подразделов отчета интерфейса кода, смотрите, что разделы начинаются с Интерпретации Подраздела Функций Точки входа.

Навигация по интерфейсу кода сообщает о подразделах

Чтобы помочь вам переместиться по описаниям интерфейса кода, отчет интерфейса кода обеспечивает, выходят из строя/расширяют лексемы и гиперссылки, можно следующим образом:

  • Для большого подраздела отчет обеспечивает [-] и символы [+], которые позволяют вам сворачивать или расширять тот раздел. В примере в предыдущем разделе символы обеспечиваются для разделов Interface Parameters и Inports.

  • Несколько форм навигации гиперссылки обеспечиваются в отчете интерфейса кода. Например:

    • Table of Contents, расположенный наверху отчета интерфейса кода, обеспечивает ссылки на каждый подраздел.

    • Можно кликнуть по каждому имени функции, чтобы перейти к его определению в model.c.

    • Можно кликнуть по имени заголовочного файла каждой функции, чтобы перейти к списку источников заголовочного файла.

    • Если вы выбрали параметр Code-to-model для своей модели, чтобы перейти к соответствующему местоположению в образцовом отображении, можно кликнуть по гиперссылкам для любого следующего:

      • Аргумент функции

      • Функциональное возвращаемое значение

      • Inport

      • Выходной порт

      • Интерфейсный параметр (если источник параметра является блоком),

      • Хранилище данных (если источник хранилища данных является Блоком памяти Хранилища данных),

Для обратной и прямой навигации в рамках отчета генерации кода HTML используйте кнопки Back и Forward выше раздела Contents в верхнем левом углу отчета.

Интерпретация подраздела функций точки входа

Подраздел Entry-Point Functions отчета интерфейса кода предоставляет следующую интерфейсную информацию о каждой образцовой функции точки входа, включая model_initialize, model_step, и (если применимо) model_reset и model_terminate.

Поле Описание
Function:Перечисляет имя функции. Можно кликнуть по имени функции, чтобы перейти к его определению в model.c.
PrototypeОтображает прототипа функции, включая функциональное возвращаемое значение, имя и аргументы.
DescriptionПредоставляет текстовое описание цели функции в приложении.
TimingОписывает характеристики синхронизации функции, такой как, сколько раз функция вызвана, или если это периодически называется, и в какое время интервал. Для многоскоростного примера синхронизации смотрите следующую выборку отчета rtwdemo_mrmtbb.
ArgumentsЕсли функция имеет аргументы, отображает номер, имя, тип данных и описание Simulink® для каждого аргумента. Если вы выбираете параметр Code-to-model для своей модели, можно кликнуть по гиперссылке в описании, чтобы продаться на аукционе, соответствуя аргументу в образцовом отображении. Для примеров аргумента смотрите выборку отчета rtwdemo_fcnprotoctrl ниже.
Return valueЕсли функция имеет возвращаемое значение, это поле отображает тип данных возвращаемого значения и описание Simulink. Если вы выбрали параметр Code-to-model для своей модели, можно кликнуть по гиперссылке в описании, чтобы продаться на аукционе, соответствуя возвращаемому значению в образцовом отображении. Для примера возвращаемого значения смотрите следующую выборку отчета rtwdemo_fcnprotoctrl.
Header fileПеречисляет имя заголовочного файла для функции. Можно кликнуть по имени заголовочного файла, чтобы перейти к списку источников заголовочного файла.

Например, вот подраздел Entry-Point Functions для модели rtwdemo_basicsc.

Чтобы проиллюстрировать, как синхронизация информации может быть перечислена для многоскоростной модели, вот, Entry-Point Functions и подразделы Inports для модели rtwdemo_mrmtbb. Это многоскоростное, дискретное время, многозадачная модель содержит блоки 1 и 2 Inport, которые задают 1 второй и 2-секундный шаг расчета, соответственно. Шаги расчета ограничиваются к требуемым временам опцией Periodic sample time constraint на панели Solver диалогового окна Configuration Parameters.

Чтобы проиллюстрировать, как аргументы функции и возвращаемые значения отображены в отчете, вот, описание функции точки входа образцовой ступенчатой функции для модели rtwdemo_fcnprotoctrl.

Интерпретация Инпортов и подразделов выходных портов

Inports и подразделы Outports отчета интерфейса кода предоставляют следующую интерфейсную информацию о каждом импорте и выходном порте в модели.

Поле Описание
Block NameОтображает имя блока Simulink импорта или выходного порта. Если вы выбрали параметр Code-to-model для своей модели, можно нажать на каждый импорт или выходной порт значение Block Name, чтобы перейти к его местоположению в образцовом отображении.
Code Identifier

Перечисляет идентификатор, сопоставленный с импортом или данными о выходном порте в сгенерированном коде, можно следующим образом:

  • Если данные заданы в сгенерированном коде, поле отображает текст идентификатора.

  • Если данные объявлены, но не заданы в сгенерированном коде — например, если данные разрешены с импортированным классом памяти — поле отображает текст идентификатора, снабженный префиксом метку 'Imported data:'.

  • Если данные ни не заданы, ни объявлены в сгенерированном коде — например, если упаковка интерфейса Reusable function кода выбрана для модели — поле отображает текст 'Defined externally'.

Data TypeПеречисляет тип данных импорта или выходного порта.
Scaling

Для записей фиксированной точки, перечисляет тип данных и дробную длину с помощью обозначения типа данных с фиксированной точкой Simulink.

Примечание

У вас должна быть лицензия Fixed-Point Designer™, чтобы видеть, что фиксированная точка масштабирует информацию в отчете. Для получения дополнительной информации о том, как масштабирование представлено в таблице, смотрите Тип данных с фиксированной точкой и Масштабирующееся Обозначение (Fixed-Point Designer).

DimensionПеречисляет размерности импорта или выходного порта (например, 1 или [4, 5]).

Например, вот Inports и подразделы Outports для модели rtwdemo_basicsc.

Интерпретация интерфейсного подраздела параметров

Подраздел Interface Parameters отчета интерфейса кода предоставляет следующую интерфейсную информацию о настраиваемых параметрах, которые сопоставлены с моделью.

Поле Описание
Parameter Source

Перечисляет источник значения параметров, можно следующим образом:

  • Если источник значения параметров является блоком, поле отображает имя блока, такое как <Root>/Gain2 или <S1>/Lookup1. Если вы выбрали параметр Code-to-model для своей модели, можно кликнуть по значению Parameter Source, чтобы перейти к местоположению параметра в образцовом отображении.

  • Если источник значения параметров является переменной рабочей области, поле отображает имя переменной рабочей области.

Code Identifier

Перечисляет идентификатор, сопоставленный с данными о настраиваемом параметре в сгенерированном коде, можно следующим образом:

  • Если данные заданы в сгенерированном коде, поле отображает текст идентификатора.

  • Если данные объявлены, но не заданы в сгенерированном коде — например, если данные разрешены с импортированным классом памяти — поле отображает текст идентификатора, снабженный префиксом метку 'Imported data:'.

  • Если данные ни не заданы, ни объявлены в сгенерированном коде — например, если упаковка интерфейса Reusable function кода выбрана для модели — поле отображает текст 'Defined externally'.

Data TypeПеречисляет тип данных настраиваемого параметра.
Scaling

Для записей фиксированной точки, перечисляет тип данных и дробную длину с помощью обозначения типа данных с фиксированной точкой Simulink.

Примечание

У вас должна быть лицензия Fixed-Point Designer, чтобы видеть, что фиксированная точка масштабирует информацию в отчете. Для получения дополнительной информации о том, как масштабирование представлено в таблице, смотрите Тип данных с фиксированной точкой и Масштабирующееся Обозначение (Fixed-Point Designer).

DimensionПеречисляет размерности настраиваемого параметра (например, 1 или [4, 5, 6]).

Например, вот подраздел Interface Parameters для модели rtwdemo_basicsc (с кнопкой ExportedGlobal Storage Class, нажатой в окне модели).

Интерпретация подраздела хранилищ данных

Подраздел Data Stores отчета интерфейса кода предоставляет следующую интерфейсную информацию о хранилищах глобальных данных и хранилищах данных с non-auto устройством хранения данных, которые сопоставлены с моделью.

Поле Описание
Data Store Source

Перечисляет источник памяти хранилища данных, можно следующим образом:

  • Если хранилище данных задано с помощью Блока памяти Хранилища данных, поле отображает имя блока, такое как <Root>/DS1. Если вы выбрали параметр Code-to-model для своей модели, можно нажать на значение Data Store Source, чтобы перейти к местоположению хранилища данных в образцовом отображении.

  • Если хранилище данных задано с помощью объекта Simulink.Signal, поле отображает имя объекта Simulink.Signal.

Code Identifier

Перечисляет идентификатор, сопоставленный с данными о хранилище данных в сгенерированном коде, можно следующим образом:

  • Если данные заданы в сгенерированном коде, поле отображает текст идентификатора.

  • Если данные объявлены, но не заданы в сгенерированном коде — например, если данные разрешены с импортированным классом памяти — поле отображает текст идентификатора, снабженный префиксом метку 'Imported data:'.

  • Если данные ни не заданы, ни объявлены в сгенерированном коде — например, если упаковка интерфейса Reusable function кода выбрана для модели — поле отображает текст 'Defined externally'.

Data TypeПеречисляет тип данных хранилища данных.
Scaling

Для записей фиксированной точки, перечисляет тип данных и дробную длину с помощью обозначения типа данных с фиксированной точкой Simulink.

Примечание

У вас должна быть лицензия Fixed-Point Designer, чтобы видеть, что фиксированная точка масштабирует информацию в отчете. Для получения дополнительной информации о том, как масштабирование представлено в таблице, смотрите Тип данных с фиксированной точкой и Масштабирующееся Обозначение (Fixed-Point Designer).

DimensionПеречисляет размерности хранилища данных (например, 1 или [1, 2]).

Например, вот подраздел Data Stores для модели rtwdemo_basicsc (с кнопкой ExportedGlobal Storage Class, нажатой в окне модели).

Интерфейс кода сообщает об ограничениях

Следующие ограничения применяются к разделу интерфейса кода отчетов генерации кода HTML.

  • Отчет интерфейса кода не поддерживает интерфейс GRT с целью ERT или упаковкой интерфейса C++ class кода. Для этих настроек отчет интерфейса кода не сгенерирован и не появляется в генерации кода HTML, сообщает панель Contents.

  • Интерфейс кода сообщает о данных о поддержках, разрешенных с большинством пользовательских классов памяти (CSCs), кроме тех случаев, когда свойства CSC установлены любым из следующих способов:

    • Свойство CSC Type установлено в FlatStructure. Например, BitField и Struct CSCs в пакете Simulink установили Type на FlatStructure.

    • Свойство CSC Type установлено в Other. Например, CSC GetSet в пакете Simulink установили Type на Other.

    • Свойство CSC, на которое Data access установлен в Pointer, указав, который импортировал символы, объявляется как переменные указателя, а не простые переменные. Это свойство доступно только, когда свойство CSC Data scope установлено в Imported или Instance-specific.

    В этих случаях отчет отображает пустые поля Data Type и Dimension.

  • Для выходных портов отчет интерфейса кода не может описать связанную память (тип данных и размерности), если память оптимизирована. В этих случаях отчет отображает пустые поля Data Type и Dimension.

  • Отчет интерфейса кода не поддерживает замену типа данных с помощью Code Generation> панель Data Type Replacement диалогового окна Configuration Parameters. Типы данных, перечисленные в отчете, соединятся со встроенными типами данных, а не их заданными заменяющими типами данных.

Похожие темы