[DemoCode下载] 用DataFlash模拟EEPROM 的API,带source code

[复制链接]
3682|8
 楼主| clyu 发表于 2014-11-21 16:47 | 显示全部楼层 |阅读模式
用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下面

EEPROM_Emulator_M051_BSP_Rev3.00.001.zip

1.01 MB, 下载次数: 203

从小木丁丁 发表于 2014-11-21 19:56 | 显示全部楼层
谢谢分享,下载看看
mintspring 发表于 2014-11-24 14:12 来自手机 | 显示全部楼层
下载学习一下
yywdc 发表于 2015-6-25 16:01 | 显示全部楼层
好东西!赞一个
Harvard 发表于 2015-6-26 13:01 | 显示全部楼层
mintspring 发表于 2015-6-27 10:59 | 显示全部楼层
nt ReadRomW(uint32_t index, uint32_t *data);读某个index(上例就是0 ~ 12,最大可以到14)
598330983 发表于 2015-6-27 23:36 来自手机 | 显示全部楼层
int SetRomSize(int index, int totalsize)
598330983 发表于 2015-6-27 23:36 来自手机 | 显示全部楼层
int SetRomSize(int index, int totalsize)
zhcxq 发表于 2016-5-3 17:30 | 显示全部楼层
数据量大的时候,比如256,是不是会有问题?有用过的吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:新唐科技
简介:新唐科技晶圆代工(源自于华邦电子六英寸晶圆厂)座落于台湾新竹科学园区内,月产能为45,000片,自1992年起,拥有超过20年晶圆代工服务经验,于2008年自华邦电子分割后,完全专注于晶圆代工。新唐晶圆代工厂目前提供0.35微米以上工艺,包括一般逻辑(Generic Logic)、混合信号(Mixed Signal)、高压(High Voltage)、超高压(Ultra High Voltage)、电源管理(Power Management)、Mask ROM (Flat Cell)、嵌入式记忆体(embedded Logic Non-Volatile Memory)与客制化工艺(如:IGBT, MOSFET, TVS, BioChip, Pressure Sensor, and Light Sensor)等。

6

主题

61

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部