写EEPROM,写FLASH经验记录

    最近在做一款产品移植。用户数据一共7块内容。老产品都是用EEPROM的读写方式通信,内在的东西不熟悉,看不到。

然而在STM32105里面,自己开始琢磨用户数据的保存,开始搬迁。首次玩此款芯片,经验不多经历了很多坎坷,写篇文章记录:

1、明确需求很重要。我的数据有4块是小数据而且经常要改动,有1块 数据不常用,内容几十字节。有1块数据接近2K,有1块数据大于2K。

2、明确平台资源。STM32105RC, 64KRAM,256KROM, flash的页大小2K一页。

3、寻找轮子,向前进。官网模拟EEPROM的例程:STM32F10x_AN2594_FW_V3.1.0优化(FLASH模拟EEPROM)

4、耐心磨刀。特别是经验不足的新手(我)。

    a.在第1调需求没明确,导致个别区块大小定义不准确。同样影响常用数据分类,数据大小分类的准确性

    b.七块数据保守估计4K,没理解透第2条,天真的去申请操作4K的数据。  

    c.没理解号轮子的特性,竟然误解优化的方法,想拿掉;竟然以为模拟EEPROM,一页可以存2K数据;实际上优化的方法方便读写数据的速度,模拟EEPROM,一半存的是虚拟地址,一半存的数据,准确来说还要预留4个字节存页状态,实际数据不足1K每页。

     d.实战经验缺乏,乱搞了很多次。例如模拟EEPROM写满一页需要回收有效数据,然后转移到新页

     e.折腾了好机会,开始独创新模式,采用模拟EEPROM的原则、理论、方法,单独定义页面来存储接近2K的数据,大于2K的块数据。无奈换页的时候,要么内存数据会被影响,要么换页数据不准确,大小 不到位。不过好事多磨还是解决 了。

总结:再好的记忆也比不上一个烂笔头。数据模型,FLASH存储,MEM申请和释放,数据编辑和换页操作。这4快都是要一笔一划清晰用笔头描绘出来。



猜你喜欢

转载自blog.csdn.net/cs14789652/article/details/80289127
今日推荐