Чтобы создать код C и описания компонентов ARXML, совместимые с AUTOSAR, из модели, настроенной для классической платформы AUTOSAR:
В диалоговом окне «Параметры конфигурации» на панели «Создание кода» > «Параметры создания кода AUTOSAR» настройте параметры создания кода AUTOSAR.
Настройте параметры экспорта AUTOSAR XML с помощью функций AUTOSAR Dictionary или AUTOSAR property.
Создайте модель.
Для импорта и экспорта файлов ARXML и создания кода C, совместимого с AUTOSAR, программное обеспечение поддерживает следующие версии схемы AUTOSAR Classic Platform.
| Значение версии схемы | Версии схемы, поддерживаемые для импорта | Экспорт версии схемы |
|---|---|---|
4.4 | 4.4.0 | 4.4.0 |
4.3 (по умолчанию) | 4.3.0, 4.3.1 | 4.3.1 |
4.2 | 4.2.1, 4.2.2 | 4.2.2 |
4.1 | 4.1.1, 4.1.2, 4.1.3 | 4.1.3 |
4.0 | 4.0.1, 4.0.2, 4.0.3 | 4.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).
Стандарт AUTOSAR указывает, что максимальная длина SHORT-NAME XML-элементы содержат 128 символов.
Задание максимальной длины для SHORT-NAME элементы, экспортируемые генератором кода, установите параметр конфигурации модели Maximum SHORT-NAME length (Embedded Coder) в целочисленное значение от 32 до 128 включительно. Значение по умолчанию - 128 символов.
Компиляторы для 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_VARSWC - идентификатор компонента программного обеспечения)
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, Поддержка матричных операций ввода-вывода на корневом уровне с использованием одномерных массивов не имеет эффекта.
Проверьте параметры XML, настроенные с помощью словаря AUTOSAR. Если они еще не настроены, см. раздел Настройка параметров AUTOSAR XML.
После настройки генерации кода AUTOSAR и параметров XML создайте код. Для создания кода C и экспорта XML-описаний создайте модель компонента.
Процесс сборки создает в папке сборки модели код C, совместимый с AUTOSAR, и XML-описания AUTOSAR. Экспортированные XML-файлы включают:
Один или несколько файлы, в зависимости от того, задано ли для параметра Экспортированная упаковка XML-файлов значение modelname*.arxmlSingle file или Modular.
При импорте файлов ARXML в Simulink обновляются версии тех же файлов.
В этой таблице перечислены файлы, создаваемые на основе значения параметра упаковки экспортированных XML-файлов, настроенного в словаре AUTOSAR.modelname*.arxml
| Экспортированное значение упаковки XML-файлов | Имя экспортированного файла | По умолчанию содержит... |
|---|---|---|
Single file | | Элементы AUTOSAR для программных компонентов, типов данных, реализации, интерфейсов и синхронизации. |
Modular | | Компоненты программного обеспечения, включая:
Это основной файл ARXML, экспортируемый для модели Simulink. В дополнение к компонентам программного обеспечения файл компонентов содержит упакованные элементы, которые экспортер не перемещает в файлы типа данных, реализации, интерфейса или синхронизации на основе категории элементов AUTOSAR. |
| Типы данных и связанные с ними элементы, включая:
| |
| Реализация программных компонентов, включая дескрипторы кода. | |
| Интерфейсы, включая интерфейсы S-R, C-S, M-S, NV, параметры и триггерные интерфейсы. Интерфейсы включают специфичные для типа элементы, такие как элементы данных S-R, операции C-S, параметры на основе портов или триггеры. | |
| Модель синхронизации, включая выполняемые ограничения порядка выполнения. |
Описания XML-компонентов AUTOSAR можно объединить обратно в средство разработки AUTOSAR. Информация компонента AUTOSAR разделяется на отдельные файлы для упрощения объединения. Секционирование пытается минимизировать количество необходимых слияний. Не требуется объединять файл типа данных с инструментом разработки, поскольку типы данных обычно определяются на ранних этапах процесса проектирования. Однако необходимо объединить внутренний файл поведения, поскольку эта информация является частью реализации модели.
Для поддержки двухстороннего перехода элементов AUTOSAR между инструментом разработки AUTOSAR (AAT) и средой проектирования на основе модели Simulink генератор кода сохраняет элементы AUTOSAR и их универсальные уникальные идентификаторы (UUID) для импорта и экспорта ARXML. Дополнительные сведения см. в разделе Сохранение структуры файлов и информации об элементах AUTOSAR XML в обоих направлениях.
Пример создания кода C, совместимого с AUTOSAR, и экспорта описаний XML-компонентов AUTOSAR из модели Simulink см. в разделе Создание кода C AUTOSAR и описания XML.
Создание XML-файла для версии схемы (Embedded Coder) | Максимальная длина SHORT-NAME (Embedded Coder) | Поддержка ввода-вывода матрицы корневого уровня с помощью одномерных массивов (Embedded Coder) | Использование макросов абстракции компилятора AUTOSAR (Embedded Coder)