嵌入式系统及其数据删除的方法

文档序号:6545497阅读:809来源:国知局
嵌入式系统及其数据删除的方法
【专利摘要】本发明公开了一种嵌入式系统及其数据删除的方法,将待删除数据所在的文件从flash复制到RAM,再将文件中待删除数据以外的数据写入RAM,最后重新复制回flash,没有直接执行删除操作,却实现了数据删除的目的。由于在RAM中执行操作速度较快,因而相比直接在flash中删除效率得到提高,既节省了处理数据的时间,也减低了CPU和内存的使用率。
【专利说明】嵌入式系统及其数据删除的方法
【技术领域】
[0001]本发明涉及嵌入式【技术领域】,特别是涉及一种嵌入式系统及其数据删除的方法。【背景技术】
[0002]在嵌入式系统的研究领域,由于技术的不断进步,将文件例如日志文件按照指定位置快速删除的需求越来越高,在删除过程中,既要保证时间高效性,也要提高CPU和内存的使用率。
[0003]在嵌入式系统中,CPU接有RAM (Random Access Memory,随机存取存储器)、flash (闪存)等系列外接设备,将文件直接在flash中删除,只能一条数据一条数据的删除,这样耗费很长的时间,浪费缓存,导致内存使用率过高,不利于CPU其他任务的执行,也不利于文件系统的大批量的操作,甚至可能引起系统崩溃。

【发明内容】

[0004]基于上述情况,本发明提出了一种嵌入式系统及其数据删除的方法,以快速删除文件中的数据。为此,本发明采用的方案如下。
[0005]一种嵌入式系统数据的删除方法,包括步骤:
[0006]读取删除条件,根据所述删除条件确定在flash中待删除数据所在的文件及在文件中的起止位置;
[0007]将待删除数据所在的文件复制到RAM ;
[0008]在RAM内,将复制的文件中,除待删除数据以外的数据,重新写入RAM;
[0009]将重新写入RAM的数据复制到flash。
[0010]一种嵌入式系统,包括:
[0011]删除条件获取模块,用户读取删除条件,并根据所述删除条件确定在flash中待删除数据所在的文件及在文件中的起止位置;
[0012]数据复制模块,用于将待删除数据所在的文件复制到RAM ;
[0013]数据处理模块,用于在RAM内,将复制的文件中,除待删除数据以外的数据,重新写入RAM ;
[0014]所述数据复制模块,还用于将重新写入RAM的数据复制到flash。
[0015]本发明嵌入式系统及其数据删除的方法,将待删除数据所在的文件从flash复制到RAM,再将待删除数据以外的数据写入RAM,最后重新复制回flash,实现数据的删除。由于在RAM中执行操作速度较快,因而相比直接在flash中删除效率得到提高,既节省了处理数据的时间,也减低了 CPU和内存的使用率。
【专利附图】

