专利名称:一种基于嵌入式设备闪存的参数管理方法和系统的制作方法
技术领域:
本发明涉及嵌入式设备的参数记录技术,特别是指一种基于嵌入式设备闪 存的参数管理方法和系统。
背景技术:
嵌入式电子设备一般没有硬盘这样的存储设备,而是使用Flash闪存芯片、 小型闪存卡等专为嵌入式系统设计的存储装置。Flash闪存是目前嵌入式系统中 广泛采用的主流存储器,它的主要特点是按整体或块单元4察除和按字节编程, 具有低功耗、高密度、小体积等优点。
目前,Flash闪存分为或非(NOR)和与非(NAND)两种类型。NOR型 Flash闪存可以直接读取闪存芯片内存储的数据,因而运行速度比较快;NOR 型Flash闪存芯片的地址线与数据线是分开的,所以它可以像静态随机存储器 (SRAM, Static Random Access Memory) —样连在数据线上,以字为基本单位 进行操作,因此传输效率很高;应用程序可以直接在NOR型Flash闪存内运行, 不必再把代码读取到系统P遺机存储器(RAM, Random Access Memory )中运行。 NOR型Flash闪存芯片与SRAM的最大不同在于NOR型Flash闪存芯片重复 写入时需要经过擦除和写入两个过程,其中擦除以Flash块为单位进行,即擦 除操作至少需要擦除一个Flash块的区域, 一个NOR型Flash块区尺寸通常是 64K或128K,其中Flash块区的大小是由Flash闪存的物理特性决定的。
嵌入式系统中的参数是要求非易失性的、可修改和可删除的, 一般可以借 助通用的Flash文件系统的管理将参数以文件的形式存储在Flash闪存上,以此 来实现参数的安全读、写、修改和删除操作。通用的Flash文件系统如jffs2, 要求一个Flash分区至少包含五个Flash块区,以保证闪存的正常运行,但实际上嵌入式系统的参数所占用的空间 一般只有几十K,不需要用 一个专门的Flash 分区如此大的空间来存储参数,这样,对于低成本的嵌入式电子设备,不利于 控制产品的价格。
另一种折中的做法是不使用通用的Flash文件系统管理参数,而是在每 次参数变更时将Flash闪存中的所有参数备份到RAM中,然后擦除相应的Flash 块区,最后将在RAM中更新了的参数和未改变的参数再写入Flash块区,但这 种做法的问题在于即使仅改变一个参数,也必须将整个Flash块区擦除再重 新写入,若擦除或写入过程中设备掉电,那么会因为没有通用Flash文件系统 的数据保护功能而导致参数的丟失;另外,NOR型Flash闪存的每个Flash块 区的寿命大约为IO万次擦写,因此,这种方式会导致产品的使用年限缩短。
发明内容
有鉴于此,本发明的主要目的在于提供一种记录参数的方法和系统,可以
明显减少对Flash块区的擦除次数,减少参数所占用的Flash块区,增加闪存的
空间利用率,提高写入或修改参数时的安全性。
为达到上述目的,本发明的技术方案是这样实现的
本发明提供了 一种基于嵌入式设备闪存的参数管理方法,该方法包括
将参数按照参数ID字段、控制字段、校验字段、参数长度字段和参数内容
字段的格式进行封装,获得参数数据块,并将所述参数数据块依次存入参数存
储区中;
依据准备写入的新参数的参数ID检索在所述参数存储区中是否存在含有 相同参数ID的参数,如果存在,则将所述检索到的参数标记为垃圾数据,然后 判断参数存储区的剩余空间是否能够容纳新参数;如果不存在,则判断参数存 储区的剩余空间是否能够容纳新参数;
当参数存储区的剩余空间能够容纳新参数时,在所述参数存储区中最后一 个参数的结束位置写入所述新参数。
其中,所述参数存储区位于闪存中一段连续的Flash区域,所述一段连续的Flash区域至少包含闪存的一个Flash块区。
所述检索在所述参数存储区中是否存在含有相同参数ID的参数为 从参数存储区中的第 一个参数开始依据所述参数的存储格式读取参数; 依据所述读取的参数ID字段、参数长度字段、参数内容字段和校验字段对 参数进行校验;如果校验错误,则从当前参数的参数ID字段结束处继续读取参 数;如果校验正确,则判断当前参数和新参数的参数ID是否相同;如果相同, 则将该参数标记为垃圾数据;如果不同,则继续读取下一个参数。 当参数存储区的剩余空间不能够容纳新参数时,该方法还包括 将参数存储区的参数整理成无垃圾数据的状态;
判断整理后的参数存储区的剩余空间是否能够容纳新参数,如果能够容纳, 则在所述参数存储区中最后一个参数的结束位置写入所述新参数;如果不能够 容纳,则写入4喿作失败。
需要彻底删除参数、或所述将参数存储区的参数整理成无垃圾数据的状态 时,具体操作包括
将参数存储区所在的Flash块区的所有数据备份到随机存储器RAM中,在 RAM中将所述垃圾数据删除;
将所述闪存中参数存储区所在的Flash块区擦除;
将所述RAM中删除了垃圾数据的备份数据写回到闪存中参数存储区所在 的Flash块区。
需要对参数进行格式化时,该方法还包括
将参数存储区所在的Flash块区的所有数据备份到RAM中,在RAM中将 参数存储区全部填充为OxFF;
将所述闪存中参数存储区所在的Flash块区擦除;
将所述RAM中参数存储区全部填充为OxFF的备份数据写回到闪存中参数 存储区所在的Flash块区。
本发明还提供了 一种基于嵌入式设备闪存的参数管理系统,该系统包括 参数处理模块,用于将参数按照参数ID字段、控制字段、校验字段、参数长度字段和参数内容字段的格式进行封装,获得参数数据块,并将所述参数数 据块依次存入参数存储区中;
参数ID判断模块,用于依据准备写入的新参数的参数ID检索在所述参数 存储区中是否存在含有相同参数ID的参数,并得到判断结果;
第一判断模块,用于依据所述参数ID判断模块的判断结果,将与新参数的 参数ID相同的参数标记为垃圾数据,还用于判断参数存储区的剩余空间是否能 够容纳新参数,并得到判断结果;
参数写入模块,用于依据所述第一判断模块的判断结果,在所述参数存储 区中最后一个参数的结束位置写入所述新参数。
其中,所述参数ID判断模块包括
参数读取子模块,用于从参数存储区中的第 一个参数开始依据所述参数的 存储格式读取参数;
参数校验子模块,用于依据所述读取的参数ID字段、参数长度字段、参数 内容字段和校验字段对参数进行校验,并得到校验结果;
参数ID比较子模块,用于依据所述参数校验子模块的校验结果,判断当前 参数和新参数的参数ID是否相同,得到判断结果;并在当前参数和新参数的参 数ID相同时,将所述当前参数标记为垃圾数据。
该系统还包4舌
参数整理模块,用于依据所述第一判断模块的判断结果,将参数存储区的 参数整理成无垃圾数据的状态;
第二判断模块,用于判断整理后的参数存储区的剩余空间是否能够容纳新
参数,并得到判断结果。
其中,所述参数读取子模块,还用于依据所述参数校验子模块的校验结果, 从当前参数的参数ID字段结束处继续读取参数;还用于依据所述参数ID比较 子模块的判断结果,继续读取下一个参数;
所述参数写入模块,还用于依据所述第二判断模块的判断结果,在所述参 数存储区中最后 一个参数的结束位置写入所述新参数。该系统还包4舌
操作反馈模块,用于在所述参数写入模块写入参数之后,或者依据所述第 二判断模块的判断结果,反馈对参数的操作结果。
所述参数整理模块包括
数据删除子模块,用于将参数存储区所在的Flash块区的所有数据备份到 RAM中,在RAM中将所述垃圾数据删除;
第一擦除子模块,用于将所述闪存中参数存储区所在的Flash块区擦除;
第一写入数据子模块,用于将所述RAM中删除了垃圾数据的备份数据写 回到闪存中参数存储区所在的Flash块区。
该系统还包括
数据格式化模块,用于将参数存储区所在的Flash块区的所有数据备份到 RAM中,在RAM中将参数存储区全部填充为OxFF;
数据擦除模块,用于将所述闪存中参数存储区所在的Flash块区擦除;
写入数据模块,用于将所述RAM中参数存储区全部填充为OxFF的备份数 据写回到闪存中参数存储区所在的Flash块区。
本发明对于嵌入式设备闪存中参数的管理,不使用通用的Flash文件系统, 而是通过专门的Flash闪存驱动将NOR型Flash闪存驱动起来,然后将参数分 类,按照固定的格式储存于闪存中,对参数进行管理,如此,本发明的参数可 以存储于闪存中任何一段连续的Flash块区,且参数存储区的大小可以根据需 要设置,这样,就节省了闪存空间,提高了闪存空间的利用率。
另外,通过本发明的方法,对参数进行操作时,不需要每次都对参数存储
区所在的Flash块区进行擦除再重写的操作,而是当需要单独地彻底删除某个
参数,或者在写入参数、修改参数的过程中,当前参数存储区的剩余空间不够
容纳新参数,需要将垃圾数据彻底删除或需要格式化参数时,才需要通过对
Flash块区进行擦除再重写的方法来实现对数据的彻底删除或者格式化,如此就
可以减少对NOR型Flash闪存的擦除次数,不仅可以延长闪存的使用寿命,而
且由于擦除、重写次数的减少,可以降低擦除、重写过程中因为掉电而导致参数丢失的风险。
本发明还提供了参数格式化的功能,使NOR型Flash闪存更具实用性。
图1为本发明参数存储区实施例一的结构示意图; 图2为本发明参数存储格式实施例一的结构示意图; 图3为本发明写入、修改参数的方法流程示意图; 图4为本发明删除参^:的方法流程示意图; 图5为本发明格式化参数的方法流程示意图6为本发明基于嵌入式设备闪存的参数管理系统的结构关系示意图。
具体实施例方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
在通过专门Flash驱动使Flash闪存能正常工作,并能为闪存提供写入接口 , 使数据可以直接写入闪存的条件下,本发明将参数进行分类,并按照固定的格 式存入闪存中,对参数进行管理。
本发明中,可以选择NOR型Flash闪存中任意一段连续的Flash区域作为 参数存储区,参数存储区相对于其所处的Flash块起始位置的偏移地址为SA, 参数存储区的大小可以根据实际情况设置,如可以设置为L,其中,参数依次 存放在参数存储区中。图1所示为本发明参数存储区实施例一的结构示意图, 图1中,SA是一个地址偏移,用来表示参数存储区的开始地址;参数存储区根 据其占用的空间大小,可以存在于一个Flash块中,也可以跨越两个或多个连 续的Flash块,但是实际上,需要管理的全部参数一般只有几十K,而一个NOR 型Flash块的大d、一般为64K或128K,所以, 一般情况下一个参数存储区最多 能跨越两个连续的Flash块。
图2所示为本发明参数存储格式实施例一的结构示意图,如图2所示,将 每个参数按照参数ID字段、控制字段、校验字段、参数长度字段、参数内容字段的格式封装成一个数据块,存储到参数存储区中。
其中,参数ID字段用来存储参数ID,参数ID根据参数的分类来定义,参 数的分类可以根据需要设定。如,根据需要可以用十六进制来设置参数ID, IP 地址类的参数对应的参数ID可以定义为0x000A;子网掩码类的参数对应的参 数ID可以定义为0x000B;默认网关类的参数对应的参数ID可以定义为 0x000C。其中,对于IP地址类的参数还可以继续分类,例如局域网1的IP地 址的参数ID可以定义为OxOOOAOOOl ,局域网2的I的IP地址可以定义为 0x000A0002等。
控制字段用来表示该参数的状态,当控制字段为1时,表明该参数为有效 数据;控制字段为0时,表明该参数为垃圾数据。
校验字段表示参数ID字段、参数长度字段和参数内容字段的校验和。
参数长度字段可以表示该参数所占用的空间大小,通过参数长度字段和SA 可以得到参数的结束位置,从而可以读取参数内容字段。参数的结束位置就是 参数内容字段的结束位置,也是下一个参数的开始位置。
参数内容字段包含了该参数的具体的内容。
下面通过具体的实施例来说明本发明参数管理的方法。
本发明基于嵌入式设备的NOR型Flash闪存的参数管理可以分为写入参 数、修改参数、删除参数和参数存储区的格式化。
当需要写入新参数时,首先要检索闪存中是否存在与新参数的参数ID相同 的参数。图3所示为本发明写入、修改参数的方法流程示意图,如图3所示, 具体处理流程为
步骤301,按照参数的存储位置读取参数,校验当前读取的参数。
从偏移地址SA开始,读取参数存储区中第一个参数的参数ID字段、控制字 段、校验字段和参数长度字段,并根据参数长度字段读取参数内容字段;然后 计算参数ID字段、参数长度字段和参数内容字段的校验和。校验和的计算为现 有技术,此处不再赘述。
步骤302,判断参数校验是否正确,如果错误,执行步骤303;如果正确,执行步骤304。
将通过计算得到的参数ID字段、参数长度字段和参数内容字段的校验和与
读取到的校验字段的校验和相比较,如果一致,说明该参数校验正确,执行步
骤304;如果不一致,说明该参数校验错误,则执行步骤303,从当前参数的参 数ID字段结束处继续读取参数。
如果校验错误,说明该参数是无效的,即该参数是垃圾数据,其控制字段 为O,如果校验正确,那么控制字段为l。当参数校验错误时,无法确认该参数 的参数长度字段是否有效,从而就无法确认该参数的结束位置,无法从该参数 的结束处直接读取下一个参数。此时,需要从该参数的参数ID字段结束处继续 读取参数,在该参数的参数内容字段结束处,可以开始读取下一个参数,返回 步骤301。
需要指出的是,参数存储区中可能存储有参数ID相同的几个参数,这个几 个参数中只有 一个参数是有效数据,其他的都是垃圾数据。
步骤304 ~ 305,判断当前参数的参数ID与准备写入的新参数的参数ID是否 相同,如果相同,则将当前参数标记为垃圾数据;如果不同,则执行步骤306。
如果校验正确,那么要将当前参数的参数ID与准备写入的新参数的参数ID 比较,判断两者是否相同,如果相同,说明新参数与当前参数是同一类参数, 只是参数内容不同,执行步骤305,将当前参数的控制字段置为O,即将该参数 标记为垃圾数据,说明该参数已经被视为无效,表明该垃圾数据被删除,然后 执行步骤306。需要指出的是,此处的删除不是彻底删除,当参数存储区的剩余 空间不够容纳新参数时,才需要将垃圾数据彻底删除。
如果不同,则需要从当前参数的参数内容字段结束处开始读取下一个参数, 直到检索到与新参数的参数ID相同的参数,执行步骤305 306;或者直到参数存 储区结束处都没有检索到与新参数的参数ID相同的参数,执行步骤306。
步骤306,判断参数存储区剩余空间是否大于等于准备写入的新参数占用的 空间,如果小于,执行步骤307;如果大于等于,执行步骤310。
在当前参数存储区中如果没有与新参数的参数ID相同的参数,或者已经将与新参数的参数ID相同的参数标记为垃圾数据,那么需要将新参数写入参数存 储区。但是,之前要先判断目前参数存储区的剩余空间是否能够容纳新参数, 即判断参数存储区的剩余空间是否大于或等于新参数所占用的空间,如果小于,
则说明参数存储区的剩余空间不能容纳新参数,执行步骤3 07;如果大于或等于, 则说明参数存储区的剩余空间可以容纳新参数,执行步骤310。 步骤307,整理参数存储区,将垃圾数据删除。
参数存储区的剩余空间不能容纳新参数时,需要将参数存储区进行整理, 将垃圾数据彻底删除,即将控制字段为O的无效参数彻底删除。具体删除参数的 流程将通过下面的实施例进行说明。
步骤308~309,判断参数存储区剩余空间是否大于准备写入的新参数占用 的空间,如果小于,则提示写入参数的操作失败;如果大于等于,执行步骤310。
将垃圾数据彻底删除后,再次判断参数剩余空间是否能容纳新参数,如果 不能,则执行步骤309,提示写入参数的操作失败,并结束整个流程;如果可以 容纳,则执行步骤310。
步骤310,在参数存储区的最后一个参数结束处写入新参数。
将垃圾数据彻底删除后,且参数存储区的剩余空间可以容纳新参数时,将 新参数写入参数存储区最后一个参数的参数内容字段之后。本发明通过专门的
Flash闪存驱动提供写入接口 ,将参数写入参数存储区。 步骤311,提示操作成功。
写入新参数成功后,提示写入操作成功,并结束整个流程。
其中,在检索到与新参数的参数ID相同的参数的情况下,将该参数标记为
垃圾数据,再将新参数写入参数存储区的操作也是修改参数的操作流程;在未
检索到与新参数的参数ID相同的参数的情况下,将新参数写入参数存储区的操
作,是写入参数的操作流程。
图4所示为本发明删除参数的方法流程示意图,如图4所示,具体的处理流
程为
步骤401,在参数存储区检索与准备删除的参数的参数ID相同的参数。具体的检索过程如图3中的步骤310至304。 步骤402,将该参数标记为垃圾数据。
将当前与准备删除的参数的参数ID相同的参数的控制字段置为O,表明该参 数被删除。
需要指出的是,这里所述的删除不是彻底的删除,虽然将该参数标记为垃 圾数据,但是该参数还是占用了闪存空间,如果需要将垃圾数据彻底的删除, 则执行步骤403、 404。
步骤403,将参数存储区所在的Flash块的所有数据备份到RAM中,将参数 整理成无垃圾数据的状态。
Flash闪存的物理特性决定,不能在闪存中直接将数据彻底删除,此时,需 要将参数存储区所在的Flash块的所有数据备份到RAM中,在RAM中,将参数 存储区的垃圾数据删除,这样参数存储区的参数就是无垃圾数据的状态。
步骤404,在闪存中将参数存储区所在的Flash块区擦除,将整理后的RAM 中数据写回参数存储区所在的Flash块区。
在RAM中,将参数整理成无垃圾状态后,需要将包含无垃圾状态参数的数 据重新写回闪存中。此时,需要先在闪存中将参数存储区所在的Flash块擦除, 然后再将整理后的数据写回参数存储区所在的Flash块区。如此,闪存的参数存 储区中的垃圾数据就被彻底删除了 。
需要指出的是,因为NOR型Flash闪存的擦除是基于Flash块的,所以,需要 将参数存储区所在的Flash块区中的所有数据备份到RAM中,因为Flash块区中 可能不仅仅包含参数存储区,还可能有其他的数据。
由上面的描述可知,在写入参数或修改参数的过程中,当参数存储区的剩 余空间不够容纳新参数,而需要整理参数存储区,将垃圾数据彻底删除时,或 者单独需要将某个参数彻底删除时,才需要通过对Flash块区进行擦除再重写的 方法来实现对数据的彻底删除。
图5所示为本发明格式化参数的方法流程示意图。
步骤501,将参数存储区所在的Flash块的所有数据备份到RAM中。步骤502,在RAM中将参数存储区全部填充为OxFF。
在RAM中将参数存储区全部填充为0xFF,即将参数存储区全部填充为二进 制的l,本发明中将参数存储区全部填充l即表示参数存储区被置空。
步骤503,在闪存中将参数存储区所在的Flash块区擦除,将RAM中的数据 写回闪存中参数存储区所在的Flash块区。
在闪存中将参数存储区所在的Flash块区擦除,然后再将包含全部填充为1 的参数存储区的数据写回到闪存中参数存储区所在的Flash块区。如此,闪存中 的参数存储区为空,即表示被格式化。
图6所示为本发明基于嵌入式设备闪存的参数管理系统的结构关系示意 图,如图6所示,该系统包括参数处理模块IO、参数ID判断模块20、第一 判断模块30、参数写入模块40、参数整理模块50、第二判断模块60、操作反 馈模块70、数据格式化模块80、数据擦除模块90和写入数据模块91,其中,
参数处理模块10,用于将参数按照参数ID字段、控制字段、校验字段、 参数长度字段和参数内容字段的格式进行封装,获得参数数据块,并将参数数 据块依次存入参数存储区中;
其中,参数存储区位于闪存中一段连续的Flash区域, 一段连续的Flash区 域至少包含闪存的 一个Flash块区。
参数ID判断模块20,用于依据准备写入的新参数的参数ID检索在参数存 储区中是否存在含有相同参数ID的参数,并得到判断结果。
参数ID判断模块20还包括参数读取子模块21、参数校验子模块22和 参数ID比较子模块23,其中,
参数读取子模块21 ,用于从参数存储区中的第一个参数开始依据参数的存 储格式读取参数;
参数校验子模块22,用于依据读取的参数ID字段、参数长度字段、参数 内容字段和校验字段对参数进行校验,并得到校验结果;
参数ID比较子模块23,用于依据参数校验子模块22的校验结果,判断当 前参数和新参数的参数ID是否相同,并得到判断结果;并在当前参数和新参数的参数ID相同时,将当前参数标记为垃圾数据;
其中,参数读取子模块21,还用于依据参数校验子模块22的校验结果, 从当前参数的参数ID字段结束处继续读取参数;还用于依据参数ID比较子模 块23的判断结果,继续读取下一个参数。
第一判断模块30,用于依据参数ID判断模块20的判断结果,将与新参数 的参数ID相同的参数标记为垃圾数据,还用于判断参数存储区的剩余空间是否 能够容纳新参数,并得到判断结果。
参数写入模块40,用于依据第一判断模块30的判断结果,在参数存储区 中最后一个参数的结束位置写入新参数。
参数整理模块50,用于依据第一判断模块30的判断结果,将参数存储区 的参数整理成无垃圾lt据的状态。
参数整理模块50还包括数据删除子模块51、第一擦除子模块52和第一 写入数据子模块53,其中,
数据删除子模块51 ,用于将参数存储区所在的Flash块区的所有数据备份 到RAM中,在RAM中将垃圾数据删除;
第一擦除子模块52,用于将闪存中参数存储区所在的Flash块区擦除;
第一写入数据子模块53,用于将RAM中删除了垃圾数据的备份数据写回 到闪存中参数存储区所在的Flash块区。
第二判断模块60,用于判断整理后的参数存储区的剩余空间是否能够容纳 新参数,并得到判断结果。
其中,参数写入模块40,还用于依据第二判断模块60的判断结果,在参 数存储区中最后一个参数的结束位置写入新参数。
操作反馈模块70,用于在参数写入模块40写入参数之后,或者依据第二 判断模块60的判断结果,反馈对参数的操作结果,即当写入参数后,提示写入 成功;或者当整理后的参数存储区的剩余空间不能够容纳新参数时,提示写入 操作失败。
数据格式化模块80,用于将参数存储区所在的Flash块区的所有数据备份到RAM中,在RAM中将参数存储区全部填充为0xFF。
数据擦除模块90,用于将闪存中参数存储区所在的Flash块区擦除。 写入数据模块91,用于将RAM中参数存储区全部填充为OxFF的备份数
据写回到闪存中参数存储区所在的Flash块区。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范
权利要求
1、一种基于嵌入式设备闪存的参数管理方法,其特征在于,该方法包括将参数按照参数ID字段、控制字段、校验字段、参数长度字段和参数内容字段的格式进行封装,获得参数数据块,并将所述参数数据块依次存入参数存储区中;依据准备写入的新参数的参数ID检索在所述参数存储区中是否存在含有相同参数ID的参数,如果存在,则将所述检索到的参数标记为垃圾数据,然后判断参数存储区的剩余空间是否能够容纳新参数;如果不存在,则判断参数存储区的剩余空间是否能够容纳新参数;当参数存储区的剩余空间能够容纳新参数时,在所述参数存储区中最后一个参数的结束位置写入所述新参数。
2、 根据权利要求1所述基于嵌入式设备闪存的参数管理方法,其特征在于, 所述参数存储区位于闪存中一段连续的Flash区域,所述一段连续的Flash区域 至少包含闪存的一个Flash块区。
3、 根据权利要求2所述基于嵌入式设备闪存的参数管理方法,其特征在于,从参数存储区中的第 一个参数开始依据所述参数的存储格式读取参数; 依据所述读取的参数id字段、参数长度字段、参数内容字段和校验字段对 参数进行校验;如果校验错误,则从当前参数的参数id字段结束处继续读取参 数;如果校验正确,则判断当前参数和新参数的参数id是否相同;如果相同, 则将该参数标记为垃圾数据;如果不同,则继续读取下一个参数。
4、 根据权利要求3所述基于嵌入式设备闪存的参数管理方法,其特征在于, 当参数存储区的剩余空间不能够容纳新参数时,该方法还包括将参数存储区的参数整理成无垃圾数据的状态;判断整理后的参数存储区的剩余空间是否能够容纳新参数,如果能够容纳, 则在所述参数存储区中最后一个参数的结束位置写入所述新参数;如果不能够容纳,则写入操作失败。
5、 根据权利要求1至4任一项所述基于嵌入式设备闪存的参数管理方法, 其特征在于,需要彻底删除参数、或所述将参数存储区的参数整理成无垃圾数据的状态 时,具体操作包括将参数存储区所在的Flash块区的所有数据备份到随机存储器RAM中,在 RAM中将所述垃圾数据删除;将所述闪存中参数存储区所在的Flash块区擦除;将所述RAM中删除了垃圾数据的备份数据写回到闪存中参数存储区所在 的Flash块区。
6、 根据权利要求1至4任一项所述基于嵌入式设备闪存的参数管理方法, 其特征在于,需要对参数进行格式化时,该方法还包括将参数存储区所在的Flash块区的所有数据备份到RAM中,在RAM中将 参数存储区全部填充为OxFF;将所述闪存中参数存储区所在的Flash块区擦除;将所述RAM中参数存储区全部填充为OxFF的备份数据写回到闪存中参数 存储区所在的Flash块区。
7、 一种基于嵌入式设备闪存的参数管理系统,其特征在于,该系统包括 参数处理模块,用于将参数按照参数ID字段、控制字段、校验字段、参数长度字段和参数内容字段的格式进行封装,获得参数数据块,并将所述参数数 据块依次存入参数存储区中;参数ID判断模块,用于依据准备写入的新参数的参数ID检索在所述参数 存储区中是否存在含有相同参数ID的参数,并得到判断结果;第一判断模块,用于依据所述参数ID判断模块的判断结果,将与新参数的 参数ID相同的参数标记为垃圾数据,还用于判断参数存储区的剩余空间是否能 够容纳新参数,并得到判断结果;参数写入模块,用于依据所述第一判断模块的判断结果,在所述参数存储区中最后一个参数的结束位置写入所述新参数。
8、 根据权利要求7所述基于嵌入式设备闪存的参数管理系统,其特征在于, 所述参数ID判断模块包括参数读取子模块,用于从参数存储区中的第 一个参数开始依据所述参数的 存储格式读取参数;参数校验子模块,用于依据所述读取的参数ID字段、参数长度字段、参数 内容字段和校验字段对参数进行校验,并得到校验结果;参数ID比较子模块,用于依据所述参数校验子模块的校验结果,判断当前 参数和新参数的参数ID是否相同,得到判断结果;并在当前参数和新参数的参 数ID相同时,将所述当前参数标记为垃圾数据。
9、 根据权利要求8所述基于嵌入式设备闪存的参数管理系统,其特征在于, 该系统还包括参数整理模块,用于依据所述第一判断模块的判断结果,将参数存储区的 参数整理成无垃圾数据的状态;第二判断模块,用于判断整理后的参数存储区的剩余空间是否能够容纳新参数,并得到判断结果。
10、 根据权利要求7、 8或9所述基于嵌入式设备闪存的参数管理系统,其 特征在于,所述参数读取子模块,还用于依据所述参数校验子模块的校验结果,从当 前参数的参数ID字段结束处继续读取参数;还用于依据所述参数ID比较子模 块的判断结果,继续读取下一个参^t;所述参数写入模块,还用于依据所述第二判断模块的判断结果,在所述参 数存储区中最后一个参数的结束位置写入所述新参数。
11、 根据权利要求IO所述基于嵌入式设备闪存的参数管理系统,其特征在 于,该系统还包括操作反馈模块,用于在所述参数写入模块写入参数之后,或者依据所述第 二判断模块的判断结果,反馈对参数的操作结果。
12、 根据权利要求11所述基于嵌入式设备闪存的参数管理系统,其特征在 于,所述参数整理模块包括数据删除子模块,用于将参数存储区所在的Flash块区的所有数据备份到RAM中,在RAM中将所述垃圾数据删除;第一擦除子模块,用于将所述闪存中参数存储区所在的Flash块区擦除; 第一写入数据子模块,用于将所述RAM中删除了垃圾数据的备份数据写回到闪存中参数存储区所在的Flash块区。
13、 根据权利要求12所述基于嵌入式设备闪存的参数管理系统,其特征在 于,该系统还包括数据格式化模块,用于将参数存储区所在的Flash块区的所有数据备份到RAM中,在RAM中将参数存储区全部填充为OxFF;数据擦除模块,用于将所述闪存中参数存储区所在的Flash块区擦除; 写入数据模块,用于将所述RAM中参数存储区全部填充为OxFF的备份数据写回到闪存中参数存储区所在的Flash块区。
全文摘要
本发明公开了一种基于嵌入式设备闪存的参数管理方法,该方法将参数按照固定格式进行封装,获得参数数据块,并将参数数据块依次存入参数存储区中;依据准备写入的新参数的参数ID检索在参数存储区中是否存在含有相同参数ID的参数,如果存在,则将当前参数标记为垃圾数据,然后判断参数存储区的剩余空间是否能够容纳新参数;如果不存在,则直接判断参数存储区的剩余空间是否能够容纳新参数;当参数存储区的剩余空间能够容纳新参数时,在参数存储区中最后一个参数的结束位置写入新参数;本发明还公开了一种基于嵌入式设备闪存的参数管理系统,通过该方法和系统可以提高闪存空间的利用率,延长闪存的使用寿命,提高写入或修改参数时的安全性。
文档编号G06F12/02GK101436158SQ20081024653
公开日2009年5月20日 申请日期2008年12月25日 优先权日2008年12月25日
发明者高迎宾 申请人:中兴通讯股份有限公司