The invention discloses a method and a system for reading and writing FLASH data, this method is the N page allocation in FLASH for the data storage area storing data record, one page as the index, the N 1 pages as a recording area, also includes the following steps: step S101: whether the target page is Nm full, if not full implementation of S102, if filled to the steps of S1a ~ S1c; the target page Nm step S102: the data to be written in the order in the recording area; step S1a: erase the recording area of the information about the page Nm+2 page content were set to the identification information of the 0xff; step S1b: the data recording area to be written to the data page Nm+1 page number in the order of the index area; step S1c: the writing data to be written into the order of the recording area Nm+1 page; the recording area of the N page for a 1 The storage area of the circular queue. The technical scheme of the invention reduces the FLASH endurance, long service life, finally recording quickly find the position of electric energy on the last time when the power is off.
【技术实现步骤摘要】
FLASH数据读写方法及系统
本专利技术涉及数据存储领域,特别涉及一种FLASH数据读写方法及系统。
技术介绍
针对嵌入式系统领域的相关设备,用户要求实时保存设备运行的数据,连续记录时间不少于5分钟,每分钟数据不少于60条记录,且有足够存储空间,数据掉电不丢失,存储器的使用寿命不小于20年。每条记录长度20byte(8bit/byte),前面14byte存放的是设备的状态及各种信息,后面6byte存放的是实时的年、月、日、时、分、秒。目前,保存数据的方法有:硬盘、电子盘、RAM外加电池、FLASH闪存等。其中,硬盘、电子盘成本高、体积大;RAM外加电池的方法由于使用了电池,电池寿命短,不能满足要求;FLASH闪存由于其存储空间大、价格低廉等优势,被广泛的应用到各类的嵌入式系统中。传统的FLASH内部分为多个存储单元页(page),存储单元页是可擦除的最小单位,字节或字是写入数据的最小单位。FLASH存储器的写操作和一般的存储器不同,FLASH的写操作必须先将存储单元擦除,然后再写入。由于FLASH擦写次数有限,频繁的对FLASH存储器进行擦写会影响其使用寿命,若不采取特殊处理,寿命不能满足要求。
技术实现思路
本专利技术主要解决的技术问题是提供一种嵌入式系统(或单片机内置)内置FLASH数据存储、快速查找方法,该专利技术可以避免使用RAM外加电池降低使用寿命,也可以避免使用硬盘、电子盘增加成本、增大体积,也不需要增加片外存储器、减小产品单板面积和降低成本。既降低FLASH的擦写次数,解决使用寿命问题,也解决上电能快速查找到上次关机时最后存储记录的位置。针对上述 ...
【技术保护点】
一种FLASH数据读写方法,其特征在于:在FLASH中分配N页为数据存储区,用于存放数据记录,其中一页作为索引区,其余N‑1页作为记录区,所述方法包括:步骤S101:判断所述目标页Nm是否写满,若未写满执行S102,若写满则转到如下步骤S1a~S1c;步骤S102:将所述待写入数据顺序写入所述记录区的目标页Nm中;步骤S1a:擦除所述记录区的页Nm+2的信息即将该页内容全部置为0xff的标识信息;步骤S1b:将所述数据记录区中所述待写入数据的页Nm+1的页码号顺序写入所述索引区;步骤S1c:将所述待写入数据顺序写入所述记录区的页Nm+1中;所述步骤S1b之前还包括如下步骤:步骤S201:判断所述索引区是否写满,若写满则执行步骤S202;若未写满执行步骤S1b;步骤S202:擦除所述索引区所有存储单元信息即将该页内容全部置为0xff的标识信息;步骤S203:页Nm+1的页码号写入所述索引区第一个存储单元;所述记录区的N‑1页为一个循环队列的存储区。
【技术特征摘要】
1.一种FLASH数据读写方法,其特征在于:在FLASH中分配N页为数据存储区,用于存放数据记录,其中一页作为索引区,其余N-1页作为记录区,所述方法包括:步骤S101:判断所述目标页Nm是否写满,若未写满执行S102,若写满则转到如下步骤S1a~S1c;步骤S102:将所述待写入数据顺序写入所述记录区的目标页Nm中;步骤S1a:擦除所述记录区的页Nm+2的信息即将该页内容全部置为0xff的标识信息;步骤S1b:将所述数据记录区中所述待写入数据的页Nm+1的页码号顺序写入所述索引区;步骤S1c:将所述待写入数据顺序写入所述记录区的页Nm+1中;所述步骤S1b之前还包括如下步骤:步骤S201:判断所述索引区是否写满,若写满则执行步骤S202;若未写满执行步骤S1b;步骤S202:擦除所述索引区所有存储单元信息即将该页内容全部置为0xff的标识信息;步骤S203:页Nm+1的页码号写入所述索引区第一个存储单元;所述记录区的N-1页为一个循环队列的存储区。2.如权利要1所述的FLASH数据读写方法,其特征在于,所述方法还包括如下步骤,在所述FLASH启动时,在所述步骤S101之前还执行如下步骤:步骤S301:从所述索引区的最后存储单元开始逆向查找,查找有无存储单元中的信息是否等于0xff的标识信息,若不是,则执行步骤S302;步骤S302:读取所述索引区存储的页码信息Nm,Nm即为最后存入的数据记录所在页码;步骤S303:从所述记录区第Nm页中的最后存储单元开始逆向查找,查找存储单元中的信息是否等于0xff的标识信息,若不是,该字节所处的地址W是最后存入数据记录的存储位置;步骤S304:判断是写数据还是读数据,若是写数据,则转到步骤S305;若是读数据则转到读数据子程序P1,所述子程序P1为从m页W地址开始逆向往前读取记录,根据给定的参数计算读取数据的长度,进而读取数据相应FLASH的数据直到读取结束;步骤S305:将所述待写入数据写入所述的Nm页的地址W之后的存储单元。3.如权利要2所述的FLASH数据读写方法,其特征在于,所述步骤S305之前还包括...
【专利技术属性】
技术研发人员:龙道志,张惠军,沈鹏程,舒凯,陈蓉,
申请(专利权)人:武汉永力科技股份有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。