Code Mappings Editor – C

Объединенные элементы модели с определениями кода

Описание

Редактор Отображений Кода является графическим интерфейсом, где можно сконфигурировать элементы данных в модели, исключая модели, на которые ссылаются, для генерации кода. Каждая модель в иерархии модели - ссылки имеет свои собственные отображения кода. Сопоставьте каждую категорию элемента данных модели с определенным классом памяти в модели. Затем замените те настройки, по мере необходимости, для определенных элементов данных.

Класс памяти задает свойства, такие как внешний вид и местоположение, которое генератор кода использует при создании кода для связанных данных.

Чтобы сконфигурировать элементы данных и функции для генерации кода, используйте таблицы в редакторе Отображений Кода отображение:

  • Data Defaults

  • Inports

  • Outports

  • Parameters

  • Data Stores

  • Signals/States

Когда вы выбираете строку в активной таблице, раздел Code Property Inspector отображает настройки свойства класса памяти для выбранного элемента данных.

Прежде чем можно будет сконфигурировать сигнал для генерации кода, добавьте сигнал в отображения типового кодекса. Добавьте и удалите сигналы из отображений кода путем приостановки на замещающем знаке, который, кажется, выше или ниже сигнальной линии открывает строку меню. Нажмите кнопку Add Signal или Remove Signal. Эти кнопки также доступны в редакторе Отображений Кода на вкладке Signals/States.

Откройте редактор отображений кода – C

Выполнить одно из следующих действий:

  • Откройте приложение Simulink® Coder™. На вкладке C Code выберите Code Interface> Default Code Mappings или Code Interface> Individual Element Code Mappings.

  • Откройте приложение Simulink Coder. На вкладке C Code, в левом нижнем углу окна Simulink Editor, кликают по вкладке Code Mappings - C.

  • В холсте модели окна Simulink Editor кликните по перспективному управлению в нижнем правом углу и выберите Code. Затем кликните по вкладке Code Mappings - C.

Примеры

Сконфигурируйте генерацию кода для Корневого Уровня блоки выходного порта и Inport

Сконфигурируйте генерацию кода для корневого уровня Inport и блоки Outport в модели. Применение настроек по умолчанию может сэкономить время, особенно для крупномасштабных моделей, которые используют существенное количество данных. После применения отображений по умолчанию можно настроить отображения для отдельных элементов данных.

Настройте среду в качестве примера
  1. Скопируйте внешний файл кода exDblFloat.h в перезаписываемую папку.

    copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos','exDblFloat.h'));
  2. Открытая модель rtwdemo_configrpinterface. Сохраните копию модели в то же местоположение как файл exDblFloat.h.

  3. Откройте приложение Simulink Coder. Вкладка C Code включает редактор Отображений Кода.

Сконфигурируйте отображения по умолчанию

Сконфигурируйте генератор кода, чтобы объявить и задать глобальные переменные для импорта и выходных портов в сгенерированных файлах rtwdemo_configrpinterface.h и rtwdemo_configrpinterface.c.

  1. Во вкладке C Code выберите Code Interface> Default Code Mappings.

  2. Во вкладке Data Defaults, под Inports and Outports, выбирают строку для Inports. Затем установите класс памяти на ImportedExternPointer. Установите класс памяти для Outports к ExportedGlobal. Редактор обновляет установку класса памяти по умолчанию для двух выбранных категорий элемента данных.

Сконфигурируйте индивидуума Инпортса и выходные порты для настройки по умолчанию
  1. В редакторе Отображений Кода кликните по вкладке Inports. Класс памяти для каждого импорта установлен в Auto, что означает, что генератор кода может устранить или изменить представление соответствующих норм в целях оптимизации. Если оптимизация не возможна, генератор кода применяет настройку по умолчанию модели.

  2. Обеспечьте генератор кода, чтобы использовать настройку по умолчанию для импорта, которая является классом памяти ImportedExternPointer. Нажмите клавишу Ctrl и выберите импорт. Для одного из выбранного импорта, набор класс памяти к Model default: ImportedExternPointer. Редактор обновляет установку класса памяти для выбранного импорта.

  3. Обеспечьте генератор кода, чтобы использовать класс памяти ExportedGlobal для корневого выходного порта модели. Кликните по вкладке Outports. Выберите строку для Out2. Затем установите класс памяти на Model default: ExportedGlobal.

Сконфигурируйте отдельные элементы данных

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

