基于NAND-Flash双启动引导的启动方法及装置的制造方法_2

文档序号:9564457阅读:来源:国知局
r>[0047]图5为本发明基于NAND-Flash双启动引导的启动装置第一实施例的功能模块示意图;
[0048]图6为本发明基于NAND-Flash双启动引导的启动装置第二实施例的功能模块示意图;
[0049]图7为本发明基于NAND-Flash双启动引导的启动装置第三实施例的功能模块示意图;
[0050]图8为本发明基于NAND-Flash双启动引导的启动装置第四实施例的功能模块示意图;
[0051]图9为本发明基于NAND-Flash双启动引导的启动装置第五实施例的功能模块示意图。
[0052]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0053]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0054]本发明提供一种基于NAND-Flash双启动引导的启动方法,参照图1,在第一实施例中,该基于NAND-Flash双启动引导的启动方法包括:
[0055]步骤S10,在系统启动时,获取预置的启动标志及启动引导的物理地址表;
[0056]本实施例提供的基于NAND-Flash双启动引导的启动方法应用于电子产品的启动控制,具体地该电子产品的系统运行于包括处理器(CPU)、逻辑器件(FPGA或者CPLD)以及NAND-Flash存储器的硬件环境中。上述预置的启动标志及启动引导的物理地址表可储存于所述逻辑器件内部的Flash中或所述逻辑器件外挂的非易失存储器中。上述启动引导(Boot)包括存储于NAND-Flash存储器中的第一启动引导(Bootl)和第二启动引导(Boot2),该第一启动引导储存于NAND-Flash存储器的第一个block (即blockO,作为起始地址),第二启动引导储存于NAND-Flash存储器的其他block中。具体地NAND-Flash存储器划分为三个区,其中两个是Boot区,存放互为备用的Boot,另外的分区存放映像文件(大版本文件)及其他信息。上述启动引导的物理地址表为启动引导在所述NAND-Flash存储器中的地址信息,具体该物理地址表可以仅为第二启动引导对应的地址信息,也可以包括第一启动引导对应的地址信息和第二启动引导对应的地址信息。上述启动标志为用于确定以第一启动引导还是以第二启动引导的标识信息。应当说明的是,上述CPU可以通过控制接口访问逻辑器件的内部Flash或外挂非易失存储器中的启动标志和物理地址表,同时向逻辑器件提供NAND-Flash接口。CPU进行访问的接口可以是各种类型的,比如IIC、L0CAL-BUS、SPI等形式的接口,具体接口的类型依赖于CPU。
[0057]步骤S11,根据所述启动标志及启动引导的物理地址表,获得所述启动标志对应的目标物理地址;
[0058]步骤S12,判断所述目标物理地址是否为CPU默认读取的特定物理地址;若是,则执行步骤S13,若否,则执行步骤S14。
[0059]上述CPU默认读取的特定物理地址一般为NAND-Flash存储器的blockO,根据启动标志获得本次是以第一启动引导进行启动还是以第二启动引导进行启动,根据该启动标志和启动引导的物理地址表获取确定本次进行启动的启动引导对应的实际物理地址。
[0060]步骤S13,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第一启动引导,并根据第一启动引导进行启动;
[0061 ] 步骤S14,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译,将翻译后的所述信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第二启动引导,并根据第二启动引导进行启动。
[0062]本实施例中,以第一启动引导存储于NAND-Flash存储器中的blockO (作为起始地址)内,第二启动引导存储于NAND-Flash存储器中的blockl (作为起始地址,实际中可以是合法的区别于blockO的任一可用块)内做出详细说明:
[0063]当上述启动标志对应为第一启动引导时,则逻辑器件与CPU连接的NAND-Flash接口在接收到CPU输出的信号时,将由逻辑器件对该信号转发至NAND-Flash存储器,从而读取NAND-Flash存储器的blockO中的第一启动引导,CPU将根据该第一启动引导进行Boot启动。当上述启动标志对应为第二启动引导时,则逻辑器件与CPU连接的NAND-Flash接口在接收到CPU输出的信号时,将由逻辑器件对该信号进行解析,并根据上述目标物理地址对信号中的地址信号翻译,从而将目标物理地址作为上述地址信号进行翻译转换;然后将转换后的信号发送给NAND-Flash存储器,从而读取到blockl中的第二启动引导,CPU将根据该弟—启动引导进彳丁 Boot启动。在Boot启动完成后,将加载上述映像文件,从而完成系统的正常启动。
[0064]本发明通过在系统启动时,获取预置的启动标志及启动引导的物理地址表,以判断所述启动标志对应的目标物理地址是否为CPU默认读取的特定物理地址,从而以第一启动弓I导进行启动或以第二启动弓I导进行启动,进而实现了 NAND-Flash双启动引导的启动控制。由于是将基于NAND-Flash存储器地址翻译的方法引入启动引导(Boot)的方法,因此可以对NAND-Flash上整个Boot进行升级,不需要额外设置初始引导区,可以避免初始引导区不能被同时升级的问题,提高了系统运行的稳定性与便捷性。
[0065]进一步地,参照图2,基于上述实施例,本实施例中,上述步骤S14之后还包括:
[0066]步骤S15,接收CPU在获取第二启动引导的第一个block时发送的停止翻译指令;
[0067]步骤S16,根据所述停止翻译指令,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以继续读取第二启动引导,根据第二启动引导进行启动。
[0068]本实施例中,当以第二启动引导进行启动时,CPU在读取获得第二启动引导的第一个block后,进行Boot启动,在第一个block正常读出并运行后,逻辑器件停止对地址信号翻译,CPU按照正常的顺序对NAND-Flash进行访问,以继续读取后续的该第二启动引导其余部分。
[0069]进一步地,参照图3,基于上述实施例,本实施例中,上述步骤S13和步骤S14之后还包括
[0070]步骤S17,判断系统启动是否成功;
[0071 ] 步骤S18,当系统启动不成功时,修改启动标志,并重新启动系统,以切换启动引导。
[0072]本实施例中,在系统启动的过程中可监听启动过程中是否存在故障,当启动存在故障时,切换启动引导,以保证系统能够正常启动。具体地在根据第一启动引导启动后或根据第二启动引导启动均需要判断系统启动是否成功;应当说明的是,判断系统启动是否成功的方式可根据实际需要进设置,本实施例中,为了缩短由于故障导致的等候时间,分别设置了快速与慢速的定时器,当Boot启动后第一定时器定时时间(较短的时间)到达时判断启动是否出现故障,若出现故障,则翻转到另一个Boot启动;若没有出现故障,则当Boot启动后第二定时器定时时间(较长的时间)到达时判断是否出现故障,当出现故障时,翻转到另一个Boot启动。
[0073]进一步地,基于上述实施例,本实施例中,上述步骤S17之后还包括:
[0074]步骤S19,当系统启动成功,且系统存在更新时,下载映像文件和启动引导;
[0075]步骤S20,根据下载的启动引导更新非当前启动所采用启动引导;
[0076]步骤S21,当更新成功时,修改所述启动标志及启动引导的物理地址表,以控制系统按照更新后的启动引导进行下次启动;当更新失败时,不修改所述启动标志及启动引导的物理地址表。
[0077]本实施例中,在系统启动成功后,检测到系统存在更新时,将下载映像文件和启动引导。下载完成后,将NAND-Flash存储器中的映像文件更新替换为下载的映像文件,同时对当前非启动引导进行更新(即将下载的所述启动引导储存至所述NAND-Flash存储器的其他block中)。如果更新操作成功,逻辑器件接收CPU发送的指令,根据CPU的指令中提供的更新信
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1