打印

如何判断flash 已写满

[复制链接]
1635|45
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
spark周|  楼主 | 2018-12-4 18:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
liliang9554| | 2018-12-4 18:49 | 只看该作者
既然是每2分钟写一些数据,那么频率不算很高,一般在FLASH中用一小块空间,将当前FLASH“写指针”的值存入,下次开机时读取该值,并继续往下写,而这是在你“每2分钟”写一些数据后进行的附加操作,当然前提是单片机不会在你写数据时断电

使用特权

评论回复
评论
dirtwillfly 2018-12-5 08:37 回复TA
一般都是用这种办法 
板凳
spark周|  楼主 | 2018-12-4 18:52 | 只看该作者
可靠些呢?

使用特权

评论回复
地板
liliang9554| | 2018-12-4 18:57 | 只看该作者
每次准备写之前先统计写入字节+下面提到的校验码字节总数,计算好写完后FLASH指针会指向哪个地址,先写入FLASH中特定区域,之后再将实际数据连同该区域的校验码一同写入,需要用到时先根据校验码进行校验

使用特权

评论回复
5
jlyuan| | 2018-12-4 19:01 | 只看该作者
对,先更新指针是为了防止数据写入完未更新指针时断电,造成下次开机再次对该未擦除且已写过数据的区域进行写操作产生错误

使用特权

评论回复
6
zhaoxqi| | 2018-12-4 19:04 | 只看该作者
可以用索引值也就是如楼上所言的“写指针”,也可以用特定的字符串做结尾标志,二者各有优缺点。

使用特权

评论回复
7
huangchui| | 2018-12-4 19:09 | 只看该作者
开辟一段空间做映射表

使用特权

评论回复
8
huangchui| | 2018-12-4 19:13 | 只看该作者
或者看看磁盘管理的书

使用特权

评论回复
9
jiaxw| | 2018-12-4 19:18 | 只看该作者
这个首先的需要你非常清楚你要写的flash空间有多大的

使用特权

评论回复
10
zhaoxqi| | 2018-12-4 19:21 | 只看该作者
然后考虑你每次写数据多大,最多可以写多长时间的就自然计算出来了

使用特权

评论回复
11
shimx| | 2018-12-4 19:23 | 只看该作者
还有需要考虑flash 的擦除机制的与数据的保存方式的

使用特权

评论回复
12
shimx| | 2018-12-4 19:27 | 只看该作者
这个直接判断是不可以的,设计这自己要首先非常熟悉flasH的读写机制的

使用特权

评论回复
13
jiaxw| | 2018-12-4 19:30 | 只看该作者
楼上两位说的是,对于MCU中自带的flash的读写处理的,要先了解其读写机制的。

使用特权

评论回复
14
zhanghqi| | 2018-12-4 19:35 | 只看该作者
你知道flash大小多少?

使用特权

评论回复
15
liliang9554| | 2018-12-4 19:39 | 只看该作者
地址写满了应该能够判断出来才对的。

使用特权

评论回复
16
jiajs| | 2018-12-4 19:41 | 只看该作者
这个一般不好判断的,只能鞥是根据flsh内存分布情况的自己判断的。。

使用特权

评论回复
17
jiaxw| | 2018-12-4 19:44 | 只看该作者

不过还一个就是看存储的数据跟剩余空间里面的值情况的,,一般擦出完了的里面只基本上那个全都围0或这ff的

使用特权

评论回复
18
heweibig| | 2018-12-4 19:48 | 只看该作者
不好判断的吧
地址写到头不就是写满了吗?

使用特权

评论回复
19
wuhany| | 2018-12-4 19:52 | 只看该作者
可靠是指的什么?

使用特权

评论回复
20
jiahy| | 2018-12-4 19:55 | 只看该作者
这个只能是自己根据自己所写的数据内容的进行读取比较的

使用特权

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

本版积分规则

821

主题

10121

帖子

4

粉丝