搞一下Adaptive Platform AUTOSAR(九)—— 持续性

参考文献:《AUTOSAR AP 标准》

AP和CP相关资料和工具咨询可关注微信公众号“搞一下汽车电子”

邮箱:[email protected]

手机/微信:18405011517


1.概述

持续性为自适应平台的应用程序和其他功能集群提供了将信息存储在自适应机器的非易失性内存中的机制。数据在引导和点火循环中可用。持久性提供了访问非易失性内存的标准接口。

持续性API将存储位置标识符作为来自应用程序的参数来处理不同的存储位置。

可用存储位置分为两类:

  • 关键价值存储
  • 文件代理存储

每个应用程序都可以使用这些存储类型的多种组合。

持续数据对一个应用程序总是私有的。没有使用持续性在不同应用程序之间共享数据的机制。做出此决定是为了防止通信管理提供的功能下出现第二条通信路径。

持续性为存储的数据提供加密,以确保在将敏感数据存储到物理设备之前对其进行加密。


2.键值存储

键值存储提供了在一个存储位置存储和检索多个键值对的机制。键值存储直接支持以下三种数据类型:

  • 数据类型在SWS_AdaptivePlatformTypes中定义。
  • 在应用程序中由复杂类型的流产生的简单字节数组。
  • “PersistenceKeyValueDatabaseInterface”通过“dataTypeForSerialization”引用的所有实现数据类型,或在应用程序设计中专门用作该接口的PersistenceDataElements。

对于每个键值数据库,键必须是唯一的,并且由应用程序使用持久性提供的方法定义。

计划为应用程序设计中定义的autosar数据类型添加基于应用程序/平台特定序列化代码的序列化/存储支持。


3.文件代理存储

并非所有与持久性存储相关的数据都是以这样一种方式构建的:键值数据库是一种合适的存储机制。针对这类数据,介绍了文件代理存储机制。文件代理端口允许应用程序访问存储位置并在其中创建一个或多个访问器。这些访问器再次由字符串格式的唯一键标识。

为了更好地理解这种机制,与文件系统的比较有助于:文件代理端口可以理解为允许应用程序在其中创建多个文件(访问器)的文件系统目录。

由于文件代理存储接近于经典文件系统访问,所以API被设计为众所周知的C++ std::iostream类的一个子集,具有类似的行为。


4.UCM持久数据处理用例

在UCM过程中,通过持久性处理UCM用例的持久性数据/持久性文件纯粹依赖于持久性配置。

一般来说,UCM支持三个主要的用例,用于在汽车ECU或自适应机器的生命周期中处理自适应应用程序。

  • 将新的应用软件安装到自适应机器上
  • 将现有应用软件更新至自适应机器
  • 从自适应机器卸载现有应用软件

在这三种情况中,UCM使用持久性来部署/删除/更新应用程序的持久性数据。

持续性应支持以下场景:

  • 持续性应能够将持久性数据部署到自适应应用程序安装期间由应用程序设计者定义的键值数据库或文件代理。
  • 持续性应能够将持续性数据部署到由集成器更改的键值数据库或文件代理。
  • 持续性应能够将持续性数据部署到由集成器定义的键值数据库或文件代理。
  • 当安装新版本的应用程序时,持续性应能够根据为密钥值数据库或文件代理配置的更新策略覆盖或保留密钥值数据库或文件代理的持续数据。
  • 当卸载应用程序时,持续性应能够删除持续数据键值数据库或文件代理。

通常,持久层是在应用程序设计和部署期间配置的。持久性应能够使用部署阶段配置来覆盖应用程序设计配置。如果缺少部署阶段配置,则将考虑应用程序设计中的配置来部署持久性数据。

持续性应在集成到键值数据库或文件代理之前检查新安装和更新的持续性数据。

你可能感兴趣的:(AUTOSAR)