[发明专利]一种嵌入式系统中基于使用描述表的数据操作方法无效
申请号: | 201110259660.8 | 申请日: | 2011-09-05 |
公开(公告)号: | CN102981926A | 公开(公告)日: | 2013-03-20 |
发明(设计)人: | 黄正 | 申请(专利权)人: | 上海华魏光纤传感技术有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F12/02 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 201700 上海市青浦区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 系统 基于 使用 描述 数据 操作方法 | ||
1.一种嵌入式系统中基于使用描述表的数据操作方法,所述数据操作方法是利用FLASH、FRAM和SDRAM三种存储器构成的一个嵌入式系统内存完成的,其特征在于:该方法包括以下四个步骤:
步骤一:关键数据初始化
在系统设计时,把FLASH划分成如关键数据区、记录数据区、操作系统区、数据库区等多个空间,每个区包括至少一个SECTOR;
进一步的,对FLASH所有的SECTOR进行编号,特别地,保留一个SECTOR,用来作为数据转储(数据备份)操作;
进一步的,把关键数据区划分为N个关键数据空间子块,每个关键数据空间子块的大小为一条关键数据量的大小;
进一步的,对所述关键数据空间子块进行编号,编号依次从1、2...到N;
在FRAM里面建立一张关键数据使用描述表,开辟一个空间作为关键数据转储操作的标记区;
进一步的,所述关键数据使用描述表用以描述FLASH中每条关键数据的使用情况,如果已经有有效数据写入的,就是有效的,反之如果是空白的,则是无效的(不可用);
进一步的,所述关键数据使用描述表用位(bit)表示,每个位对应一条关键数据;
当某一条关键数据已经登记(录入)时,表明这条关键数据已经占用了某个FLASH关键数据空间子块,这时在关键数据使用描述表相应的位置置1;否则,那些尚未被登记(即无效)的关键数据空间子块,其关键数据使用描述表对应的位置则置0;
进一步的,所述关键数据转储操作的标记区中存放两个字节型的标记A和B,以及发生转储操作的FLASH的SECTOR编号;
在SDRAM中开辟一个空间,空间大小跟FLASH中关键数据区大小一样,且FRAM中关键数据使用描述表中的每一位都对应着FLASH和SDRAM中关键数据区的一个关键数据空间子块,FLASH的每一个关键数据空间子块和SDRAM中的每一个关键数据空间子块一一对应;
步骤二:新增关键数据
当一条新的关键数据准备好之后,先读取FRAM中的关键数据使用描述表,根据这张表找出FLASH中任何一个尚未被使用的关键数据空间子块i,并可算出其所在FLASH中的扇区号,假设其扇区号为k;然后执行关键数据增加操作:
第一步,擦除FLASH中用于备份的SECTOR;
第二步,设置FRAM中的转储标记,其中设置A=0,B=1,SECTOR编号=k;
第三步,读取FLASH中编号为k的SECTOR中的全部数据到SDRAM,然后把这部分数据写入FLASH中用于备份的SECTOR中,并做校验,这一步叫做转储;
第四步,如果转储成功,则设置FRAM中的转储标记,其中设置A=1,B=1;如果系统发生异常,则FRAM中的转储标记A=0,B=1不会改变;
第五步,在SDRAM的关键数据区中找到编号为i关键数据子块,把要增加的关键数据写入这个关键数据子块空间;
第六步,设置FRAM中的转储标记,其中设置A=1,B=0;
第七步,擦除FLASH中编号为k的SECTOR;
第八步,把SDRAM中与FLASH编号为k的SECTOR相对应的数据块(一个SECTOR大小的数据块)写入FLASH中编号为k的SECTOR中,并做校验;
第九步,如果第八步写入成功,则设置FRAM中的转储标记,其中设置A=1,B=1;如果系统发生异常,则设置FRAM中的转储标记A=1,B=0,SECTOR编号=k,不会改变;
第十步,设置FRAM中的关键数据使用描述表的第i位为1,表明FLASH中与此相对应的关键数据空间子块已经有效;
步骤三:删除关键数据
当要删除一条已经登记(已存在于FLASH中)的关键数据时,先找出这条关键数据在FLASH中的位置,例如其位置在编号为k的SECTOR中,所在的关键数据空间子块编号为i;删除操作如下:
第一步,设置FRAM中的转储标记,其中设置A=0,B=1,SECTOR编号=k;
第二步,擦除FLASH中用于备份的SECTOR;
第三步,读取FLASH中编号为k的SECTOR中的全部数据到SDRAM,然后把这部分数据写入FLASH中用于备份的SECTOR中,并做校验,完成转储;
第四步,如果转储成功,则设置FRAM中的转储标记,其中设置A=1,B=1;如果系统发生异常,则FRAM中的转储标记A=0,B=1不会改变;
第五步,在FRAM中的关键数据使用描述表里找出与要删除的编号为i的关键数据空间子块相对应的位置,设置该位为0;
步骤四:关键数据恢复
若系统在新增关键数据操作和删除关键数据操作时发生异常故障,导致关键数据丢失,待系统重新上电或者复位后,关键数据恢复步骤如下:
第一步,读取备份SECTOR的数据到SDRAM中,获得备份数据,此时FRAM中的转储标记没有改变,即A=1,B=0,SECTOR编号=k;
第二步,擦除FLASH中编号为k的SECTOR;
第三步,把SDRAM中由上述第一步获取的备份数据写入FLASH中编号为k的SECTOR中,并做校验;
第四步,如果第三步写入成功,则设置FRAM中的转储标记,A=1,B=1;如果系统发生异常,则FRAM中的转储标记A=1,B=0,SECTOR编号=k,不会改变。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海华魏光纤传感技术有限公司,未经上海华魏光纤传感技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110259660.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:治疗盆腔淤血综合征的中药制剂
- 下一篇:一种清肺止咳药