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

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

Когда вы выбираете опцию Create code generation report, раздел 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_configinterface (с кнопкой ExportedGlobal Storage Class, нажатой в окне модели) для примеров подразделов отчета

  • rtwdemo_mrmtbb для примеров времени выполнения

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

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

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

  1. Откройте диалоговое окно Configuration Parameters.

  2. На Code Generation> панель Report, выберите Create code generation report. rtwdemo_configinterface, rtwdemo_mrmtbb, и rtwdemo_fcnprotoctrl модели, используемые в этом разделе, выбирают несколько других опций панели Report по умолчанию.

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

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

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

  3. Создайте модель. На вкладке C Code нажмите Open Report.

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

    Code Interface Report for the model rtwdemo_configinterface.

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

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

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

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

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

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

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

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

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

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

      • Inport

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

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

      • Хранилище данных (если источник хранилища данных является блоком Data Store Memory),

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

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

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

Поле Описание
Function:Перечисляет имя функции. Можно кликнуть по имени функции, чтобы перейти к его определению в modelC.
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_configinterface.

Entry-point functions section of the code interface report. There is one table of information for each of the initialize, step, and terminate functions.

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

Entry-point functions section of the code interface report. There is one table of information for the initialize function and each of two step functions.

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

Table of information for the rtwdemo_fcnprotocol_step_custom function.

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

One table of information for the Inports and one table for the Outports of the model rtwdemo_configinterface. The tables have columns for the block name, code identifiers, data type, and dimension of each port.

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

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

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

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

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

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

Code Identifier

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

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

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

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

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

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

Примечание

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

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

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

Table of interface parameters. The table has columns for the parameter source, code identifier, data type, and dimension for each interface parameter.

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

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

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

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

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

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

Code Identifier

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

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

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

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

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

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

Примечание

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

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

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

Table of data stores. The table has columns for the data store source, code identifier, data type, and dimension of each data store.

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

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

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

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

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

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

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

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

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

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте