一种Boot程序的备份方法和设备的制作方法

文档序号:6438986阅读:308来源:国知局
专利名称:一种Boot程序的备份方法和设备的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种Boot程序的备份方法和设备。
技术背景
现有技术中,设备上的Boot (引导)程序只存储一份在Flash (闪存)芯片中,如图 1所示,为Boot程序的存储示意图,CPU (Central Processing Unit,中央处理器)通过片选信号CSO接入Flash芯片,且Flash芯片上存储有Boot程序和APP (Application,即应用数据)。
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题由于Boot程序只存储一份在Flash芯片中,如果Boot程序发生异常则不能自动恢复, 从而会导致设备不能正常运行,需要通过仿真器或者烧写器来完成Boot程序写入,对设备的维护带来了极大的不便。
具体的,Boot程序虽然可靠性较高,通常不用升级,但如果Boot程序本身存在问题或需要添加新需求,则Boot程序需要升级,且升级过程中经常会出现异常(如升级过程设备掉电或者操作者失误等异常)导致升级失败,使设备不能正常运行,给设备的维护带来了极大的不便,降低了设备的可维护性。发明内容
本发明实施例提供一种Boot程序的备份方法和设备,以保证Boot程序启动的可靠性。
为了达到上述目的,本发明实施例提供一种Boot程序的备份方法,包括 启动主用Boot程序,并判断所述主用Boot程序是否启动成功;如果所述主用Boot程序启动成功,则确定Boot程序启动完成; 如果所述主用Boot程序未启动成功,则启动备用Boot程序,并判断所述备用Boot程序是否启动成功;如果所述备用Boot程序启动成功,则确定Boot程序启动完成。
本发明实施例提供一种Boot程序的备份设备,包括 第一启动模块,用于启动主用Boot程序;第一判断模块,用于判断所述主用Boot程序是否启动成功;第一确定模块,用于当所述主用Boot程序启动成功时,确定Boot程序启动完成;第二启动模块,用于当所述主用Boot程序未启动成功时,启动备用Boot程序;第二判断模块,用于判断所述备用Boot程序是否启动成功;第二确定模块,用于当所述备用Boot程序启动成功时,确定Boot程序启动完成。
与现有技术相比,本发明实施例至少具有以下优点通过主用Boot程序和备用Boot程序的备份机制,实现双Boot程序的备份,能够有效的防止Boot程序损坏导致设备不能启动的问题,保证Boot程序启动的可靠性。