【附图说明】
[0016]图1为本发明嵌入式系统数据的删除方法的流程示意图;
[0017]图2为本发明嵌入式系统的结构示意图。【具体实施方式】
[0018]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本发明,并不限定本发明的保护范围。
[0019]本发明的嵌入式系统数据的删除方法,如图1所示,包括如下步骤:
[0020]步骤slOl、读取删除条件,根据所述删除条件确定在flash中待删除数据所在的文件及在文件中的起止位置。对应该步骤的可以是一个删除数据接口函数,有数据需要删除时,则调用该接口。由于flash中的文件是由文件头数据和每一条数据内容组成的,文件头数据设计成记录当前操作位置和已写入数据的总数量,文件头以后就是具体数据内容,每一条的数据内容以格式和字数相同为例,默认删除数据是从文件的第二条开始的。每条数据内容包括在文件中的位置,数据记录时间,数据内容的优先级,数据日志ID等相关信肩、O
[0021]下面以一个具体的例子解释上述步骤。删除文件接口函数,有2个参数:一个是需要删除数据的条数,当条数为OxfTfTfTfT时,默认为删除所有数据,否则是指删除条数;一个是删除的指定位置,这个指定位置,指的是从这个位置开始删除,如果指定位置为O时,是按存储时间最早的开始删除。当需要删除数据的条数大于等于当前存储文件条数,直接删除所有的数据。删除数据的条数不能小于I条。找到删除起止位置的过程为:读取flash中待删除数据所在文件的第一条内容,读出当前操作位置CurPos和已经记录数据的总数量totalWrite,找到要删除的数据的位置DelPreLef、DelPreRight、DelNextLeft、DelNextRight,将这4个参数保存在全局变量里,方便后续调用。
[0022]步骤sl02、将待删除数据所在的文件复制到RAM。具体是在RAM中分配一段缓存,用来存储从flash中拷贝出来的文件。将整个文件复制到RAM,则后续的数据处理只需在RAM中进行即可,减少了与flash的交互,有利于提高处理速度。
[0023]步骤sl03、在RAM内,将复制的文件中,除待删除数据以外的数据,重新写入RAM。本步骤是将步骤sl02复制的文件在RAM中重新写一遍,但待删除的数据段除外,仅写入非待删除数据,形成一个新的文件,以下是具体实施例。
[0024]根据上述参数DelPreLef、DelPreRight、DelNextLeft、DelNextRight,找到文件中要删除数据所在的位置。比较当前操作位置CurPos和已经记录的数据的总数量totalWrite,如果CurPos小于totalfcite,说明当前文件已经绕接过;如果CurPos等于totalWrite,说明数据文件没有绕接过。没有绕接过的,一定删除一段数据,绕接过的,可能删除一段数据,也可能删除两段数据。DelPreLef和DelPreRight之间为一段删除的数据,DelNextLeft 和 DelNextRight 之间为另一段删除的数据,当 DelNextLeft 和 DelNextRight都为O时,说明只删除一段数据。初始化RAM中所复制的文件的文件头数据:将当前操作位置CurPos和已经写入数据的总数量totalWrite都置为I。另定义一个全局变量:文件可保存的总数量TotalCount,目的是以便后续多次调用写入RAM数据文件接口函数。并建立文件的起始指针,用来描述数据位置。
[0025]以删除数据的起始位置为O为例,如果待删除数据所在的文件如日志文件是没有绕接过的,且只删除了 M条数据(M〈CUrP0S),则只需要将M到CurPos之间的数据拷贝到RAM中即可。如果日志文件是绕接过的,且只删除I段,那么需要拷贝2段数据。如果日志文件是绕接过的,且删除2段,那么需要拷贝I段数据。
[0026]计算拷贝起始指针的位置和拷贝数据段条数:调用写入RAM数据文件接口,写入RAM数据文件接口中,有2个参数,一个为之前提起的拷贝起始指针的位置,一个为需要拷贝数据条数。首先查看要写入新数据的位置,读文件头数据,根据文件头数据记录的当前操作位置,将新的数据段写入到文件中,再更新文件头数据内容。当达到最大数据内容以后(当当前操作位置CurPos大于等于已经写入数据的总数量TotalCount, CurPos从头开始计数;当已经写入的总数量totalWrite大于等于文件可保存的总数量TotalCount,totalWrite值开始不变),当前操作位置不变,写入数据的总数量开始不变。最后写入文件头数据内容。
[0027]步骤sl04、将重新写入RAM的数据复制到flash。本步骤是将在RAM中处理好的文件拷回flash,处理好的文件中不包括待删除数据,因而相当于删除了待删除数据。
[0028]下面介绍本发明的嵌入式系统,与上述删除方法相对应,本嵌入式系统具有快速删除数据的功能,其结构如图2所示,包括:
[0029]删除条件获取模块,用户读取删除条件,并根据所述删除条件确定在flash中待删除数据所在的文件及在文件中的起止位置;
[0030]数据复制模块,用于将待删除数据所在的文件复制到RAM ;
[0031]数据处理模块,用于在RAM内,将复制的文件中,除待删除数据以外的数据,重新写入RAM ;
[0032]所述数据复制模块,还用于将重新写入RAM的数据复制到flash。
[0033]上述删除条件获取模块、数据复制模块,及数据处理模块依次相连,其中,数据复制模块还分别与flash和RAM相连,数据处理模块也与RAM相连,从而形成本嵌入式系统。
[0034]作为一个优选的实施例,所述删除条件包括待删除数据的条数和在文件中的起始位置;
[0035]所述起止位置中的终止位置根据条数和起始位置得来。
[0036]作为一个优选的实施例,若所述删除条件中的起始位置为0,则所述删除条件获取模块将文件中存储时间最早的一条数据所在的位置作为起始位置;
[0037]若所述条数为Oxffffffff,则所述删除条件获取模块将文件中第一条数据和最后一条数据所在的位置作为起止位置。
[0038]作为一个优选的实施例,所述数据复制模块,在将重新写入RAM的数据复制到flash时,覆盖待删除数据所在的原文件。
[0039]作为一个优选的实施例,所述数据为嵌入式系统日志文件中的数据。
[0040]综上,本发明的嵌入式系统及其数据的删除方法,借助RAM进行数据处理,没有直接执行删除操作,但却实现了删除目的,且相比直接删除的方法具有更高的速度和效率。
[0041]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种嵌入式系统数据的删除方法,其特征在于,包括步骤: 读取删除条件,根据所述删除条件确定在flash中待删除数据所在的文件及在文件中的起止位置; 将待删除数据所在的文件复制到RAM ; 在RAM内,将复制的文件中,除待删除数据以外的数据,重新写入RAM ; 将重新写入RAM的数据复制到flash。
2.根据权利要求1所述的嵌入式系统数据的删除方法,其特征在于, 所述删除条件包括待删除数据的条数和在文件中的起始位置; 所述起止位置中的终止位置根据条数和起始位置得来。
3.根据权利要求2所述的嵌入式系统数据的删除方法,其特征在于, 若所述起始位置为O,则从存储时间最早的一条数据开始删除; 若所述条数为Oxffffffff,则删除文件中的所有数据。
4.根据权利要求1或2或3所述的嵌入式系统数据的删除方法,其特征在于, 将重新写入RAM的数据复制到flash时,覆盖待删除数据所在的原文件。
5.根据权利要求1或2或3所述的嵌入式系统数据的删除方法,其特征在于, 所述数据为嵌入式系统日志文件中的数据。
6.一种嵌入式系统,其特征在于,包括: 删除条件获取模块,用户读取删除条件,并根据所述删除条件确定在flash中待删除数据所在的文件及在文件中的起止位置; 数据复制模块,用于将待删除数据所在的文件复制到RAM ; 数据处理模块,用于在RAM内,将复制的文件中,除待删除数据以外的数据,重新写入RAM ; 所述数据复制模块,还用于将重新写入RAM的数据复制到flash。
7.根据权利要求6所述的嵌入式系统,其特征在于, 所述删除条件包括待删除数据的条数和在文件中的起始位置; 所述起止位置中的终止位置根据条数和起始位置得来。
8.根据权利要求7所述的嵌入式系统,其特征在于, 若所述删除条件中的起始位置为0,则所述删除条件获取模块将文件中存储时间最早的一条数据所在的位置作为起始位置; 若所述条数为OxfTfTfTfT,则所述删除条件获取模块将文件中第一条数据和最后一条数据所在的位置作为起止位置。
9.根据权利要求6或7或8所述的嵌入式系统,其特征在于, 所述数据复制模块,在将重新写入RAM的数据复制到flash时,覆盖待删除数据所在的原文件。
10.根据权利要求6或7或8所述的嵌入式系统,其特征在于, 所述数据为嵌入式系统日志文件中的数据。
【文档编号】G06F17/30GK103955513SQ201410183305
【公开日】2014年7月30日 申请日期:2014年4月30日 优先权日:2014年4月30日
【发明者】宋美威, 吴鹏 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1