exponenta event banner

Управление сопоставлениями нескольких кодов для модели

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

ПлатформаСистемный целевой файлЯзык программированияНеобходимые продукты
Быстрое создание прототипов CНа основе GRTCSimulink ® Coder™
Производство CНа основе ERTCВстроенный кодер ®
AUTOSAR классический AUTOSARCБлок AUTOSAR, встроенный кодер (для создания кода)
Адаптивность AUTOSARАдаптивность AUTOSARC++Блок AUTOSAR, встроенный кодер (для создания кода)

Из иерархии модели или модели можно создать код для различных платформ. Связать модели в иерархии моделей с одной и той же платформой.

Simulink активирует существующее сопоставление кода при выполнении одного из следующих действий.

  • В редакторе Simulink откройте приложение кодера для модели и укажите тип вывода, поддерживающий сопоставления кода.

  • Используйте API сопоставления кода для создания сопоставления кода.

Редактор сопоставлений кода и интерфейс программирования сопоставлений кода отображают и работают над отображением активного кода.

Настройка сопоставлений альтернативных кодов с помощью наборов конфигурации

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

  • Системный целевой файл

  • Язык

  • Упаковка интерфейса кода

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

ПлатформаСистемный целевой файлЯзыкУпаковка интерфейса кода
Быстрое создание прототипов Cgrt.tlc или производное от grt.tlcC Nonreusable function или Reusable function
Производство Cert.tlc или производное от ert.tlcC Nonreusable function или Reusable function
AUTOSAR классическийautosar.tlcC Nonreusable function или Reusable function
Адаптивность AUTOSARautosar_adaptive.tlcC++C++ class

Активируйте интересующий набор конфигурации. Затем откройте соответствующие сопоставления кода в редакторе Simulink Editor, как описано в разделе Активация сопоставлений кода в редакторе Simulink или API сопоставлений кода в разделе Программное создание и активация сопоставлений кода.

Активация сопоставлений кода в редакторе Simulink

При открытии модели в редакторе Simulink Simulink активирует существующее сопоставление кода для модели на основе настроек следующих параметров конфигурации модели:

  • Системный целевой файл

  • Язык

  • Упаковка интерфейса кода

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

  • Simulink Coder (системный целевой файл на основе GRT)

  • Встроенный кодер (целевой файл системы на основе ERT)

  • Конструктор компонентов AUTOSAR (системный целевой файл AUTOSAR)

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

Если текущий целевой системный файл совпадает с выбранным приложением кодера, Simulink открывает приложение кодера и добавляет вкладку кода (например, C Code или AUTOSAR) на панель инструментов редактора.

После открытия приложения кодера на панели инструментов для параметра «Вывод» выберите параметр кода C или для параметра AUTOSAR выберите одну из платформ AUTOSAR. Затем с помощью меню Интерфейс кода (Code Interface) откройте редактор Сопоставления кода (Code Mappings).

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

Можно использовать функции сопоставления кодов. coder.mapping.utils.create и coder.mapping.api.get создание и активация сопоставлений кодов для платформ моделей на основе GRT и ERT.

  1. Настройка нескольких объектов набора конфигурации модели (Simulink.ConfigSet) для модели. Например, можно настроить конфигурации кодов GRT и ERT C или две конфигурации кодов ERT, одна для генерации многократно используемых функций и другая для генерации неиспользуемых функциональных кодов. Назовите наборы конфигурации и присоедините их к модели.

    grtConfigObj = Simulink.ConfigSet;
    set_param(grtConfigObj,'Name','grtConfig');
    attachConfigSet('myModel',grtConfigObj);
    
    ertConfigObj = Simulink.ConfigSet;
    set_param(ertConfigObj,'Name','ertConfig');
    attachConfigSet('myModel',ertConfigObj);
    
  2. Активация и создание сопоставления кода для одного из наборов конфигурации путем вызова setActiveConfigSet и coder.mapping.utils.create.

    setActiveConfigSet('myModel','grtConfig');
    grt_cm = coder.mapping.utils.create('myModel');
    
  3. Активируйте и создайте сопоставление кода для второго набора конфигурации.

    setActiveConfigSet('myModel','ertConfig')
    ert_cm = coder.mapping.utils.create('myModel');
    
  4. Активировать сопоставления кода модели с помощью вызовов coder.mapping.api.get которые определяют тип отображения кода, SimulinkCoderC или EmbeddedCoderC.

    grt_cm = coder.mapping.api.get('myModel','SimulinkCoderC');
    .
    .
    .
    # Configure model data elements
    .
    .
    ..
    ert_cm = coder.mapping.api.get('myModel','EmbeddedCoderC');

Сопоставления кода и словарь встроенного кодера

Если имеется Embedded Coder, можно использовать Embedded Coder Dictionary для создания стандартизированного кода из нескольких моделей. Поскольку определения в словаре встроенного кодера для модели отделены от элементов модели, можно совместно использовать определения, сохранив словарь встроенного кодера в словаре данных Simulink вне модели. См. раздел Отделение определений кода от специфичных для модели данных и конфигураций функций.

См. также

| | |

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