为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中Boot程序的存储示意图;图2是本发明实施例一提供的一种Boot程序的备份方法流程示意图;图3是本发明实施例二中硬件电路设计示意图;图4是本发明实施例二中主/备用Boot程序存储设计示意图;图5是本发明实施例二中Boot程序版本设计示意图;图6是本发明实施例二中片选切换时的逻辑芯片设计示意图;图7是本发明实施例三提供的一种Boot程序的备份设备结构示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一本发明实施例一提供一种Boot程序的备份方法,用在需要利用Boot程序启动的设备上,且需要在设备上进行如下设计将主用Boot程序存储在第一 Flash芯片(即存储介质,后续均以Flash芯片为例)的主用Boot区中,将备用Boot程序存储在第二 Flash芯片的备用Boot区中;且,CPU 片选信号 CSO 通过逻辑芯片(如 CPLD (Complex Programmable Logic Device,复杂可编程逻辑器件)、FPGA (Field Programmable Gate Array,现场可编程门阵列)等)接入第一 Flash芯片,CPU片选信号CSl通过逻辑芯片接入第二 Flash芯片;且,在启动主用Boot程序时,通过逻辑芯片控制CPU片选信号CSO接入第一 Flash芯片, 并在启动备用Boot程序时,通过逻辑芯片实现片选切换功能,控制CPU片选信号CSO接入第二 Flash芯片;且,逻辑芯片提供用于检测Boot程序是否启动成功的逻辑定时器,用于表明Boot程序启动成功的禁止逻辑定时器寄存器,用于实现片选切换功能的Boot程序片选切换寄存器。
基于上述设计,则在设备上电启动后,如图2所示,该Boot程序的备份方法包括以下步骤步骤201,设备启动主用Boot程序。
具体的,设备通过CPU片选信号CSO接入第一 Flash芯片,获得第一 Flash芯片的主用Boot区中所存储的主用Boot程序,以启动主用Boot程序。
步骤202,设备判断主用Boot程序是否启动成功。
如果主用Boot程序启动成功,则执行步骤203 ;如果主用Boot程序未启动成功, 则执行步骤204。6
具体的,在启动主用Boot程序时,设备利用逻辑定时器开始计时;在获知主用Boot程序启动成功时,设备利用禁止逻辑定时器寄存器关闭逻辑定时器, 并确定主用Boot程序启动成功;在指定时间(如3分钟)内如果逻辑定时器未被禁止逻辑定时器寄存器关闭,则设备确定主用Boot程序未启动成功。
步骤203,设备确定Boot程序启动完成。
步骤204,设备启动备用Boot程序。
具体的,设备通过Boot程序片选切换寄存器控制CPU片选信号CSO接入第二 Flash芯片,获得第二 Flash芯片的备用Boot区中所存储的备用Boot程序,以启动备用 Boot程序。
步骤205,设备判断备用Boot程序是否启动成功。
如果备用Boot程序启动成功,则执行步骤203 ;如果备用Boot程序未启动成功, 则执行步骤206。
具体的,在启动备用Boot程序时,设备利用逻辑定时器开始计时;在获知备用Boot程序启动成功时,设备利用禁止逻辑定时器寄存器关闭逻辑定时器, 并确定备用Boot程序启动成功;在指定时间(如3分钟)内如果逻辑定时器未被禁止逻辑定时器寄存器关闭,则设备确定备用Boot程序未启动成功。
步骤206,设备确定Boot程序启动失败,后续维护等处理在此不再赘述。
本发明实施例中,第一 Flash芯片和/或第二 Flash芯片中存储有主用Boot程序版本和备用Boot程序版本;在主用Boot程序启动成功时,设备还需要检测备用Boot区中是否存在备用Boot程序;如果不存在备用Boot程序,则设备利用主用Boot程序在备用Boot区中写入备用Boot 程序;如果存在备用Boot程序,且主用Boot程序版本高于备用Boot程序版本,则设备利用主用Boot程序在备用Boot区中写入备用Boot程序(即更新备用Boot区中的备用Boot程序)。
在备用Boot程序启动成功时,设备还需要检测主用Boot区中是否存在主用Boot 程序;如果不存在主用Boot程序,则设备利用备用Boot程序在主用Boot区中写入主用 Boot程序;如果存在主用Boot程序,且备用Boot程序版本高于主用Boot程序版本,则设备利用备用Boot程序在主用Boot区中写入主用Boot程序(即更新主用Boot区中的主用 Boot程序)。
综上所述,本发明实施例中,通过主用Boot程序和备用Boot程序的备份机制,实现双Boot程序的备份,能够有效的防止Boot程序损坏导致设备不能启动的问题,保证Boot 程序启动的可靠性。
实施例二本发明实施例二提供一种Boot程序的备份方法,用在需要利用Boot程序启动的设备上,为了更加清楚的阐述本发明实施例提供的技术方案,以下结合具体的设计方式(即双 Boot程序备份的设计方式)以及详细的实现流程进行进一步的说明。
(1)硬件电路设计。
如图3所示的硬件电路设计示意图,两片Flash芯片(以FlashO和Flashl为例), 每片Flash芯片接入一个CPU片选信号(以CSO和CSl为例),两个CPU片选信号经过逻辑芯片与Flash芯片相连。在图3中,CPU片选信号CSO经过逻辑芯片与FlashO相连,CPU片选信号CSl经过逻辑芯片与Flashl相连。
(2) Boot程序存储设计。
如图4所示的主/备用Boot程序存储设计示意图,每片Flash芯片中需要存储一个Boot程序,以FlashO中存储主用Boot程序,Flashl中存储备用Boot程序为例;对于 Flash芯片中的APP区,本发明实施例中不再详加说明。
( 3 ) Boot程序版本设计。
如图5所示的Boot程序版本设计示意图,Boot程序版本区可以存储在FlashO和 /或Flashl中,且Boot程序版本区分为主用Boot程序版本区和备用Boot程序版本区,主用Boot程序版本区用于存储主用Boot程序版本,备用Boot程序版本区用于存储备用Boot 程序版本。
(4)逻辑芯片设计。
1、Flash芯片的片选信号设计。
在设备上电启动时,默认CPU片选信号CSO接入FlashO,CPU片选信号CSl接入 Flashl,如图3所示。
当主用Boot程序故障时,由逻辑芯片实现片选切换功能,使得CPU片选信号CSO 接入Flashl,CPU片选信号CSl接入FlashO,如图6所示,为片选切换时的逻辑芯片设计示意图。
2、逻辑芯片中逻辑设计。
提供获取主/备用Boot程序启动寄存器Regl,用于获取当前Boot程序是由主用 Boot程序启动还是由备用Boot程序启动。
提供3分钟(该时间可根据实际情况进行选择)逻辑定时器Timer,用于检测Boot 程序是否正常启动。
提供禁止逻辑定时器寄存器Reg2,在主/备用Boot程序启动后,关闭逻辑定时器 Timer,以表明Boot程序成功启动。
提供Boot程序片选切换寄存器Reg3,如果备用Boot程序需要启动,则需要切换片选,该切换片选为Flashl和Flash2芯片上的片选信号互换。具体的,当主用Boot程序没有正常启动时,则逻辑定时器Timer不会被禁止,在计时到达3分钟后,则逻辑芯片实现片选切换功能,对设备进行复位,且设备将从备用Boot程序启动。
基于上述分析,逻辑芯片中逻辑设计的情况可以如表1所示。
表1逻辑实现功能列表
权利要求
1.一种Boot程序的备份方法,其特征在于,包括启动主用Boot程序,并判断所述主用Boot程序是否启动成功; 如果所述主用Boot程序启动成功,则确定Boot程序启动完成; 如果所述主用Boot程序未启动成功,则启动备用Boot程序,并判断所述备用Boot程序是否启动成功;如果所述备用Boot程序启动成功,则确定Boot程序启动完成。
2.如权利要求1所述的方法,其特征在于,所述主用Boot程序存储在第一 Flash芯片的主用Boot区中,所述备用Boot程序存储在第二 Flash芯片的备用Boot区中;且,CPU片选信号CSO通过逻辑芯片接入所述第一 Flash芯片,CPU片选信号CSl通过所述逻辑芯片接入所述第二 Flash芯片;且,在启动所述主用Boot程序时,通过所述逻辑芯片控制所述CPU片选信号CSO接入所述第一 Flash芯片,并在启动所述备用Boot程序时,通过所述逻辑芯片实现片选切换功能,控制所述CPU片选信号CSO接入所述第二 Flash芯片;且,所述逻辑芯片提供用于检测Boot程序是否启动成功的逻辑定时器,用于表明Boot程序启动成功的禁止逻辑定时器寄存器,用于实现片选切换功能的Boot程序片选切换寄存ο
3.如权利要求2所述的方法,其特征在于,启动主用Boot程序包括通过所述CPU片选信号CSO接入所述第一 Flash芯片,获得所述第一 Flash芯片的主用Boot区中所存储的主用Boot程序,以启动所述主用Boot程序。
4.如权利要求2所述的方法,其特征在于,判断所述主用Boot程序是否启动成功包括在启动所述主用Boot程序时,利用所述逻辑定时器开始计时; 在获知所述主用Boot程序启动成功时,利用所述禁止逻辑定时器寄存器关闭所述逻辑定时器,并确定所述主用Boot程序启动成功;在指定时间内如果所述逻辑定时器未被所述禁止逻辑定时器寄存器关闭,则确定所述主用Boot程序未启动成功。
5.如权利要求2所述的方法,其特征在于,启动备用Boot程序包括通过所述Boot程序片选切换寄存器控制所述CPU片选信号CSO接入所述第二 Flash 芯片,获得所述第二 Flash芯片的备用Boot区中所存储的备用Boot程序,以启动所述备用 Boot程序。
6.如权利要求2所述的方法,其特征在于,判断所述备用Boot程序是否启动成功包括在启动所述备用Boot程序时,利用所述逻辑定时器开始计时; 在获知所述备用Boot程序启动成功时,利用所述禁止逻辑定时器寄存器关闭所述逻辑定时器,并确定所述备用Boot程序启动成功;在指定时间内如果所述逻辑定时器未被所述禁止逻辑定时器寄存器关闭,则确定所述备用Boot程序未启动成功。
7.如权利要求2所述的方法,其特征在于,第一Flash芯片和/或第二 Flash芯片中存储有主用Boot程序版本和备用Boot程序版本;在所述主用Boot程序启动成功时,所述方法还包括检测所述备用Boot区中是否存在备用Boot程序;如果不存在备用Boot程序,则利用所述主用Boot程序在所述备用Boot区中写入备用 Boot程序;如果存在备用Boot程序,且主用Boot程序版本高于备用Boot程序版本,则利用所述主用Boot程序在所述备用Boot区中写入备用Boot程序。
8.如权利要求2所述的方法,其特征在于,第一Flash芯片和/或第二 Flash芯片中存储有主用Boot程序版本和备用Boot程序版本;在所述备用Boot程序启动成功时,所述方法还包括检测所述主用Boot区中是否存在主用Boot程序;如果不存在主用Boot程序,则利用所述备用Boot程序在所述主用Boot区中写入主用 Boot程序;如果存在主用Boot程序,且备用Boot程序版本高于主用Boot程序版本,则利用所述备用Boot程序在所述主用Boot区中写入主用Boot程序。
9.一种Boot程序的备份设备,其特征在于,包括 第一启动模块,用于启动主用Boot程序;第一判断模块,用于判断所述主用Boot程序是否启动成功;第一确定模块,用于当所述主用Boot程序启动成功时,确定Boot程序启动完成;第二启动模块,用于当所述主用Boot程序未启动成功时,启动备用Boot程序;第二判断模块,用于判断所述备用Boot程序是否启动成功;第二确定模块,用于当所述备用Boot程序启动成功时,确定Boot程序启动完成。
10.如权利要求9所述的设备,其特征在于,所述主用Boot程序存储在第一 Flash芯片的主用Boot区中,所述备用Boot程序存储在第二 Flash芯片的备用Boot区中;且,CPU片选信号CSO通过逻辑芯片接入所述第一 Flash芯片,CPU片选信号CSl通过所述逻辑芯片接入所述第二 Flash芯片;且,在启动所述主用Boot程序时,通过所述逻辑芯片控制所述CPU片选信号CSO接入所述第一 Flash芯片,并在启动所述备用Boot程序时,通过所述逻辑芯片实现片选切换功能,控制所述CPU片选信号CSO接入所述第二 Flash芯片;且,所述逻辑芯片提供用于检测Boot程序是否启动成功的逻辑定时器,用于表明Boot程序启动成功的禁止逻辑定时器寄存器,用于实现片选切换功能的Boot程序片选切换寄存ο
11.如权利要求10所述的设备,其特征在于,所述第一启动模块,具体用于通过所述CPU片选信号CSO接入所述第一 Flash芯片,获得所述第一 Flash芯片的主用Boot区中所存储的主用Boot程序,以启动所述主用Boot程序。
12.如权利要求10所述的设备,其特征在于,所述第一判断模块,具体用于在启动所述主用Boot程序时,利用所述逻辑定时器开始计时;在获知所述主用Boot程序启动成功时,利用所述禁止逻辑定时器寄存器关闭所述逻辑定时器,并确定所述主用Boot程序启动成功;在指定时间内如果所述逻辑定时器未被所述禁止逻辑定时器寄存器关闭,则确定所述主用Boot程序未启动成功。
13.如权利要求10所述的设备,其特征在于,所述第二启动模块,具体用于通过所述Boot程序片选切换寄存器控制所述CPU片选信号CSO接入所述第二 Flash芯片,获得所述第二 Flash芯片的备用Boot区中所存储的备用 Boot程序,以启动所述备用Boot程序。
14.如权利要求10所述的设备,其特征在于,所述第二判断模块,具体用于在启动所述备用Boot程序时,利用所述逻辑定时器开始计时;在获知所述备用Boot程序启动成功时,利用所述禁止逻辑定时器寄存器关闭所述逻辑定时器,并确定所述备用Boot程序启动成功;在指定时间内如果所述逻辑定时器未被所述禁止逻辑定时器寄存器关闭,则确定所述备用Boot程序未启动成功。
15.如权利要求10所述的设备,其特征在于,第一Flash芯片和/或第二 Flash芯片中存储有主用Boot程序版本和备用Boot程序版本;所述第一确定模块,还用于在所述主用Boot程序启动成功时,检测所述备用Boot区中是否存在备用Boot程序;如果不存在备用Boot程序,则利用所述主用Boot程序在所述备用Boot区中写入备用 Boot程序;如果存在备用Boot程序,且主用Boot程序版本高于备用Boot程序版本,则利用所述主用Boot程序在所述备用Boot区中写入备用Boot程序。
16.如权利要求10所述的设备,其特征在于,第一Flash芯片和/或第二 Flash芯片中存储有主用Boot程序版本和备用Boot程序版本;所述第二确定模块,还用于在所述备用Boot程序启动成功时,检测所述主用Boot区中是否存在主用Boot程序;如果不存在主用Boot程序,则利用所述备用Boot程序在所述主用Boot区中写入主用 Boot程序;如果存在主用Boot程序,且备用Boot程序版本高于主用Boot程序版本,则利用所述备用Boot程序在所述主用Boot区中写入主用Boot程序。
全文摘要
本发明公开了一种Boot程序的备份方法和设备,该方法包括启动主用Boot程序,并判断所述主用Boot程序是否启动成功;如果所述主用Boot程序启动成功,则确定Boot程序启动完成;如果所述主用Boot程序未启动成功,则启动备用Boot程序,并判断所述备用Boot程序是否启动成功;如果所述备用Boot程序启动成功,则确定Boot程序启动完成。本发明实施例中,通过主用Boot程序和备用Boot程序的备份机制,实现双Boot程序的备份,能够有效防止Boot程序损坏导致设备不能启动的问题,保证Boot程序启动的可靠性。
文档编号G06F11/14GK102520979SQ20111037361
公开日2012年6月27日 申请日期2011年11月22日 优先权日2011年11月22日
发明者李普军 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1