CN102073517A - 一种嵌入式系统的升级、备份方法和装置 - Google Patents
一种嵌入式系统的升级、备份方法和装置 Download PDFInfo
- Publication number
- CN102073517A CN102073517A CN2009102382368A CN200910238236A CN102073517A CN 102073517 A CN102073517 A CN 102073517A CN 2009102382368 A CN2009102382368 A CN 2009102382368A CN 200910238236 A CN200910238236 A CN 200910238236A CN 102073517 A CN102073517 A CN 102073517A
- Authority
- CN
- China
- Prior art keywords
- boot
- cpu
- upgrading
- cpld
- guiding
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种嵌入式系统的升级、备份方法和装置,包括:在板级支持包(BSP)调试阶段,由插座式闪存(FLASH)芯片中的BOOT引导程序引导中央处理单元(CPU)启动,并通过CPU对可编程逻辑器件(CPLD)进行在线升级;在初始使用阶段,对贴片式FLASH芯片中的主BOOT引导程序进行升级,并由升级后的主BOOT引导程序引导CPU启动,并在CPU启动成功时,CPU加载应用程序版本;在CPU启动失败时,由备BOOT引导程序引导CPU启动,并在CPU启动成功时,CPU加载应用程序版本。通过本发明可以实现嵌入式系统可靠、简单方便且成本低廉的升级。
Description
技术领域
本发明涉及嵌入式系统的升级技术,特别是指一种嵌入式系统的升级、备份方法和装置。
背景技术
目前,在电信、通讯领域的嵌入式系统的升级应用中,采用插座式闪存(FLASH)芯片作为引导只读存储器(BOOTROM),引导中央处理单元(CPU,Central Processing Unit)加载应用程序版本的方法被广泛地应用。该方法虽然能够方便地进行BOOT引导程序的烧结,但每烧结一次BOOTROM,就需拔插一次FLASH芯片。在系统软件调试过程中或者在系统升级维护的情况下,会经常需要更新BOOT引导程序,这样,就需要多次烧结BOOTROM,而插座式FLASH芯片经多次插拔后,芯片管脚容易造成损坏,由此导致系统无法正常启动。
采用嵌入式系统在线升级的方法可以避免上述问题的出现,而且还可以实现BOOTROM的远程在线升级,但在升级过程中经常会由于以下原因导致升级失败:
在线升级过程中发生意外的外界因素、如断电、设备复位、死机等;
烧结了错误的BOOT引导程序。
BOOTROM在线升级失败后,系统无法正常启动,由于现场无法回退或者恢复,进而导致客户业务中断,这样维护人员不得不去现场重新进行BOOTROM的升级,即插拔FLASH芯片,造成了额外的成本损耗。
另外,可编程逻辑器件(CPLD,Complex Programmable Logic Device)也是嵌入式系统设计中常用的器件。一般情况下,CPLD都是在生产时直接烧结以后就不再更改,但是由于功能更新或者设计失误等原因,也使CPLD需要进行更新。这种情况下,如果系统不能实现CPLD的在线更新功能,则只能通过联合测试行为组织(JTAG,Joint Test Action Group)烧结电缆进行现场升级工作,这无疑会增加产品的升级成本,给产品的维护工作带来了极大不便。
因此,如何提供一种实现嵌入式系统可靠、简单方便且成本低廉的升级方法,成为业界急需解决的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种嵌入式系统的升级、备份方法和装置,能够实现嵌入式系统可靠、简单方便且成本低廉的升级。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种嵌入式系统的升级、备份方法,该方法包括:
在板级支持包(BSP)调试阶段,由插座式FLASH芯片中的BOOT引导程序引导中央处理单元(CPU)启动,并通过CPU对可编程逻辑器件(CPLD)进行在线升级;
在初始使用阶段,对贴片式FLASH芯片中的主BOOT引导程序进行升级,并由升级后的所述主BOOT引导程序引导CPU启动,并在CPU启动成功时,CPU加载应用程序版本;在CPU启动失败时,由备BOOT引导程序引导CPU启动,并在CPU启动成功时,CPU加载应用程序版本。
在BSP调试阶段,该方法进一步包括:通过控制电路选择由插座式FLASH芯片中的BOOT引导程序引导CPU启动,进行所述BSP调试。
所述CPLD在线升级完成后,该方法进一步包括:重新启动嵌入式系统,通过所述CPLD将所述贴片式FLASH芯片划分为主BOOT区、程序区和备BOOT区。
在进行BSP调试时,该方法还包括:所述插座式FLASH芯片将自身的BOOT引导程序烧结到所述贴片式FLASH芯片的主BOOT区和备BOOT区,得到所述主BOOT引导程序和备BOOT引导程序。
在初始使用阶段,通过所述CPLD确定由主BOOT引导程序引导CPU启动;
所述由升级后的主BOOT引导程序引导CPU启动时,该方法进一步包括:CPLD根据自身寄存器的标志位的值判断所述引导CPU启动是否成功。
CPLD判定所述引导CPU启动成功时,该方法进一步包括:
所述CPU读取所述升级后的主BOOT引导程序和备BOOT引导程序,并进行校验和比较,并在所述升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据所述升级后的主BOOT引导程序对所述备BOOT引导程序进行同步,并在同步成功时,所述CPU读取程序区中的应用程序版本并加载。
CPLD判定所述引导CPU启动失败时,该方法进一步包括:所述CPLD选择由备BOOT引导程序引导CPU启动,并在启动成功时,由所述CPU修改所述寄存器的标志位的值。
依据所述寄存器的标志位的值所述备BOOT引导程序引导CPU启动成功时,该方法进一步包括:
所述CPU读取所述升级后的主BOOT引导程序和备BOOT引导程序,并进行校验和比较,并在所述升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据所述备BOOT引导程序对所述升级后的主BOOT引导程序进行回退,并在回退成功后,所述CPU读取程序区中的应用程序版本并加载。
在初始使用阶段所述CPU启动成功后,该方法进一步包括:通过CPU对CPLD进行在线升级。
所述BSP调试阶段和所述初始使用阶段中,通过CPU对CPLD进行在线升级,具体为:
利用远端网管设备通过业务通道或者管理通道和本地设备建立通讯连接;
通过加载控制单元把远端服务器文件下载到本地设备的文件系统中;
通过CPU的通用可编程输入/输出(I/O)口模拟联合测试行为组织(JTAG)下载接口,并通过所述JTAG下载接口对所述CPLD进行升级文件的在线升级;
加载CPLD版本到随机存储器(RAM)中,并重新启动嵌入式系统,完成CPLD的在线升级。
本发明还提供了一种嵌入式系统的升级、备份装置,该装置包括:插座式FLASH芯片、贴片式FLASH芯片、CPU和CPLD,其中:
所述插座式FLASH芯片,用于在BSP调试阶段,通过自身的BOOT引导程序引导CPU启动;
所述贴片式FLASH芯片,用于在初始使用阶段,通过自身升级后的主BOOT引导程序引导CPU启动;还用于,在CPU启动失败时,通过备BOOT引导程序引导CPU启动;
所述CPU,用于在BSP调试阶段自身启动后,对所述CPLD进行在线升级;还用于在所述升级后的主BOOT引导程序引导自身启动成功时、或者备BOOT引导程序引导自身启动成功时,加载应用程序版本;
所述CPLD,用于在BSP调试阶段,CPU启动成功后进行在线升级。
该装置进一步包括:控制电路,用于在BSP调试阶段选择由所述插座式FLASH芯片的BOOT引导程序引导CPU启动。
所述CPLD,在自身的在线升级完成后,进一步用于将所述贴片式FLASH 芯片划分为主BOOT区、程序区和备BOOT区;在初始使用阶段,还用于确定由主BOOT引导程序引导CPU启动;并在所述升级后的主BOOT引导程序引导CPU启动时,用于判断所述引导CPU启动是否成功;
相应的,所述升级后的主BOOT引导程序引导CPU启动成功时,所述CPU进一步用于,确定所述升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据所述升级后的主BOOT引导程序对所述备BOOT引导程序进行同步,并在同步成功时,读取程序区中的应用程序版本并加载;
相应的,所述升级后的主BOOT引导程序引导CPU启动失败时,所述CPLD进一步用于,选择由备BOOT引导程序引导CPU启动。
所述备BOOT引导程序引导CPU启动成功时,所述CPU进一步用于,确定所述升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据所述备BOOT引导程序对所述升级后的主BOOT引导程序进行回退,并在回退成功后,读取程序区中的应用程序版本并加载。
在初始使用阶段所述CPU启动成功后,所述CPU进一步用于,对所述CPLD进行在线升级。
本发明的升级、备份方案,在BSP调试阶段,使用插座式FLASH芯片作为BOOTROM引导CPU启动;在初始使用阶段,默认使用贴片式FLASH芯片的主BOOT引导程序引导CPU启动,当启动失败时,由CPLD控制使用贴片式FLASH芯片的备BOOT引导程序引导CPU启动,如此,在主BOOT引导程序升级成功时,可以对备BOOT引导程序同步升级;在主BOOT引导程序升级失败时,可以依据备BOOT引导程序对主BOOT引导程序进行回退;如此可以实现可靠的BOOT引导程序的远程升级,提高了设备的可维护性。同时,程序存储区与主备BOOT区都存储在贴片式FLASH芯片的一体化的结构也节约了存储器资源,降低了产品的成本和体积。
另外,本发明中CPLD独立于CPU最小系统,如此在初始使用阶段CPU的启动可以不依赖于CPLD;并且,CPU启动后可模拟JTAG下载接口对CPLD进行在线升级,节约了产品的维护成本,给产品的升级维护带来了方便。
附图说明
图1为本发明嵌入式系统的升级、备份方法流程示意图;
图2为BSP调试阶段嵌入式系统的升级、备份方法流程示意图;
图3为引导BOOTROM选择示意图;
图4为本发明嵌入式系统的硬件结构示意图;
图5为初始使用阶段嵌入式系统的升级、备份方法流程示意图;
图6为本发明嵌入式系统的升级、备份装置的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明的嵌入式系统中采用两片FLASH芯片作为BOOTROM。其中,两片FLASH芯片分别为:一个小容量的插座式FLASH芯片、和一个大容量的贴片式FLASH芯片。将贴片式FLASH芯片划分为三个分区:主BOOT区(MBOOT)、程序区(APPVER)、和备BOOT区(SLBOOT)。
基于上述的嵌入式系统,本发明嵌入式系统的升级、备份方法流程如图1所示,包括:
步骤101,在BSP调试阶段,由插座式FLASH芯片中的BOOT引导程序引导CPU启动,并通过CPU对CPLD进行在线升级。
步骤102,在初始使用阶段,对贴片式FLASH芯片中的主BOOT引导程序进行升级,并由升级后的主BOOT引导程序引导CPU启动;在CPU启动成功时,CPU加载应用程序版本。
步骤103,在CPU启动失败时,由备BOOT引导程序引导CPU启动,并在CPU启动成功时,CPU加载应用程序版本。
本发明嵌入式系统的升级、备份方案主要应用于嵌入式系统正常使用前的准备阶段,该阶段的应用场景有两种:
第一种,在前期的板级支持包(BSP,Board Support Package)调试阶段和后期的初始使用阶段,嵌入式系统中都包含插座式FLASH芯片和贴片式FLASH芯片;
第二种,在前期的BSP调试阶段,嵌入式系统中包含插座式FLASH芯片和贴片式FLASH芯片;在后期的初始使用阶段,嵌入式系统中只包含贴片式FLASH芯片。
下面通过具体的实施例来说明本发明的嵌入式系统的升级、备份方法,其中,BSP调试阶段流程如图2所示,包括以下步骤:
步骤201,通过控制电路选择由插座式FLASH芯片引导CPU启动。
相较于贴片式FLASH芯片,插座式FLASH芯片烧结方便。预先在插座式FLASH芯片中烧结BOOT引导程序,在进行BSP调试时,通过一个控制电路来选择通过插座式FLASH芯片的BOOT引导程序来引导CPU启动,进行BSP测试,其中控制电路可以通过一个跳线器来实现。
如图3所示为引导BOOTROM选择示意图,当系统确定由插座式FLASH芯片系统引导CPU启动时,通过控制电路选择插座式FLASH芯片作为片选信号CS0的映像空间;选择贴片式FLASH芯片作为片选信号CS1的映像空间。如果系统需要由贴片式FLASH芯片引导CPU启动时,则可以通过控制电路选择贴片式FLASH芯片作为片选信号CS0的映像空间。
该步骤中CPU的启动可以称为CPU最小系统的启动。
步骤202,通过CPU的通用可编程输入/输出(I/O)口模拟JTAG下载接口,对CPLD进行在线升级。
CPU最小系统启动后,对CPLD进行在线升级,具体实现如下:
1、利用远端网管设备通过业务通道或者管理通道和本地设备建立通讯连接。其中,本地设备指本发明的嵌入式系统所在的设备。
2、通过加载控制单元把远端服务器文件下载到本地设备的文件系统中。
基于上述通讯连接,本地设备上的加载控制单元将远端服务器上CPLD的升级文件下载到本地设备的文件系统中。所述的加载控制单元和文件系统独立于本发明的嵌入式系统。
3、通过CPU的I/O口模拟JTAG下载接口,对CPLD进行升级文件的在线升级。
4、加载CPLD版本到随机存储器(RAM,Random Access Memory)中,并重新初始化配置系统、即重新启动该嵌入式系统,可以通过远程控制命令来重新启动系统。
步骤203,插座式FLASH芯片将BOOT引导程序烧结到贴片式FLASH芯片。
在进行BSP调试时,插座式FLASH芯片自动检测贴片式FLASH芯片,并将自身的BOOT引导程序烧结到贴片式FLASH芯片的MBOOT区和SLBOOT区。如此MBOOT区的BOOT引导程序即为主BOOT引导程序、SLBOOT区的BOOT引导程序即为备BOOT引导程序。在进行主、备BOOT引导程序的烧结之前,可以通过CPLD对贴片式FLASH芯片进行分区、即主MBOOT、APPVER、SLBOOT,具体在硬件上的实现将通过图4进行说明。
从该流程可以看出,CPU最小系统的启动不依赖于CPLD,即在CPLD为空白时(没有进行在线升级,加载CPLD版本),CPU的最小系统也可以通过插座式FLASH芯片的BOOT引导程序启动,该功能在硬件的实现将通过图4进行说明。
在后续初始使用阶段,需要通过贴片式FLASH芯片中的BOOT引导程序引导CPU启动,此时CPU的启动依赖于CPLD。因此,在BSP调试阶段需要对CPLD进行在线升级,并加载CPLD版本,使CPLD不为空。
下面具体说明一下在初始使用阶段本发明方法的具体实现:如果包含插座式FLASH芯片,则系统通过控制电路选择由贴片式FLASH芯片引导CPU启动;如果不包含插座式FLASH芯片,则默认由贴片式FLASH芯片引导CPU启动。其中,贴片式FLASH芯片的MBOOT区和SLBOOT区用于储存同一个BOOT引导程序;APPVER区用于存储系统运行的应用程序版本。这种应用程序版本和BOOT引导程序都存储在贴片式FLASH芯片的一体化结构即节约了系统的成本。
如图4所示为本发明嵌入式系统的硬件结构示意图,其中,贴片式FLASH芯片的最高三位地址线Ah、Ah-1、Ah-2引入CPLD、CPU上对应Ah、Ah_1、Ah_2的三位地址线C_Ah、C_Ah-1、C_Ah-2也引入CPLD。其中,Ah、Ah_1、Ah_2且默认下拉,如此,在BSP调试阶段可以确保CPLD为空时,CPU的最小系统也可以从插座式FLASH芯片启动、即在BSP调试阶段CPU最小系统独立于CPLD,不依赖CPLD也能够启动。
本发明中,在初始使用阶段默认CPU从MBOOT区启动,具体的,可以根据需要对Ah、Ah_1、Ah_2接入CPLD的管脚的初始值进行设置、如为000时,表明从MBOOT区启动。另外,CPLD通过Ah、Ah_1、Ah_2还可以对贴片式FLASH芯片进行分区,如通常情况下BOOT空间不超过512K,则可以选择贴片式FLASH芯片最低位的512K空间作为MBOOT区,最高位的512K空间作为SLBOOT区,中间的空间作为APPVER区。如果需要使用更大的空间来作为APPVER区,则可以增加CPLD控制贴片式FLASH芯片所使用的高位地址线,这样可以通过CPLD使用全部的FLASH芯片空间,避免资源的浪费和空间地址不连续的问题,同时也不会给CPLD增加过多的负担。
基于图4,初始使用阶段中本发明的更新、备份方法流程如图5所示,包括以下步骤:
步骤501,升级MBOOT区的BOOT引导程序,得到最新的BOOT引导程序,并引导CPU启动。
本发明中,嵌入式系统默认使用MBOOT区的BOOT引导程序引导CPU启动,此时CPLD上对应贴片式FLASH芯片最高三位地址线的管脚值为预设的初始值、如000;当需要进行BOOT引导程序的更新、升级时,只对MBOOT区的BOOT引导程序进行升级,具体的可以采用现有技术中通过网管系统进行远程在线升级的方法,此处不再赘述。
需要指出的是,在BSP调试阶段CPU是依据插座式FLASH芯片的BOOT引导程序启动的,因此CPU的硬件配置字与插座式FLASH芯片的数据位宽是对应的。但是,插座式FLASH芯片和贴片式FLASH芯片的数据位宽可能不同,如插座式FLASH的数据位宽一般是8位,而贴片式FLASH的数据位宽一般是16或8位,因此,当插座式FLASH芯片和贴片式FLASH芯片的数据位宽不同时,系统需要先通过控制电路依据当前贴片式FLASH芯片的数据位宽设置CPU的硬件配置字,然后系统才能读取MBOOT区的BOOT引导程序引导CPU启动;如果相同,则不需要设置配置字,直接读取MBOOT区的BOOT引导程序引导CPU启动。
当对MBOOT区的BOOT引导程序在线升级完成后,该嵌入式系统重启(可以通过远程控制命令来重新启动系统),并使用MBOOT区最新的BOOT引导程序引导CPU启动。
步骤502,CPLD判断引导CPU启动是否成功,如果是,执行步骤503;如果否,执行步骤507。
如果MBOOT区的最新BOOT引导程序引导CPU启动成功,则CPU启动后修改CPLD寄存器的标志位、如根据需要将该标志位设置为1;相应的,如果引导CPU启动未成功,此时CPLD寄存器的标志位可以为默认值、如0。因此,CPLD根据自身寄存器的标志位值就可判定引导CPU启动是否成功。
较佳地,此处可以预设一个定时器,因为CPU启动需要一段时间,因此,可以在该定时器到时时,CPLD开始读取自身的寄存器标志位,进行引导CPU启动是否成功的判断。
如果引导CPU启动成功,说明此次MBOOT区的BOOT引导程序升级成功,执行步503;否则,说明升级失败,执行步骤507。
步骤503,判断MBOOT区和SLBOOT区的BOOT引导程序是否一致,如果否,执行步骤504;如果是,执行步骤512。
CPU依据MBOOT区最新的BOOT引导程序成功启动后,分别读取MBOOT区和SLBOOT区的BOOT引导程序,进行校验和比较,如果两者不一致,则执行步骤504;如果两者一致,则执行步骤512。
步骤504,同步SLBOOT区的BOOT引导程序。
CPU依据MBOOT区最新的BOOT引导程序对SLBOOT区的BOOT引导程序进行同步、即对SLBOOT区的BOOT引导程序进行升级。
步骤505,判断同步是否成功,如果否,执行步骤506;如果是,执行步骤512。
对SLBOOT区的BOOT引导程序升级完成后,CPU再对MBOOT区和SLBOOT区的BOOT引导程序进行校验和比较,如果一致,说明升级成功,输出升级成功信息、如通过外接打印机打印Write SlBoot OK;如果不一致,说明升级失败。
步骤506,输出同步失败信息。
当SLBOOT区的BOOT引导程序升级失败后,输出同步失败信息、如通过外接打印机打印烧录失败(Write SlBoot twice failed),然后,执行步骤512。
步骤507,通过SLBOOT区的BOOT引导程序引导CPU启动。
CPLD根据自身寄存器的标志位确定CPU从MBOOT区启动失败后,修改自身对应贴片式FLASH芯片最高三位地址线的管脚值、如111,系统依据修改后的管脚值,使CPU从SLBOOT区启动。由于SLBOOT中为原始烧结的BOOT引导程序,且没有经过升级,因此CPU根据该BOOT引导程序能够启动成功,启动成功后,CPU对CPLD中寄存器的标志位的值进行修改、如置为1;如果启动失败,则说明该贴片式FLASH芯片可能损坏。
步骤508,判断MBOOT区和SLBOOT区的BOOT引导程序是否一致,如果否,执行步骤509;如果是,执行步骤512。
该步骤的实现同步骤503,此处不再赘述。
步骤509,回退MBOOT区的BOOT引导程序。
因为MBOOT区的BOOT引导程序升级失败,因此,此时若MBOOT区和SLBOOT区的BOOT引导程序是不一致,则需要依据SLBOOT区的BOOT引导程序对MBOOT区的BOOT引导程序进行回退,使其恢复到升级之前的状态。
步骤510,判断回退是否成功,如果否,执行步骤511;如果是,执行步骤512。
对MBOOT区的BOOT引导程序回退完成后,CPU再对MBOOT区和SLBOOT区的BOOT引导程序进行校验和比较,如果一致,说明回退成功,输出回退成功信息、如通过外接打印机打印Write MBoot OK,然后执行步骤512;如果不一致,说明回退失败。
步骤511,输出回退失败信息。
当MBOOT区的BOOT引导程序回退失败后,输出回退失败信息、如通过外接打印机打印烧录失败(Write MBoot twice failed),然后,执行步骤512。
步骤512,CPU加载应用程序版本。
当CPU从MBOOT区、或者从SLBOOT区启动成功后,CPLD将图4中贴片式FLASH芯片的最高三位地址线Ah、Ah_1、Ah_2,与CPU上对应的三位地址线C_Ah、C_Ah-1、C_Ah-2连通,使CPU读取并加载贴片式FLASH芯片中APPVER区存储的系统运行的应用程序版本。
图5的流程主要是针对嵌入式系统中BOOTROM、即BOOT引导程序的升级,其中,贴片式FLAH芯片中MBOOT区和SLBOOT区的BOOT引导程序互为主备,当MBOOT区的BOOT引导程序升级失败时,可以从备用的SLBOOT区的BOOT引导程序启动CPU,并恢复升级失败的MBOOT区的BOOT引导程序,因此,提高了BOOTROM远程升级的可靠性,同时也提高了嵌入式系统的可维护性。
在初始使用阶段以及后续的正常使用阶段中,CPU启动后,也可以进行CPLD的在线升级。在升级CPLD的过程中,也需要保证嵌入式系统运行正常,为此,本发明提供一种CPLD在线升级的方法,该方法同步骤202中对CPLD在线升级的方法,此处不再赘述。
另外,基于本发明的方法,当嵌入式系统进入正常使用状态时,根据实际需要,CPU可以依赖CPLD选择从MBOOT区、或者SLBOOT区启动,具体的,由CPLD根据实际情况确定由MBOOT区的BOOT引导程序引导CPU启动时,将自身对应贴片式芯片最高三位地址线的管脚值进行设置、如000;当确定由SLBOOT区的BOOT引导程序引导CPU启动时,对上述管脚值进行设置、如111。
为了实现上述升级、备份方法,本发明提供了一种嵌入式系统的升级、备份装置,如图6所示,该装置包括:插座式FLASH芯片10、贴片式FLASH芯片20、CPU 30和CPLD 40,其中:
插座式FLASH芯片10,用于在BSP调试阶段,通过自身的BOOT引导程序引导CPU 30启动;
贴片式FLASH芯片20,用于在初始使用阶段,通过自身升级后的主BOOT引导程序引导CPU 30启动;还用于,在CPU 30启动失败时,通过备BOOT引导程序引导CPU 30启动;
CPU 30,用于在BSP调试阶段自身启动后,对CPLD 40进行在线升级;还用于在升级后的主BOOT引导程序引导自身启动成功时、或者备BOOT引导程序引导自身启动成功时,加载应用程序版本;
CPLD 40,用于在BSP调试阶段,CPU 30启动成功后进行在线升级。
该装置可以包括一个控制电路50,用于在BSP调试阶段选择由插座式FLASH芯片10的BOOT引导程序引导CPU 30启动。
CPLD 40,在自身的在线升级完成后,进一步用于将贴片式FLASH芯片20划分为主BOOT区、程序区和备BOOT区;在初始使用阶段,还用于确定由主BOOT引导程序引导CPU 30启动;并在升级后的主BOOT引导程序引导CPU 30启动时,判断引导CPU 30启动是否成功;
相应的,升级后的主BOOT引导程序引导CPU 30启动成功时,CPU 30进一步用于,确定升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据升级后的主BOOT引导程序对备BOOT引导程序进行同步,并在同步成功时,读取程序区中的应用程序版本并加载;
相应的,升级后的主BOOT引导程序引导CPU 30启动失败时,CPLD 40进一步用于,选择由备BOOT引导程序引导CPU 30启动。
备BOOT引导程序引导CPU 30启动成功时,CPU 30进一步用于,确定升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据备BOOT引导程序对升级后的主BOOT引导程序进行回退,并在回退成功后,读取程序区中的应用程序版本并加载。
在初始使用阶段,CPU 30启动成功后,CPU 30进一步用于,对CPLD 40进行在线升级。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (15)
1.一种嵌入式系统的升级、备份方法,其特征在于,该方法包括:
在板级支持包(BSP)调试阶段,由插座式闪存(FLASH)芯片中的BOOT引导程序引导中央处理单元(CPU)启动,并通过CPU对可编程逻辑器件(CPLD)进行在线升级;
在初始使用阶段,对贴片式FLASH芯片中的主BOOT引导程序进行升级,并由升级后的所述主BOOT引导程序引导CPU启动,并在CPU启动成功时,CPU加载应用程序版本;在CPU启动失败时,由备BOOT引导程序引导CPU启动,并在CPU启动成功时,CPU加载应用程序版本。
2.根据权利要求1所述嵌入式系统的升级、备份方法,其特征在于,在BSP调试阶段,该方法进一步包括:通过控制电路选择由插座式FLASH芯片中的BOOT引导程序引导CPU启动,进行所述BSP调试。
3.根据权利要求2所述嵌入式系统的升级、备份方法,其特征在于,所述CPLD在线升级完成后,该方法进一步包括:重新启动嵌入式系统,通过所述CPLD将所述贴片式FLASH芯片划分为主BOOT区、程序区和备BOOT区。
4.根据权利要求3所述嵌入式系统的升级、备份方法,其特征在于,在进行BSP调试时,该方法还包括:所述插座式FLASH芯片将自身的BOOT引导程序烧结到所述贴片式FLASH芯片的主BOOT区和备BOOT区,得到所述主BOOT引导程序和备BOOT引导程序。
5.根据权利要求4所述嵌入式系统的升级、备份方法,其特征在于,在初始使用阶段,通过所述CPLD确定由主BOOT引导程序引导CPU启动;
所述由升级后的主BOOT引导程序引导CPU启动时,该方法进一步包括:CPLD根据自身寄存器的标志位的值判断所述引导CPU启动是否成功。
6.根据权利要求5所述嵌入式系统的升级、备份方法,其特征在于,CPLD判定所述引导CPU启动成功时,该方法进一步包括:
所述CPU读取所述升级后的主BOOT引导程序和备BOOT引导程序,并进行校验和比较,并在所述升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据所述升级后的主BOOT引导程序对所述备BOOT引导程序进行同步,并在同步成功时,所述CPU读取程序区中的应用程序版本并加载。
7.根据权利要求5所述嵌入式系统的升级、备份方法,其特征在于,CPLD判定所述引导CPU启动失败时,该方法进一步包括:所述CPLD选择由备BOOT引导程序引导CPU启动,并在启动成功时,由所述CPU修改所述寄存器的标志位的值。
8.根据权利要求7所述嵌入式系统的升级、备份方法,其特征在于,依据所述寄存器的标志位的值所述备BOOT引导程序引导CPU启动成功时,该方法进一步包括:
所述CPU读取所述升级后的主BOOT引导程序和备BOOT引导程序,并进行校验和比较,并在所述升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据所述备BOOT引导程序对所述升级后的主BOOT引导程序进行回退,并在回退成功后,所述CPU读取程序区中的应用程序版本并加载。
9.根据权利要求1至8任一所述嵌入式系统的升级、备份方法,其特征在于,在初始使用阶段所述CPU启动成功后,该方法进一步包括:通过CPU对CPLD进行在线升级。
10.根据权利要求9所述嵌入式系统的升级、备份方法,其特征在于,所述BSP调试阶段和所述初始使用阶段中,通过CPU对CPLD进行在线升级,具体为:
利用远端网管设备通过业务通道或者管理通道和本地设备建立通讯连接;
通过加载控制单元把远端服务器文件下载到本地设备的文件系统中;
通过CPU的通用可编程输入/输出(I/O)口模拟联合测试行为组织(JTAG)下载接口,并通过所述JTAG下载接口对所述CPLD进行升级文件的在线升级;
加载CPLD版本到随机存储器(RAM)中,并重新启动嵌入式系统,完成CPLD的在线升级。
11.一种嵌入式系统的升级、备份装置,其特征在于,该装置包括:插座式FLASH芯片、贴片式FLASH芯片、CPU和CPLD,其中:
所述插座式FLASH芯片,用于在BSP调试阶段,通过自身的BOOT引导程序引导CPU启动;
所述贴片式FLASH芯片,用于在初始使用阶段,通过自身升级后的主BOOT引导程序引导CPU启动;还用于,在CPU启动失败时,通过备BOOT引导程序引导CPU启动;
所述CPU,用于在BSP调试阶段自身启动后,对所述CPLD进行在线升级;还用于在所述升级后的主BOOT引导程序引导自身启动成功时、或者备BOOT引导程序引导自身启动成功时,加载应用程序版本;
所述CPLD,用于在BSP调试阶段,CPU启动成功后进行在线升级。
12.根据权利要求11所述嵌入式系统的升级、备份装置,其特征在于,该装置进一步包括:控制电路,用于在BSP调试阶段选择由所述插座式FLASH芯片的BOOT引导程序引导CPU启动。
13.根据权利要求11所述嵌入式系统的升级、备份装置,其特征在于,
所述CPLD,在自身的在线升级完成后,进一步用于将所述贴片式FLASH芯片划分为主BOOT区、程序区和备BOOT区;在初始使用阶段,还用于确定由主BOOT引导程序引导CPU启动;并在所述升级后的主BOOT引导程序引导CPU启动时,用于判断所述引导CPU启动是否成功;
相应的,所述升级后的主BOOT引导程序引导CPU启动成功时,所述CPU进一步用于,确定所述升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据所述升级后的主BOOT引导程序对所述备BOOT引导程序进行同步,并在同步成功时,读取程序区中的应用程序版本并加载;
相应的,所述升级后的主BOOT引导程序引导CPU启动失败时,所述CPLD进一步用于,选择由备BOOT引导程序引导CPU启动。
14.根据权利要求13所述嵌入式系统的升级、备份装置,其特征在于,所述备BOOT引导程序引导CPU启动成功时,所述CPU进一步用于,确定所述升级后的主BOOT引导程序和备BOOT引导程序不一致时,依据所述备BOOT引导程序对所述升级后的主BOOT引导程序进行回退,并在回退成功后,读取程序区中的应用程序版本并加载。
15.根据权利要求13所述嵌入式系统的升级、备份装置,其特征在于,在初始使用阶段所述CPU启动成功后,所述CPU进一步用于,对所述CPLD进行在线升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102382368A CN102073517A (zh) | 2009-11-23 | 2009-11-23 | 一种嵌入式系统的升级、备份方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102382368A CN102073517A (zh) | 2009-11-23 | 2009-11-23 | 一种嵌入式系统的升级、备份方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102073517A true CN102073517A (zh) | 2011-05-25 |
Family
ID=44032063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102382368A Pending CN102073517A (zh) | 2009-11-23 | 2009-11-23 | 一种嵌入式系统的升级、备份方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102073517A (zh) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243594A (zh) * | 2011-07-26 | 2011-11-16 | 重庆大唐科技股份有限公司 | 一种嵌入式linux系统软件安全远程升级的方法 |
CN102508676A (zh) * | 2011-09-28 | 2012-06-20 | 中兴通讯股份有限公司 | 嵌入式系统启动方法及装置 |
CN102520979A (zh) * | 2011-11-22 | 2012-06-27 | 大唐移动通信设备有限公司 | 一种Boot程序的备份方法和设备 |
CN102662749A (zh) * | 2012-03-23 | 2012-09-12 | 中兴通讯股份有限公司 | 一种双Boot切换的实现方法及装置 |
CN102799466A (zh) * | 2012-07-11 | 2012-11-28 | 哈尔滨工业大学 | 一种应用于PowerPC最小系统的引导装置及引导方法 |
CN103064767A (zh) * | 2013-01-09 | 2013-04-24 | 北京奇虎科技有限公司 | 驱动备份、恢复的方法及装置 |
CN103116511A (zh) * | 2013-01-29 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于单个flash存储芯片的双启动方法 |
CN103677871A (zh) * | 2012-09-10 | 2014-03-26 | 上海达实联欣科技发展有限公司 | 在线升级系统及方法 |
CN103970551A (zh) * | 2013-01-29 | 2014-08-06 | 安凯(广州)微电子技术有限公司 | 一种嵌入式处理器启动模式的选择方法及装置 |
CN105094927A (zh) * | 2015-08-28 | 2015-11-25 | 东方网力科技股份有限公司 | 一种设备固件升级方法和装置 |
CN105138430A (zh) * | 2015-08-24 | 2015-12-09 | 浪潮集团有限公司 | 一种嵌入式操作系统备份与恢复的方法及装置 |
CN105302593A (zh) * | 2015-07-17 | 2016-02-03 | 天津市英贝特航天科技有限公司 | PowerPC主机板的远程升级系统及方法 |
CN108513169A (zh) * | 2018-04-04 | 2018-09-07 | 青岛海信电器股份有限公司 | 一种芯片下载启动程序的方法、芯片及液晶电视 |
CN109002159A (zh) * | 2018-06-28 | 2018-12-14 | 珠海全志科技股份有限公司 | 一种cpu的状态控制电路及方法 |
CN109408088A (zh) * | 2018-10-09 | 2019-03-01 | 郑州云海信息技术有限公司 | Cpld升级方法、装置、系统和计算机可读存储介质 |
CN109445867A (zh) * | 2017-08-30 | 2019-03-08 | 中车株洲电力机车研究所有限公司 | 一种列车网络产品的数据处理系统 |
CN109491716A (zh) * | 2018-10-19 | 2019-03-19 | 北京行易道科技有限公司 | 启动方法及装置、程序存储方法及装置 |
CN109558176A (zh) * | 2018-11-30 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种基于CPLD内部Flash的双启方法 |
CN109815061A (zh) * | 2019-01-31 | 2019-05-28 | 深兰科技(上海)有限公司 | 一种嵌入式系统防砖的方法、装置、设备和介质 |
CN109814908A (zh) * | 2019-01-17 | 2019-05-28 | 深圳忆联信息系统有限公司 | 固件稳定升级的方法、装置、计算机设备及存储介质 |
CN110597671A (zh) * | 2019-08-23 | 2019-12-20 | 深圳震有科技股份有限公司 | 一种设置独立boot区的flash芯片及系统和方法 |
CN111104146A (zh) * | 2019-12-18 | 2020-05-05 | 天地伟业技术有限公司 | 一种高稳定性和可维护性的嵌入式设备 |
CN111124451A (zh) * | 2019-12-24 | 2020-05-08 | 山东有人信息技术有限公司 | 一种分布式备份升级方法 |
CN111352798A (zh) * | 2020-01-19 | 2020-06-30 | 湖北三江航天红峰控制有限公司 | 一种基于dsp芯片的多次引导程序执行方法及装置 |
CN112527371A (zh) * | 2020-12-17 | 2021-03-19 | 杭州海康威视数字技术股份有限公司 | 一种引导加载程序升级方法、装置、电子设备及存储介质 |
CN112882860A (zh) * | 2021-02-08 | 2021-06-01 | 上海弘积信息科技有限公司 | 一种嵌入式系统升级失败的自动回退保护方法 |
CN113703801A (zh) * | 2021-07-14 | 2021-11-26 | 深圳市有为信息技术发展有限公司 | 一种车载终端固件升级方法及电子装置 |
CN116360831A (zh) * | 2023-05-31 | 2023-06-30 | 中国第一汽车股份有限公司 | 一种应用程序升级方法、装置、电子设备及存储介质 |
CN112527371B (zh) * | 2020-12-17 | 2024-06-04 | 杭州海康威视数字技术股份有限公司 | 一种引导加载程序升级方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1425963A (zh) * | 2001-12-11 | 2003-06-25 | 深圳市中兴通讯股份有限公司上海第二研究所 | 嵌入式系统软件加载装置及方法 |
CN101030140A (zh) * | 2006-03-02 | 2007-09-05 | 中兴通讯股份有限公司 | 一种对固件程序进行在线升级的装置及其方法 |
CN101097524A (zh) * | 2007-06-18 | 2008-01-02 | 中兴通讯股份有限公司 | 一种可编程器件升级的方法及装置 |
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
CN101329632A (zh) * | 2008-04-30 | 2008-12-24 | 中兴通讯股份有限公司 | 一种使用boot启动cpu的方法与装置 |
-
2009
- 2009-11-23 CN CN2009102382368A patent/CN102073517A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1425963A (zh) * | 2001-12-11 | 2003-06-25 | 深圳市中兴通讯股份有限公司上海第二研究所 | 嵌入式系统软件加载装置及方法 |
CN101030140A (zh) * | 2006-03-02 | 2007-09-05 | 中兴通讯股份有限公司 | 一种对固件程序进行在线升级的装置及其方法 |
CN101097524A (zh) * | 2007-06-18 | 2008-01-02 | 中兴通讯股份有限公司 | 一种可编程器件升级的方法及装置 |
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
CN101329632A (zh) * | 2008-04-30 | 2008-12-24 | 中兴通讯股份有限公司 | 一种使用boot启动cpu的方法与装置 |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243594A (zh) * | 2011-07-26 | 2011-11-16 | 重庆大唐科技股份有限公司 | 一种嵌入式linux系统软件安全远程升级的方法 |
CN102508676A (zh) * | 2011-09-28 | 2012-06-20 | 中兴通讯股份有限公司 | 嵌入式系统启动方法及装置 |
CN102520979A (zh) * | 2011-11-22 | 2012-06-27 | 大唐移动通信设备有限公司 | 一种Boot程序的备份方法和设备 |
CN102662749A (zh) * | 2012-03-23 | 2012-09-12 | 中兴通讯股份有限公司 | 一种双Boot切换的实现方法及装置 |
CN102799466A (zh) * | 2012-07-11 | 2012-11-28 | 哈尔滨工业大学 | 一种应用于PowerPC最小系统的引导装置及引导方法 |
CN102799466B (zh) * | 2012-07-11 | 2015-06-24 | 哈尔滨工业大学 | 一种应用于PowerPC最小系统的引导装置及引导方法 |
CN103677871A (zh) * | 2012-09-10 | 2014-03-26 | 上海达实联欣科技发展有限公司 | 在线升级系统及方法 |
CN103064767A (zh) * | 2013-01-09 | 2013-04-24 | 北京奇虎科技有限公司 | 驱动备份、恢复的方法及装置 |
CN103116511A (zh) * | 2013-01-29 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于单个flash存储芯片的双启动方法 |
CN103970551A (zh) * | 2013-01-29 | 2014-08-06 | 安凯(广州)微电子技术有限公司 | 一种嵌入式处理器启动模式的选择方法及装置 |
CN105302593B (zh) * | 2015-07-17 | 2018-12-18 | 天津市英贝特航天科技有限公司 | PowerPC主机板的远程升级系统及方法 |
CN105302593A (zh) * | 2015-07-17 | 2016-02-03 | 天津市英贝特航天科技有限公司 | PowerPC主机板的远程升级系统及方法 |
CN105138430A (zh) * | 2015-08-24 | 2015-12-09 | 浪潮集团有限公司 | 一种嵌入式操作系统备份与恢复的方法及装置 |
CN105094927B (zh) * | 2015-08-28 | 2018-06-12 | 东方网力科技股份有限公司 | 一种设备固件升级方法和装置 |
CN105094927A (zh) * | 2015-08-28 | 2015-11-25 | 东方网力科技股份有限公司 | 一种设备固件升级方法和装置 |
CN109445867A (zh) * | 2017-08-30 | 2019-03-08 | 中车株洲电力机车研究所有限公司 | 一种列车网络产品的数据处理系统 |
CN108513169B (zh) * | 2018-04-04 | 2021-09-24 | 海信视像科技股份有限公司 | 一种芯片下载启动程序的方法、芯片及液晶电视 |
CN108513169A (zh) * | 2018-04-04 | 2018-09-07 | 青岛海信电器股份有限公司 | 一种芯片下载启动程序的方法、芯片及液晶电视 |
CN109002159A (zh) * | 2018-06-28 | 2018-12-14 | 珠海全志科技股份有限公司 | 一种cpu的状态控制电路及方法 |
CN109408088A (zh) * | 2018-10-09 | 2019-03-01 | 郑州云海信息技术有限公司 | Cpld升级方法、装置、系统和计算机可读存储介质 |
CN109491716A (zh) * | 2018-10-19 | 2019-03-19 | 北京行易道科技有限公司 | 启动方法及装置、程序存储方法及装置 |
CN109491716B (zh) * | 2018-10-19 | 2021-11-16 | 北京行易道科技有限公司 | 启动方法及装置、程序存储方法及装置 |
CN109558176A (zh) * | 2018-11-30 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种基于CPLD内部Flash的双启方法 |
CN109814908A (zh) * | 2019-01-17 | 2019-05-28 | 深圳忆联信息系统有限公司 | 固件稳定升级的方法、装置、计算机设备及存储介质 |
CN109815061A (zh) * | 2019-01-31 | 2019-05-28 | 深兰科技(上海)有限公司 | 一种嵌入式系统防砖的方法、装置、设备和介质 |
CN110597671A (zh) * | 2019-08-23 | 2019-12-20 | 深圳震有科技股份有限公司 | 一种设置独立boot区的flash芯片及系统和方法 |
CN111104146A (zh) * | 2019-12-18 | 2020-05-05 | 天地伟业技术有限公司 | 一种高稳定性和可维护性的嵌入式设备 |
CN111104146B (zh) * | 2019-12-18 | 2023-07-28 | 天津天地伟业信息系统集成有限公司 | 一种高稳定性和可维护性的嵌入式设备 |
CN111124451A (zh) * | 2019-12-24 | 2020-05-08 | 山东有人信息技术有限公司 | 一种分布式备份升级方法 |
CN111352798A (zh) * | 2020-01-19 | 2020-06-30 | 湖北三江航天红峰控制有限公司 | 一种基于dsp芯片的多次引导程序执行方法及装置 |
CN112527371A (zh) * | 2020-12-17 | 2021-03-19 | 杭州海康威视数字技术股份有限公司 | 一种引导加载程序升级方法、装置、电子设备及存储介质 |
CN112527371B (zh) * | 2020-12-17 | 2024-06-04 | 杭州海康威视数字技术股份有限公司 | 一种引导加载程序升级方法、装置、电子设备及存储介质 |
CN112882860A (zh) * | 2021-02-08 | 2021-06-01 | 上海弘积信息科技有限公司 | 一种嵌入式系统升级失败的自动回退保护方法 |
CN113703801A (zh) * | 2021-07-14 | 2021-11-26 | 深圳市有为信息技术发展有限公司 | 一种车载终端固件升级方法及电子装置 |
CN116360831A (zh) * | 2023-05-31 | 2023-06-30 | 中国第一汽车股份有限公司 | 一种应用程序升级方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102073517A (zh) | 一种嵌入式系统的升级、备份方法和装置 | |
CN105930236A (zh) | 一种基于BMS Bootloader升级的应用程序版本回退方法 | |
CN105354070B (zh) | 一种通过i2c升级设备固件的方法 | |
CN103365696B (zh) | Bios镜像文件获取方法及装置 | |
CN100578461C (zh) | 一种引导程序的备份方法及其备份装置 | |
CN102830984B (zh) | 固件更新的方法、芯片以及通信终端 | |
CN100407638C (zh) | 一种软件升级及回退方法 | |
CN110209405B (zh) | 分布式系统的自动化升级方法及装置 | |
CN106201590B (zh) | 一种fpga配置文件加载方法和系统 | |
CN101169728A (zh) | 双引导启动装置及方法 | |
CN101639785A (zh) | 软件升级方法及装置 | |
CN104915226A (zh) | 一种网络设备软件启动方法、装置及网络设备 | |
CN112631625B (zh) | 嵌入式设备的系统升级方法、装置及嵌入式设备 | |
CN102346673A (zh) | 一种手机系统升级的方法及装置 | |
CN113553081A (zh) | 一种基于zynq芯片的fpga加载方法 | |
CN108920168B (zh) | 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法 | |
US20020095619A1 (en) | Fault tolerant/redundant boot ROM reprogramming | |
CN100549959C (zh) | 引导程序在线升级方法 | |
CN107844312A (zh) | 一种软件更新监控方法和系统 | |
CN110597532A (zh) | 一种数据采集模块及其固件升级方法和存储介质 | |
CN112162794B (zh) | 一种单板启动方法、装置、单板以及网络设备 | |
CN100353321C (zh) | 具有主用和备用引导程序的系统及启动方法 | |
CN104991805A (zh) | 智能设备及其系统灾备控制方法 | |
EP3043262A1 (en) | Method and device for remote base station version installation | |
CN116501357A (zh) | 一种单片机的在线升级方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110525 |
|
WD01 | Invention patent application deemed withdrawn after publication |