AVR-Autosar es un sistema operativo en tiempo real para microcontroladores AVR basado en los estándares OSEK/VDX OS y AutoSAR OS 4.4.
Avr-Autosar implementa la escalabilidad Clase 1 del sistema operativo AutoSar.
La motivación para AVR-Autosar fue crear una implementación de código abierto fácil de entender de AutoSar OS que se puede ejecutar en microprocesadores ampliamente disponibles.
El proyecto se desarrolló como parte de una tesis final en la Universidad de Ciencias Aplicadas Dortmund.
El proyecto fue creado con el Atmel Studio 7 y la Toolina AVR8-GCC actual en Windows. La solución y los archivos del proyecto se incluyen en el repositorio.
La configuración del sistema se realiza en el AppCfg.h . Las macros necesarias se definen y se documentan en include/CfgGenMacros.h . La documentación de la versión actual se puede encontrar aquí. Para generar la documentación actual, se puede utilizar DoxyFile proporcionado.
El código de aplicación se coloca en App.c
El repositorio contiene una aplicación de prueba para dispositivos ATMEGA1284 que se utilizó durante el desarrollo para probar todas las características del sistema operativo. Se puede usar como ejemplo. Además, se proporcionan múltiples aplicaciones para pruebas en AutosarOS/test .
El sistema operativo se probó con los siguientes dispositivos:
Otros microprocesadores de la familia Atmega deben trabajar con un trabajo mínimo requerido.
Durante el desarrollo, se utilizó un sistema basado en el depuración para el rastreo para registrar el flujo del programa.
Los puntos tracePePet en Atmel Studio se pueden importar desde el archivo tracing.xml . Tenga en cuenta que los puntos tracep para el ISRS probablemente no se cargarán correctamente, ya que se establecen en las funciones del usuario fuera del sistema operativo.
Además, se puede establecer un Data TracePoint para errorInfo.id (acceso de escritura) si se utiliza información de error. El siguiente mensaje de impresión se puede usar para generar comentarios en la salida de rastreo que muestran cómo se llaman los servicios del sistema operativo:
# {currentTask};{isISR} called $FUNCTION
La traza generada debería verse algo así:
#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
Las trazas siguen el "mejor formato de rastreo" para OSEK y se pueden importar a Eclipse Trace Compass.
¡Tenga en cuenta que las marcas de tiempo se generan en el host, no en el objetivo! Esto significa que no se pueden confiar en los tiempos absolutos. Por lo tanto, este método solo debe usarse para rastrear el flujo del programa/orden de ejecución.
-mrelax que Atmel Studio puede activar automáticamente que cambia el dispositivo en la configuración del proyecto debe deshabilitarse para el funcionamiento correcto del sistema operativo.GetAlarmBase() deben usarse.