网站建设前的需求分析,海外购物网站哪个最好,公司建设内容是什么,快速搭建网站域名绑定设置Native NVRAM block
Native block是最基础的NvM Block#xff0c;可以用来存储一个数据#xff0c;可以配置长度、CRC等。
Redundant NVRAM block
Redundant block就是在Native block的基础上再加一个冗余块#xff0c;当Native block失效#xff08;读取失败或CRC校验失…Native NVRAM block
Native block是最基础的NvM Block可以用来存储一个数据可以配置长度、CRC等。
Redundant NVRAM block
Redundant block就是在Native block的基础上再加一个冗余块当Native block失效读取失败或CRC校验失败等时可以从Redundant block中恢复数据。 Redundant block中的NvMNvBlockNum要配置为2.
Dataset NVRAM block
顾名思义Dataset是一个数据组可以针对一个数据存储多个不同的值同时还支持部分数据存放在NvM中部分数据固化在ROM中。举个例子座椅位置是RAM中的一个数据车上的座椅位置记忆功能支持记忆四个位置的数据这四个位置数据存放在NvM中可以由用户修改还有座椅最前和最后两个位置的数据是固定的存放于ROM中不支持修改。这种场景下就可以用Dataset这种存储方式。
Dataset类型的数据在配置的时候类型要选择NVM_BLOCK_DATASET如下图所示可以配置一个RAMBlock和ROMBlockROMBlock可以是一个数组。 注意下NvMNvBlockNum和NvMRomBlockNum这两个配置参数NvMNvBlockNum代表NvM中存储的数据个数可读可写NvMRomBlockNum代表ROM中存储的数据个数只可读不可写同时NvMRomBlockDataAddress 配置项中配置的ROMBlock数组的大小也要等于NvMRomBlockNum。例如
uint32 RAMBlock_DatasetTest;
const uint32 ROMBlock_DatasetTest[2]
{0x11223344,0x55667788
};
在读写数据的时候要先调用 Std_ReturnType NvM_SetDataIndex(NvM_BlockIdType BlockId, uint8 DataIndex) 接口设置要读写的Block索引索引是NvBlock的块在前RomBlock的块在后。比如上图中NvMNvBlockNum配置为4NvMRomBlockNum配置为2那么NvBlock各个块的索引就是0-3RomBlock两个块的索引就是4-5. 可参考下面标准中的图 读写数据的代码举例如下 //读NvM_SetDataIndex(NvMConf_NvMBlockDescriptor_NvMBlock_DatasetTest, DatasetTestIndex);NvM_ReadPRAMBlock(NvMConf_NvMBlockDescriptor_NvMBlock_DatasetTest);//写NvM_SetDataIndex(NvMConf_NvMBlockDescriptor_NvMBlock_DatasetTest, DatasetTestIndex);NvM_WritePRAMBlock(NvMConf_NvMBlockDescriptor_NvMBlock_DatasetTest);还要注意一点Dataset类型的Block不支持NvM_ReadAllETAS会报错但我在标准中好像没找到相关的描述存疑。NvM_WriteAll是支持的。下面是ETAS生成时候的报错。 当未调用NvM_SetDataIndex API设置索引时默认使用的是第0块。