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

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

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

Можно сгенерировать код для других платформ от иерархии модели или иерархии модели. Сопоставьте модели в иерархии модели с той же платформой.

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

  • В Редакторе Simulink откройте приложение кодера для модели и задайте выходной тип, который поддерживает отображения кода.

  • Используйте API отображений кода, чтобы создать отображение кода.

Code Mappings Editor и API отображений кода отображаются и работают с активным отображением кода.

Сконфигурируйте альтернативные отображения кода при помощи конфигураций модели

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

  • System target file

  • Language

  • Code interface packaging

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

ПлатформаСистемный конечный файлЯзыкУпаковка интерфейса кода
C быстрое прототипированиеgrt.tlc или производная grt.tlcC Nonreusable function или Reusable function
C производствоert.tlc или производная ert.tlcC Nonreusable function или Reusable function
Классика AUTOSARautosar.tlcC Nonreusable function или Reusable function
Адаптивный AUTOSARautosar_adaptive.tlcC++C++ class

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

Активируйте отображения кода в редакторе Simulink

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

  • System target file

  • Language

  • Code interface packaging

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

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

  • Embedded Coder (основанный на ERT системный конечный файл)

  • AUTOSAR Component Designer (системный конечный файл AUTOSAR)

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

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

После того, как приложение кодера открывается, на панели инструментов, для Output, выберите установку кода С или, для AUTOSAR, выберите одну из платформ AUTOSAR. Затем используйте меню Code Interface, чтобы открыть редактор Отображений Кода.

Создайте и активируйте отображения кода программно

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

  1. Настройте объекты конфигурации модели многоуровневой модели (Simulink.ConfigSet) для модели. Например, вы можете настроить GRT и настройки кода С ERT или две настройки кода 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, можно использовать Словарь Embedded Coder, чтобы сгенерировать стандартизированный код от многоуровневых моделей. Поскольку определения в Словаре Embedded Coder для модели являются отдельными от ваших элементов модели, можно совместно использовать определения путем хранения Словаря Embedded Coder в словаре данных Simulink за пределами модели. Смотрите Разделение Определений Кода из Данных Модели специфичных и Функциональных Настроек (Embedded Coder).

Смотрите также

| | |

Похожие темы