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

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

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

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

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

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

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

Интерфейс программирования Code Mappings editor и отображений кода отображает и работает с отображением активного кода.

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

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

  • System target file

  • Language

  • Code interface packaging

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

ПлатформаСистемный целевой файлЯзыкУпаковка интерфейса кода
Быстрое прототипирование 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

Активируйте интересующий вас набор настроек. Затем откройте соответствующие преобразования кода в Редактор, как описано в Activate Code Mappings в Simulink Editor или API отображения кода в Create and Activate Code Mappings Programmatic.

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

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

  • System target file

  • Language

  • Code interface packaging

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

  • 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 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, можно использовать Embedded Coder Dictionary, чтобы сгенерировать стандартизированный код из нескольких моделей. Поскольку определения в словаре Embedded Coder для модели отделены от элементов модели, можно поделиться определениями, храня словарь Embedded Coder в словаре данных Simulink вне вашей модели. См. Отделение определений кода от специфичных для модели данных и функциональных Строений.

См. также

| | |

Похожие темы