AVR-Autosar ist ein Echtzeit-Betriebssystem für AVR-Mikrocontroller basierend auf den Standards OSEK/VDX OS und Autosar OS 4.4.
AVR-Autosar implementiert die Skalierbarkeitsklasse 1 von Autosar OS.
Die Motivation für AVR-Autosar bestand darin, eine leicht verständliche Open-Source-Implementierung von Autosar-Betriebssystemen zu erstellen, die auf weit verbreiteten Mikroprozessoren ausgeführt werden kann.
Das Projekt wurde im Rahmen einer endgültigen These an der Universität Applied Sciences Dortmund entwickelt.
Das Projekt wurde mit dem Atmel Studio 7 und der aktuellen AVR8-GCC-Toolchain unter Windows erstellt. Die Lösung und die Projektdateien sind im Repository enthalten.
Die Konfiguration des Systems erfolgt in der AppCfg.h . Die erforderlichen Makros sind include/CfgGenMacros.h definiert und dokumentiert. Die Dokumentation aus der aktuellen Version finden Sie hier. Um die aktuelle Dokumentation zu generieren, kann die bereitgestellte Doxyfile verwendet werden.
Der Anwendungscode ist in App.c platziert.
Das Repository enthält eine Testanwendung für ATMEGA1284 -Geräte, die während der Entwicklung verwendet wurden, um alle Merkmale des Betriebssystems zu testen. Es kann als Beispiel verwendet werden. Zusätzlich werden mehrere Anwendungen für Tests im Rahmen von AutosarOS/test bereitgestellt.
Das Betriebssystem wurde mit den folgenden Geräten getestet:
Andere Mikroprozessoren der Atmega-Familie sollten mit minimalen Arbeiten arbeiten.
Während der Entwicklung wurde ein auf Debugger basierendes System zur Verfolgung verwendet, um den Programmfluss aufzuzeichnen.
Die in Atmel Studio eingestellten TracePoints können aus der Datei tracing.xml importiert werden. Beachten Sie, dass die TracePoints für die ISRS wahrscheinlich nicht korrekt geladen werden, da sie auf den Benutzerfunktionen außerhalb des Betriebssystems festgelegt sind.
Zusätzlich kann ein Daten -TracePoint für errorInfo.id (Schreibzugriff) festgelegt werden, wenn Fehlerinformationen verwendet werden. Die folgende Druckmeldung kann verwendet werden, um Kommentare in der Trace -Ausgabe zu generieren, die zeigen, welche Betriebssystemdienste genannt werden:
# {currentTask};{isISR} called $FUNCTION
Die erzeugte Spur sollte ungefähr so aussehen:
#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
Die Spuren folgen dem "besseren Spurenformat" für OSEK und können in Eclipse Trace Compass importiert werden.
Beachten Sie, dass die Zeitstempel auf dem Host generiert werden, nicht das Ziel! Dies bedeutet, dass absolute Timings nicht vertrauenswürdig sind. Daher sollte diese Methode nur verwendet werden, um den Programmfluss/Reihenfolge der Ausführung zu verfolgen.
-mrelax , die beim Ändern des Geräts in den Projekteinstellungen automatisch von Atmel Studio aktiviert werden kann, muss für den korrekten Betrieb des Betriebssystems deaktiviert werden.GetAlarmBase() verwendet werden.