Adaptive AUTOSAR 学习笔记 15 - 持久化 Persistency
本系列学习笔记基于 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 中定义的数据类型
- 简单字节数组:复杂类型的流
- Application Design 中“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 文章
Adaptive AUTOSAR 学习笔记 15 - 持久化 Persistency的更多相关文章
- Adaptive AUTOSAR 学习笔记 8 - 干货小结:背景、技术、特征、架构、方法论和 Manifest
官方文档下载方式及介绍情参见 Adaptive AUTOSAR 学习笔记 2 - 官方文档下载及阅读建议. 这是 Adaptive AUTOSAR 学习笔记的第 8 篇,学习笔记 3 - 7 翻译了 ...
- Adaptive AUTOSAR 学习笔记 3 - AP 背景、技术及特征(中文翻译)
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本.本文从AUTOSAR_EXP_PlatformDesign.pdf开始,一边学习,一边顺带着翻译一 ...
- Adaptive AUTOSAR 学习笔记 6 - 架构 - 方法论和 Manifest
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...
- Adaptive AUTOSAR 学习笔记 7 - 应用设计和 Manifest
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...
- Adaptive AUTOSAR 学习笔记 16 - 时间同步和网络管理
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf.作者:Zijian/TENG 原文地 ...
- Adaptive AUTOSAR 学习笔记 4 - 架构
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...
- Adaptive AUTOSAR 学习笔记 2 - 官方文档下载及阅读建议
目前互联网上没有太多的 Adaptive AUTOSAR 的学习资料,官方文档是一个很不错的途径.看过官方文档才发现,目前很多关于 Adaptive AUTOSAR 的文章都是官方文档的简化翻译,不如 ...
- Adaptive AUTOSAR 学习笔记 5 - 架构 - 物理视图
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...
- Adaptive AUTOSAR 学习笔记 10 - 执行管理
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 EM:Execution Ma ...
随机推荐
- php图片木马实现原理
什么是木马 木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件.发送密码.记录键盘和攻击Dos等特殊功能的后门程序. 那,php的木马是长什么样的呢?我们来看下面这段代码: ...
- 【知识点】H264, H265硬件编解码基础及码流分析
前言 音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,start code以及基本的工作原理,而大 ...
- Linux | Shell流程控制语句
流程控制语句 简单的Shell 脚本还不能满足我们日常工作的需要要,因为他不能批量的帮我们完成工作,所以Shell引入了 if.for.while.case 4种流程控制语句来帮助我们完成工作. if ...
- linux挂载光驱
挂载光驱到linux中.linux的镜像盘中有安装oracle的所有的软件包,可以会用yum一键安装. 1.此时的linux的界面显示光驱图标 2.挂载 因为光盘里面的文件是只读模式的,yum安装时不 ...
- 「CF521D」 Shop
「CF521D」 Shop 传送门 题目说是有三种操作,首先可以知道赋值操作是可以转化为加法操作的,即 \((1,b) \rightarrow (2,b-a_i)\) 然后加法对于一个数你肯定优先选择 ...
- C语言:九宫格
#include <stdio.h> /* 如下排列表示 A00 A01 A02 A10 A11 A12 A20 A21 A22 */ int main() { unsigned char ...
- 用Python分析下王小波与李银河写情书最爱用哪些词
作家王小波其实也是我国最早期的程序员,突发奇想,王小波写情书最喜欢用哪些词呢?用Python词云分析下! 直接上代码吧,有注释很好理解.输出的图片设置的比较大,所以运行的比较慢,可以适当把图片尺寸改小 ...
- 【剑指offer】50.数组中重复出现的数字
50.数组中重复出现的数字 知识点:数组:Set的不可重复性 题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重 ...
- python内置函数dir()
描述 dir() 函数不带参数时,返回当前范围内的变量.方法和定义的类型列表:带参数时,返回参数的属性.方法列表.如果参数包含方法__dir__(),该方法将被调用.如果参数不包含__dir__(), ...
- Requests方法 --- post 请求body的四种类型
常见的 post 提交数据类型有四种: 1.第一种:application/json:这是最常见的 json 格式,也是非常友好的深受小伙伴喜欢的一种,如下{"input1":&q ...