上文介绍了基础软件层中服务层中的通信服务,本文将详细讲述另外两种服务:存储器服务和系统服务。
1、存储器服务
下图展示了存储器服务在AUTOSAR架构下所在的位置,内存服务只包含一个模块,即NVRAM管理器。它负责非易失性数据(来自不同存储器驱动器读/写)的管理。其主要任务是以统一的方式为应用程序提供非易失性的数据,同时对存储位置和属性进行抽象,对非易失性数据的管理提供机制,如数据的保存、读取、校验保护和验证等。
存储器服务具有以下属性:内存服务的实施与单片机和ECU硬件无关,是高度可配置的;其上层接口与单片机和ECU硬件无关,根据AUTOSAR接口实施。
2、系统服务
系统服务是一组模块和函数,这些模块和函数被所有软件层模块使用,比如实时操作系统和错误管理。系统服务的实时与单片机、ECU硬件以及用用程序有部分关联,其上层接口与单片机、ECU硬件无关。下图显示了系统服务包含的所有模块。
系统服务的任务是为应用程序和基础软件模块提供基础的服务,主要有:依赖于微控制器的服务(如操作系统),以及可以支持特殊微控制器功能的服务(如加密服务管理器);与ECU硬件和应用程序部分相关的服务(如ECU状态管理器);与硬件和微控制器无关的服务。
1)错误处理、报告和诊断
在AUTOSAR中,针对错误处理的不同方面有专用的模块。例如:
- 调试模块(Debugging)支持AUTOSAR基础软件的调试,它连接到了ECU内部模块,并且通过通信系统与外部主机系统进行交流;
- 诊断事件管理器(Diagnostic Event Manager)是负责处理和存储诊断事件以及关联冻结帧(Freeze Frame)的数据;
- 诊断记录和追踪模块(Diagnostic Log and Trace)支持应用程序的日志记录和追踪,它手机用户定义的日志消息,并把它们转换成标准的格式;
- 在基础软件中所有检测到的开发错误都会报告给开发错误追踪器(Development Error Tracer);
- 诊断通信管理器(Diagnostic Communication Manager)为诊断服务提供共同的API。
2)多核系统服务
如下图所示,IOC(Inter-OS-Application-Communication)提供了一种通信服务,当客户端需要在同一个ECU的不同操作系统应用程序(OS Application)之间进行通信时,这种通信的服务可以被客户端访问。基础软件模块可以在多个内核上执行。