CN105320529A - 基于NAND-Flash双启动引导的启动方法及装置 - Google Patents
基于NAND-Flash双启动引导的启动方法及装置 Download PDFInfo
- Publication number
- CN105320529A CN105320529A CN201410323968.8A CN201410323968A CN105320529A CN 105320529 A CN105320529 A CN 105320529A CN 201410323968 A CN201410323968 A CN 201410323968A CN 105320529 A CN105320529 A CN 105320529A
- Authority
- CN
- China
- Prior art keywords
- nand
- starting
- flash
- physical address
- starting factor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于NAND-Flash的双启动引导的启动方法包括:在系统启动时,获取预置的启动标志及启动引导的物理地址表;获得启动标志对应的目标物理地址,判断目标物理地址是否为CPU默认读取的特定物理地址;若则将逻辑器件接收到的信号直接发送至NAND-Flash存储器;若否则将逻辑器件接收到的信号中地址信号解析后按照目标物理地址进行翻译,将翻译后的信号发送至NAND-Flash存储器。本发明还公开了一种基于NAND-Flash双启动引导的启动装置。本发明实现了NAND-Flash双启动引导的启动控制,避免了初始引导区不能被同时升级的问题,提高了系统运行的稳定性与便捷性。
Description
技术领域
本发明涉及电子产品技术领域,尤其涉及一种基于NAND-Flash双启动引导的启动方法及装置。
背景技术
作为操作系统的引导程序,Boot要完成对系统硬件的最小初始化,并且把系统程序代码加载到系统程序代码运行时所处的位置;最后Boot将控制权交给系统程序,使CPU从系统程序的入口点开始执行。在许多应用场合中,Boot支持的功能越来越多。为了在系统原有的Boot上合入功能和解决相关的bug,Boot在线升级功能变得尤为必要。
为了防止Boot升级中由于新版本的Boot不能正常工作而导致系统故障,一般需要将升级前的Boot保留来进行备份。这样就要求在存储器中要有两个Boot,也就是双Boot,并且两个Boot可以自动切换。目前比较常见的Boot存储器一般是NOR-Flash存储器,由于NOR-Flash存储器相对NAND-Flash存储器而言,NOR-Flash存储器的单位存储容量所对应的成本高,以及容量相对小等特点,NAND-Flash存储器更有优势。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于实现NAND-Flash双启动引导的启动控制,避免初始引导区不能被同时升级的问题,提高系统运行的稳定性。
为实现上述目的,本发明提供的一种基于NAND-Flash双启动引导的启动方法包括以下步骤:
在系统启动时,获取预置的启动标志及启动引导的物理地址表;
根据所述启动标志及启动引导的物理地址表,获得所述启动标志对应的目标物理地址,并判断所述目标物理地址是否为CPU默认读取的特定物理地址;
若是,则将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第一启动引导,并根据第一启动引导进行启动;
若否,则将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译,将翻译后的所述信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第二启动引导,并根据第二启动引导进行启动。
优选地,所述将翻译后的所述信号发送至所述NAND-Flash存储器中之后还包括:
接收CPU在获取第二启动引导的第一个block时发送的停止翻译指令;
根据所述停止翻译指令,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以继续读取第二启动引导,根据第二启动引导进行启动。
优选地,在根据第一启动引导启动后或根据第二启动引导启动后还包括:
判断系统启动是否成功;
当系统启动不成功时,修改启动标志,并重新启动系统,以切换启动引导。
优选地,所述判断启动是否成功之后还包括:
当系统启动成功,且系统存在更新时,下载映像文件和启动引导;
根据下载的启动引导更新非当前启动所采用的启动引导也就是将下载的所述启动引导储存至所述NAND-Flash存储器的物理地址区域中;
当更新成功时,修改所述启动标志及启动引导的物理地址表,以控制系统按照更新后的启动引导进行下次启动;当更新失败时,不修改所述启动标志及启动引导的物理地址表。
优选地,在所述将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译之前还包括:
判断所述目标物理地址是否为非法启动地址;
当所述目标地址为非法启动地址时,则将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以使CPU读取预设的非启动相关的存储数据。
此外,为实现上述目的,本发明还提供一种基于NAND-Flash双启动引导的启动装置包括:
获取模块,用于在系统启动时,获取预置的启动标志及启动引导的物理地址表;
第一判断模块,用于根据所述启动标志及启动引导的物理地址表,获得所述启动标志对应的目标物理地址,并判断所述目标物理地址是否为CPU默认读取的特定物理地址;
第一启动控制模块,用于当所述启动标志对应的目标物理地址为CPU默认读取的特定物理地址时,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第一启动引导,并根据第一启动引导进行启动;
第二启动控制模块,用于当所述启动标志对应的目标物理地址不为CPU默认读取的特定物理地址时,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译,将翻译后的所述信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第二启动引导,并根据第二启动引导进行启动。
优选地,所述基于NAND-Flash双启动引导的启动装置还包括:
接收模块,用于接收CPU在获取第二启动引导的第一个block时发送的停止翻译指令;
所述第二启动控制模块,还用于根据所述停止翻译指令,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以继续读取第二启动引导,根据第二启动引导进行启动。
优选地,所述基于NAND-Flash双启动引导的启动装置还包括:
第二判断模块,用于判断系统启动是否成功;
控制模块,用于当系统启动不成功时,修改启动标志,并重新启动系统,以切换启动引导。
优选地,所述基于NAND-Flash双启动引导的启动装置还包括:
下载模块,用于当系统启动成功,且系统存在更新时,下载映像文件和启动引导;
处理模块,用于根据下载的启动引导更新-非当前的启动引导也就是将下载的所述启动引导储存至所述NAND-Flash存储器的物理地址区域中;
修改模块,用于当更新成功时,修改所述启动标志及启动引导的物理地址表,以控制系统按照更新后的启动引导进行下次启动;当更新失败时,不修改所述启动标志及启动引导的物理地址表。
优选地,所述基于NAND-Flash双启动引导的启动装置还包括:
第三判断模块,用于判断所述目标物理地址是否为非法启动地址;
所述第一启动控制模块,还用于当所述目标地址为非法启动地址时,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以使CPU读取预设的非启动相关的存储数据。
本发明通过在系统启动时,获取预置的启动标志及启动引导的物理地址表,以判断所述启动标志对应的目标物理地址是否为CPU默认读取的特定物理地址,从而以第一启动引导进行启动或以第二启动引导进行启动,进而实现了NAND-Flash双启动引导的启动控制。由于是采用基于NAND-Flash存储器的地址翻译的方法来映射启动引导(Boot)的存储装置,因此可以对NAND-Flash上整个Boot进行升级,不需要额外设置初始引导区,可以避免初始引导区不能被同时升级的问题,提高了系统运行的稳定性与便捷性。
附图说明
图1为本发明基于NAND-Flash双启动引导的启动方法第一实施例的流程示意图;
图2为本发明基于NAND-Flash双启动引导的启动方法第二实施例的流程示意图;
图3为本发明基于NAND-Flash双启动引导的启动方法第三实施例的流程示意图;
图4为本发明基于NAND-Flash双启动引导的启动方法第四实施例的流程示意图;
图5为本发明基于NAND-Flash双启动引导的启动装置第一实施例的功能模块示意图;
图6为本发明基于NAND-Flash双启动引导的启动装置第二实施例的功能模块示意图;
图7为本发明基于NAND-Flash双启动引导的启动装置第三实施例的功能模块示意图;
图8为本发明基于NAND-Flash双启动引导的启动装置第四实施例的功能模块示意图;
图9为本发明基于NAND-Flash双启动引导的启动装置第五实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于NAND-Flash双启动引导的启动方法,参照图1,在第一实施例中,该基于NAND-Flash双启动引导的启动方法包括:
步骤S10,在系统启动时,获取预置的启动标志及启动引导的物理地址表;
本实施例提供的基于NAND-Flash双启动引导的启动方法应用于电子产品的启动控制,具体地该电子产品的系统运行于包括处理器(CPU)、逻辑器件(FPGA或者CPLD)以及NAND-Flash存储器的硬件环境中。上述预置的启动标志及启动引导的物理地址表可储存于所述逻辑器件内部的Flash中或所述逻辑器件外挂的非易失存储器中。上述启动引导(Boot)包括存储于NAND-Flash存储器中的第一启动引导(Boot1)和第二启动引导(Boot2),该第一启动引导储存于NAND-Flash存储器的第一个block(即block0,作为起始地址),第二启动引导储存于NAND-Flash存储器的其他block中。具体地NAND-Flash存储器划分为三个区,其中两个是Boot区,存放互为备用的Boot,另外的分区存放映像文件(大版本文件)及其他信息。上述启动引导的物理地址表为启动引导在所述NAND-Flash存储器中的地址信息,具体该物理地址表可以仅为第二启动引导对应的地址信息,也可以包括第一启动引导对应的地址信息和第二启动引导对应的地址信息。上述启动标志为用于确定以第一启动引导还是以第二启动引导的标识信息。应当说明的是,上述CPU可以通过控制接口访问逻辑器件的内部Flash或外挂非易失存储器中的启动标志和物理地址表,同时向逻辑器件提供NAND-Flash接口。CPU进行访问的接口可以是各种类型的,比如IIC、LOCAL-BUS、SPI等形式的接口,具体接口的类型依赖于CPU。
步骤S11,根据所述启动标志及启动引导的物理地址表,获得所述启动标志对应的目标物理地址;
步骤S12,判断所述目标物理地址是否为CPU默认读取的特定物理地址;若是,则执行步骤S13,若否,则执行步骤S14。
上述CPU默认读取的特定物理地址一般为NAND-Flash存储器的block0,根据启动标志获得本次是以第一启动引导进行启动还是以第二启动引导进行启动,根据该启动标志和启动引导的物理地址表获取确定本次进行启动的启动引导对应的实际物理地址。
步骤S13,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第一启动引导,并根据第一启动引导进行启动;
步骤S14,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译,将翻译后的所述信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第二启动引导,并根据第二启动引导进行启动。
本实施例中,以第一启动引导存储于NAND-Flash存储器中的block0(作为起始地址)内,第二启动引导存储于NAND-Flash存储器中的block1(作为起始地址,实际中可以是合法的区别于block0的任一可用块)内做出详细说明:
当上述启动标志对应为第一启动引导时,则逻辑器件与CPU连接的NAND-Flash接口在接收到CPU输出的信号时,将由逻辑器件对该信号转发至NAND-Flash存储器,从而读取NAND-Flash存储器的block0中的第一启动引导,CPU将根据该第一启动引导进行Boot启动。当上述启动标志对应为第二启动引导时,则逻辑器件与CPU连接的NAND-Flash接口在接收到CPU输出的信号时,将由逻辑器件对该信号进行解析,并根据上述目标物理地址对信号中的地址信号翻译,从而将目标物理地址作为上述地址信号进行翻译转换;然后将转换后的信号发送给NAND-Flash存储器,从而读取到block1中的第二启动引导,CPU将根据该第二启动引导进行Boot启动。在Boot启动完成后,将加载上述映像文件,从而完成系统的正常启动。
本发明通过在系统启动时,获取预置的启动标志及启动引导的物理地址表,以判断所述启动标志对应的目标物理地址是否为CPU默认读取的特定物理地址,从而以第一启动引导进行启动或以第二启动引导进行启动,进而实现了NAND-Flash双启动引导的启动控制。由于是将基于NAND-Flash存储器地址翻译的方法引入启动引导(Boot)的方法,因此可以对NAND-Flash上整个Boot进行升级,不需要额外设置初始引导区,可以避免初始引导区不能被同时升级的问题,提高了系统运行的稳定性与便捷性。
进一步地,参照图2,基于上述实施例,本实施例中,上述步骤S14之后还包括:
步骤S15,接收CPU在获取第二启动引导的第一个block时发送的停止翻译指令;
步骤S16,根据所述停止翻译指令,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以继续读取第二启动引导,根据第二启动引导进行启动。
本实施例中,当以第二启动引导进行启动时,CPU在读取获得第二启动引导的第一个block后,进行Boot启动,在第一个block正常读出并运行后,逻辑器件停止对地址信号翻译,CPU按照正常的顺序对NAND-Flash进行访问,以继续读取后续的该第二启动引导其余部分。
进一步地,参照图3,基于上述实施例,本实施例中,上述步骤S13和步骤S14之后还包括
步骤S17,判断系统启动是否成功;
步骤S18,当系统启动不成功时,修改启动标志,并重新启动系统,以切换启动引导。
本实施例中,在系统启动的过程中可监听启动过程中是否存在故障,当启动存在故障时,切换启动引导,以保证系统能够正常启动。具体地在根据第一启动引导启动后或根据第二启动引导启动均需要判断系统启动是否成功;应当说明的是,判断系统启动是否成功的方式可根据实际需要进设置,本实施例中,为了缩短由于故障导致的等候时间,分别设置了快速与慢速的定时器,当Boot启动后第一定时器定时时间(较短的时间)到达时判断启动是否出现故障,若出现故障,则翻转到另一个Boot启动;若没有出现故障,则当Boot启动后第二定时器定时时间(较长的时间)到达时判断是否出现故障,当出现故障时,翻转到另一个Boot启动。
进一步地,基于上述实施例,本实施例中,上述步骤S17之后还包括:
步骤S19,当系统启动成功,且系统存在更新时,下载映像文件和启动引导;
步骤S20,根据下载的启动引导更新非当前启动所采用启动引导;
步骤S21,当更新成功时,修改所述启动标志及启动引导的物理地址表,以控制系统按照更新后的启动引导进行下次启动;当更新失败时,不修改所述启动标志及启动引导的物理地址表。
本实施例中,在系统启动成功后,检测到系统存在更新时,将下载映像文件和启动引导。下载完成后,将NAND-Flash存储器中的映像文件更新替换为下载的映像文件,同时对当前非启动引导进行更新(即将下载的所述启动引导储存至所述NAND-Flash存储器的其他block中)。如果更新操作成功,逻辑器件接收CPU发送的指令,根据CPU的指令中提供的更新信息修改启动标志和启动引导的物理地址表,以控制系统在下次启动时按照更新后的启动引导进行启动。如果引导更新不成功,则不进行修改启动标志和启动引导的物理地址表。
进一步地,参照图4,基于上述实施例,本实施例中,执行上述步骤S14之前还包括:
步骤S22,判断所述目标物理地址是否为非法启动地址;若是,则执行步骤S13,否则执行步骤S23。
步骤S23,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以使CPU读取预设的非启动相关的存储数据。
本实施例中,上述非法启动地址,为NAND-Flash存储器中不存在的物理地址,或者该地址在NAND-Flash存储器并非存储有启动引导。此时则不翻译信号中地址信号,将信号直接透传。
本发明还提供一种基于NAND-Flash双启动引导的启动装置,参照图5,在第一实施例中,本发明提供的基于NAND-Flash双启动引导的启动装置包括:
获取模块100,用于在系统启动时,获取预置的启动标志及启动引导的物理地址表;
本实施例提供的基于NAND-Flash双启动引导的启动装置应用于电子产品的启动控制,具体地该电子产品的系统运行于包括处理器(CPU)、逻辑器件(FPGA或者CPLD)以及NAND-Flash存储器的硬件环境中。上述预置的启动标志及启动引导的物理地址表可储存于所述逻辑器件内部的Flash中或所述逻辑器件外挂的非易失存储器中。上述启动引导(Boot)包括存储于NAND-Flash存储器中的第一启动引导(Boot1)和第二启动引导(Boot2),该第一启动引导储存于NAND-Flash存储器的第一个block(即block0,作为起始地址),第二启动引导储存于NAND-Flash存储器的其他block中,具体地NAND-Flash存储器划分为三个区,其中两个是Boot区,存放互为备用的Boot,另外的分区存放映像文件(大版本文件)及其他信息。上述启动引导的物理地址表为启动引导在所述NAND-Flash存储器中的地址信息,具体该物理地址表可以仅为第二启动引导对应的地址信息,也可以包括第一启动引导对应的地址信息和第二启动引导对应的地址信息。上述启动标志为用于确定以第一启动引导还是以第二启动引导的标识信息。应当说明的是,上述CPU可以通过控制接口访问逻辑器件的内部Flash或外挂非易失存储器中的启动标志和物理地址表,同时向逻辑器件提供NAND-Flash接口。CPU进行访问的接口可以是各种类型的,比如IIC、LOCAL-BUS、SPI等形式的接口,具体接口的类型依赖于CPU。
第一判断模块110,用于根据所述启动标志及启动引导的物理地址表,获得所述启动标志对应的目标物理地址,并判断所述目标物理地址是否为CPU默认读取的特定物理地址;
上述CPU默认读取的特定物理地址一般为NAND-Flash存储器的block0,根据启动标志获得本次是以第一启动引导进行启动还是以第二启动引导进行启动,根据该启动标志和启动引导的物理地址表获取确定本次进行启动的启动引导对应的实际物理地址。
第一启动控制模块120,用于当所述启动标志对应的目标物理地址为CPU默认读取的特定物理地址时,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第一启动引导,并根据第一启动引导进行启动;
第二启动控制模块130,用于当所述启动标志对应的目标物理地址不为CPU默认读取的特定物理地址时,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译,将翻译后的所述信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第二启动引导,并根据第二启动引导进行启动。
本实施例中,以第一启动引导存储于NAND-Flash存储器中的block0(作为起始地址)内,第二启动引导存储于NAND-Flash存储器中的block1(作为起始地址;实际实现上可以是合法的、可存放Boot的、非block0的块)内做出详细说明:
当上述启动标志对应为第一启动引导时,则逻辑器件与CPU连接的NAND-Flash之间接口的信号将被直接转发至NAND-Flash存储器,从而读取NAND-Flash存储器的block0中的第一启动引导,CPU将根据该第一启动引导进行Boot启动。当上述启动标志对应为第二启动引导时,则逻辑器件与CPU连接的NAND-Flash之间接口的由CPU发出的信号将由逻辑器件采集,并对该信号进行解析,然后根据上述目标物理地址对信号中的地址信号翻译,从而将目标物理地址作为上述地址信号发送给NAND-Flash存储器,从而读取到block1中的第二启动引导。在Boot启动完成后,将加载上述映像文件,从而完成系统的正常启动。
本发明通过在系统启动时,获取预置的启动标志及启动引导的物理地址表,以判断所述启动标志对应的目标物理地址是否为CPU默认读取的特定物理地址,从而以第一启动引导进行启动或以第二启动引导进行启动,进而实现了NAND-Flash双启动引导的启动控制。由于将基于NAND-Flash存储器地址翻译的方法引入启动引导(Boot)的存储装置,因此可以对NAND-Flash上整个Boot进行升级,不需要额外设置初始引导区,可以避免初始引导区不能被同时升级的问题,提高了系统运行的稳定性与便捷性。
进一步地,参照图6,基于上述实施例,本实施例中,上述基于NAND-Flash双启动引导的启动装置还包括:
接收模块140,用于接收CPU在获取第二启动引导的第一个block时发送的停止翻译指令;
所述第二启动控制模块130,还用于根据所述停止翻译指令,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器,以继续读取第二启动引导,根据第二启动引导进行启动。
本实施例中,当以第二启动引导进行启动时,CPU在读取获得第二启动引导的第一个block后,将发送一个停止翻译指令至逻辑器件,逻辑器件的接收模块140在接收到该停止翻译指令后,将会停止对地址信号翻译。具体地CPU从Boot区中读取启动引导代码中的首个block,进行Boot启动,在读出并运行后,逻辑器件停止对地址信号翻译,CPU按照正常的顺序对NAND-Flash进行访问,以继续读取后续的该第二启动引导其余部分。
进一步地,参照图7,基于上述实施例,本实施例中,上述基于NAND-Flash双启动引导的启动装置还包括:
第二判断模块150,用于判断系统启动是否成功;
控制模块160,用于当系统启动不成功时,修改启动标志,并重新启动系统,以切换启动引导。
本实施例中,在系统启动的过程中可监听启动过程中是否存在故障,当启动存在故障时,切换启动引导,以保证系统能够正常启动。具体地在根据第一启动引导启动后或根据第二启动引导启动后均需要判断系统启动是否成功;应当说明的是,判断系统启动是否成功的方式可根据实际需要进设置,本实施例中,为了缩短由于故障导致的等候时间,分别设置了快速与慢速的定时器,当Boot启动后第一定时器定时时间(较短的时间)到达时判断启动是否出现故障,若出现故障,则翻转到另一个Boot启动;若没有出现故障,则当Boot启动后第二定时器定时时间(较长的时间)到达时判断是否出现故障,当出现故障时,翻转到另一个Boot启动。
进一步地,参照图8,基于上述实施例,本实施例中,上述基于NAND-Flash双启动引导的启动装置还包括:
下载模块170,用于当系统启动成功,且系统存在更新时,下载映像文件和启动引导;
处理模块180,用于根据下载的启动引导更新非当前的启动所采用启动引导也就是将下载的所述启动引导储存至所述NAND-Flash存储器的物理地址区域中;
修改模块190,用于当更新成功时修改所述启动标志及启动引导的物理地址表,以控制系统按照更新后的启动引导进行重新启动;当更新失败时,不修改所述启动标志及启动引导的物理地址表。
本实施例中,在系统启动成功后,检测到系统存在更新时,将下载映像文件和启动引导。下载完成后,将NAND-Flash存储器中的映像文件更新替换为下载的映像文件,同时对非当前启动引导进行更新,即将下载的所述启动引导储存至所述NAND-Flash存储器的合法block中。如果更新操作成功,则逻辑器件接收CPU发送的指令,根据CPU的指令提供的更新信息修改启动标志和启动引导的物理地址表,以控制系统在下次启动时按照更新后的启动引导进行启动。即在修改启动标志后,修改后的启动标志对应的物理地址为更新的启动引导储存在NAND-Flash存储器中的物理地址。如果不成功,则不进行修改启动标志和启动引导的物理地址表。
进一步地,参照图9,基于上述实施例,本实施例中,上述基于NAND-Flash双启动引导的启动装置还包括:
第三判断模块200,用于判断所述目标物理地址是否为非法启动地址;
所述第一启动控制模块120,还用于当所述目标地址为非法启动地址时,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以使CPU读取预设的非启动相关的存储数据。
本实施例中,上述非法启动地址,可以是NAND-Flash存储器中不存在的物理地址,或者该地址在NAND-Flash存储器并非存储有启动引导。此时则不翻译信号中地址信号,将信号直接透传。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于NAND-Flash双启动引导的启动方法,其特征在于,所述双系统启动方法包括以下步骤:
在系统启动时,获取预置的启动标志及启动引导的物理地址表;
根据所述启动标志及启动引导的物理地址表,获得所述启动标志对应的目标物理地址,并判断所述目标物理地址是否为CPU默认读取的特定物理地址;
若是,则将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第一启动引导,并根据第一启动引导进行启动;
若否,则将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译,将翻译后的所述信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第二启动引导,并根据第二启动引导进行启动。
2.如权利要求1所述的基于NAND-Flash双启动引导的启动方法,其特征在于,所述将翻译后的所述信号发送至所述NAND-Flash存储器中之后还包括:
接收CPU在获取第二启动引导的第一个block时发送的停止翻译指令;
根据所述停止翻译指令,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以继续读取第二启动引导,根据第二启动引导进行启动。
3.如权利要求1所述的基于NAND-Flash双启动引导的启动方法,其特征在于,在根据第一启动引导启动后或根据第二启动引导启动后还包括:
判断系统启动是否成功;
当系统启动不成功时,修改启动标志,并重新启动系统,以切换启动引导。
4.如权利要求3所述的基于NAND-Flash双启动引导的启动方法,其特征在于,所述判断启动是否成功之后还包括:
当系统启动成功,且系统存在更新时,下载映像文件和启动引导;
根据下载的启动引导更新非当前启动所采用的启动引导;
当更新成功时,修改所述启动标志及启动引导的物理地址表,以控制系统按照更新后的启动引导进行下次启动;当更新失败时,不修改所述启动标志及启动引导的物理地址表。
5.如权利要求1至4任一项所述的基于NAND-Flash双启动引导的启动方法,其特征在于,在所述将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译之前还包括:
判断所述目标物理地址是否为非法启动地址;
当所述目标地址为非法启动地址时,则将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以使CPU读取预设的非启动相关的存储数据。
6.一种基于NAND-Flash双启动引导的启动装置,其特征在于,所述双系统启动装置包括:
获取模块,用于在系统启动时,获取预置的启动标志及启动引导的物理地址表;
第一判断模块,用于根据所述启动标志及启动引导的物理地址表,获得所述启动标志对应的目标物理地址,并判断所述目标物理地址是否为CPU默认读取的特定物理地址;
第一启动控制模块,用于当所述启动标志对应的目标物理地址为CPU默认读取的特定物理地址时,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第一启动引导,并根据第一启动引导进行启动;
第二启动控制模块,用于当所述启动标志对应的目标物理地址不为CPU默认读取的特定物理地址时,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号中地址信号解析后按照所述目标物理地址进行翻译,将翻译后的所述信号发送至所述NAND-Flash存储器中,以读取位于所述目标地址的第二启动引导,并根据第二启动引导进行启动。
7.如权利要求6所述的基于NAND-Flash双启动引导的启动装置,其特征在于,所述基于NAND-Flash双启动引导的启动装置还包括:
接收模块,用于接收CPU在获取第二启动引导的第一个block后发送的停止翻译指令;
所述第二启动控制模块,还用于根据所述停止翻译指令,将所述逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以继续读取第二启动引导,根据第二启动引导进行启动。
8.如权利要求6所述的基于NAND-Flash双启动引导的启动装置,其特征在于,所述基于NAND-Flash双启动引导的启动装置还包括:
第二判断模块,用于判断系统启动是否成功;
控制模块,用于当系统启动不成功时,修改启动标志,并重新启动系统,以切换启动引导。
9.如权利要求8所述的基于NAND-Flash双启动引导的启动装置,其特征在于,所述基于NAND-Flash双启动引导的启动装置还包括:
下载模块,用于当系统启动成功,且系统存在更新时,下载映像文件和启动引导;
处理模块,用于根据下载的启动引导更新非当前启动所采用的启动引导;
修改模块,用于当更新成功时,修改所述启动标志及启动引导的物理地址表,以控制系统按照更新后的启动引导进行下次启动;当更新失败时,不修改所述启动标志及启动引导的物理地址表。
10.如权利要求6至9任一项所述的基于NAND-Flash双启动引导的启动装置,其特征在于,所述基于NAND-Flash双启动引导的启动装置还包括:
第三判断模块,用于判断所述目标物理地址是否为非法启动地址;
所述第一启动控制模块,还用于当所述目标地址为非法启动地址时,将逻辑器件与CPU连接的NAND-Flash接口接收到的信号发送至所述NAND-Flash存储器中,以使CPU读取预设的非启动相关的存储数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410323968.8A CN105320529A (zh) | 2014-07-08 | 2014-07-08 | 基于NAND-Flash双启动引导的启动方法及装置 |
PCT/CN2014/095687 WO2015154538A1 (zh) | 2014-07-08 | 2014-12-30 | 存储器的启动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410323968.8A CN105320529A (zh) | 2014-07-08 | 2014-07-08 | 基于NAND-Flash双启动引导的启动方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105320529A true CN105320529A (zh) | 2016-02-10 |
Family
ID=54287267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410323968.8A Pending CN105320529A (zh) | 2014-07-08 | 2014-07-08 | 基于NAND-Flash双启动引导的启动方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105320529A (zh) |
WO (1) | WO2015154538A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247642A (zh) * | 2017-06-27 | 2017-10-13 | 青岛智动精工电子有限公司 | 用于系统开机时确定可执行映像文件的方法及装置 |
CN107368315A (zh) * | 2017-07-20 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种双硬盘双系统的启动方法及装置 |
CN110377345A (zh) * | 2019-06-27 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 系统启动文件的处理方法及装置 |
CN111338702A (zh) * | 2020-02-27 | 2020-06-26 | 珠海亿智电子科技有限公司 | 一种基于片外nor-flash的SOC系统引导方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459870A (zh) * | 2018-02-07 | 2018-08-28 | 重庆通畅无忧信息技术有限公司 | 一种加气机升级方法及装置 |
CN111538670A (zh) * | 2020-04-29 | 2020-08-14 | 烽火通信科技股份有限公司 | 一种U-Boot调试方法及系统 |
CN116610631B (zh) * | 2023-07-21 | 2023-09-26 | 西安智多晶微电子有限公司 | 支持多片SPI Flash访问的FPGA启动配置方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023908A (zh) * | 2010-12-03 | 2011-04-20 | 中兴通讯股份有限公司 | 一种引导程序备份方法及装置 |
CN102135927A (zh) * | 2011-04-29 | 2011-07-27 | 杭州华三通信技术有限公司 | 一种基于nand flash的系统引导方法和装置 |
US20110320794A1 (en) * | 2010-06-28 | 2011-12-29 | Chung-Jen Yang | Flash System And Method For Updating The Flash System |
US20120239972A1 (en) * | 2011-03-18 | 2012-09-20 | Denso Corporation | System and method for curing a read inability state in a memory device |
CN103116511A (zh) * | 2013-01-29 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于单个flash存储芯片的双启动方法 |
CN103853608A (zh) * | 2012-12-04 | 2014-06-11 | 天津中兴软件有限责任公司 | 一种双Boot切换的实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200428284A (en) * | 2003-06-03 | 2004-12-16 | Hon Hai Prec Ind Co Ltd | System and method for bootstrap with backup boot-code in single flash ROM |
CN100337201C (zh) * | 2005-05-19 | 2007-09-12 | 杭州华三通信技术有限公司 | 系统安全启动的方法及其装置 |
CN101178661B (zh) * | 2007-12-14 | 2010-06-02 | 华为技术有限公司 | Flash集成bootrom的实现方法和装置 |
CN102662749B (zh) * | 2012-03-23 | 2018-02-13 | 天津中兴智联科技有限公司 | 一种双Boot切换的实现方法及装置 |
-
2014
- 2014-07-08 CN CN201410323968.8A patent/CN105320529A/zh active Pending
- 2014-12-30 WO PCT/CN2014/095687 patent/WO2015154538A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320794A1 (en) * | 2010-06-28 | 2011-12-29 | Chung-Jen Yang | Flash System And Method For Updating The Flash System |
CN102023908A (zh) * | 2010-12-03 | 2011-04-20 | 中兴通讯股份有限公司 | 一种引导程序备份方法及装置 |
US20120239972A1 (en) * | 2011-03-18 | 2012-09-20 | Denso Corporation | System and method for curing a read inability state in a memory device |
CN102135927A (zh) * | 2011-04-29 | 2011-07-27 | 杭州华三通信技术有限公司 | 一种基于nand flash的系统引导方法和装置 |
CN103853608A (zh) * | 2012-12-04 | 2014-06-11 | 天津中兴软件有限责任公司 | 一种双Boot切换的实现方法 |
CN103116511A (zh) * | 2013-01-29 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于单个flash存储芯片的双启动方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247642A (zh) * | 2017-06-27 | 2017-10-13 | 青岛智动精工电子有限公司 | 用于系统开机时确定可执行映像文件的方法及装置 |
CN107247642B (zh) * | 2017-06-27 | 2020-12-25 | 青岛智动精工电子有限公司 | 用于系统开机时确定可执行映像文件的方法及装置 |
CN107368315A (zh) * | 2017-07-20 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种双硬盘双系统的启动方法及装置 |
CN110377345A (zh) * | 2019-06-27 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 系统启动文件的处理方法及装置 |
CN110377345B (zh) * | 2019-06-27 | 2022-08-02 | 苏州浪潮智能科技有限公司 | 系统启动文件的处理方法及装置 |
CN111338702A (zh) * | 2020-02-27 | 2020-06-26 | 珠海亿智电子科技有限公司 | 一种基于片外nor-flash的SOC系统引导方法 |
CN111338702B (zh) * | 2020-02-27 | 2022-04-26 | 珠海亿智电子科技有限公司 | 一种基于片外nor-flash的SOC系统引导方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015154538A1 (zh) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105320529A (zh) | 基于NAND-Flash双启动引导的启动方法及装置 | |
CN106095480B (zh) | 一种光模块固件升级的方法及装置 | |
CN106843953B (zh) | 基于iOS系统的应用程序横向切换系统和方法 | |
CN104102518B (zh) | 一种双cpu系统及其程序升级方法 | |
CN106020875B (zh) | 嵌入式终端的固件更新管理方法和装置 | |
CN110597542B (zh) | 软件自动ota升级方法及装置、电子设备 | |
CN103106092A (zh) | 终端设备中系统软件升级方法和装置 | |
CN106874032B (zh) | 光模块固件升级的方法、装置及光模块 | |
CN110045991B (zh) | 服务器的raid配置方法、装置、计算机设备和存储介质 | |
CN109408122B (zh) | 一种设备启动方法、电子设备和计算机存储介质 | |
JP2014238838A (ja) | ファームウェアを更新するための方法、装置、および通信デバイス | |
CN106933593B (zh) | 一种基于移动终端的系统切换方法和装置 | |
CN103761088A (zh) | 一种适用于arm架构移动设备的多操作系统切换方法 | |
CN101826026A (zh) | 嵌入式设备、嵌入式设备中固件在线升级的系统及方法 | |
CN101344854A (zh) | 通过SD卡对嵌入式Linux设备进行升级的方法 | |
CN103365676B (zh) | 通信设备的软件升级方法及装置 | |
CN105739961A (zh) | 一种嵌入式系统的启动方法和装置 | |
CN102609290B (zh) | 电子产品的软件升级方法 | |
CN106648685A (zh) | 智能终端系统应用的处理方法、装置及智能终端 | |
CN103092659A (zh) | 脱离仿真器支持环境的dsp软件升级系统及其升级方法 | |
CN112631625A (zh) | 嵌入式设备的系统升级方法、装置及嵌入式设备 | |
CN115756561A (zh) | 软件升级方法、装置、计算机设备以及存储介质 | |
CN103631591A (zh) | 符合民用飞机不同软件等级要求的软件运行控制系统与方法 | |
CN104580360A (zh) | 通过异构网络更新固件的系统及其方法 | |
CN104035776A (zh) | 一种操作系统的启动方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160210 |
|
RJ01 | Rejection of invention patent application after publication |