Nand闪存的装载代码的文件格式的制作方法

文档序号:6363551阅读:295来源:国知局
专利名称:Nand闪存的装载代码的文件格式的制作方法
技术领域
本发明涉及SoC从NAND闪存启动技术,尤其涉及一种新的NAND闪存的装载代码的文件格式。
背景技术
随着嵌入式系统的日趋复杂,实际项目对大容量数据存储的需求越来越紧迫。当前嵌入式设备低功耗、小体积以及低成本的要求也致使硬盘无法得到广泛的应用,而大容量闪存设备恰是为了满足当前这一需求而迅速发展起来。从闪存设备装载代码来启动嵌入式系统是一项基本且必要的Soc技术,如何解决Soc从闪存启动技术中的一些特定问题是目前业内的研究重点。目前国际上成熟的Soc从闪存启动技术通常需要完成四个部分功能和过程
第一步,首先Soc内部硬件固化的过程代码被执行,这段硬件固化的过程代码将对闪存进行基本的初始化,然后把闪存中的装载程序代码调入SoC内部的高速缓存中(如图I所示);
第二步,片内高速缓存中的装载代码被执行,初始化内存并将启动代码从闪存拷贝到内存中(如图2所示);
第三步,内存中的启动代码被执行,初始化外部系统及其相关设备,并将操作系统核心代码从NAND闪存拷贝到内存中(如图3所示);
第四步,内存中的操作系统核心被执行,执行操作系统的控制任务(如图4所示)。然而,NAND闪存不同于其它存储设备,现有技术中装载代码程序的文件格式,往往由于NAND闪存数据特有的不可靠性,NAND闪存中对装载代码访问过程中的数据的准确性无法得以保证。所以,有必要提出一种新的装载代码的文件格式以满足相应要求。

发明内容
为解决上述技术问题,本发明的目的在于提供一种新的NAND闪存的装载代码的文件格式,通过这样的特定格式的装载代码来保证NAND闪存中对装载代码访问过程中的数据的准确性。为实现上述发明目的,本发明提供的一种NAND闪存的装载代码的文件格式,所述装载代码的文件格式包括文件标识、文件标识起始标志、若干数据段、文件数据结束标志以及文件数据校验码。作为本发明的进一步改进,所述数据段包括数据长度信息、数据类型信息、数据段地址信息以及数据内容或数据表单内容。作为本发明的进一步改进,所述文件标识为32比特二进制数据。作为本发明的进一步改进,所述文件标识起始标志与所述文件数据结束标志为32 比特二进制数据。
与现有技术相比,本发明通过采用这样的特定格式的装载代码,经过对读取的装载代码进行数据校验来检测是否是正确完整的装载代码,从而保证NAND闪存中对装载代码访问过程中的数据的准确性,且实现方法简单易行。


