AVR-AUTOSAR是基于OSEK/VDX OS和AutoSar OS 4.4标准的AVR微控制器的实时操作系统。
AVR-AUTOSAR实现AutoSar OS的可伸缩性1类。
AVR-AUTOSAR的动机是创建易于理解的AutoSar OS的开源实现,该实现可以在广泛可用的微处理器上运行。
该项目是在多特蒙德大学的最终论文中开发的。
该项目是用Atmel Studio 7和Windows上当前的AVR8-GCC-Toolchain创建的。解决方案和项目文件包含在存储库中。
系统的配置在AppCfg.h中完成。必要的宏定义并记录在include/CfgGenMacros.h中。当前版本的文档可以在此处找到。为了生成当前文档,可以使用提供的doxyfile。
该应用程序代码放在App.c中。
该存储库包含用于ATMEGA1284设备的测试应用程序,该应用程序在开发过程中用于测试操作系统的所有功能。它可以用作示例。另外,还提供了多个应用程序,用于在AutosarOS/test下进行测试。
使用以下设备测试了操作系统:
Atmega-Family的其他微处理器应处理所需的最低工作。
在开发过程中,基于调试器的跟踪系统用于记录程序流。
可以从tracing.xml文件导入Atmel Studio中设置的跟踪点。请注意,ISRS的跟踪点可能无法正确加载,因为它们设置在操作系统之外的用户功能上。
此外,如果使用错误信息,则可以将数据跟踪点设置为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 Compass。
请注意,时间戳是在主机上生成的,而不是目标!这意味着绝对时间无法信任。因此,此方法仅应用于跟踪程序流/执行顺序。
-mrelax选项,必须禁用OS的正确操作。GetAlarmBase()创建。