如何判断flash 已写满

[复制链接]
1701|25
 楼主| spark周 发表于 2016-9-16 11:32 | 显示全部楼层 |阅读模式
单片机控制flash ,每隔2分钟写一些数据,每次写之前怎么找到上次写的结尾,接着往下写,然后如何判断flash 已写满。谢谢!
liliang9554 发表于 2016-9-16 11:35 | 显示全部楼层
既然是每2分钟写一些数据,那么频率不算很高,一般在FLASH中用一小块空间,将当前FLASH“写指针”的值存入,下次开机时读取该值,并继续往下写,而这是在你“每2分钟”写一些数据后进行的附加操作,当然前提是单片机不会在你写数据时断电
 楼主| spark周 发表于 2016-9-16 11:36 | 显示全部楼层
可靠些呢?
liliang9554 发表于 2016-9-16 11:38 | 显示全部楼层
每次准备写之前先统计写入字节+下面提到的校验码字节总数,计算好写完后FLASH指针会指向哪个地址,先写入FLASH中特定区域,之后再将实际数据连同该区域的校验码一同写入,需要用到时先根据校验码进行校验
jlyuan 发表于 2016-9-16 11:41 | 显示全部楼层
对,先更新指针是为了防止数据写入完未更新指针时断电,造成下次开机再次对该未擦除且已写过数据的区域进行写操作产生错误
zhaoxqi 发表于 2016-9-16 11:42 | 显示全部楼层
可以用索引值也就是如楼上所言的“写指针”,也可以用特定的字符串做结尾标志,二者各有优缺点。
huangchui 发表于 2016-9-16 11:44 | 显示全部楼层
开辟一段空间做映射表
huangchui 发表于 2016-9-16 11:45 | 显示全部楼层
或者看看磁盘管理的书
 楼主| spark周 发表于 2016-9-16 11:48 | 显示全部楼层
哦,那我就知道怎么回事了,多谢大家,结贴了哈
smilingangel 发表于 2016-9-16 12:52 | 显示全部楼层
这个首先的需要你非常清楚你要写的flash空间有多大的
smilingangel 发表于 2016-9-16 12:53 | 显示全部楼层
然后考虑你每次写数据多大,最多可以写多长时间的就自然计算出来了
smilingangel 发表于 2016-9-16 12:54 | 显示全部楼层
还有需要考虑flash 的擦除机制的与数据的保存方式的
comeon201208 发表于 2016-9-16 13:46 | 显示全部楼层
这个直接判断是不可以的,设计这自己要首先非常熟悉flasH的读写机制的
firstblood 发表于 2016-9-16 16:14 | 显示全部楼层
楼上两位说的是,对于MCU中自带的flash的读写处理的,要先了解其读写机制的。
dspmana 发表于 2016-9-16 17:07 | 显示全部楼层
你知道flash大小多少?
dspmana 发表于 2016-9-16 17:09 | 显示全部楼层
地址写满了应该能够判断出来才对的。
baimiaocun2015 发表于 2016-9-16 17:36 | 显示全部楼层
这个一般不好判断的,只能鞥是根据flsh内存分布情况的自己判断的。。
baimiaocun2015 发表于 2016-9-16 17:37 | 显示全部楼层
不过还一个就是看存储的数据跟剩余空间里面的值情况的,,一般擦出完了的里面只基本上那个全都围0或这ff的
米尔豪斯 发表于 2016-9-16 20:36 | 显示全部楼层
不好判断的吧
mmbs 发表于 2016-9-17 22:44 | 显示全部楼层
地址写到头不就是写满了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

821

主题

10121

帖子

4

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