【Autosar 存储栈Memery Stack 1.NVM Block的了解】
目录
- 1.学习NVM之前先了解其架构图
- 2.了解Block概念与含义
- 3.NvM数据操作类型介绍
1.学习NVM之前先了解其架构图
2.了解Block概念与含义
名称 | 描述 |
---|---|
NVRAM Block | NVRAM Block是管理和存储 NV Block所需的整个结构 |
Basic Storage Object | Basic Storage Object是一个最小的NVRAM block,多个Basic Storage Objects可以组成一个NVRAM Block。 |
NV data | 要存储在Non-Volatile memory的数据 |
Block Management Type | 这个是NVRAM Block的类型,它取决于强制/可选Basic Storage Object中 NVRAM Block的(可配置的)单独组成以及该 NVRAM 块的后续处理。 |
RAM Block | 属于Basic Storage Object,它是NVRAM Block的一部分,常驻于RAM空间。 |
ROM Block | 属于Basic Storage Object,它是NVRAM Block的一部分(可选的),常驻于ROM空间。 |
NV Block | 属于Basic Storage Object,它是NVRAM Block的一部分(必选的),常驻于NV空间。 |
NV Block Header | 如果Static Block ID是enable的,这个作为附加信息包含在NV Block中。 |
Administrative Block | 属于Basic Storage Object,它常驻于RAM,是NVRAM Block必选部分。 |
如上图所示,AUTOSAR规定,App只能通过NvM(NVRAM Manager)来访问NV Memory(比如DFLASH)。
NV Block:
NVRAM Block必须存在的模块,数据内容持久存在与flash中,可以在程序执行过程中修改,它的组成:
RAM Block
NV数据的读写是相对较慢的操作,而swc task执行时间较快,如果直接读写太过频繁不可取,所以一般会使用一个同样大小的Ram空间来操作、使用、存放这些还没有被写入或者读取的NV值。
RAM Block 是NV Block在RAM中的一个映射,因为应用层不能直接操作NV(速度太慢),所以基本上是一个1:1的结构
ROM Block
用于存储默认值,以便当NV block数据出现损坏时予以替换
Administrative Block
1)专门用于对NVRAM Block 与 RAM blcok 的数据安全性进行管理而设计的,它对应用层并不可见。
2)存在与RAM中,不是持久的,用于保存相应NVRAM块的属性/错误/状态信息,以及‘Dataset’类型的NVRAM块的块索引
2)结构组成
nv block,RAM block 和 Administrative Block必须存在,ROM block为可选项。包含哪些block是在配置阶段完成,相应的NVRAM block descriptor配置完成后,包含block也随之固定。
3.NvM数据操作类型介绍
NvM数据的管理主要包括三种管理类型,分别是Native NVRAM block、redundant NVRAM block、Dataset NVRAM block。具体对各个Block的使用情况如下所示。
1.Native
consists of a single NV block, RAM block and Administrative block
2.redundant
1)consists of two NV blocks, a RAM block and an Administrative block.
2)包含2个NV block,如果一个 NV block 块无效(如read fail),则会使用另一个有效的NV block 中的数据来恢复此无效block
3)如果恢复失败发送错误码 NVM_E_LOSS_OF_REDUNDANCY 到DET中
3.dataset
1)consists of multiple NV user data, (optionally) CRC areas, (optional) NV block headers, a RAM block and an Administrative block
2)Dataset NVRAM Block中的 (NV + ROM)block 总数必须在1…255的范围内
说人话:
Native NVRAM block是最简单的Block形式,该类型包括1个NV Block,1个RAM Block,1个Administrative Blocks;
Redundant NVRAM block该类型包括2个NV Block,1个RAM Block,1个Administrative Blocks,通过该类型可以实现数据的冗余备份存储。
Dataset NVRAM是由多个大小相等的数据组成,APP在一次操作中获得其中的一个元素,每一个DataSet的位置可以通过Administrative Blocks获得,NvM可以读取选择的ROM Block。Dataset NVRAM类型的设计可以根据需要对一个数据在NvRAM中以一定的循环偏移进行存储,每一次存储位置可以不同,实现对NvRAM的寿命延长。
3 支持的同步机制(Synchronization Mechanism)
根据App对NvM Block‘’s RAM的访问方式,数据同步机制可以分为两种:
隐式同步(Implicit synchronization)
显示同步(Explicit synchronization)
3.1 Implicit synchronization
AUTOSAR规范:在隐式同步机制下,一个NvM Block的 RAM 被映射到一个固定的 SWC,不建议共享RAM。 每当SW-C使用RAM block(temporary/permanent)访问NVRAM时,都必须确保RAM块的数据一致性,直到NvM完成正在进行的操作为止。
说人话:
在隐式同步机制下,RAM block 和 SWC 之间是一一对应的关系,其他SWC不能访问该RAM。SWC要保持数据的一致性是说,从SWC调用NvM接口到NvM内部操作完成前,SWC不能再改变该RAM中的值。但是该RAM可以被read。
3.2 Explicit synchronization
AUTOSAR 规范:在显式同步中,NvM会定义一个RAM mirror,用于与App的RAM block交换数据。 App将数据写入RAM block,然后调用NvM Write API(NvM_WriteBlock / NvM_WritePRAMBlock)。 NvM 调用API(NvMWriteRamBlockToNvM)将数据从 RAM Block 拷贝到RAM Mirror,进而写入 NV Block。
显示同步的优点:
App可以更好地管理自己的RAM block。在App调用NvM_WriteBlock / NvM_WritePRAMBlock 到NvM 调用NvMWriteRamBlockToNvM()这段期间,App仍然可以修改RAM block中的数据。
几个SWC可以共享一个NvM Block;
显示同步的缺点:
浪费内存:除了RAM block,又多了一个RAM Mirror(additional RAM),且RMA Mirror需要和使用显示同步机制的最大的NvM Block 具有相同的大小;
多了一步RAM间的拷贝操作:即多了RAM block 和 RAM mirror之间的拷贝操作;
比较好的NVM入门博客:https://blog.csdn.net/IT_luosong/article/details/124019056
【Autosar 存储栈Memery Stack 1.NVM Block的了解】相关推荐
- 【Autosar 存储栈Memery Stack 2.EepRom与DFlash擦写的不同 】
FEE(Flash EEPROM Emulation),即Flash模拟EEPROM.为什么要用Flash模拟EEPROM?下面我们来看下两者之间的区别. Non-volatile memory,非易 ...
- 【Autosar 存储栈Memery Stack 4.Tc397的Flash编程】
首先我们要了解Autosar的存储模块介质主要是两种:EEPROM和Flash仿EEPROM,分为片内与片外存储,因此就有2*2=4种存储方式: 主芯片片内FLASH仿EEPROM 主芯片片内EEPR ...
- 【小猫爪】AUTOSAR学习笔记16-Memory Stack之Nvm模块
[小猫爪]AUTOSAR学习笔记16-Memory Stack之Nvm模块 前言 1 Memory Stack结构 2 NvM模块 2.1 Block 2.2 数据结构 2.3 Redundant B ...
- 基于Vector 的AUTOSAR NvM 模块使用
本文主要讲述Vector的两款工具configurator和Developer关于NvM的配置流程,包括如何新建NvM SWC以及添加和修改NvM block,Developer主要涉及NvM SWC ...
- Autosar云天精讲 :《NVM 体系化讲解(十四万字精讲版本)》
文章目录 1Document Information 2 Introduction 3 功能描述 Functional Description 3.1 功能 Features 3.1.1 Safety ...
- AUTOSAR —— NVM 2
本文根据AUTOSAR4.4(Classic Platform)(https://www.autosar.org/standards/classic-platform/classic-platform ...
- Autosar Dcm模块之Vector Configurator Pro配置(DSP子模块)
背景 之前简单介绍了Autosar Dcm模块,接下来我们直接切入主题,如何通过Vector Configurator Pro工具配置DSD子模块,并实现客户的需求. DSP子模块配置 1.DSP子模 ...
- Autosar BSW开发必知的“术语”+“缩写”概念-1-诊断通信篇
如何使用该博文? ==>您可以将该篇博文当做"字典",遇到疑惑的Autosar"关键字",使用组合键Ctrl+F,快速查找该关键字. 推荐Autosar培 ...
- Autosar DaVinci Developer的一些基本功能
前言 本章主要写一下Davinci Developer里面的一些基本功能 Autosar DaVinci Developer的一些基本功能 前言 1.应用软件组件的创建 1.1应用软件组件介绍 1.2 ...
最新文章
- HTML5 标签、事件句柄属性以及浏览器兼容情况速查手册
- Linux磁盘管理——df、du、磁盘分区、格式化、挂载、LVM
- html居右显示语言设置,iOS开发:纯代码设置UIButton文字居左或者居右显示
- 2进制、8进制、10进制、16进制...各种进制间的轻松转换(c#)
- python矩阵运算dot_numpy中的dot矩阵乘法
- 一文讲清,MySQL数据库一行数据在磁盘上是怎么存储的?
- 图像目标检测(Object Detection)原理与实现(二)
- C++ wchar_t
- CodeForces - 1514B AND 0, Sum Big【快速模幂】
- java 读取excel wps_安装WPS引发的excel上传问题
- 卡方线性趋势检验_趋势性卡方检验专题讨论
- 海思Hi3531DV100开发环境搭建
- hdu5294Tricks Device 最大流之最小割
- iOS系统的每次更新,要不要升?
- ios 设置导航栏背景色
- android studio图形验证码,android 一行代码,快速实现图片验证码(附android studio 版小demo)...
- 查询最后一次消费记录
- 拉丁超立方——样本点空间转换
- win7计算机自动关机设置在哪里设置方法,win7自动关机怎么设置
- 萨缪尔·莫尔斯,一个种族主义画家是如何窃取了电报发明权的呢?