Отображения кода разделяют настройки генерации кода от проектов модели. Это разделение позволяет моделям проекта, которые независимы от платформы и готовы развернуться к различным средам выполнения. Если у вас есть доступ к необходимым продуктам, можно сопоставить модель с отображениями кода для нескольких других платформ.
Платформа | Системный конечный файл | Язык программирования | Необходимые продукты |
---|---|---|---|
C быстрое прототипирование | Основанный на GRT | C | Simulink® Coder™ |
C производство | Основанный на ERT | C | Embedded Coder® |
Классика AUTOSAR | AUTOSAR | C | AUTOSAR Blockset, Embedded Coder (для генерации кода) |
Адаптивный AUTOSAR | Адаптивный AUTOSAR | C++ | AUTOSAR Blockset, Embedded Coder (для генерации кода) |
Можно сгенерировать код для других платформ от иерархии модели или иерархии модели. Сопоставьте модели в иерархии модели с той же платформой.
Simulink активирует существующее отображение кода, когда вы выполняете одно из следующих действий:
В Редакторе Simulink откройте приложение кодера для модели и задайте выходной тип, который поддерживает отображения кода.
Используйте API отображений кода, чтобы создать отображение кода.
Code Mappings Editor и API отображений кода отображаются и работают с активным отображением кода.
Можно сконфигурировать альтернативные отображения кода для модели путем создания конфигураций модели многоуровневой модели и изменения, какая конфигурация модели активна. Simulink создает или открывает существующее отображение кода для основанного на модели на настройках этих параметров конфигурации модели:
System target file
Language
Code interface packaging
Создайте конфигурацию модели для каждой платформы, для которой вы хотите сгенерировать код для модели. Отображения кода поддерживаются для этих комбинаций установок параметров.
Платформа | Системный конечный файл | Язык | Упаковка интерфейса кода |
---|---|---|---|
C быстрое прототипирование | grt.tlc или производная grt.tlc | C | Nonreusable function или Reusable function |
C производство | ert.tlc или производная ert.tlc | C | Nonreusable function или Reusable function |
Классика AUTOSAR | autosar.tlc | C | Nonreusable function или Reusable function |
Адаптивный AUTOSAR | autosar_adaptive.tlc | C++ | C++ class |
Активируйте конфигурацию модели интереса. Затем откройте соответствующие отображения кода в Редакторе Simulink, как описано в Активируют Отображения Кода в Редакторе Simulink, или API отображений кода в Создают и Активируют Отображения Кода Программно.
Когда вы открываете модель в Редакторе 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 платформы модели.
Настройте объекты конфигурации модели многоуровневой модели (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);
Активируйте и создайте отображение кода для одной из конфигураций модели путем вызова setActiveConfigSet
и coder.mapping.utils.create
.
setActiveConfigSet('myModel','grtConfig'); grt_cm = coder.mapping.utils.create('myModel');
Активируйте и создайте отображение кода для второй конфигурации модели.
setActiveConfigSet('myModel','ertConfig') ert_cm = coder.mapping.utils.create('myModel');
Активируйте отображения типового кодекса при помощи вызовов 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 в словаре данных Simulink за пределами модели. Смотрите Разделение Определений Кода из Данных Модели специфичных и Функциональных Настроек.
Редактор отображений кода | coder.mapping.api.CodeMapping
| setActiveConfigSet
| Simulink.ConfigSet