• Adaptive AUTOSAR 学习笔记 15


    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf。作者:Zijian/TENG
    原文地址(获取最新更新):https://www.cnblogs.com/tengzijian/p/15171199.html

    缩写

    • NvM:Non-volatile Memory
    • CM:Communication Management
    • DCM:Diagnostic Communication Mannger
    • EM:Execution Management
    • URI:Uniform Resource Identifier

    10 持久化 Persistency

    10.1 概览

    Persistency 为应用和 FC 提供了将信息储存到非易失性存储(NvM)的机制。经启动和点火循环不会导致数据丢失。Persistency 提供了访问 NvM 的标准接口。

    应用将存储位置标识符作为参数,传给 Persistency API,来决定不同的存储位置。存储位置可以归为两类:

    • 键值存储
    • 文件存储

    应用可以任意组合使用上述存储类型。

    持久化数据是进程私有的。不能通过 Persistency 在不同进程之间共享数据,这是为了阻止通信管理(CM)之外的通信途径。

    Persistency 做好了处理(同一进程)多线程的并发访问的准备。若要共享键值存储或文件存储,或通过向另一个线程传递(拷贝)OpenKeyValueStorage/OpenFileStorage 返回的 SharedHandle;或不同的线程对同一个键值存储或文件存储各自调用 OpenKeyValueStorage/OpenFileStorage

    Persistency 可以保证存储数据的完整性,通过冗余数据检验数据是否损坏。冗余数据包括 CRC 码、Hash 值、以及 “M/N”模式。这些机制可以一起或单独使用。

    Persistency 提供安全存储。主要是通过冗余实现,但是提供了额外的特性,让应用可以得知存储的数据是否出现问题(即使可以通过冗余数据恢复)。

    Persistency 向应用提使用资源数量的供统计信息。

    Persistency 可以为数据提供加密存储,确保敏感数据存储到物理设备前进行加密。

    10.2 键值存储

    键值存储提供了从单一存储位置存取多个键值对的机制。键值存储支持以下三种数据类型:

    • SWS_AdaptivePlatformTypes 中定义的数据类型
    • 简单字节数组:复杂类型的流
    • 应用设计中 “PersistencyKeyValueDatabaseInterface”(或该接口特化的 PersistencyDataElements)通过 “dataTypeForSerialization” 引用的所有 Implementation Data Types

    每个键值数据库的键必须唯一,且通过 Persistency 提供的接口定义。

    基于定义在 Application Design 中、应用/平台特定的 AUTOSAR 数据类型序列化代码,计划增加对序列化/存储的支持。

    10.3 文件存储

    不是所有的数据都适合用键值数据库形式存储。针对这些数据,引入了文件存储。File Storage Port 允许应用访问一个存储位置,并在其中建立一个或多个存取器(Accessors)。这些存取器通过字符串形式的 Unique Key 识别。

    为了更好的理解,可以类比文件系统:一个 File Storage Port 可以理解为文件系统的目录,应用可以在里面创建多个文件(存取器 Accessors)。

    10.4 UCM 持久数据处理用例

    处理 UCM 用例的持久化数据/文件完全取决于持久化配置

    在 ECU 或 Adaptive Machine 生命周期内,UCM 支持处理自适应应用的以下三个主要使用场景:

    • 在 Adaptive Machine 中安装新的应用软件
    • 在 Adaptive Machine 中升级已有应用软件
    • 从 Adaptive Machine 中卸载已有应用软件

    在前两个场景中,UCM 通过执行管理(EM)触发 Persistency 使用持久化配置中的 URI 部署/升级应用的持久化数据。在第三个使用场景中,UCM 可以使用持久化配置中的 URI 移除残留的持久化数据。

    Persistency 需要支持下列场景:

    • 在自适应应用(AA)安装时,根据应用设计中的定义,将持久化数据部署到键值数据库或文件存储。
    • 将持久化数据,按照集成者的修改,部署到键值数据库或文件存储。
    • 根据集成者的定义,将持久化数据部署到键值数据库或文件存储。
    • 当安装新版应用时,根据配置的升级策略,覆盖或保留已有的持久化数据。

    一般 Persistency 层在应用设计和部署阶段配置。Persistency 部署阶段的配置可以覆盖应用设计阶段的配置。如果没有部署阶段的配置,则使用应用设计中的配置。

    更多关于 Adaptive AUTOSAR 文章

    AUTOSAR AP 学习笔记总目录

  • 相关阅读:
    Android Service 启动和停止服务
    Android 子线程中进行UI操作遇到的小问题
    JZ66 机器人的运动范围
    JZ65 矩阵中的路径
    JZ64 滑动窗口的最大值
    JZ63 数据流中的中位数
    Z62 二叉搜索树的第k个结点
    JZ61 序列化二叉树
    JZ60 把二叉树打印成多行
    JZ59 按之字形顺序打印二叉树
  • 原文地址:https://www.cnblogs.com/tengzijian/p/15171199.html
Copyright © 2020-2023  润新知