用DataFlash模拟EEPROM。用户把要保存的数据进行编号(index),例如:0 ~ 12共13个数据要保存。每个数据做多4个字节。该库提供API如下:
int SetRomSize(int index, int totalsize);用于设定用来保存数据的flash size。将从dataflash中分一块出来用于保存数据。剩下的还可以用来保存其它的。分配的大小至少是要保出数据的size的两倍,并且是2的倍数。还是上面的例子,13个数据需要16个空间,16×4 = 64个字节。2倍的话就是128B.至少要分配128个字节。当然Size越大越好,可以是3倍,4倍
Eg: SetRomSize(16, 128);index=16最多可以保存15个数据
或者SetRomSize(16, 1024);
int ReadRomW(uint32_t index, uint32_t *data);读某个index(上例就是0 ~ 12,最大可以到14)
int WriteRomW(int index, uint32_t data);更新某个index处的数据
用这个库的好处就是不用担心正更新的时候断电,导致数据丢失。并且该算法尽量均匀使用flash减少erase的次数
库的源码也在附件里,跟测试代码都在目录SampleCode\Lib\EEPROM_Emulator下面 |