求一个flash存储和读写的方案

2019-10-15 02:17发布

我已经调通了flash。
现在我的需求是这样:
我每隔1分钟存储一次信息,包括:时间,应力,信号幅值。。。。。大概100字节。
这样存最多可以存半个月的信息吧。

会有上位机软件不定期向我获取flash里的信息。它的指令里会给我两个时间参数,我要把这段时间内的历史数据发给上位机。

我的问题是这样:
1,如何把指令里的时间段和我的FLASH存储地址对应起来
2,考虑到停电的情况,flash里存储的信息并不是连续的。也就是说我要知道上位机想要获取的时间段内我自身有没有掉电。
3,半个月后我会用新的信息把最老的信息覆盖掉,这就导致flash最早的有效信息不一定在哪个地址上。


因为以前没做过这样的事,感觉有点思路但还是很乱。
请有经验的前辈指点一下。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
XUZJWWSZ
2019-10-16 21:25
隨颩洏過 发表于 2017-2-16 13:26
楼主您好!
      我现在要做的项目也遇到你说的这样的问题:上位机软件不定期向我获取flash里的信息。它的 ...

存入flash的每条信息都带着时间。先假设没有掉电的情况,每条信息在FLASH的存储地址和时间是一一对应的。
也就是说假如你最近一次存储数据的时间是t,那么在t之前的任何时间段T1到T2之间,都会有对应的地址段ADDR1到ADDR2。
如果有掉电呢?ADDR1和ADDR2会向你最近一次存储数据的地址偏移一定量。
所以我的思路是根据时间段算出地址区间,取得区间边界的时间与命令中的时间段作比较,如果吻合直接从地址段中取数据回应。如果不吻合就把地址段整体偏移,然后在取地址边界的时间作比较,这个过程用了二分法。
本着回应的数据只多不少的原则,我这样做暂时达到了目的。

一周热门 更多>