格式化闪存的方法和装置制造方法及图纸

技术编号:4519527 阅读:248 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种格式化闪存的方法和装置,属于计算机领域。该方法包括:读取闪存信息,所述闪存信息包括闪存类型和擦除块大小;根据所述闪存信息获取jffs2节点头的相关信息,所述相关信息包括所述jffs2节点头的起始位置和大小;对擦除块进行擦除处理;根据所述闪存类型和所述相关信息,创建与所述擦除处理的擦除块对应的所述jffs2节点头,其中,所述jffs2节点头用于指示所述擦除处理的擦除块符合jffs2文件系统标准。本发明专利技术的技术方案可以在加载jffs2文件系统前使闪存的擦除块符合jffs2文件系统的标准,大大减少初次加载jffs2文件系统的时间,保证了系统的稳定性。

【技术实现步骤摘要】

本专利技术涉及计算机领域,特别涉及一种格式化闪存(flash)的方法和装置。
技术介绍
Jffs2文件系统是Linux系统的一部分,是针对闪存的文件系统。在系统第一次 上电或者调用格式化命令对闪存进行格式化时,此时闪存处于初始状态,上面没有任何数 据。由于闪存的每个擦除块有擦除次数限制的,超过一定擦除次数的擦除块会损坏,所以, jffs2文件系统必须考虑对每个擦除块擦写的次数要尽可能保持平衡,为此,jffs2文件系 统的节点是没有索引功能的。初始状态下的擦除块虽然已经不存在任何数据,但此种擦除 块并不符合jffs2文件系统的标准,由此会造成jffs2文件系统装载时间漫长,此外,在上 电时间内jffs2文件系统会锁住所有对flash的操作,从而导致系统不能正常启动。
技术实现思路
本专利技术要解决的问题是提供了一种格式化闪存的方法和装置,以解决现有技术中 jffs2文件系统装载时间漫长和启动异常的问题。为了解决上述问题,本专利技术提供了一种格式化闪存的方法和装置,具体的技术方 案如下一种格式化闪存的方法,包括读取闪存信息,所述闪存信息包括闪存类型和擦除块大小;根据所述闪存信息获取jffs2节点头的相关信息,所述相关信息包括所述jffs2 节点头的起始位置和大小;对擦除块进行擦除处理;根据所述闪存类型和所述相关信息,创建与所述擦除处理的擦除块对应的所述 jffs2节点头,其中,所述jffs2节点头用于指示所述擦除处理的擦除块符合jffs2文件系 统标准。一种格式化闪存的装置,包括读取模块,用于读取闪存信息,所述闪存信息包括闪存类型和擦除块大小;获取模块,用于根据所述闪存信息获取jffs2节点头的相关信息,所述相关信息 包括所述jffs2节点头的起始位置和大小;擦除模块,用于对所述擦除块进行擦除处理;创建模块,用于根据所述闪存类型和所述相关信息,创建与所述擦除处理的擦除 块对应的所述jffs2节点头,其中,所述jffs2节点头用于指示所述擦除处理的擦除块符合 jffs2文件系统标准。在本专利技术实施例中,通过读取闪存信息,该闪存信息包括闪存类型和擦除块大小; 根据该闪存信息获取jffs2节点头的相关信息,该相关信息包括所述jffs2节点头的起始 位置和大小;对擦除块进行擦除处理;根据该闪存类型和该相关信息,创建与该擦除处理的擦除块对应的该jffs2节点头,其中,该jffs2节点头用于指示擦除处理的擦除块符合 jffs2文件系统标准,可以在加载jffs2文件系统前使闪存的擦除块符合jffs2文件系统的 标准,大大减少初次加载jffs2文件系统的时间,保证了系统的稳定性,此外,能够减少对 闪存的擦除动作,大大延长了闪存的寿命。附图说明图1是本专利技术实施例提供的一种jffs2节点头的结构示意图;图2是本专利技术实施例提供的一种格式化闪存的方法的流程图;图3是本专利技术实施例提供的一种格式化闪存的装置的结构图。具体实施例方式本专利技术的核心思想是通过读取闪存信息,该闪存信息包括闪存类型和擦除块大 小;根据该闪存信息获取jffs2节点头的相关信息,该相关信息包括所述jffs2节点头的起 始位置和大小;对擦除块进行擦除处理;根据该闪存类型和该相关信息,创建与该擦除处 理的擦除块对应的该jffs2节点头,其中,该jffs2节点头用于指示擦除处理的擦除块符合 jffs2文件系统标准,可以在加载jffs2文件系统前使闪存的擦除块符合jffs2文件系统的 标准,大大减少初次加载jffs2文件系统的时间,保证了系统的稳定性,同时,能够减少对 闪存的擦除动作,大大延长了闪存的寿命。以下结合附图,将对本专利技术的各实例进行较为详细的说明。为了实现本专利技术的技术方案,本实施例定义了一种用于指示擦除块符合jffs2文 件系统标准的jffs2节点头,该节点头所属的节点为jffs2节点。如图1所示,根据闪存类 型的不同,该jffs2节点头的结构也有所不同,例如,当闪存类型为nand flash时,该jffs2 节点头包括幻数屏蔽位(JFFS2_MAGIC_BITMASK),其取值可以是0x1985,该幻数屏蔽位用 于标识该节点为jffs2文件系统的节点;节点头的类型,其值为清除标记(cleanmarker); jffs2节点的大小,可以是jffs2节点头的大小和用户数据的大小的和值。当闪存类型为 nor flash时,该jffs2节点头除了包括幻数屏蔽位、节点头的类型和jffs2节点的大小外, 还包括校验值,用于检验幻数屏蔽位、节点头的类型和jffs2节点的大小是否准确。在定义jffs2节点头的结构后,本专利技术的一个实施例利用定义好的jffs2节点头 提供了一种格式化闪存的方法,如图2所示,包括201,读取闪存信息,该闪存信息包括闪存类型和擦除块大小;具体地,读取的闪存信息包括闪存类型(flash_type),闪存大小(flash_size)、 删除块大小(erasejize)和flash标志位(flags)等信息。其中,flash类型包括但不限 于nand flash、nor flash和data flash。根据擦除块大小和闪存大小,可以得到总的擦 除块数目,即用flash大小除以擦除块大小。其中,擦除块数目可以根据实际情况进行调 整,例如,在flash标志位是虚拟块不被允许(MTD_N0_VIRTBL0CKS)的情况下,擦除块数目 和jffs2节点头的大小的乘积必须小于128K,否则擦除块大小扩大一倍,直至满足要求。如 果flash大小不能被擦除块大小整除,则需要调整flash大小,使之能够整除。202,根据闪存信息获取jffs2节点头的相关信息,该相关信息包括jffs2节点头 的起始位置和大小;jffs2节点头的起始位置和大小需要根据不同的flash类型确定。具体地,当读 取的闪存类型为nand闪存,获取nand闪存的备用空间(00b,0ut ofband)中存储的错误检 查和纠正(ECC,Error Checking and Correcting)类型,根据ECC类型和读取的擦除块的 大小获取jffs2节点头的起始位置和大小。其中,对于nand闪存而言,擦除块与obb空间 是一一对应,obb空间主要存储两种信息当前obb空间对应的擦除块是否是坏块的信息和 ECC类型。oob空间的剩余空间可以由数组oobfree 表示,数组oobfree 表示剩 余空间的起始位置,数组oobfree 表示剩余空间的大小。当ECC类型为nand闪存默 认自动排布(nand ECC_Autoplace)时,jffs2节点头的起始位置为擦除块大小和剩余空间 的起始位置的和值,即为擦除块大小和数组oobfree 的和值,jffs2节点头的大小为 剩余空间的大小,即节点头的大小为数组OObfree 的值;当ECC类型为基于单芯片闪 存的自动排布(Automatic ECC on DiskOnChip)时,数组oobfree W] 的值固定为6字 节,数组oobfree W] 的值固定为8字节,此时,jffs2节点头的起始位置为擦除块大小 和备用空间中剩余空间的起始位置6字节的和值,该jffs2节点头的大小为备用空间中剩 余空间的大小8字节。203,对擦除块进行擦除处理;进一步本文档来自技高网...

【技术保护点】
一种格式化闪存的方法,其特征在于,包括:读取闪存信息,所述闪存信息包括闪存类型和擦除块大小;根据所述闪存信息获取jffs2节点头的相关信息,所述相关信息包括所述jffs2节点头的起始位置和大小;对擦除块进行擦除处理;根据所述闪存类型和所述相关信息,创建与所述擦除处理的擦除块对应的所述jffs2节点头,其中,所述jffs2节点头用于指示所述擦除处理的擦除块符合jffs2文件系统标准。

【技术特征摘要】

【专利技术属性】
技术研发人员:冯骏陆小飞
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1