CN100472449C - 使用双Bootrom启动引导CPU的工程应用方法和装置 - Google Patents
使用双Bootrom启动引导CPU的工程应用方法和装置 Download PDFInfo
- Publication number
- CN100472449C CN100472449C CNB2007101296775A CN200710129677A CN100472449C CN 100472449 C CN100472449 C CN 100472449C CN B2007101296775 A CNB2007101296775 A CN B2007101296775A CN 200710129677 A CN200710129677 A CN 200710129677A CN 100472449 C CN100472449 C CN 100472449C
- Authority
- CN
- China
- Prior art keywords
- bootrom
- cpu
- code
- guiding
- standby
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种使用双Bootrom启动引导CPU的工程应用方法,采用两片Bootrom:主用Bootrom和备用Bootrom,正常工作时,采用主用Bootrom烧结的启动代码引导启动CPU;当主用Bootrom引导启动CPU失败时,采用备用Bootrom烧结的启动代码引导启动CPU,通过将一CPU读取启动代码窗口指向主用Bootrom或备用Bootrom选择引导启动CPU的Bootrom,当需要升级启动代码版本时,通过指向主用Bootrom的升级Bootrom窗口来控制对主用Bootrom的启动代码版本的升级,所述升级Bootrom窗口与所述CPU读取启动代码窗口对应不同的映射地址空间。本发明所述方法和装置,可以保证Bootrom正确启动引导CPU。
Description
技术领域
本发明涉及嵌入式系统,尤其涉及一种使用双Bootrom(引导只读存储器)启动引导CPU(中央处理单元)的工程应用方法和装置。
背景技术
当今的嵌入式系统应用中,采用Bootrom烧结启动代码,启动引导CPU加载应用程序版本的使用方式被广泛的应用,在通信设备的嵌入式平台中更是被广泛应用。现有的Bootrom启动引导CPU的工程应用方法采用的硬件连接方式如图1所示,上电后CPU由CS0选中执行主用Bootrom中启动代码,进行必要的硬件初始化后从网口下载或者从其他存储介质中读取应用版本,启动系统。在这里,Bootrom的作用类似于PC(个人计算机)中的BIOS(基本输入输出系统)。
Bootrom的初始映像(或者叫镜像,英文为image,是指将源程序编译链接后的二进制文件,可直接被CPU执行,用于引导CPU)在工厂生产时可用编程器烧结,但出厂后,由于工程上编程器设备资源受限和操作的难度,只能用CPU通过flash(闪存)芯片驱动程序在线写入。这样就会存在由于下列原因造成的Bootrom启动失败:
一、由于芯片驱动本身有问题,导致了错误的flash擦除,编程,造成了Bootrom映像不完整。
二、在线升级过程中意外的外界原因,比如断电,设备复位,升级被中断。
三、烧结了错误不能启动的Bootrom映像。
一旦Bootrom启动失败,由于现场无法回退或者恢复,给工程造成重大故障。
发明内容
本发明要解决的技术问题是提供一种使用双Bootrom启动引导CPU的工程应用方法和装置,可以保证Bootrom正确启动引导CPU。
为了解决上述问题,本发明提供了一种使用双Bootrom启动引导CPU的工程应用方法,采用两片Bootrom:主用Bootrom和备用Bootrom,正常工作时,采用主用Bootrom烧结的启动代码引导启动CPU;当主用Bootrom引导启动CPU失败时,采用备用Bootrom烧结的启动代码引导启动CPU,通过将一CPU读取启动代码窗口指向主用Bootrom或备用Bootrom选择引导启动CPU的Bootrom,当需要升级启动代码版本时,通过指向主用Bootrom的升级Bootrom窗口来控制对主用Bootrom的启动代码版本的升级,所述升级Bootrom窗口与所述CPU读取启动代码窗口对应不同的映射地址空间。
本发明所述的使用双Bootrom启动引导CPU的工程应用方法,其中,所述方法进一步包括:在出厂时,将主用Bootrom和备用Bootrom烧结同一启动代码。
本发明提供了一种使用双Bootrom启动引导CPU的装置,包括主用Bootrom、CPU,还包括备用Bootrom,当主用Bootrom引导启动CPU失败时,所述CPU调用备用Bootrom烧结的启动代码引导启动CPU,通过将一CPU读取启动代码窗口指向主用Bootrom或备用Bootrom选择引导启动CPU的Bootrom,当需要升级启动代码版本时,通过指向主用Bootrom的升级Bootrom窗口来控制对主用Bootrom的启动代码版本的升级,所述升级Bootrom窗口与所述CPU读取启动代码窗口对应不同的映射地址空间。
本发明所述的使用双Bootrom启动引导CPU的装置,其中,在出厂时,所述主用Bootrom和所述备用Bootrom烧结有同一启动代码。
本发明所述方法和装置,采用两片Bootrom:主用Bootrom和备用Bootrom,正常工作时,采用主用Bootrom烧结的启动代码引导启动CPU;当主用Bootrom引导启动CPU失败时,采用备用Bootrom烧结的启动代码引导启动CPU,这样保证了Bootrom正确启动引导CPU。
附图说明
图1是现有的Bootrom启动引导CPU的工程应用方法采用的硬件连接图;
图2是本发明实施例所述系统的结构图。
具体实施方式
本发明为了解决传统技术方案存在的弊端,通过以下实施例进一步阐述本发明所述的一种使用双Bootrom启动引导CPU的工程应用方法和装置,以下对具体实施方式进行详细描述,但不作为对本发明的限定。
本发明涉及嵌入式系统设备中使用双Bootrom启动引导CPU加载应用程序版本的方法和装置。Bootrom是一种FLASH芯片,可用于烧结启动代码,启动引导CPU,它作为系统上电开始的引导非常重要。
如图2所示,本发明实施例所述方法采用的硬件连接图,即本发明实施例所述装置的结构图。
本发明实施例所述方法采用两片Bootrom:主用Bootrom和备用Bootrom,,在应用设计时,将主用Bootrom和备用Bootrom的镜像设为相同,可以在出厂时,主用Bootrom和备用Bootrom烧结同一启动代码。这样,两片Bootrom的镜像是一样的,作为开发人员只需要维护升级一个Bootrom应用程序版本既可,避免因为有两个Bootrom而多开发了一套特别Bootrom版本,节省了产品开发维护的人力成本。
本发明实施例所述方法采用CPU读取启动代码窗口可选指向主用Bootrom和备用Bootrom,用于控制是否用所选中的Bootrom烧结的启动代码启动引导CPU;采用升级Bootrom窗口指向主用Bootrom,用于控制是否升级主用Bootrom应用程序版本。
CPU具备两个片选窗口,CS0((chip select),芯片片选信号,当此信号为低有效时芯片被选中,CPU可以通过地址空间访问该芯片)为CPU读取启动代码窗口,通过switch(开关)指定,用户可以选择从主用Bootrom或备用Bootrom启动;CS1为升级Bootrom窗口,总是指向主用Bootrom,这个CS窗口只有在CPU通过flash芯片驱动程序在线升级Bootrom的时候会被用到。这样,当CS0也选取主用Bootrom时,主用Bootrom就被两个CS窗口选中,称之为双映射。因为从CPU自身的空间映射角度来看,主用Bootrom有两个地址空间,如图2中标注的0xFF000000~0xFFFFFFFF和0xFD000000~0xFDFFFFFF,通过这两个地址空间都可以访问到同一个物理存储介质-主用Bootrom。双映射的好处在于无论CPU选取哪个Bootrom启动,执行在线升级Bootrom的时候,操作的都是主用Bootrom,而不会误操作到备用Bootrom.对于软件程序而言,也不需要关心因为启动Bootrom的不同而采取不同的升级策略,升级方法总是一样的。
出厂时,所述CPU读取启动代码窗口指向主用Bootrom,控制采用主用Bootrom烧结的启动代码引导启动CPU;当主用Bootrom引导启动CPU失败时,所述CPU读取启动代码窗口指向备用Bootrom,控制采用备用Bootrom烧结的启动代码引导启动CPU。
本发明实施例所述方法采用双Bootrom,1+1主备方法确保系统能够在一片Bootrom被破坏后能够从另一片启动。出厂的时候两片Bootrom都烧结同一启动代码;正常情况下使用Booroml,升级更新Bootrom时只升级主用Bootrom既可,备用Bootrom设为只读属性,在出厂后其中内容就不再变更。只有在主用Bootrom启动失败情况下才选用备用Bootrom而引导CPU加载应用程序版本。
在本发明实施例所述方法中,首先要确保在实际系统中CPU可以通过两个CS窗口访问Bootrom;在硬件上要实现通过拨号开关(switch),CS0会指向不同的Bootrom。
CS1指向主用Bootrom,备用Bootrom设为只读属性。
给出两个映射地址空间窗口,CS0对应的映射地址空间是0xFF000000~0xFFFFFFFF;CS1对应的映射地址空间是0xFD000000~0xFDFFFFFF。
当CPU启动时,PPC((PowerPC)RISC(精简指令集计算)一种体系结构)总是从0xFFF00100读取第一条指令执行,启动系统。
用户在编写Bootrom在线升级的Flash驱动程序时,Flash的基址应当是0xFD000000。
下面以应用实例介绍本发明所述方法:
步骤一,出厂时主用Bootrom和备用Bootrom都烧结同样的启动代码BootV1.0(版本号1.0),CS0指向主用Bootrom。
步骤二,系统通过主用Bootrom正常引导启动,加载应用程序。
步骤三,当需要发布新的启动代码BootV2.0时,用户通过CPU在线升级程序更新主用Bootrom中的启动代码为BootV2.0版本;判断升级是否成功;如果成功,流程结束;否则转至步骤四。
步骤四,设置拨号开关(switch)选取备用Bootrom,重新启动设备;
用过通过执行CPU在线升级程序,升级主用Bootrom中的启动代码,设置拨号开关(switch)选取主用Bootrom,重新启动设备。
如图2所示,本发明实施例所述装置包括主用Bootrom、备用Bootrom、CPU和开关,其中:
CPU的片选引脚1与主用Bootrom连接,CPU的片选引脚0通过开关与主用Bootrom和备用Bootrom连接;
正常工作时,手动控制所述开关使得所述CPU的片选引脚0与所述主用Bootrom连通,CPU调用所述备用Bootrom烧结的启动代码引导启动CPU。
当主用Bootrom引导启动CPU失败时,手动控制所述开关使得所述CPU的片选引脚0与备用Bootrom连通,CPU调用所述备用Bootrom烧结的启动代码引导启动CPU。
当需要升级CPU启动代码版本时,所述CPU在线升级所述主用Bootrom上烧结的启动代码。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变型,但这些相应的改变和变型都应属于本发明所附的权利要求的保护范围。
Claims (4)
1、一种使用双Bootrom启动引导CPU的工程应用方法,其特征在于,采用两片Bootrom:主用Bootrom和备用Bootrom,正常工作时,采用主用Bootrom烧结的启动代码引导启动CPU;当主用Bootrom引导启动CPU失败时,采用备用Bootrom烧结的启动代码引导启动CPU,通过将一CPU读取启动代码窗口指向主用Bootrom或备用Bootrom选择引导启动CPU的Bootrom,当需要升级启动代码版本时,通过指向主用Bootrom的升级Bootrom窗口来控制对主用Bootrom的启动代码版本的升级,所述升级Bootrom窗口与所述CPU读取启动代码窗口对应不同的映射地址空间。
2、根据权利要求1所述的方法,其特征在于,所述方法进一步包括:在出厂时,将主用Bootrom和备用Bootrom烧结同一启动代码。
3、一种使用双Bootrom启动引导CPU的装置,包括主用Bootrom、CPU,其特征在于,还包括备用Bootrom,当主用Bootrom引导启动CPU失败时,所述CPU调用备用Bootrom烧结的启动代码引导启动CPU,通过将一CPU读取启动代码窗口指向主用Bootrom或备用Bootrom选择引导启动CPU的Bootrom,当需要升级启动代码版本时,通过指向主用Bootrom的升级Bootrom窗口来控制对主用Bootrom的启动代码版本的升级,所述升级Bootrom窗口与所述CPU读取启动代码窗口对应不同的映射地址空间。
4、根据权利要求3所述的装置,其特征在于,在出厂时,所述主用Bootrom和所述备用Bootrom烧结有同一启动代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101296775A CN100472449C (zh) | 2007-08-14 | 2007-08-14 | 使用双Bootrom启动引导CPU的工程应用方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101296775A CN100472449C (zh) | 2007-08-14 | 2007-08-14 | 使用双Bootrom启动引导CPU的工程应用方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101101559A CN101101559A (zh) | 2008-01-09 |
CN100472449C true CN100472449C (zh) | 2009-03-25 |
Family
ID=39035840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101296775A Expired - Fee Related CN100472449C (zh) | 2007-08-14 | 2007-08-14 | 使用双Bootrom启动引导CPU的工程应用方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100472449C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329632B (zh) * | 2008-04-30 | 2014-02-19 | 中兴通讯股份有限公司 | 一种使用boot启动cpu的方法与装置 |
CN102830986A (zh) * | 2011-06-17 | 2012-12-19 | 中兴通讯股份有限公司 | 一种在双boot程序环境下启动系统的方法和装置 |
WO2012149774A1 (zh) * | 2011-09-27 | 2012-11-08 | 华为技术有限公司 | 一种处理器启动方法及装置 |
CN103744689A (zh) * | 2013-12-04 | 2014-04-23 | 苏州佳世达光电有限公司 | 电子装置及其启动方法 |
CN106933606A (zh) * | 2015-12-29 | 2017-07-07 | 普天信息技术有限公司 | VxWorks系统镜像image文件的更新方法及装置 |
-
2007
- 2007-08-14 CN CNB2007101296775A patent/CN100472449C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101101559A (zh) | 2008-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3491519B1 (en) | Optimized uefi reboot process | |
US8423991B2 (en) | Embedded network device and firmware upgrading method | |
CN100472449C (zh) | 使用双Bootrom启动引导CPU的工程应用方法和装置 | |
US20090254898A1 (en) | Converting a device from one system to another | |
CN101650662A (zh) | 一种嵌入式系统的存储器件、固件启动及升级方法 | |
WO2003003212A3 (en) | Automatic replacement of corrupted bios image | |
CN108319520A (zh) | 基于安全存储的移动设备备用操作系统 | |
CN101373451B (zh) | 保护双基本输出入系统程序的计算机系统及其控制方法 | |
CN102012831A (zh) | 基于Linux平台的OTA升级方法 | |
US20080104386A1 (en) | Multi-profile boot selection | |
WO2011000279A1 (zh) | 用于软件进行动态升级与控制的生成补丁方法及其装置 | |
CN101770372A (zh) | 固件更新系统、方法以及固件更新系统之固件建构方法 | |
CN104102518A (zh) | 一种双cpu系统及其程序升级方法 | |
CN106990985A (zh) | 基于bmc更新及备份系统uefi固件的设备和方法 | |
CN102486733A (zh) | 引导程序的升级方法和装置 | |
CN103092659A (zh) | 脱离仿真器支持环境的dsp软件升级系统及其升级方法 | |
CN101615128A (zh) | 一种单片机在线升级的方法及装置 | |
CN101699402A (zh) | 一种多模式启动的嵌入式系统 | |
CN101872306B (zh) | 一种实现软件更新和软件备份的嵌入式系统及其实现方法 | |
CN102662688B (zh) | 一种Nor flash更新方法及装置 | |
CN110119623A (zh) | 一种利用tpcm实现固件主动度量的可信主板实现方法 | |
CN101505331A (zh) | 升级智能手机系统软件的方法和装置 | |
CN104536955A (zh) | Pc机配置机器语言、字库以及翻译文件的方法及系统 | |
CN102508676A (zh) | 嵌入式系统启动方法及装置 | |
CN107544804A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090325 Termination date: 20170814 |
|
CF01 | Termination of patent right due to non-payment of annual fee |