NvM的全称是NVRAM Manager。NVRAM是用来保存NV(Non Volatile,非易失)数据的,所谓的非易失数据指的是那些在掉电以后不会丢失的数据,而NvM模块是用来提供Nv数据管理的,用来维护NV数据。
满足AUTOSAR标准的NVRAM内存结构如下图,从这张图,我们能够比较清晰的看到AUTOSAR的NvM设计逻辑:
NvM中的的数据承载是以块(Block)出现的,总共有四种类型的数据块,又可以称为基础存储对象(Basic Storage Objects),他们分别是:
每一种块的结构可以参考下面三张图,对于Admin Block,与具体的NvM实现相关,AUTOSAR并没有规定它的具体结构:
值得注意的是,以上提到的Block的概念是NvM中的概念,是抽象出来的和具体实现无关,大家不要和普通的RAM/ROM以及FLASH/RAM/DLFASH/EEPROM等概念混淆。下边这个实现样例表格可以帮助大家加深一些理解:
NvM模块为程序运行提供了数据管理,因此很多模块会和NvM有交互,跟NvM交互的模块有RTE,DEM,EcuM,DET,MemIf,SchM,CRC Library。
为了实现存储管理NvM需要对FLASH或者EEPROM进行操作,这种操作并不是直接进行的,而是通过MemIf模块,MemIf模块把位于它下面的FLASH或者EEPROM抽象成线性的32位地址空间(包含了16位的逻辑块编号和16位的逻辑块内地址偏移),这个规定决定了NvM允许的最大逻辑块数为65536块,而每一块的大小为64K。 而逻辑块编号又可以分成两部分(块标识和dataset标识),这两部分的长度是可以通过NvMDatasetSelectionBits来配置的,它代表了dataset标识符的长度,出去dataset标识符部分就是块标识符了,dataset标识符最长为8个bit(最多256个datasets)。下边可以通过简单的一个示例图直观的看出这个概念:
NvM的逻辑块有三种类型:
NvM模块提供了相应的接口函数管理逻辑块,为了能够使NvM更广泛的应用到汽车领域,根据不同的硬件资源,这些API可以被裁减使用,这种裁减分类三类:
具体对应的的API列表在规范中可以查到,这里就不列出来了
到此这篇bs4解析器有哪些(bs4数据解析)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/68480.html