Adaptive Platform AUTOSAR(AP)平台设计(9)——Persistency

Hello!大家好!

本篇是AP AUTOSAR平台设计(9)——Persistency

AP和CP相关资料获取和工具咨询、更多精彩内容欢迎订阅微信公众号“搞一下汽车电子”

整理不易,如果觉得不错,点赞分享支持一下吧~

邮箱:[email protected]

微信:shactiontech


1.概述

Persistency为Adaptive Platform的应用程序和其他功能集群提供了将信息存储在Adaptive Machine的非易失性存储器中的机制。该数据在启动和点火周期内可用。Persistency提供了访问非易失性存储器的标准interface。

Persistency API从应用程序中获取存储位置标识符作为参数,以解决不同的存储位置。

可用的存储位置分为两类:

•Key Value存储

•文件存储

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

永久数据始终是一个应用程序专用的。没有使用Persistency 在不同应用程序之间共享数据的机制。做出此决定是为了防止在通信管理提供的功能之下出现第二条通信路径。

持久性准备处理来自同一应用程序的多个线程的并发访问,这些线程在同一进程的上下文中运行。要创建对Key Value存储或文件存储的共享访问,OpenKeyValueStorage和OpenFileStorage返回的SharedHandle可以传递(即复制)到另一个线程,或者OpenKeyValueStorage和OpenFileStorage可以分别在同一个Key Value存储或文件存储的独立线程中调用。

Persistency 能够确保所存储数据的完整性。它使用冗余信息来检测数据损坏。冗余信息由CRC码和“ M out of N”模式组成。这些机制可以一起使用,也可以独立使用。

Persistency 为应用程序统计信息提供了已使用资源的数量。

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


2.Key Value存储

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

1) 在SWS_AdaptivePlatformTypes中定义的数据类型。

2) 由应用程序中复杂类型的流产生的简单字节数组。

3) 通过“ dataTypeForSerialization”由“ PersistencyKeyValueDatabaseInterface”引用的所有实现数据类型,或在应用程序设计中专用为该接口的PersistencyDataElements

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

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


3.文件存储

并非所有与持久存储相关的数据都以Key Value数据库为合适的存储机制的方式进行结构化。

对于这种数据,引入了文件存储机制。文件存储端口允许应用程序访问存储位置并在其中创建一个或多个访问器。这些访问器再次由字符串格式的唯一键标识。

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

由于文件存储接近经典文件系统访问权限,因此该API被设计为具有类似行为的著名C ++ std :: iostream类的子集。


4.为UCM处理持久数据的用例

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

通常,UCM支持三种主要用例,以在CAR ECU或自适应机器的生命周期中处理自适应应用程序。

· 在自适应计算机上安装新的应用程序软件

· 将现有应用程序软件更新到自适应机

· 从Adaptive Machine卸载现有的应用程序软件

在所有三种情况下,UCM都使用Persistency来部署/删除/更新应用程序的持久数据。

Persistency应支持以下情况:

1) Persistency应能够将persistency数据部署到在自适应应用程序安装过程中由应用程序设计人员定义的Key Value数据库或文件存储中

2) Persistency应能够将persistency数据部署到集成商更改的Key Value数据库或文件存储中

3) Persistency应能够将persistency数据部署到集成商定义的Key Value数据库或文件存储中

4) 当安装新版本的应用程序时,Persistency应能够按照为Key Value数据库或文件存储配置的更新策略,将persistency数据覆盖或保留到键值数据库或文件存储中

5) 卸载应用程序后,持久性应能够删除持久性数据Key Value数据库或文件存储

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

持久性应在集成到Key Value数据库或文件存储中之前检查新安装和更新的持久性数据。

原创文章 32 获赞 107 访问量 7540

猜你喜欢

转载自blog.csdn.net/DJAction/article/details/105490919