По умолчанию генератор кода называет импорт и переменные выходного порта на основе Inport или имени блока Outport в модели. Когда вы конфигурируете элементы данных с установкой класса памяти кроме Auto, можно заменить ту настройку по умолчанию для отдельных элементов путем установки свойства Identifier класса памяти. Это свойство позволяет вам задать идентификатор для кода, не изменяя проект модели. В данном примере установите Identifier для блоков Outport и Inport.

  1. В редакторе Отображений Кода кликните по вкладке Inports.

  2. Для In1, установите класс памяти на ImportedExtern.

  3. Для каждого импорта выберите строку. Затем в Property Inspector, устанавливает свойство Identifier можно следующим образом:

    • Установите In1 к input1.

    • Установите In2 к input2.

    • Установите In3 к input3.

    • Установите In4 к input4.

  4. Нажмите Outports.

  5. Выберите выходной порт Out1. Затем в Property Inspector, устанавливает свойство Identifier на output.

Сгенерируйте и проверьте код

Сгенерируйте код и проверьте, что код, сгенерированный для Inport и блоков Output, появляется, как вы ожидаете. Например:

  • rtwdemo_configrpinterface_private.h включает эти объявления:

    /* Exported data declaration */
    
    /* Data with Imported storage */
    extern real_T input1;               /* '<Root>/In1' */
    extern real_T input2;               /* '<Root>/In2' */
    extern real_T input3;               /* '<Root>/In3' */
    extern real_T input4;               /* '<Root>/In4' */
  • rtwdemo_configrpinterface.h списки output как поле в структуре output ExtY_rtwdemo_configrpinterfac_T.

    /* External outputs (root outports fed by signals with default storage) */
    typedef struct {
      real_T output;                   /* '<Root>/Out1' */
    } ExtY_rtwdemo_configrpinterfac_T;
    
  • Этот фрагмент кода показывает переменную, которая представляет In2, input2, быть используемым в сгенерированной ступенчатой функции точки входа для частоты дискретизации 1 секунды.

    /* Model step function for TID1 */
    void rtwdemo_configrpinterface_step1(void) /* Sample time: [1.0s, 0.0s] */
    {
       /* Lookup_n-D: '<Root>/Table1D' incorporates:
        * Inport: '<Root>/In2'
        */
       rtwdemo_configrpinterface_B.Table1D = look1_binlcpw(input2,
       rtwdemo_configrpinterfac_ConstP.Table1D_bp01Data,
       rtwdemo_configrpinterfac_ConstP.Table1D_tableData, 10U);
    .
    .
    .
    

Связанные примеры

Параметры

Значения по умолчанию данных

Называет категорию элементов данных модели Simulink. Класс памяти, который вы устанавливаете для категории, применяется к элементам в той категории в модели.

Категория элемента моделиОписание
InportsВходные порты корневого уровня модели, такие как Inport и блоки In Bus Element.
Выходные портыВыходные порты корневого уровня модели, такие как Outport и блоки Out Bus Element.
Сигналы, состояния и внутренние данныеЭлементы данных, которые являются внутренними к модели, такими как выходные сигналы блока, дискретные состояния блока, хранилища данных и сигналы пересечения нулем.
Разделяемые локальные хранилища данныхБлоки Data Store Memory, которые имеют параметры блоков набор Share across model instances. Эти хранилища данных доступны только в модели, где они заданы. Значение хранилища данных совместно используется через экземпляры модели.
Хранилища глобальных данныхХранилища данных, которые заданы объектом сигнала в базовом рабочем пространстве или в словаре данных. Многоуровневые модели в приложении могут использовать эти хранилища данных. Чтобы просмотреть и сконфигурировать эти хранилища данных в редакторе Отображений Кода, нажмите Refresh соединитесь справа от названия категории. Нажатие на эту ссылку обновляет диаграмму модели.
Параметры моделиПараметры, которые заданы в модели, такой как параметры в рабочем пространстве модели. Исключает аргументы модели.
Внешние параметрыПараметры, которые вы задаете как объекты в базовом рабочем пространстве или в словаре данных. Многоуровневые модели в приложении могут использовать эти параметры. Чтобы просмотреть и сконфигурировать эти параметры в редакторе Отображений Кода, нажмите Refresh соединитесь справа от названия категории. Нажатие на эту ссылку обновляет диаграмму модели.

Редактор Отображений Кода представляет допустимые опции класса памяти для данной категории. Опции могут включать:

  • Незаданный класс памяти (Default). Генератор кода помещает код для категории элементов данных в стандартных структурах, таких как B_, ExtY_, ExtU_, DW_, и P_. Смотрите структуры данных в сгенерированном коде.

  • Соответствующие предопределенные классы памяти, такие как ExportedGlobal.

  • Соответствующие классы памяти в доступном пакете, такие как ImportFromFile (требует Embedded Coder®).

  • Класс памяти задал в Словаре Embedded Coder (требует Embedded Coder).

Определение (спецификация), что использование генератора кода, чтобы определить свойства, такие как внешний вид и местоположение, для кода, который это производит для элементов данных модели. Допустимыми настройками является Default, ExportedGlobal, ImportedExtern, и ImportedExternPointer. Смотрите выбирают класс памяти для управления представлением данных в сгенерированном коде.

Inports

Идентифицирует корневой блок Inport или элемент блока In Bus Element (например, InBus1.signal1) в модели. Если элемент решает к объекту данных, редактор Отображений Кода отображает решимость сигнализировать об объектном значке справа от исходного имени и разрешает настройку на основе того, является ли установкой класса памяти для элемента Auto. Если классом памяти является Auto, элемент данных принимает настройку кода, которую задает объект данных. Редактор изменяет текст отображения в столбце Storage Class к From signal object: сопровождаемый под названием класс памяти объекта данных. Если классом памяти не является Auto, элемент данных принимает настройку, которую вы задаете в редакторе Отображений Кода.

Определение, что использование генератора кода, чтобы определить свойства, такие как внешний вид и местоположение, для кода, который это производит для корневого импорта. Допустимыми настройками является Auto, Model default, ExportedGlobal, ImportedExtern, и ImportedExternPointer. Смотрите выбирают класс памяти для управления представлением данных в сгенерированном коде.

Выходные порты

Идентифицирует блок Outport корневого уровня или элемент блока Out Bus Element (например, OutBus1.signal1) в модели. Если элемент решает к объекту данных, редактор Отображений Кода отображает решимость сигнализировать об объектном значке справа от исходного имени и разрешает настройку на основе того, является ли установкой класса памяти для элемента Auto. Если классом памяти является Auto, элемент данных принимает настройку кода, которую задает объект данных. Редактор изменяет текст отображения в столбце Storage Class к From signal object: сопровождаемый под названием класс памяти объекта данных. Если классом памяти не является Auto, элемент данных принимает настройку, которую вы задаете в редакторе Отображений Кода.

Определение, что использование генератора кода, чтобы определить свойства, такие как внешний вид и местоположение, для кода, который это производит для корневого выходного порта. Допустимыми настройками является Auto, Model default, ExportedGlobal, ImportedExtern, и ImportedExternPointer. Смотрите выбирают класс памяти для управления представлением данных в сгенерированном коде.

Параметры

Идентифицирует параметр в модели. Если элемент решает к объекту данных, редактор Отображений Кода отображает твердость к значку объекта параметра справа от исходного имени и разрешает настройку на основе того, является ли установкой класса памяти для элемента Auto. Если классом памяти является Auto, элемент данных принимает настройку кода, которую задает объект данных. Редактор изменяет текст отображения в столбце Storage Class к From parameter object: сопровождаемый под названием класс памяти объекта данных. Если классом памяти не является Auto, элемент данных принимает настройку, которую вы задаете в отображениях кода.

Типы элементов параметра перечислены в этой таблице.

Тип элемента параметраОписание
Параметр моделиПараметр, который задан в модели, такой в качестве параметра в рабочем пространстве модели. Исключает аргументы модели.
Внешний параметрПараметр, который вы задаете как объект в базовом рабочем пространстве или в словаре данных. Многоуровневые модели в приложении могут использовать эти параметры. Эта группировка параметров появляется в редакторе, только если модель использует такой элемент. Чтобы просмотреть и сконфигурировать эти параметры в редакторе Отображений Кода, нажмите Refresh соединитесь справа от названия категории. Нажатие на эту ссылку обновляет диаграмму модели.

Определение, что использование генератора кода, чтобы определить свойства, такие как внешний вид и местоположение, для кода, который это производит для параметра. Для внешних параметров, после того, как вы нажимаете Refresh соединитесь справа от названия категории, скомпилированный класс памяти (например, класс памяти, сконфигурированный для внешнего параметра), появляется на правой стороне столбца Storage Class. Допустимыми настройками является Auto, Model default, ExportedGlobal, ImportedExtern, и ImportedExternPointer. Смотрите выбирают класс памяти для управления представлением данных в сгенерированном коде.

Хранилища данных

Идентифицирует хранилище данных в модели. Если элемент решает к объекту данных, редактор Отображений Кода отображает решимость сигнализировать об объектном значке справа от исходного имени и разрешает настройку на основе того, является ли установкой класса памяти для элемента Auto. Если классом памяти является Auto, элемент данных принимает настройку кода, которую задает объект данных. Редактор изменяет текст отображения в столбце Storage Class к From signal object: сопровождаемый под названием класс памяти объекта данных. Если классом памяти не является Auto, элемент данных принимает настройку, которую вы задаете в отображениях кода.

Типы элементов хранилища данных перечислены в этой таблице.

Тип элемента хранилища данныхОписание
Локальное хранилище данныхХранилище данных, которое доступно отовсюду в иерархии модели, которая является в или ниже уровня, на котором вы задаете хранилище данных. Можно задать локальное хранилище данных графически в модели включением блока Data Store Memory или путем создания объекта сигнала (синтезируемое хранилище данных) в рабочем пространстве модели.
Разделяемое локальное хранилище данныхБлок Data Store Memory, который имеет параметры блоков набор Share across model instances. Эти хранилища данных доступны только в модели, где они заданы. Значение хранилища данных совместно используется через экземпляры модели. Эта группировка хранилищ данных появляется в редакторе, только если такой элемент существует в модели.
Хранилище глобальных данныхХранилище данных, которое задано объектом сигнала в базовом рабочем пространстве или в словаре данных. Многоуровневые модели в приложении могут использовать эти хранилища данных. Эти хранилища данных не конфигурируемы в отображениях кода. После того, как вы нажмете кнопку Обновить, они появляются в редакторе Отображений Кода в состоянии только для чтения для просмотра или учета целей. Эта группировка хранилищ данных появляется в редакторе, только если модель использует такой элемент. Чтобы просмотреть и сконфигурировать эти хранилища данных в редакторе Отображений Кода, нажмите Refresh соединитесь справа от названия категории. Нажатие на эту ссылку обновляет диаграмму модели.

Имена локальных и совместно использованных локальных хранилищ данных появляются в формате block-name: data-store-name.

В зависимости от того, как элемент хранилища данных представлен и сконфигурирован в модели, локальной, и совместно использовал локальные хранилища данных, может решить к объекту сигнала в рабочем пространстве модели, базирующейся рабочей области или словаре данных. Хранилища глобальных данных решают к объекту сигнала в базовом рабочем пространстве или словаре данных.

Определение, что использование генератора кода, чтобы определить свойства, такие как внешний вид и местоположение, для кода, который это производит для хранилища данных. Для хранилищ глобальных данных, после того, как вы нажимаете Refresh соединитесь справа от названия категории, скомпилированный класс памяти (например, класс памяти, сконфигурированный для хранилища глобальных данных), появляется на правой стороне столбца Storage Class. Допустимыми настройками является Auto, Model default, ExportedGlobal, ImportedExtern, и ImportedExternPointer. Смотрите выбирают класс памяти для управления представлением данных в сгенерированном коде.

Соедините это, можно щелкнуть, чтобы подсветить хранилище данных в диаграмме модели.

Сигналы/Состояния

Идентифицирует сигнальную линию или состояние в модели. Если элемент решает к объекту данных, редактор Отображений Кода отображает значок твердости, "чтобы сигнализировать об объекте" справа от исходного имени и разрешает настройку на основе того, является ли установкой класса памяти для элемента Auto. Если классом памяти является Auto, элемент данных принимает настройку кода, которую задает объект данных. Редактор изменяет текст отображения в столбце Storage Class к From signal object: сопровождаемый под названием класс памяти объекта данных. Если классом памяти не является Auto, элемент данных принимает настройку, которую вы задаете в редакторе Отображений Кода.

Редактор Отображений Кода списки:

  • Названные сигналы и состояния при помощи имени элемента данных

  • Сигналы без имени при помощи формата source-block: port-number

  • Состояния использовали в нескольких блоках при помощи формата block-name: state-name

Чтобы сконфигурировать отдельную сигнальную линию в редакторе Отображений Кода для модели, сначала необходимо добавить сигнал в отображения. Смотрите Конфигурируют Данные сигнала для генерации кода C.

Определение, что использование генератора кода, чтобы определить свойства, такие как внешний вид и местоположение, для кода, который это производит для сигнальной линии или состояния. Допустимыми настройками является Auto, Model default, ExportedGlobal, ImportedExtern, и ImportedExternPointer. Смотрите выбирают класс памяти для управления представлением данных в сгенерированном коде.

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

Введенный в R2020b