首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

STM32操作Flash存储器高效率的方法

2014-01-23 
STM32操作Flash存储器高效的方法大家好!我想问下,在STM32中操作Flash有什么高效的方法?之前我有问过类似的

STM32操作Flash存储器高效的方法
大家好!
我想问下,在STM32中操作Flash有什么高效的方法?之前我有问过类似的问题。
例如:我现在做门禁系统,有个MX25L1605D的Flash存储器,它有2M字节的容量,我现在使用它的第0扇区4K字节作为门禁系统中的权限存储区域,因为对这款存储器进行写操作必须先擦除,擦除也是以扇区为单位,即一次擦除4KB。

所以我每往里面写一条权限信息(假如我的权限信息是一个4字节的数据),则必须要擦除一次这个扇区而且还要保存之前已经存在的权限信息,我现在的做法是:擦除之前用一个4K大小的数组来保存这个扇区里所有的数据,等把需要的权限数据放在这个数组里面之后再一并写入Flash,但是总感觉这样很浪费内存,对于STM32还有足够的内存,换成51之类的那我岂不是束手无策了,不知道大家有什么好的建议?

还有就是从Flash读取数据的时候,如何高效地找到需要的数据,比如我在0扇区里面存储了300条权限记录,每个权限4字节大小,我从读卡器刷卡时,如何能快速从Flash查找数据并进行匹配?谢谢大家!
[解决办法]
因为对这款存储器进行写操作必须先擦除,擦除也是以扇区为单位,即一次擦除4KB。 
-------
这种FLASH操作都不是很好,我一般都是采用可变的地址空间来存储权限数据,减少擦除次数,比如第一扇区的前10个字节存储权限数据,权限修改后,变成了10-20地址存储权限数据。

热点排行