目录

  • 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的了解】相关推荐

  1. 【Autosar 存储栈Memery Stack 2.EepRom与DFlash擦写的不同 】

    FEE(Flash EEPROM Emulation),即Flash模拟EEPROM.为什么要用Flash模拟EEPROM?下面我们来看下两者之间的区别. Non-volatile memory,非易 ...

  2. 【Autosar 存储栈Memery Stack 4.Tc397的Flash编程】

    首先我们要了解Autosar的存储模块介质主要是两种:EEPROM和Flash仿EEPROM,分为片内与片外存储,因此就有2*2=4种存储方式: 主芯片片内FLASH仿EEPROM 主芯片片内EEPR ...

  3. 【小猫爪】AUTOSAR学习笔记16-Memory Stack之Nvm模块

    [小猫爪]AUTOSAR学习笔记16-Memory Stack之Nvm模块 前言 1 Memory Stack结构 2 NvM模块 2.1 Block 2.2 数据结构 2.3 Redundant B ...

  4. 基于Vector 的AUTOSAR NvM 模块使用

    本文主要讲述Vector的两款工具configurator和Developer关于NvM的配置流程,包括如何新建NvM SWC以及添加和修改NvM block,Developer主要涉及NvM SWC ...

  5. Autosar云天精讲 :《NVM 体系化讲解(十四万字精讲版本)》

    文章目录 1Document Information 2 Introduction 3 功能描述 Functional Description 3.1 功能 Features 3.1.1 Safety ...

  6. AUTOSAR —— NVM 2

    本文根据AUTOSAR4.4(Classic Platform)(https://www.autosar.org/standards/classic-platform/classic-platform ...

  7. Autosar Dcm模块之Vector Configurator Pro配置(DSP子模块)

    背景 之前简单介绍了Autosar Dcm模块,接下来我们直接切入主题,如何通过Vector Configurator Pro工具配置DSD子模块,并实现客户的需求. DSP子模块配置 1.DSP子模 ...

  8. Autosar BSW开发必知的“术语”+“缩写”概念-1-诊断通信篇

    如何使用该博文? ==>您可以将该篇博文当做"字典",遇到疑惑的Autosar"关键字",使用组合键Ctrl+F,快速查找该关键字. 推荐Autosar培 ...

  9. Autosar DaVinci Developer的一些基本功能

    前言 本章主要写一下Davinci Developer里面的一些基本功能 Autosar DaVinci Developer的一些基本功能 前言 1.应用软件组件的创建 1.1应用软件组件介绍 1.2 ...

最新文章

  1. HTML5 标签、事件句柄属性以及浏览器兼容情况速查手册
  2. Linux磁盘管理——df、du、磁盘分区、格式化、挂载、LVM
  3. html居右显示语言设置,iOS开发:纯代码设置UIButton文字居左或者居右显示
  4. 2进制、8进制、10进制、16进制...各种进制间的轻松转换(c#)
  5. python矩阵运算dot_numpy中的dot矩阵乘法
  6. 一文讲清,MySQL数据库一行数据在磁盘上是怎么存储的?
  7. 图像目标检测(Object Detection)原理与实现(二)
  8. C++ wchar_t
  9. CodeForces - 1514B AND 0, Sum Big【快速模幂】
  10. java 读取excel wps_安装WPS引发的excel上传问题
  11. 卡方线性趋势检验_趋势性卡方检验专题讨论
  12. 海思Hi3531DV100开发环境搭建
  13. hdu5294Tricks Device 最大流之最小割
  14. iOS系统的每次更新,要不要升?
  15. ios 设置导航栏背景色
  16. android studio图形验证码,android 一行代码,快速实现图片验证码(附android studio 版小demo)...
  17. 查询最后一次消费记录
  18. 拉丁超立方——样本点空间转换
  19. win7计算机自动关机设置在哪里设置方法,win7自动关机怎么设置
  20. 萨缪尔·莫尔斯,一个种族主义画家是如何窃取了电报发明权的呢?

热门文章

  1. c语言代码 linux 关机_linux下c语言关机程序
  2. Meta-INF文件的创建
  3. 帆船结构3D线上展示教学的亮点有哪些?
  4. php html 网页发帖框
  5. 拓嘉辰丰:拼多多店铺权重与转化有关系吗
  6. icomoon字体图标显示
  7. 计算机组成原理---中央处理器
  8. 如何对纸质文档进行数字化处理
  9. 《SpringBoot系列十六》条件装配时ConfigurationCondition和Condition有什么区别?什么时候用ConfigurationCondition?
  10. 如何用手机在旧楼房里拍出文艺范?