Сконфигурируйте генерацию кода AUTOSAR

Сгенерировать AUTOSAR-совместимый код С и описания компонента ARXML из модели, сконфигурированной для Классической Платформы AUTOSAR:

  1. В диалоговом окне Configuration Parameters, на Code Generation> панель AUTOSAR Code Generation Options, конфигурируют параметры генерации кода AUTOSAR.

  2. Сконфигурируйте опции экспорта AUTOSAR XML при помощи функций свойства AUTOSAR Dictionary или AUTOSAR.

  3. Создайте модель.

Выберите AUTOSAR Schema

Для импорта и экспорта файлов ARXML и генерации AUTOSAR-совместимого кода С, программное обеспечение поддерживает следующие Классические версии схемы Платформы AUTOSAR.

Значение версии схемыВерсии схемы, поддержанные для импортаЭкспортируйте версию схемы
4.44.4.04.4.0
4.3 (значение по умолчанию)4.3.0, 4.3.14.3.1
4.24.2.1, 4.2.24.2.2
4.14.1.1, 4.1.2, 4.1.34.1.3
4.04.0.1, 4.0.2, 4.0.34.0.3

Выбор системного конечного файла AUTOSAR для вашей модели впервые устанавливает параметр версии схемы на значение по умолчанию, 4.3.

Если вы импортируете файлы ARXML в Simulink®, средство импорта ARXML обнаруживает версию схемы и устанавливает параметр версии схемы в модели. Например, если вы импортируете файлы ARXML на основе версии схемы 4.3 4.3.0 или 4.3.1, средство импорта устанавливает параметр версии схемы на 4.3.

Когда вы создаете модель AUTOSAR, генератор кода экспортирует описания ARXML и генерирует код С, которые выполняют текущую версию схемы. Например, если Generate XML file for schema version (Embedded Coder) равняется 4.3, экспорт использует версию схемы экспорта, упомянутую выше для схемы 4.3, то есть, версия 4.3.1.

Прежде, чем экспортировать ваш компонент программного обеспечения AUTOSAR, проверяйте выбранную версию схемы. Если необходимо изменить выбранную версию схемы, используйте параметр конфигурации модели Generate XML file for schema version.

Примечание

Установите параметры конфигурации модели AUTOSAR на те же значения для главных и моделей, на которые ссылаются. Эта инструкция применяется к Generate XML file for schema version (Embedded Coder), Maximum SHORT-NAME length (Embedded Coder), Use AUTOSAR compiler abstraction macros (Embedded Coder) и Support root-level matrix I/O using one-dimensional arrays (Embedded Coder).

Задайте максимальную длину КРАТКОГО НАЗВАНИЯ

Стандарт AUTOSAR указывает что максимальная длина SHORT-NAME Элементами XML являются 128 символов.

Задавать максимальную длину для SHORT-NAME элементы экспортированы генератором кода, набор параметр конфигурации модели Maximum SHORT-NAME length (Embedded Coder) к целочисленному значению между 32 и 128, включительно. Значением по умолчанию являются 128 символов.

Сконфигурируйте макросы абстракции компилятора AUTOSAR

Компиляторы для 16-битных платформ (например, Cosmic и Metrowerks для S12X или Определяющий задачу для ST10) используют специальные ключевые слова, чтобы иметь дело с ограниченной 16-битной областью значений обращения. Местоположение данных и кода вне границы 64k выбрано явным образом специальными ключевыми словами. Однако, если такие ключевые слова используются непосредственно в рамках исходного кода, то программное обеспечение должно быть портировано отдельно для каждого семейства микроконтроллеров. Таким образом, программное обеспечение не платформенно независимо.

AUTOSAR задает макросы C, чтобы абстрагировать директивы компилятора (близкие/далекие вызовы памяти) платформенно независимым способом. Эти директивы компилятора, выведенные из 16-битных платформ, включают лучшие КПД кода для 16-битных микроконтроллеров без отдельного портирования исходного кода для каждого компилятора. Этот подход позволяет вашего системного интегратора, а не ваше лицо, осуществляющее внедрение компонента программного обеспечения, чтобы выбрать местоположение данных и кода для каждого компонента программного обеспечения.

Для получения дополнительной информации об абстракции компилятора AUTOSAR смотрите www.autosar.org.

Чтобы включить генерацию макроса компилятора AUTOSAR, выберите параметр конфигурации модели Use AUTOSAR compiler abstraction macros (Embedded Coder).

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

