AVR-Autosar-это операционная система в реальном времени для микроконтроллеров AVR на основе стандартов OSEK/VDX OS и Autosar OS 4.4.
AVR-Autosar реализует класс масштабируемости 1 Autosar OS.
Мотивация для AVR-Autosar состояла в том, чтобы создать простую для понимания реализацию открытого источника ОС Autosar, которую можно запустить на широко доступных микропроцессорах.
Проект был разработан в рамках финальной диссертации в Университете прикладных наук Dortmund.
Проект был создан с помощью Atmel Studio 7 и текущего AVR8-GCC-ToolChain в Windows. Решения и файлы проекта включены в репозиторий.
Конфигурация системы выполнена в AppCfg.h . Необходимые макросы определены и задокументированы в include/CfgGenMacros.h . Документация из текущего выпуска можно найти здесь. Для создания текущей документации можно использовать предоставленную доксифиль.
Код приложения размещен в App.c
Репозиторий содержит тестовое приложение для устройств ATMEGA1284, которое использовалось во время разработки для проверки всех функций операционной системы. Это может быть использовано в качестве примера. Кроме того, для тестирования представлены несколько приложений в рамках AutosarOS/test .
Операционная система была протестирована со следующими устройствами:
Другие микропроцессоры семьи Atmega должны работать с минимальной работой.
Во время разработки система на основе отслеживания отладчиков использовалась для записи потока программ.
Траципоины, установленные в Atmel Studio, могут быть импортированы из файла tracing.xml . Обратите внимание, что Tracepoints для ISRS, вероятно, не загружаются правильно, так как они установлены на пользовательских функциях за пределами операционной системы.
Кроме того, можно установить Tracepoint Data для errorInfo.id (wrise access), если используется информация об ошибке. Следующее печатное сообщение можно использовать для создания комментариев на выводе трассировки, которые показывают, как называются службы ОС:
# {currentTask};{isISR} called $FUNCTION
Сгенерированная трассировка должна выглядеть примерно так:
#version 1.0
# INVALID_TASK;0 called OS_StartOS
898158796,Core_0,0,T,Idle,0,activate
898158921,Core_0,0,T,Task1,0,activate
898159328,Core_0,0,T,Task1,0,start
# Task1;0 called Events_SetEvent
# Task1;0 called Task_TerminateTask
898167984,Core_0,0,T,Task1,0,terminate
898169140,Core_0,0,T,Idle,0,start
Следы следуют за «лучшим форматом трассировки» для Осека и могут быть импортированы в Compass Eclipse Trace.
Обратите внимание, что временные метки генерируются на хосте, а не цель! Это означает, что абсолютные времена нельзя доверять. Поэтому этот метод должен использоваться только для отслеживания потока программы/порядка выполнения.
-mrelax , которая может быть автоматически активирована Atmel Studio при изменении устройства в настройках проекта, должна быть отключена для правильной работы ОС.GetAlarmBase() должны использоваться.