Код отображений отделить строения генерации кода от проектов модели. Это разделение позволяет вам проектировать модели, которые являются нейтральными для платформы и готовы к развертыванию в различных окружениях во время выполнения. Если у вас есть доступ к необходимым продуктам, можно связать модель с отображениями кода для нескольких других платформ.
Платформа | Системный целевой файл | Язык программирования | Требуемые продукты |
---|---|---|---|
Быстрое прототипирование C | На основе GRT | C | Simulink® Coder™ |
Производство C | На основе ERT | C | Embedded Coder® |
AUTOSAR классический | АВТО-РСА | C | AUTOSAR Blockset, Embedded Coder (для генерации кода) |
Адаптивная система AUTOSAR | Адаптивная система AUTOSAR | C++ | AUTOSAR Blockset, Embedded Coder (для генерации кода) |
Можно сгенерировать код для других платформ из иерархии модели или модели. Связать модели в иерархии модели с той же платформой.
Simulink активирует существующее отображение кода, когда вы делаете одно из следующего:
В Редактора Simulink откройте приложение кодера для модели и укажите тип выхода, который поддерживает отображения кода.
Используйте API отображения кода, чтобы создать отображение кода.
Интерфейс программирования Code Mappings editor и отображений кода отображает и работает с отображением активного кода.
Можно сконфигурировать альтернативные отображения кода для модели, создав несколько наборы конфигурации модели и изменив, какая конфигурация модели является активным. 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 |
Активируйте интересующий вас набор настроек. Затем откройте соответствующие преобразования кода в Редактор, как описано в Activate Code Mappings в Simulink Editor или API отображения кода в Create and Activate Code Mappings Programmatic.
Когда вы открываете модель в Редактор, 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.
Настройте несколько объектов набора конфигурации модели (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);
Активируйте и создайте отображение кода для одного из конфигураций модели путем вызова 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 Dictionary, чтобы сгенерировать стандартизированный код из нескольких моделей. Поскольку определения в словаре Embedded Coder для модели отделены от элементов модели, можно поделиться определениями, храня словарь Embedded Coder в словаре данных Simulink вне вашей модели. См. Отделение определений кода от специфичных для модели данных и строений функций (Embedded Coder).
Редактор отображений кода | coder.mapping.api.CodeMapping
| setActiveConfigSet
| Simulink.ConfigSet