Для данных макросы находятся в следующей форме:

  • CONST (consttype, memclassvarName ;

  • Vartype, memclassvarName ;

где

  • consttype и type типы данных

  • memclass макро-строка SWCvar (SWC идентификатор компонента программного обеспечения),

  • varname идентификатор переменной

Для функций (модель и подсистема), макросы находятся в следующей форме:

  • FUNC (type, memclass) funcname (пусто)

где

  • type тип данных возвращаемого аргумента

  • memclass макро-строка. Этой строкой может быть любой SWC_CODE для runnables (внешние функции), или SWC_CODE_LOCAL для внутренних функций (SWC идентификатор компонента программного обеспечения).

Если вы не выбираете Use AUTOSAR compiler abstraction macros, генератор кода производит следующий код:

/* Block signals (auto storage) */
BlockIO rtB;

/* Block states (auto storage) */
D_Work rtDWork;

/* Model step function */
void Runnable_Step(void)

Однако, если вы выбираете Use AUTOSAR compiler abstraction macros, генератор кода производит макросы в коде:

/* Block signals (auto storage) */
VAR(BlockIO, SWC1_VAR) rtB;

/* Block states (auto storage) */
VAR(D_Work, SWC1_VAR) rtDWork;

/* Model step function */
FUNC(void, SWC1_CODE) Runnable_Step(void)

Матричный ввод-вывод корневого уровня

Для модели компонента AUTOSAR с многомерными массивами, если вы устанавливаете размещение параметра конфигурации Массивов модели (Simulink Coder) на Row-major, можно сохранить размерности многомерных массивов в сгенерированном коде C. Сохранение измерений массива в сгенерированном коде может улучшить интеграцию кода.

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

По умолчанию, для Column-major размещение массивов, программное обеспечение не позволяет матричный ввод-вывод на корневом уровне. Создавание модели генерирует ошибку. Чтобы включить матричный ввод-вывод корневого уровня, выберите параметр конфигурации модели Support root-level matrix I/O using one-dimensional arrays (Embedded Coder).

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

Смотрите опции AUTOSAR XML

Исследуйте опции XML, которые вы сконфигурировали при помощи Словаря AUTOSAR. Если вы еще не сконфигурировали их, смотрите, Конфигурируют Опции AUTOSAR XML.

Сгенерируйте AUTOSAR C и XML-файлы

После конфигурирования генерации кода AUTOSAR и опций XML, сгенерируйте код. Чтобы сгенерировать код С и экспортировать XML-описания, создайте модель компонента.

Процесс сборки генерирует AUTOSAR-совместимый код С и XML-описания AUTOSAR к папке сборки модели. Экспортируемые XML-файлы включают:

  • Один или несколько modelname*.arxml файлы, на основе того, устанавливаете ли вы Exported XML file packaging на Single file или Modular.

  • Если вы импортировали файлы ARXML в Simulink, обновленные версии тех же файлов.

Эта таблица приводит modelname*.arxml файлы, которые сгенерированы на основе значения опции Exported XML file packaging, сконфигурированной в Словаре AUTOSAR.

Экспортируемый XML-файл упаковочное значениеЭкспортируемое имя файлаПо умолчанию содержит...
Single filemodelname.arxmlЭлементы AUTOSAR для компонентов программного обеспечения, типов данных, реализации, интерфейсов и синхронизации.
Modularmodelname_component.arxml

Компоненты программного обеспечения, включая:

  • Порты

  • События

  • Runnables

  • Межвыполнимые переменные (IRVs)

  • Включенные наборы типа данных

  • Ограниченные по объему компонентом параметры и переменные

Это - основной файл ARXML, экспортируемый для модели Simulink. В дополнение к компонентам программного обеспечения файл компонента содержит packageable элементы, которые средство экспорта не перемещает в тип данных, реализацию, интерфейс или файлы синхронизации на основе категории элемента AUTOSAR.

modelname_datatype.arxml

Типы данных и связанные элементы, включая:

  • Типы данных приложения

  • Базовые типы программного обеспечения

  • Наборы отображения типа данных

  • Постоянные технические требования

  • Физические ограничения данных

  • Системные константы

  • Методы адреса программного обеспечения

  • Группы объявления режима

  • Методы расчета

  • Модули и модульные группы

  • Размещения записи программного обеспечения

  • Внутренние ограничения данных

modelname_implementation.arxmlРеализация компонента программного обеспечения, включая дескрипторы кода.
modelname_interface.arxmlИнтерфейсы, включая S-R, C-S, M-S, NV, параметр и триггерные интерфейсы. Интерфейсы включают специфичные для типа элементы, такие как элементы данных S-R, операции C-S, основанные на порте параметры или триггеры.
modelname_timing.arxmlСинхронизация модели, включая выполнимые ограничения порядка выполнения.

Можно объединить описания компонента XML AUTOSAR назад в инструмент разработки AUTOSAR. Информация компонента AUTOSAR разделена в отдельные файлы, чтобы упростить слияние. Разделение пытается минимизировать количество слияний, которые необходимо сделать. Вы не должны объединять файл типа данных в инструмент разработки, потому что типы данных обычно задаются рано в процессе проектирования. Необходимо, однако, объединить внутренний файл поведения, потому что этой информацией является часть реализации модели.

Чтобы помочь поддержать цикл обработки элементов AUTOSAR между Инструментом разработки AUTOSAR (AAT) и средой модельно-ориентированного проектирования Simulink, генератор кода сохраняет элементы AUTOSAR и их универсальные уникальные идентификаторы (UUIDs) через импорт и экспорт ARXML. Для получения дополнительной информации смотрите Сохранение Туда и обратно Структуры XML-файла AUTOSAR и Информации об элементе.

Для примера того, как сгенерировать AUTOSAR-совместимый код С и экспортировать описания компонента XML AUTOSAR из модели Simulink, смотрите, Генерируют код С AUTOSAR и XML-описания.

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

(Embedded Coder) | (Embedded Coder) | (Embedded Coder) | (Embedded Coder)

Связанные примеры

Больше о