exponenta event banner

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

Обзор отчета по кодовому интерфейсу

При выборе опции Создать отчет о создании кода для модели на основе ERT раздел Отчет по интерфейсу кода автоматически включается в созданный отчет HTML. В разделе «Отчет по кодовому интерфейсу» представлена документация по сгенерированному кодовому интерфейсу, включая функции точки входа модели и данные интерфейса, для потребителей сгенерированного кода. Информация в отчете может облегчить анализ кода и его интеграцию.

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

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

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

  • Параметры интерфейса (Interface Parameters) - информация интерфейса о настраиваемых параметрах, связанных с моделью.

  • Хранилища данных - информация интерфейса о глобальных хранилищах данных и хранилищах данных с не-auto хранилища, связанные с моделью.

Ограничения, применимые к отчетам интерфейса кода, см. в разделе Ограничения отчетов интерфейса кода.

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

  • rtwdemo_configinterface (с помощью кнопки «Класс глобального хранилища», выбранной в окне модели) для примеров подразделов отчета

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

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

Создание отчета по кодовому интерфейсу

Для создания отчета по кодовому интерфейсу для модели:

  1. Откройте модель, перейдите на панель Создание кода (Code Generation) диалогового окна Параметры конфигурации (Configuration Parameters) и выберите ert.tlc или целевой файл системы на основе ERT, если он еще не выбран.

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

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

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

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

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

  4. Чтобы отобразить отчет по кодовому интерфейсу для модели, перейдите на панель Содержимое отчета HTML и щелкните ссылку Отчет по кодовому интерфейсу. Например, здесь представлен сгенерированный отчет по кодовому интерфейсу для модели. rtwdemo_configinterface (с помощью кнопки «Класс глобального хранилища», выбранной в окне модели).

Сведения о навигации по содержимому подразделов отчета по кодовому интерфейсу см. в разделе Навигация по подразделам отчета по кодовому интерфейсу. Для получения справки по интерпретации содержимого подразделов отчета интерфейса кода см. разделы, начинающиеся с подраздела «Интерпретация функций точек входа».

Разделы «Навигация по отчету по кодовому интерфейсу»

Для упрощения навигации по описаниям кодовых интерфейсов в отчете по кодовым интерфейсам представлены следующие маркеры сворачивания/разворачивания и гиперссылки:

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

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

    • В оглавлении, расположенном в верхней части отчета по кодовому интерфейсу, содержатся ссылки на каждый подраздел.

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

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

    • Если для модели выбран параметр Код для модели (Code-to-model), то для перехода в соответствующее расположение на экране модели можно щелкнуть гиперссылки для любого из следующих вариантов.

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

      • Возвращаемое значение функции

      • Inport

      • Вспомогательный порт

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

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

Для перехода назад и вперед в отчете о создании кода HTML используйте кнопки Назад и Вперед над разделом Содержимое в левом верхнем углу отчета.

Интерпретация подраздела «Функции точек входа»

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

ОбластьОписание
Функция:Список имен функций. Можно щелкнуть имя функции, чтобы перейти к ее определению в model.c.
ПрототипОтображает прототип функции, включая возвращаемое значение функции, имя и аргументы.
ОписаниеСодержит текстовое описание назначения функции в приложении.
Выбор времениОписывает временные характеристики функции, например, сколько раз она вызывается, или если она вызывается периодически, и в какой временной интервал. Пример многоскоростного синхронизации см. в следующем rtwdemo_mrmtbb отрывок отчета.
АргументыЕсли функция имеет аргументы, отображает число, имя, тип данных и описание Simulink ® для каждого аргумента. При выборе параметра Code-to-model для модели можно щелкнуть гиперссылку в описании, чтобы перейти к блоку, соответствующему аргументу в отображении модели. Примеры аргументов см. в разделеrtwdemo_fcnprotoctrl выдержка из отчета ниже.
Возвращаемое значениеЕсли функция имеет возвращаемое значение, в этом поле отображаются тип данных возвращаемого значения и описание Simulink. Если для модели выбран параметр «Код для модели», можно щелкнуть гиперссылку в описании, чтобы перейти к блоку, соответствующему возвращаемому значению в отображении модели. Пример возвращаемого значения см. в следующем rtwdemo_fcnprotoctrl отрывок отчета.
Файл заголовкаСписок имен заголовочных файлов для функции. Можно щелкнуть имя файла заголовка, чтобы перейти к списку источников файлов заголовка.

Например, вот подраздел «Функции точек входа» для модели. rtwdemo_configinterface.

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

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

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

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

ОбластьОписание
Имя блокаОтображает имя блока Simulink для входа или выхода. Если для модели выбран параметр Код для модели (Code-to-model), можно щелкнуть каждое значение «Имя блока» (inport или outport Block Name), чтобы перейти к его расположению на экране модели.
Идентификатор кода

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

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

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

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

Тип данныхСписок типов данных для порта ввода или экспорта.
Вычисление

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

Примечание

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

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

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

Интерпретация подраздела «Параметры интерфейса»

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

ОбластьОписание
Источник параметров

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

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

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

Идентификатор кода

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

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

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

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

Тип данныхСписок типов данных настраиваемого параметра.
Вычисление

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

Примечание

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

ИзмерениеСписок размеров настраиваемого параметра (например, 1 или [4, 5, 6]).

Например, вот подраздел Interface Parameters для модели. rtwdemo_configinterface (с помощью кнопки «Класс глобального хранилища», выбранной в окне модели).

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

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

ОбластьОписание
Источник хранилища данных

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

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

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

Идентификатор кода

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

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

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

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

Тип данныхСписок типов данных хранилища данных.
Вычисление

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

Примечание

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

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

Например, вот подраздел Хранилища данных для модели. rtwdemo_configinterface (с помощью кнопки «Класс глобального хранилища», выбранной в окне модели).

Ограничения отчета по кодовому интерфейсу

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

  • Отчет о кодовом интерфейсе не поддерживает интерфейс GRT с целевым интерфейсом ERT или упаковкой кода класса C++. Для этих конфигураций отчет по кодовому интерфейсу не создается и не отображается на панели Содержимое отчета по созданию HTML-кода.

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

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

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

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

    В этих случаях в отчете отображаются пустые поля Тип данных и Измерение.

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

  • Отчет интерфейса кода не поддерживает замену типа данных с помощью панели «Создание кода» > «Замена типа данных» диалогового окна «Параметры конфигурации». Типы данных, перечисленные в отчете, будут связаны со встроенными типами данных, а не с указанными типами данных замены.

Связанные темы