打印
[N32G45x]

FLASH模拟EEPROM,页擦写可以有效延长擦写次数

[复制链接]
470|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
八月的雨|  楼主 | 2022-12-2 22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本程序仅供参考、交流、学习使用!!!
1、功能说明
    FLASH模拟EEPROM。存储的数据长度为16位,如果数据类型超过16位请自行分段存储。
        一个数据在FLASH内部格式为高16位为虚拟地址,低16位为用户数据。
   读取时只需要寻找虚拟地址,虚拟地址后面的数据即用户数据。
   ________________________________________________________________
   | 31 | 30 | 29 |  ... | 17 | 16 | 15 | 14 | ... | 02 | 01 | 00 |
   ________________________________________________________________
   |         虚拟地址                |        用户数据                |
   本例程只是演示简单读写操作,可根据自己需求更改,增加判读数据不一致时再写flash,减少写次数延长flash寿命。
   本例程使用的为N32G457REL7最大flash为512KB,采用最后的8K空间进行演示。根据自己数据量适当增减(至少2个page)。
   8K空间分为两个数据块,交替使用。数据块0先存,存满之后再存数据块1,存数据块1之前先把数据块0最新的数据转存到存储块1,
   再把数据块0整个擦除。等数据块1存满之后,同样的方法转移大数据块0。

2、使用方法:
   变量 NB_OF_VAR 为规划的变量总数,根据项目需求进行合理更改
   数组VirtAddVarTab里面存放的数据为虚拟地址。虚拟地址在初始化EEPROM的时候进行初始化。
   初始化和每次进行写操作时需要先对FLASH进行解锁,操作完成之后再上锁。
   初始化、读、写调用n32_eeprom.h内部的3个函数即可。





N32G45x_FLASH_EEPROM.zip

1.16 MB

使用特权

评论回复
沙发
chenjun89| | 2022-12-3 17:59 | 只看该作者
下载参考一下楼主的代码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

2

粉丝