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

文档序号:9564457阅读:来源:国知局
息修改启动标志和启动引导的物理地址表,以控制系统在下次启动时按照更新后的启动引导进行启动。如果引导更新不成功,则不进行修改启动标志和启动引导的物理地址表。
[0078]进一步地,参照图4,基于上述实施例,本实施例中,执行上述步骤S14之前还包括:
[0079]步骤S22,判断所述目标物理地址是否为非法启动地址;若是,则执行步骤S13,否则执行步骤S23。
[0080]步骤S23,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以使CPU读取预设的非启动相关的存储数据。
[0081]本实施例中,上述非法启动地址,为NAND-Flash存储器中不存在的物理地址,或者该地址在NAND-Flash存储器并非存储有启动引导。此时则不翻译信号中地址信号,将信号直接透传。
[0082]本发明还提供一种基于NAND-Flash双启动引导的启动装置,参照图5,在第一实施例中,本发明提供的基于NAND-Flash双启动引导的启动装置包括:
[0083]获取模块100,用于在系统启动时,获取预置的启动标志及启动引导的物理地址表;
[0084]本实施例提供的基于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。
[0085]第一判断模块110,用于根据所述启动标志及启动引导的物理地址表,获得所述启动标志对应的目标物理地址,并判断所述目标物理地址是否为CPU默认读取的特定物理地址;
[0086]上述CPU默认读取的特定物理地址一般为NAND-Flash存储器的blockO,根据启动标志获得本次是以第一启动引导进行启动还是以第二启动引导进行启动,根据该启动标志和启动引导的物理地址表获取确定本次进行启动的启动引导对应的实际物理地址。
[0087]第一启动控制模块120,用于当所述启动标志对应的目标物理地址为CPU默认读取的特定物理地址时,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第一启动引导,并根据第一启动引导进行启动;
[0088]第二启动控制模块130,用于当所述启动标志对应的目标物理地址不为CPU默认读取的特定物理地址时,将所述逻辑器件与CPU连接的NAND-F1 ash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译,将翻译后的所述信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第二启动引导,并根据第二启动引导进行启动。
[0089]本实施例中,以第一启动引导存储于NAND-Flash存储器中的blockO (作为起始地址)内,第二启动引导存储于NAND-Flash存储器中的blockl (作为起始地址;实际实现上可以是合法的、可存放Boot的、非blockO的块)内做出详细说明:
[0090]当上述启动标志对应为第一启动引导时,则逻辑器件与CPU连接的NAND-Flash之间接口的信号将被直接转发至NAND-Flash存储器,从而读取NAND-Flash存储器的blockO中的第一启动引导,CPU将根据该第一启动引导进行Boot启动。当上述启动标志对应为第二启动引导时,则逻辑器件与CPU连接的NAND-Flash之间接口的由CPU发出的信号将由逻辑器件采集,并对该信号进行解析,然后根据上述目标物理地址对信号中的地址信号翻译,从而将目标物理地址作为上述地址信号发送给NAND-Flash存储器,从而读取到blockl中的弟—启动引导。在Boot启动完成后,将加载上述映像文件,从而完成系统的正常启动。
[0091]本发明通过在系统启动时,获取预置的启动标志及启动引导的物理地址表,以判断所述启动标志对应的目标物理地址是否为CPU默认读取的特定物理地址,从而以第一启动弓I导进行启动或以第二启动弓I导进行启动,进而实现了 NAND-Flash双启动引导的启动控制。由于将基于NAND-Flash存储器地址翻译的方法引入启动引导(Boot)的存储装置,因此可以对NAND-Flash上整个Boot进行升级,不需要额外设置初始引导区,可以避免初始引导区不能被同时升级的问题,提高了系统运行的稳定性与便捷性。
[0092]进一步地,参照图6,基于上述实施例,本实施例中,上述基于NAND-Flash双启动引导的启动装置还包括:
[0093]接收模块140,用于接收CPU在获取第二启动引导的第一个block时发送的停止翻译指令;
[0094]所述第二启动控制模块130,还用于根据所述停止翻译指令,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器,以继续读取第二启动引导,根据第二启动引导进行启动。
[0095]本实施例中,当以第二启动引导进行启动时,CPU在读取获得第二启动引导的第一个block后,将发送一个停止翻译指令至逻辑器件,逻辑器件的接收模块140在接收到该停止翻译指令后,将会停止对地址信号翻译。具体地CPU从Boot区中读取启动引导代码中的首个block,进行Boot启动,在读出并运行后,逻辑器件停止对地址信号翻译,CPU按照正常的顺序对NAND-Flash进行访问,以继续读取后续的该第二启动引导其余部分。
[0096]进一步地,参照图7,基于上述实施例,本实施例中,上述基于NAND-Flash双启动引导的启动装置还包括:
[0097]第二判断模块150,用于判断系统启动是否成功;
[0098]fe制t吴块160,用于当系统启动不成功时,修改启动标志,并重新启动系统,以切换启动引导。
[0099]本实施例中,在系统启动的过程中可监听启动过程中是否存在故障,当启动存在故障时,切换启动引导,以保证系统能够正常启动。具体地在根据第一启动引导启动后或根据第二启动引导启动后均需要判断系统启动是否成功;应当说明的是,判断系统启动是否成功的方式可根据实际需要进设置,本实施例中,为了缩短由于故障导致的等候时间,分别设置了快速与慢速的定时器,当Boot启动后第一定时器定时时间(较短的时间)到达时判断启动是否出现故障,若出现故障,则翻转到另一个Boot启动;若没有出现故障,则当Boot启动后第二定时器定时时间(较长的时间)到达时判断是否出现故障,当出现故障时,翻转到另一个Boot启动。
[0100]进一步地,参照图8,基于上述实施例,本实施例中,上述基于NAND-Flash双启动引导的启动装置还包括:
[0101]下载模块170,用于当系统启动成功,且系统存在更新时,下载映像文件和启动引导;
[0102]处理模块180,用于根据下载的启动引导更新非当前的启动所采用启动引导也就是将下载的所述启动引导储存至所述NAND-Flash存储器的物理地址区域中;
[0103]修改模块190,用于当更新成功时修改所述启动标志及启动引导的物理地址表,以控制系统按照更新后的启动引导进行重新启动;当
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1