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

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

  1. В диалоговом окне Параметров конфигурации на панели Code Generation > AUTOSAR Code Generation Options настройте параметры генерации кода AUTOSAR.

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

  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 схемы 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).

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

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

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

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

Компиляторы для 16-битных платформ (для примера, Cosmic и Metrowerks для S12X или Tasking для 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 - идентификатор программного компонента).

Если вы не выбираете 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 с многомерными массивами, если установить параметр конфигурации модели Array layout (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 код C и описания AUTOSAR XML в папку сборки модели. Экспортированные 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

  • Межпрограммные переменные (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Модель синхронизации, включая ограничения порядка выполнения выполнения.

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

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

Пример генерации совместимых с AUTOSAR Кодов С и экспорта авто-РСА XML-описаний компонентов из модели Simulink см. в разделе Генерация Коде С AUTOSAR и XML-описаний.

См. также

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

Похожие примеры

Подробнее о