【Autosar 存储栈Memery Stack 1.NVM Block的了解】

1.学习NVM之前先了解其架构图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.了解Block概念与含义

在这里插入图片描述

名称描述
NVRAM BlockNVRAM Block是管理和存储 NV Block所需的整个结构
Basic Storage ObjectBasic 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

  • 10
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Autosar存储栈是用于处理车载电子系统的存储器管理的软件。Autosar存储栈主要分为两个部分,即Memory StackMemory Abstraction。Memory Stack是用于数据存储的内部存储器,而Memory Abstraction则是用于将内部存储器中的数据映射到外部存储器中的抽象层面。 在Memory Stack中,存储的读写操作必须符合一定的流程要求和时序要求。具体而言,读写流程分为以下几个步骤: 1. 申请存储空间:首先需要向Memory Stack申请一块存储空间,以便存储数据。 2. 写数据:在申请到存储空间之后,需要将待存储的数据写入到内部存储器中。 3. 校验数据:写入数据后,需要进行数据校验,以确保数据存储的正确性。 4. 读数据:在需要读取内部存储器中的数据时,需要进行读取操作,并将数据传递给处理器进行后续处理。 5. 释放存储空间:在数据读写完成后,需要向Memory Stack发送一条释放存储空间的指令,以确保存储空间能够被重复利用。 在读写流程的时序方面,需要注意以下几点: 1. 读写操作应该按照一定的顺序进行,以避免出现数据覆盖或者数据丢失等情况。 2. 写入数据的速度应该足够快,以确保数据存储的及时性和正确性。 3. 在进行读取操作时,需要注意读取数据的先后顺序,以确保数据的完整性和一致性。 总体而言,Autosar存储栈的实现需要严格遵循读写流程要求和时序要求,以确保车载电子系统的可靠性和稳定性。同时,还需要根据具体的业务需求进行相应的优化和扩展,以满足不同场景下的应用需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值