Отделение определений кода от специфичных для модели данных и функциональных Строений

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

Используя Embedded Coder Dictionary для определения вашего кода, можно:

  • Создание, хранение и ведение спецификаций для вашего сгенерированного кода в одном месте.

  • Примените определения кода в отображении по умолчанию для вашей модели.

  • Сконфигурируйте код для многих различных элементов в вашей модели.

  • Выберите способ применения определений с гибкостью.

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

  • Используйте одну модель, чтобы сгенерировать код, который сконфигурирован по-разному для различных вычислительных платформ.

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

Когда вы создаете определения кода в словаре Embedded Coder, вы можете управлять спецификациями для вашего сгенерированного кода в одном месте. Вам не нужно задавать индивидуальные настройки кода для каждого отдельного элемента данных или функции, которые вы хотите сконфигурировать. Указав код в словаре Embedded Coder, можно:

  • Просмотрите и сравните определения кода и их свойства.

  • Найдите и исправьте спецификации кода, которые не соответствуют требованиям.

  • Быстро измените многие определения кода при изменении стандартов интерфейса программного обеспечения.

Применение определений к элементам модели с гибкостью

Хранение определений кода в словаре дает вам гибкость в применении определений к вашей модели, потому что определения кода в словаре являются отдельными от элементов вашей модели. Сконфигурируйте элементы данных и функции в модели, сопоставив их с определениями кода. Когда вы сопоставляете элемент с определением кода, код, сгенерированный для этого элемента, отражает спецификации в определении кода. Чтобы сопоставить элементы модели с определениями кода, используйте Code Mappings editor. Можно применить определение кода к одному элементу модели или ко многим элементам модели.

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

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

Сгенерируйте стандартизированный код из нескольких моделей

Отделение определений кода от вашей модели означает, что вы можете стандартизировать код, сгенерированный из многих моделей, используя один набор определений кода. Поскольку определения в вашем словаре Embedded Coder Dictionary отделены от элементов модели, можно совместно использовать определения, храня словарь Embedded Coder в словаре данных Simulink вне вашей модели. Рисунок показывает пример двух моделей, разделяющих словарь. На рисунке:

  • modelA.slx и modelB.slx являются отдельными моделями, которые генерируют код.

  • Каждая модель связана с Simulink® словарь данных, в этом случае словари modelA.sldd и modelB.sldd.

  • Отдельный словарь данных Simulink, CodeDefinitions.sldd, содержит код определения интерфейсов.

  • Словари для моделей, modelA.sldd и modelB.sldd, ссылка на словарь CodeDefinitions.sldd.

  • Для modelA и modelBкатегории элементов модели сопоставлены с определениями кода в CodeDefinitions.sldd. Обе модели генерируют код, который отражает спецификации в определениях.

Model A linked to Dictionary A and model B linked to Dictionary B. Dictionary A and Dictionary B linked to the dictionary CodeDefinitions.sldd

Чтобы хранить определения кода в общем словаре данных Simulink:

  1. Создайте автономный словарь данных Simulink. В этом словаре создайте определения кода для совместного использования с несколькими моделями.

  2. Из каждой модели, с которой вы хотите поделиться определениями кода, создайте и соедините словарь данных Simulink для проекта данных конкретной модели.

  3. Из каждого словаря данных для модели обратитесь к словарю, который содержит определения общего кода.

Для моделей, связанных со словарем, можно сконфигурировать отображение по умолчанию. В общем словаре Embedded Coder Dictionary, таком как CodeDefinitions.slddможно задать определение кода по умолчанию словаря для категории данных моделей или функций. Модели, которые связаны со словарем, используют определение по умолчанию для генерации кода для связанной категории данных или функций. Определения кодовых интерфейсов можно применить к связанным моделям по умолчанию, не изменяя отдельные модели.

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

Сгенерируйте код для других платформ

Путем отделения определений кода от данных проекта, можно сгенерировать код для других платформ из одной и той же иерархии модели или модели. Для каждой платформы:

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

  • Модели сопоставляют элементы модели с определениями в словаре для платформы.

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

Для примера можно совместно использовать словарь Embedded Coder Dictionary с моделями для встроенной целевой платформы в реальном времени (ERT). Для каждой из моделей выполните ведение отдельного словаря AUTOSAR с определениями для платформы AUTOSAR. Чтобы сконфигурировать модели для платформы ERT:

  1. Задайте для моделей системный целевой файл на основе ERT.

  2. Создайте определения интерфейса кода в общем словаре Embedded Coder.

  3. Для каждой модели в редакторе Code Mappings сопоставьте категории элементов модели и отдельных элементов модели с определениями в словаре Embedded Coder.

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

Чтобы сконфигурировать модели для целевого объекта генерации кода AUTOSAR:

  1. Укажите системный целевой файл на основе AUTOSAR.

  2. Создайте определения кода в словарях AUTOSAR.

  3. В редакторе Отображения сопоставьте элементы модели и категории с определениями в словаре AUTOSAR.

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

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

Похожие темы