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

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

При выборе опции 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 - интерфейс информации о глобальных хранилищах данных и хранилищах данных с не- auto хранилище, которые связаны с моделью.

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

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

  • rtwdemo_configinterface (с помощью кнопки ExportedGlobal Storage Class, выбранной в окне модели) для примеров подразделов отчета

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

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

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

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

  1. Откройте модель, перейдите на панель Code Generation диалогового окна Параметров конфигурации и выберите ert.tlc или на основе ERT- System target file, если он еще не выбран.

  2. Перейдите на панель Code Generation > Report диалогового окна Параметры конфигурации и выберите Create code generation report опции, если она еще не выбрана. The rtwdemo_configinterface, 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_configinterface (с кнопкой ExportedGlobal Storage Class, выбранной в окне модели).

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

Подсекции отчета по интерфейсам навигационного кода

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

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

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

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

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

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

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

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

      • Функция возврата значение

      • Inport

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

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

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

Для навигации назад и вперед в отчете генерации кода 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_configinterface.

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

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

Интерпретация подсекций входных и выходных портов

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

ОбластьОписание
Block NameОтображает имя блока Simulink входного или выходного порта. Если вы выбрали параметр Code-to-model для модели, можно кликнуть по каждому значению inport или outport 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.

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

В 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, выбранной в окне модели).

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

Раздел Data Stores отчета по интерфейсам кода предоставляет следующую информацию интерфейса о глобальных хранилищах данных и хранилищах данных с не- 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, выбранной в окне модели).

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

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

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

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

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

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

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

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

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

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

Похожие темы