图I是现有技术中Soc从闪存启动的步骤一的工作原理示意图2是现有技术中Soc从闪存启动的步骤二的工作原理示意图3是现有技术中Soc从闪存启动的步骤三的工作原理示意图4是现有技术中Soc从闪存启动的步骤四的工作原理示意图;;
图5是本发明一实施方式中硬件固化代码的启动和运行的工作流程图6是本发明一实施方式中NAND闪存设备初始化过程的工作流程图7是本发明一实施方式中系统参数表的三种参数获取方式的工作流程图8是本发明一实施方式中固化代码使用的系统参数表以多副本的方式存储的示意
图9是本发明一实施方式中读取NAND闪存中的参数表的工作流程图10是本发明一实施方式中对NAND闪存硬件访问地址宽度参数的处理步骤的流程
图11是本发明一实施方式中读取并解析闪存中的装载代码的具体步骤的流程图12表示的是本发明一实施方式中装载代码的特定文件格式以及数据段格式;
图13表示的是本发明一实施方式中逻辑数据区装载代码的访问原理;
图14是本发明一实施方式中固化代码读取装载代码的具体过程的流程图15表示的是本发明一实施方式中固化代码对数据页的访问原理。
具体实施例方式以下将结合附图所示的具体实施方式
对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包括在本发明的保护范围内。为了解决由NAND闪存特性引出的问题,制定并研发设计了一系列特定的过程和方法,用以保证初始化过程正确进行和正确读取NAND闪存中的数据参数,这些过程和方法是在固化代码中被执行的。请参照图5所示,在本发明一实施方式中,硬件固化代码的启动和运行包括如下步骤
51、启动固化代码以初始化NAND闪存,并为读取NAND闪存中的装载代码做准备,其中, 所述固化代码中包括一保存多种型号NAND闪存参数的设备参数表,且固化代码支持设备参数表中保存的各型号NAND闪存;
52、读取并解析所述NAND闪存中的装载代码,并采用数据错误检测及数据纠错过程 (ECC)对数据进行处理,所需ECC码按照访问区的不同分别存储在数据页的不同位置。值得一提的是,所述固化代码支持NAND闪存行业标准ONFI 2. 0(0pen NAND FlashInterface 2.0)。Open NAND Flash Interface (ONFI)工作组已经于 2008-2009 年公布了其ONFI 2. O标准。该公司成立于2006年5月,拥有100多个涉及制造、设计以及使用闪存产品的成员,包括海力士、英特尔、镁光、SanDisk以及索尼。ONFI 2. O标准要求NAND闪存能够通过处理特殊指令OxEC提供硬件设备的具体参数。在固化代码的参数获取流程中,能够通过这个命令将支持ONFI 2. O标准的NAND闪存中的参数读取并更新到系统参数表中。其中,如图6所示,步骤SI具体包括
511、初始化用于与NAND闪存通信以控制NAND闪存的NAND闪存硬件控制器;
512、检测当前NAND闪存参数并读取与当前NAND闪存对应的固化代码参数。NAND闪存参数检测,固化代码参数读取过程依据不同类型的闪存包含不同的内容,目前在成熟的方案中可以同时支持SPI闪存以及NAND闪存,这两种闪存中NAND闪存由于固有的硬件特征使得控制更为复杂。具体地,在本实施方式中的步骤SI中,首先需要进行硬件的启动(系统加电),接下来需要通过硬件启动控制器初始化片内存储器(步骤SlOl),硬件启动控制器分析并解析存储在片内存储器上的特定格式的固化代码(步骤S102),紧接着判断解析是否成功(步骤 S103),若不成功,则硬件启动停止;若成功,则进行固化代码的启动(步骤S104),通过启动固化代码来初始化闪存并为读取装载代码做必要准备,并判断是否成功(步骤S106),若成功,便进入读取并解析闪存中的装载代码的步骤,若不成功,则判断是否需要启动下一个闪存(步骤S110),若是,则返回步骤SI、若否,跳转步骤Slll :停止固化代码。在读取并解析闪存的装载代码之后,还需判断该过程是否成功(步骤S108),若是, 则启动控制权交给特定的软件来装载代码(步骤S109);若否,同样需要判断是否需要启动下一个闪存(步骤SI 10)。在本实施方式中,固化代码最终使用的参数(比如闪存设备参数、设备ID、尺寸信息等等)保存于一系统参数表中,所述系统参数表的参数获取方式包括搜索固化代码内部 NAND闪存设备参数表、或者从支持ONFI 2. O标准的NAND闪存获取、或者读取NAND闪存首页保存的参数表。具体地,请参图7所示,“搜索固化代码内部NAND闪存设备参数表”的参数获取方式具体为
内部设备表参数获取开始;
读取NAND闪存设备的ID,其中,设备参数表中为每一个型号的NAND闪存都分别配置了唯一的ID ;
判断读取ID是否成功,若是,则读取内部设备参数表;若否,则内部设备表参数获取结
束;
读取内部设备参数表结束后,还需判断是否找到闪存信息,若是,则对系统参数表进行更新;若否,则内部设备表参数获取结束;
“从支持ONFI 2. O标准的NAND闪存获取”的参数获取方式具体为
ONFI信息表读取开始;
与NAND闪存通信并获取ONFI读取信息表;
判断是否成功获取,若是,则对系统参数表进行更新;若否,则ONFI信息表读取结束; “读取NAND闪存首页保存的参数表”的参数获取方式具体为NAND闪存中的参数表获取开始;
读取NAND闪存中的参数表;
判断是否成功获取,若是,则对系统参数表进行更新;若否,则NAND闪存中的参数表获取结束;
表[I]中列举了其中的部分参数
权利要求
1.一种NAND闪存的装载代码的文件格式,其特征在于,所述装载代码的文件格式包括文件标识、文件标识起始标志、若干数据段、文件数据结束标志以及文件数据校验码。
2.如权利要求I所述的NAND闪存的装载代码的文件格式,其特征在于,所述数据段包括数据长度信息、数据类型信息、数据段地址信息以及数据内容或数据表单内容。
3.如权利要求2所述的NAND闪存的装载代码的文件格式,其特征在于,所述文件标识为32比特二进制数据。
4.如权利要求3所述的NAND闪存的装载代码的文件格式,其特征在于,所述文件标识起始标志与所述文件数据结束标志为32比特二进制数据。
全文摘要
本发明提供一种NAND闪存的装载代码的文件格式,其特征在于,所述装载代码的文件格式包括文件标识、文件标识起始标志、若干数据段、文件数据结束标志以及文件数据校验码。与现有技术相比,本发明通过采用这样的特定格式的装载代码,经过对读取的装载代码进行数据校验来检测是否是正确完整的装载代码,从而保证NAND闪存中对装载代码访问过程中的数据的准确性,且实现方法简单易行。
文档编号G06F11/10GK102609331SQ20121001725
公开日2012年7月25日 申请日期2012年1月19日 优先权日2012年1月19日
发明者孙纪坤, 李相斌, 袁宏骏 申请人:苏州希图视鼎微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1