专利名称:基于nand flash移动终端存储介质的空间管理方法
技术领域:
本发明涉及一种移动终端的存储技术,具体说,涉及一种基于NAND FLASH (与非-非易失性存储器)移动终端存储介质的空间管理方法。
背景技术:
在现有的移动通信终端技术中, 一般使用FLASH (非易失性存储器) 作为存储介质。市场上主流的FLASH,按工艺可分为NOR FLASH (或非-非易失性存储器)和NAND FLASH两种类型。两种类型各有优势,NAND FLASH的擦写速度较快,容量可以很大,价格较低,所以越来越多地用于 移动终端中。
FLASH空间一般都划分为两部分来管理,存储软件代码的只读存储部 分和用于存储数据信息的文件系统存储部分。文件系统存储部分可以通过文 件系统直接访问。由于NAND FLASH不具备XIP (芯片上执行)技术,所 以只读存储部分不能在FLASH上直接执行,而必须通过驱动将软件代码复 制到RAM (随机访问存储器)中执行。
由于NAND FLASH存在坏块问题,位反转问题等物理特性,所以NAND FLASH需要一种严格的空间管理方法,尤其对于允许对NAND进行读写操 作的区域, 一般都需要封装坏块管理模块后提供给上层调用。由于手机技术 的进一步发展,有时候也需要进行固件升级(即代码区的更新),所以代码 区也变成可读写的区域,那就存在着坏块的风险。代码区如果出现不可预知 的坏块,传统的直接通过驱动访问就可能无法按预设的算法进行代码的复制 过程,而只读存储部分只要存在任何的错误都会导致系统的崩溃甚至无法恢 复的错误。
发明内容
本发明要解决的技术问题是提供一种基于NAND FLASH移动终端存储 介质的空间管理方法,减少了 NAND FLASH所存在的访问失败。
才支术方案如下
一种基于NAND FLASH移动终端存储介质的空间管理方法,步骤包括
(1) 将与非-非易失性存储器NAND FLASH的存储区域进行划分,划 分后的区域包括系统只读区,所述系统只读区用于存放代码;
(2) 在所述文件系统中修改文件系统访问区域,使所述文件系统提供 接口用以访问和操作所述系统只读区的代码。
进一步,步骤(1)中,所述NAND FLASH的存储区域划分为系统只 读区、系统读写区和用户读写区,所述系统只读区用于存放代码,所述系统 读写区用于存放文件系统和非易失性内存NVRAM数据,所述用户读写区 用于提供给用户搡作。
进一步,步骤(2)中,所述文件系统包含坏块管理算法和保护机制, 所述坏块管理算法用于系统只读区的坏块管理,所述保护机制用于应对各类 异常和保证擦写的正确性。
进一步,步骤(2)中,所述文件系统将所述系统只读区以文件形式进 行管理。
进一步,步骤(2)中,开机时,BOOTLOADER在成功初始化设备、 操作系统、文件系统等后,调用文件系统接口去读取代码文件,并复制到 RAM中,然后跳转到RAM中代码起始地址处开始执行。
进一步,步骤(2)中,下栽代码到系统只读区时,通过所述文件系统 制作工具将可执行代码文件制作成文件形式,通过下载工具下载到所述系统
只读区。
进一步,步骤(2)中,下载代码到系统只读区时,在下载工具的终端 侧代码中添加文件系统的读写接口,格式化所述系统只读区域,然后将代码 文件写入。
进一步,步骤(2)中,当进行固件升级时,调用所述文件系统的接口, 对所述系统只读区进行改写,其中,FLASH地址由所述文件系统定位,调 用驱动接口擦写。
进一步,步骤(2)中,在需要升级固件时,从网络侧获得需要升级的 代码文件后,通过所述文件系统接口将所述需要升级的代码文件写入NAND FLASH的系统只读区。
进一步,步骤(2)中,如果升级完成,则将备份区域的版本设置为下 次启动的版本,将原版本的区域设置为备份区域。
由于NAND FLASH文件系统都包含了比较完善的坏块管理算法,可以 对系统只读区行坏块管理,有效地避免了因坏块而带来的各类风险。同时, 文件系统存在一定的保护机制,以应对各类异常,可以有效地保证擦写的正 确性。文件系统将代码区以文件形式进行管理,也方便了分次搬移,可以将 不同阶段搬移的代码做成不同的文件写入NAND FLASH ,提高启动效率。
使用文件系统访问系统只读存储区,也可以很方便对代码区文件作备 份,避免固件升级失败所导致的无法开机等问题。移动终端牺牲一部分容量 作为版本的备份可以保证手机的稳定性,减少了 NAND FLASH所存在的访 问失败。
使用文件形式将代码段存入系统只读区,提高了固件升级的效率,不需 要进行大块代码的搬移,仅需要通过文件系统对需要升级的文件进行比较, 然后对系统只读区中相应的区域进行拍i移。
图1是本发明中NAND FLASH的空间划分示意图2是本发明中的开机启动流程示意图3是本发明中开机后固件升级流程示意图。
具体实施例方式
下面参照附图,对本发明优选实施例做详细描述。
参照图l所示,对NANDFLASH的空间划分做详细说明。
1、 将NAND FLASH区域划分为系统只读区、系统读写区以及用户读 写区,由FS (文件系统)进行统一管理。
NBL1/2代表NAND BOOTLOADER (引导装载程序)第一部分/第二 部分;NBL3代表NAND BOOTLOADER第三部分。系统只读区用于代码 的存放,OS (operating system ,操作系统)在此处指代操作系统调度的 代码区域。系统读写区用于存放文件系统(FS, file system )和NVRAM (非易失性内存)数据,给系统提供接口以进行读写。用户读写区作为U 盘区域直接提供给用户操作。系统只读区在进行固件升级时可以改写,但改 写该区域需要调用文件系统接口,具体的FLASH地址由文件系统定位,调 用驱动接口擦写。
下载代码到系统只读区有两种方式
第一种,可以通过文件系统制作工具将可执行代码文件制作成文件的形 式,通过下载工具下载到代码区。
第二种,可以通过在下载工具的终端侧代码中添加文件系统的读写接 口,下载前首先FORMAT (格式化)该区域,然后将代码文件写入。
2、 规划文件系统,修改文件系统访问区域,使文件系统能够给系统提 供接口以访问系统只读区的代码,文件系统将代码区以文件形式进行管理。
NAND FLASH区域中的系统只读区、系统读写区以及用户读写区由文 件系统进行统一管理。
现有技术中文件系统只能访问系统读写区和用户读写区,本发明修改了 文件系统的访问区域,使得文件系统能够访问系统只读存储区,而且文件系 统对系统读写区和用户读写区的操作与普通终端的操作相同。
文件系统包含了比较完善的坏块管理算法,利用坏块管理算法用于对系 统只读存储部分进行坏块管理,有效地避免了因坏块而带来的各类风险。同 时,文件系统存在一定的保护机制,保护机制用于应对各类异常,可以有效 地保证擦写的正确性。
下面对本发明的两个应用实例做详细描述。
参照图2所示,对本发明的开机启动流程做详细说明。步骤S201,移动终端开才几后执行BOOTLOADER。
在用户开机时,系统只读区中的代码由BOOTLOADER(引导装载程序) 通过FS (文件系统)读出,并复制到RAM区域。
每次BOOTLOADER执行代码复制之前,都需要判断版本的有效性, 并选择比较新的代码文件复制到RAM中,而升级版本的操作总在备份区域。 如果升级完成,则将备份区域的版本设置为下次启动的版本,将原版本的区 域设置为备份区域。即使升级期间存在异常,导致升级失败,对原版本也没 有影响。
步骤S202,判断是否进行固件升级,如果是,进入固件升级^t式;如 果不需要固件升级,执行步骤S203。
正常情况下,不能对该系统只读区进行写操作,只是在进行固件升级时, 才可以对该系统只读区进行写l喿作。
考虑到固件升级的问题,在需要升级固件时,从网络侧获得需要升级的 代码文件后,通过文件系统接口将其写入NAND FLASH的系统只读区。
步骤S203,启动文件系统,文件系统给系统提供接口以进行读写操作。
步骤S204,寻找可用版本,调用文件系统接口去读取代码文件,并复 制到RAM。
步骤S205,跳转代码起始地址处开始执行。
在BOOTLOADER代码中添加文件系统的初始化,如果文件系统需要 操作系统支持,还需要增加操作系统的初始化。开机时,BOOTLOADER在 成功初始化设备、操作系统、文件系统等后,调用文件系统接口去读取代码 文件,并复制到RAM中,然后跳转到RAM中代码起始地址处开始执行。
参照图3所示,对开机后固件升级流程做详细说明。
步骤S301,如果需要进行固件升级,则进入固件升级模式进行固件升级。
步骤S302,启动文件系统。
步骤S303,寻找备份版本空间,进行相应的固件升级。
使用文件系统访问系统只读存储区,寻找升级版本的代码备份,不需要 进行大块代码的搬移,仅需要通过文件系统对需要升级的文件进行比较,然 后对系统只读区中相应的区域进行搬移。
步骤S304,判断升级是否完成,如果完成,执行步骤S305;否则执行 步骤S306。
步骤S305,修改备份版本为可用版本。
如果升级完成,则将备份区域的版本设置为下次启动的版本,将原版本 的区域设置为备份区域。这样,即使升级期间存在异常,导致升级失败,对 原版本也没有影响。
步骤S306,设置失败原因。
步骤S307,重启手^L。
手机重启后,调用文件系统接口去读取升级后的代码文件,并复制到 RAM。
权利要求
1、一种基于NAND FLASH移动终端存储介质的空间管理方法,步骤包括(1)将与非-非易失性存储器NAND FLASH的存储区域进行划分,划分后的区域包括系统只读区,所述系统只读区用于存放代码;(2)在所述文件系统中修改文件系统访问区域,使所述文件系统提供接口用以访问和操作所述系统只读区的代码。
2、 如权利要求1所述的基于NAND FLASH移动终端存储介质的空间 管理方法,其特征在于,步骤(l)中,所述NAND FLASH的存储区域划 分为系统只读区、系统读写区和用户读写区,所述系统只读区用于存放代码, 所述系统读写区用于存放文件系统和非易失性内存NVRAM数据,所述用 户读写区用于提供给用户操作。
3、 如权利要求1所述的基于NAND FLASH移动终端存储介质的空间 管理方法,其特征在于,步骤(2)中,所述文件系统包含坏块管理算法和 保护机制,所述坏块管理算法用于系统只读区的坏块管理,所述保护机制用 于应对各类异常和保证擦写的正确性。
4、 如权利要求1所述的基于NAND FLASH移动终端存储介质的空间 管理方法,其特征在于,步骤(2)中,所述文件系统将所述系统只读区以 文件形式进行管理。
5、 如权利要求4所述的基于NAND FLASH移动终端存储介质的空间 管理方法,其特征在于,步骤(2)中,开机时,BOOTLOADER在成功初 始化设备、操作系统、文件系统等后,调用文件系统接口去读取代码文件, 并复制到RAM中,然后跳转到RAM中代码起始地址处开始执行。
6、 如权利要求4所述的基于NAND FLASH移动终端存储介质的空间 管理方法,其特征在于,步骤(2)中,下载代码到系统只读区时,通过所 述文件系统制作工具将可执行代码文件制作成文件形式,通过下载工具下载 到所述系统只读区。
7、 如权利要求4所述的基于NAND FLASH移动终端存储介质的空间 管理方法,其特征在于,步骤(2)中,下载代码到系统只读区时,在下载 工具的终端侧代码中添加文件系统的读写接口 ,格式化所述系统只读区域, 然后将代码文件写入。
8、 如权利要求1所述的基于NAND FLASH移动终端存储介质的空间 管理方法,其特征在于,步骤(2)中,当进行固件升级时,调用所述文件 系统的4妄口,对所述系统只读区进行改写,其中,FLASH地址由所述文件 系统定位,调用驱动接口擦写。
9、 如权利要求1所述的基于NAND FLASH移动终端存储介质的空间 管理方法,其特征在于,步骤(2)中,在需要升级固件时,从网络侧获得 需要升级的代码文件后,通过所述文件系统接口将所述需要升级的代码文件 写入NAND FLASH的系统只读区。的空间管理方法,其特征在于,步骤(2)中,如果升级完成,则将备份区 域的版本设置为下次启动的版本,将原版本的区域设置为备份区域。
全文摘要
本发明公开了一种基于NAND FLASH移动终端存储介质的空间管理方法,步骤包括将与非-非易失性存储器NAND FLASH的存储区域进行划分,划分后的区域包括系统只读区,所述系统只读区用于存放代码;在所述文件系统中修改文件系统访问区域,使所述文件系统提供接口用以访问和操作所述系统只读区的代码。本发明使用文件系统访问系统只读存储区,也可以很方便对代码区文件作备份,避免了固件升级失败所导致的无法开机等问题,移动终端牺牲一部分容量作为版本的备份可以保证手机的稳定性,减少了NAND FLASH所存在的访问失败。
文档编号G06F12/06GK101183337SQ200710199089
公开日2008年5月21日 申请日期2007年12月12日 优先权日2007年12月12日
发明者欣 张, 徐金禄, 段红乐, 王志慧 申请人:中兴通讯股份有限公司