AVR-Autosarは、OSEK/VDX OSおよびAutoSar OS 4.4標準に基づいたAVRマイクロコントローラーのリアルタイムオペレーティングシステムです。
AVR-Autosarは、AutoSar OSのスケーラビリティクラス1を実装します。
AVR-Autosarの動機は、広く利用可能なマイクロプロセッサで実行できるAutoSar OSのわかりやすいオープンソース実装を作成することでした。
このプロジェクトは、Applied Sciences Dortmund大学の最終論文の一環として開発されました。
このプロジェクトは、Atmel Studio 7とWindowsの現在のAVR8-GCC-Toolchainで作成されました。ソリューションファイルとプロジェクトファイルはリポジトリに含まれています。
システムの構成は、 AppCfg.hで行われます。必要なマクロは、 include/CfgGenMacros.hに定義および文書化されています。現在のリリースのドキュメントはこちらをご覧ください。現在のドキュメントを生成するには、提供されたDoxyFileを使用できます。
アプリケーションコードはApp.cに配置されます。
リポジトリには、オペレーティングシステムのすべての機能をテストするために開発中に使用されたATMEGA1284デバイスのテストアプリケーションが含まれています。例として使用できます。さらに、 AutosarOS/testでのテスト用に複数のアプリケーションが提供されています。
オペレーティングシステムは、次のデバイスでテストされました。
Atmega-Familyの他のマイクロプロセッサは、必要な最小限の作業で動作するはずです。
開発中、トレース用のデバッガーベースのシステムを使用して、プログラムの流れを記録しました。
Atmel Studioに設定されたTracePointsは、 tracing.xmlファイルからインポートできます。 ISRのトレースポイントは、オペレーティングシステムの外側のユーザー機能に設定されているため、おそらく正しくロードされないことに注意してください。
さらに、エラー情報が使用されている場合は、 errorInfo.id (書き込みアクセス)にデータトレースポイントを設定できます。次の印刷メッセージを使用して、OSサービスが呼ばれているものを示すトレース出力でコメントを生成できます。
# {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
トレースは、OSEKの「より良いトレース形式」に従い、Eclipse Traceコンパスにインポートできます。
タイムスタンプは、ターゲットではなくホストに生成されることに注意してください!これは、絶対的なタイミングを信頼できないことを意味します。したがって、この方法は、プログラムのフロー/実行順序を追跡するためにのみ使用する必要があります。
-mrelaxオプションは、OSの正しい操作のために無効にする必要があります。GetAlarmBase()使用する必要があります。