exponenta event banner

Настройка генерации кода AUTOSAR

Чтобы создать код C и описания компонентов ARXML, совместимые с AUTOSAR, из модели, настроенной для классической платформы AUTOSAR:

  1. В диалоговом окне «Параметры конфигурации» на панели «Создание кода» > «Параметры создания кода AUTOSAR» настройте параметры создания кода AUTOSAR.

  2. Настройте параметры экспорта AUTOSAR XML с помощью функций AUTOSAR Dictionary или AUTOSAR property.

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

Выбор схемы AUTOSAR

Для импорта и экспорта файлов ARXML и создания кода C, совместимого с AUTOSAR, программное обеспечение поддерживает следующие версии схемы AUTOSAR Classic Platform.

Значение версии схемыВерсии схемы, поддерживаемые для импортаЭкспорт версии схемы
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.0 или 4.3.1 схемы 4.3 импортер устанавливает для параметра версии схемы значение4.3.

При построении модели AUTOSAR генератор кода экспортирует описания ARXML и генерирует код C, соответствующий текущей версии схемы. Например, если параметр «Создать XML-файл для версии схемы» (Embedded Coder) равен 4.3, export использует указанную выше версию схемы экспорта для схемы 4.3, то есть версию 4.3.1.

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

Примечание

Задайте для параметров конфигурации модели AUTOSAR одинаковые значения для моделей верхнего уровня и ссылочных моделей. Это правило применяется к формату XML-файла для версии схемы (Embedded Coder), максимальной длины SHORT-NAME (Embedded Coder), использования макросов абстракции компилятора AUTOSAR (Embedded Coder) и поддержки матричного ввода-вывода корневого уровня с помощью одномерных массивов (Embedded Coder).

Укажите максимальную длину SHORT-NAME

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

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

Настройка макросов абстракции компилятора AUTOSAR

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

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

Дополнительные сведения об абстракции компилятора AUTOSAR см. в разделе www.autosar.org.

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

При построении модели программа применяет макросы абстракции компилятора к глобальным данным и определениям функций в сгенерированном коде.

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

  • CONST(consttype, memclass) varname;

  • VAR(type, memclass) varname;

где

  • consttype и type являются типами данных

  • memclass является строкой макроса SWC_VAR (SWC - идентификатор компонента программного обеспечения)

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

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

  • FUNC(type, memclass) funcname(void)

где

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

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

Если не выбрать Использовать абстрактные макросы компилятора AUTOSAR, генератор кода создаст следующий код:

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

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

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

Однако если выбрать Использовать абстрактные макросы компилятора AUTOSAR, генератор кода создаст макросы в коде:

/* 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 с многомерными массивами, если для параметра конфигурации модели Array layout (Simulink Coder) задано значение Row-major, можно сохранить размеры многомерных массивов в сгенерированном коде C. Сохранение размеров массива в сгенерированном коде может улучшить интеграцию кода.

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

По умолчанию для Column-major макет массива, программное обеспечение не допускает матричный ввод-вывод на корневом уровне. При построении модели возникает ошибка. Чтобы включить ввод-вывод матрицы корневого уровня, выберите параметр конфигурации модели Поддержка ввода-вывода матрицы корневого уровня с помощью одномерных массивов (Embedded Coder).

Если для параметра «Макет массива» задано значение Row-major, Поддержка матричных операций ввода-вывода на корневом уровне с использованием одномерных массивов не имеет эффекта.

Проверка параметров AUTOSAR XML

Проверьте параметры XML, настроенные с помощью словаря AUTOSAR. Если они еще не настроены, см. раздел Настройка параметров AUTOSAR XML.

Создание файлов AUTOSAR C и XML

После настройки генерации кода AUTOSAR и параметров XML создайте код. Для создания кода C и экспорта XML-описаний создайте модель компонента.

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

  • Один или несколько modelname*.arxml файлы, в зависимости от того, задано ли для параметра Экспортированная упаковка XML-файлов значение Single file или Modular.

  • При импорте файлов ARXML в Simulink обновляются версии тех же файлов.

В этой таблице перечислены modelname*.arxml файлы, создаваемые на основе значения параметра упаковки экспортированных XML-файлов, настроенного в словаре AUTOSAR.

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

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

  • Порты

  • События

  • Runnables

  • Межпроходные переменные (IRV)

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

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

Это основной файл ARXML, экспортируемый для модели Simulink. В дополнение к компонентам программного обеспечения файл компонентов содержит упакованные элементы, которые экспортер не перемещает в файлы типа данных, реализации, интерфейса или синхронизации на основе категории элементов 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 и их универсальные уникальные идентификаторы (UUID) для импорта и экспорта ARXML. Дополнительные сведения см. в разделе Сохранение структуры файлов и информации об элементах AUTOSAR XML в обоих направлениях.

Пример создания кода C, совместимого с AUTOSAR, и экспорта описаний XML-компонентов AUTOSAR из модели Simulink см. в разделе Создание кода C AUTOSAR и описания XML.

См. также

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

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

Подробнее