[发明专利]记录指针处理方法有效
申请号: | 201710576070.5 | 申请日: | 2017-07-14 |
公开(公告)号: | CN107463507B | 公开(公告)日: | 2020-05-08 |
发明(设计)人: | 石教辉;黄俊祥;曾宪聪 | 申请(专利权)人: | 惠州市天泽盈丰物联网科技股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 深圳市德锦知识产权代理有限公司 44352 | 代理人: | 丁敬伟 |
地址: | 516000 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 记录 指针 处理 方法 | ||
本发明公开了一种记录指针处理方法,包括以下步骤:进行写操作;从数据纪录区的首地址开始写入数据记录;写完成后将数据记录区的首地址设为读记录指针p1,本次写的最后一条数据记录的首地址设为写记录指针p2;算出总写的数据记录的条数X;再次写操作;将上次的写记录指针p2设为本次的读记录指针p1;将读记录指针p1对应的地址加上M长度,所得地址为本次写数据记录的首地址D1;从首地址D1开始写入数据记录,将本次所有数据记录的最后一条数据记录对应的首地址设为本次写的写记录指针p2;算出本次写的数据记录的条数X1;计算总写的数据记录的条数X。本发明有效提高Flash芯片的使用寿命和空间利用率。
技术领域
本发明涉及物联网设备技术领域,尤其涉及一种记录指针处理方法。
背景技术
NorFlash因具有易擦除、读写速度快、性价比高等优点,广泛应用于嵌入式数据存储解决方案。如华邦W25系列Flash芯片,该芯片存储空间为4M字节,划分为64块,每块16扇区,每扇区4K字节,总计1024扇区。
由于Flash写操作只能将存储单元由1变为0,因此写数据前必须先进行擦除操作(即将存储单元变为1)。以上提到的Flash芯片只支持扇区擦除,假设要写一段100字节的数据到第n扇区,存储位置为该扇区第1000到1099字节,先将该扇区所有数据读入CPU内存,然后将第1000到1099字节的内容替换为想要写入的数据,再将Flash该扇区4K字节全部擦除,最后将内存中经过替换的该扇区的数据写入Flash,这就相当于将100字节的数据写入Flash特定地址而该扇区其他数据不变。若写数据时不用考虑该扇区原有数据保留问题的话,可以只擦一次,然后连续写入,所以通常的做法是先不擦除写一遍,若不成功则先擦除再重写。
显而易见,Flash只适用于数据变动不太频繁的存储,因为Flash的擦写次数是有限的。现有的数据存储方式多采用固定分区,将芯片存储空间按地址人为划分为若干个区,每个区存储指定类别的数据,每次更新数据均从分区的起始地址开始擦除,同时写入数据,如下载程序、字库时都是采用这种方式。但是对于实时存储读取的记录数据,如适用于电子刷卡设备,每刷一次卡,按一次键都要保存记录,一天可以产生数百条记录,靠近分区起始地址的存储单元擦写次数会明显多于其他位置,造成部分坏区,影响芯片的使用效果。
发明内容
本发明为解决传统Flash芯片擦写不均,使用寿命短的技术问题,提供了一种记录指针处理方法。
本发明提供了一种记录指针处理方法,包括以下步骤:
步骤S12,将每条数据记录的字节长度设定为M,数据纪录区最大存储N条数据记录,当前数据记录总数量为X;
步骤S13,进行写操作,写每条数据记录前先擦除M长度的数据记录区;
步骤S14,从数据纪录区的首地址开始写入数据记录;
步骤S15,写完成后将数据记录区的首地址设为读记录指针p1,本次写的最后一条数据记录的首地址设为写记录指针p2;
步骤S16,将写记录指针p2减去读记录指针p1,然后除以每条数据记录的字节长度M,再加上1,算出总写的数据记录的条数X,即X=(p2-p1)/M+1;
步骤S17,再次写操作,写每条数据记录前先擦除M长度的数据记录区;
步骤S18,将上次记录指针中包含的写记录指针p2所对应的地址设为本次的读记录指针p1对应的地址;
步骤S19,将读记录指针p1对应的地址加上M长度,所得地址为本次写数据记录的首地址D1;
步骤S20,从首地址D1开始写入数据记录,将本次所有数据记录的最后一条数据记录对应的首地址设为本次写的写记录指针p2;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于惠州市天泽盈丰物联网科技股份有限公司,未经惠州市天泽盈丰物联网科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710576070.5/2.html,转载请声明来源钻瓜专利网。