今天主要讲第三种block type, Dataset block
这种类型的block,我们需要把NvMBlockManagementType 设置为NVM_BLOCK_DATASET。对于这种block,我们可以分配一个甚至多个ROM data block。
具体的NV block的数量由NvMNvBlockNum来决定,每个NV block的地址也是通过和NvMNvBlockBaseNumber以及index一起决定,第一个NV block 就是0,最后一个block的index就是NvMNvBlockNum -1。
现在又是一个栗子。
车上的录音机里一共可以存10个不同的频率,里面6个可以用户自己自定义,4个是固定的。
为了存储这10个频率,我们可以用dataset block来实现。
当前正在用的频率:float CurFrequency;
四个不可以修改的频率 :const float FixFrequencies[4] = {82.5,87.7,93.3,106.5};
把NvMBlockManagementType 设置为NVM_BLOCK_DATASET,
我们的block要存储6个用户自定义的频率,所以NvMNvBlockNum = 6.
四个不可改的频率放在ROM中,所以NvMRomBlockNum = 4.
CurFrequency作为permanent RAM data block的地址,FixFrequencies作为ROM data block的地址。
►设置NvMRamBlockDataAddress to &CurFrequency.
► 设置NvMRomBlockDataAddress to &FixFrequencies[0].
►NvMNvBlockLength to 4 因为 fr