CN101571807A - 具有固件的系统及其启动方法 - Google Patents

具有固件的系统及其启动方法 Download PDF

Info

Publication number
CN101571807A
CN101571807A CNA200810301385XA CN200810301385A CN101571807A CN 101571807 A CN101571807 A CN 101571807A CN A200810301385X A CNA200810301385X A CN A200810301385XA CN 200810301385 A CN200810301385 A CN 200810301385A CN 101571807 A CN101571807 A CN 101571807A
Authority
CN
China
Prior art keywords
firmware module
firmware
module
standby
described main
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
Application number
CNA200810301385XA
Other languages
English (en)
Inventor
王宏荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hongfujin Precision Industry Shenzhen Co Ltd
Hon Hai Precision Industry Co Ltd
Original Assignee
Hongfujin Precision Industry Shenzhen Co Ltd
Hon Hai Precision Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hongfujin Precision Industry Shenzhen Co Ltd, Hon Hai Precision Industry Co Ltd filed Critical Hongfujin Precision Industry Shenzhen Co Ltd
Priority to CNA200810301385XA priority Critical patent/CN101571807A/zh
Priority to US12/127,934 priority patent/US20090271603A1/en
Publication of CN101571807A publication Critical patent/CN101571807A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种具有固件的系统,包括一控制器及一存储器,所述存储器内装载一主固件模块、一备用固件模块及一引导载入模块,所述主固件模块、备用固件模块及引导载入模块分别具有一识别地址。本发明还包括该具有固件的系统的启动方法,当系统开启时所述控制器通过所述引导载入模块的识别地址调用引导载入模块,以验证所述主固件模块是否处于正常状态,根据所述引导载入模块的验证结果,所述控制器选择性地通过主固件模块或备用固件模块的识别地址调用所述主固件模块或备用固件模块以启动系统。所述具有固件的系统在其主固件产生错误时,可以通过其备用固件启动系统,从而给用户的工作带来很大的方便。

Description

具有固件的系统及其启动方法
技术领域
本发明涉及一种具有固件的系统及其启动方法。
背景技术
固件(Firmware)是具有软件功能的硬件,在早期这种硬件一般都是存有软件的EROM(可擦只读存储器)或EPROM(可擦除可编程只读存储器)等,通常这些硬件内所保存的程序是无法被用户直接读出或修改的,并且终端用户很难或者不可能改变固件,一般情况下也是没有必要对固件进行升级操作的,即使在固件内发现了严重的错误(Bug),也必须由专业人员带着写好程序的EPROM把原来机器上的EPROM更换下来。
由于目前集成电路的进步,设备的固件都采用Flash(闪存,Flash Memory的简称)为载体,并且Flash支持引导装入程序功能,同时大多数Flash还支持固件的升级,因此,升级固件也变得越来越简单。但是,如果用户在升级固件过程中产生错误导致固件没有正确更新,或者因为其他因素破坏了存放在Flash内的固件,都将造成系统无法正常工作。此时,用户只能靠维修人员亲临现场将固件重新修复或者更换Flash,这样势必会给用户的工作带来许多不便。
发明内容
鉴于以上内容,本发明提供了一种能方便用户工作的具有固件的系统及其启动方法。
本发明所提供的具有固件的系统,包括一个控制器及一个存储器,所述存储器内装载一个主固件模块、至少一个备用固件模块及一个引导载入模块,所述主固件模块、备用固件模块及引导载入模块分别具有一识别地址,系统开启时所述控制器通过所述引导载入模块的识别地址调用所述引导载入模块以验证所述主固件模块是否处于正常状态,若所述主固件模块处于正常状态,所述控制器通过所述主固件模块的识别地址调用所述主固件模块以启动系统,若所述主固件模块处于非正常状态,所述控制器通过所述备用固件模块的识别地址调用所述备用固件模块以启动系统。
本发明提供的启动上述具有固件的系统的方法,包括如下步骤:
系统开启后,所述控制器调用所述引导载入模块;
所述引导载入模块验证所述主固件模块是否处于正常状态;
如果所述主固件模块处于正常状态,则所述控制器通过所述主固件模块的识别地址调用所述主固件模块以启动系统;以及
如果所述主固件模块处于非正常状态,则所述控制器通过所述备用固件模块的识别地址调用所述备用固件模块以启动系统。
上述具有固件的系统包括主固件模块及备用固件模块,并通过所述引导载入模块验证所述主固件模块是否能正常工作,如果所述主固件模块能正常工作,则所述控制器调用所述主固件模块启动系统;如果所述主固件模块不能正常工作,则所述控制器调用所述备用固件模块启动系统。所述具有固件的系统在其主固件产生错误时,可以通过其备用固件启动系统,从而给用户的工作带来很大的方便。
附图说明
下面结合附图及较佳实施方式对本发明作进一步详细描述。
图1为本发明具有固件的系统的较佳实施方式的存储器的框图。
图2为本发明具有固件的系统的启动方法的较佳实施方式的流程图。
具体实施方式
请参考图1,本发明具有固件的系统的较佳实施方式包括一控制器(如一CPU)及一存储器(如一闪存),所述存储器包括一引导载入(Boot Loader)模块100、一主固件(PrimaryFirmware)模块200、一备用固件(Backup Firmware)模块300及一保留(Reserved)模块400,其中所述引导载入模块100、主固件模块200及备用固件模块300分别具有一识别地址(ID Address),所述控制器可以利用跳变(Jumper)指令及识别地址来选择性地执行所述主固件模块200或备用固件模块300。所述引导载入模块100用于采用校验和(Checksum)算法验证所述主固件模块200是否处于正常,比如将所述主固件模块200内的所有字节(byte)相加,如果总和为0,则代表所述主固件模块200可以正常工作,如果总和不为0,则代表所述主固件模块200不能正常工作。在其他实施方式中,用户也可以采用其他算法来验证所述主固件模块200是否处于正常。其中,所述备用固件模块300的数量可以根据设计者的需要来选择,当具有多个备用固件模块时,每一备用固件模块均具有一识别地址,所述控制器可以通过备用固件模块的识别地址来执行相应的备用固件模块,以启动系统。所述保留模块400用于扩展备用固件模块300,其数量也可根据设计者的需要增加或减少。
当所述控制器启动时,其将首先执行位于其起始地址区的识别指令并通过所述引导载入模块100的识别地址调用所述引导载入模块100以验证所述主固件模块200是否处于正常,所述起始地址区被称之为Entry Point。
请继续参考图2,本发明具有固件的系统的启动方法的较佳实施方式包括以下步骤:
步骤S1:系统开启后,所述控制器即通过所述引导载入模块100的识别地址调用所述引导载入模块100。
步骤S2:所述引导载入模块100采用校验和算法验证所述主固件模块200是否处于正常状态。
步骤S3:如果所述主固件模块200处于正常状态,则所述控制器通过所述主固件模块200的识别地址调用所述主固件模块200以启动系统。
步骤S4:如果所述主固件模块200处于非正常状态,则所述控制器调用所述备用固件模块300的识别地址调用所述备用固件模块300以启动系统。
步骤S5:当所述主固件模块200处于非正常状态时,所述控制器主动发送信息至系统管理员,并将此事件记录于日志以便系统管理员及时更新所述主固件模块200。
其中,上述步骤S2中,所述引导载入模块100也可以通过其他算法来验证所述主固件模块200是否处于正常状态。步骤S5可以省略。
上述具有固件的系统包括所述主固件模块200及备用固件模块300,并通过所述引导载入模块100验证所述主固件模块200是否处于正常状态,如果所述主固件模块200处于正常状态,则所述控制器通过所述主固件模块200的识别地址调用所述主固件模块200以启动系统;如果所述主固件模块200处于非正常状态,则所述控制器通过所述备用固件模块300的识别地址调用所述备用固件模块300以启动系统,并发送信息至系统管理员,提醒系统管理员及时更新所述主固件模块100。所述具有固件的系统在其主固件产生错误时,可以通过其备用固件启动系统,从而给用户的工作带来很大的方便。

Claims (7)

1.一种具有固件的系统,包括一个控制器及一个存储器,所述存储器内装载一个主固件模块,其特征在于:所述存储器内还装载至少一个备用固件模块及一个引导载入模块,所述主固件模块、备用固件模块及引导载入模块分别具有一识别地址,系统开启时所述控制器即通过所述引导载入模块的识别地址调用所述引导载入模块以验证所述主固件模块是否处于正常状态,若所述主固件模块处于正常状态,所述控制器通过所述主固件模块的识别地址调用所述主固件模块以启动系统,若所述主固件模块处于非正常状态,所述控制器通过所述备用固件模块的识别地址调用所述备用固件模块以启动系统。
2.如权利要求1所述的具有固件的系统,其特征在于:所述引导载入模块是通过校验和算法验证所述主固件模块是否处于正常状态。
3.如权利要求1所述的具有固件的系统,其特征在于:所述存储器内还装载一保留模块,用于扩展所述备用固件模块。
4.如权利要求1所述的具有固件的系统,其特征在于:所述存储器内的备用固件模块有若干个,所述控制器可以选择性地通过任一备用固件模块的识别地址调用对应的备用固件模块以启动系统。
5.一种如权利要求1所述的具有固件的系统的启动方法,包括如下步骤:
系统开启后,所述控制器调用所述引导载入模块;
所述引导载入模块验证所述主固件模块是否处于正常状态;
如果所述主固件模块处于正常状态,则所述控制器通过所述主固件模块的识别地址调用所述主固件模块以启动系统;以及
如果所述主固件模块处于非正常状态,则所述控制器通过所述备用固件模块的识别地址调用所述备用固件模块以启动系统。
6.如权利要求5所述的具有固件的系统的启动方法,其特征在于:所述启动方法在所述备用固件模块启动系统之后还包括步骤:
所述控制器将所述主固件模块处于非正常状态的信息通知系统管理员。
7.如权利要求5所述的具有固件的系统的启动方法,其特征在于:所述引导载入模块是通过校验和算法验证所述主固件模块是否处于正常状态。
CNA200810301385XA 2008-04-28 2008-04-28 具有固件的系统及其启动方法 Pending CN101571807A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNA200810301385XA CN101571807A (zh) 2008-04-28 2008-04-28 具有固件的系统及其启动方法
US12/127,934 US20090271603A1 (en) 2008-04-28 2008-05-28 Embedded system and startup method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA200810301385XA CN101571807A (zh) 2008-04-28 2008-04-28 具有固件的系统及其启动方法

Publications (1)

Publication Number Publication Date
CN101571807A true CN101571807A (zh) 2009-11-04

Family

ID=41216138

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200810301385XA Pending CN101571807A (zh) 2008-04-28 2008-04-28 具有固件的系统及其启动方法

Country Status (2)

Country Link
US (1) US20090271603A1 (zh)
CN (1) CN101571807A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944051A (zh) * 2010-09-29 2011-01-12 山东大学 片上多备份的高可靠嵌入式系统固件及其工作方法
CN109284135A (zh) * 2018-09-07 2019-01-29 深圳市航顺芯片技术研发有限公司 一种简捷调用微控制器内部启动程序的方法
CN109358982A (zh) * 2018-08-16 2019-02-19 成都华为技术有限公司 硬盘自愈装置、方法以及硬盘
US10528434B2 (en) 2014-12-22 2020-01-07 Xiaomi Inc. Method, device and terminal for restoring firmware program

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043651B (zh) * 2009-10-22 2013-07-03 鸿富锦精密工业(深圳)有限公司 Nand闪存及其数据更新管理方法
TWI425514B (zh) * 2009-10-29 2014-02-01 Hon Hai Prec Ind Co Ltd Nand快閃記憶體及其資料更新管理方法
US8849647B2 (en) * 2011-10-19 2014-09-30 Lsi Corporation Dual-firmware for next generation emulation
US20130166893A1 (en) * 2011-12-23 2013-06-27 Sandisk Technologies Inc. Auxiliary card initialization routine
CN102830990A (zh) * 2012-07-20 2012-12-19 大唐移动通信设备有限公司 一种计算机系统启动方法及计算机终端
CN103279399A (zh) * 2013-06-27 2013-09-04 北京汉邦高科数字技术股份有限公司 一种嵌入式CPU在NAND Flash上启动的方法
US9448888B2 (en) * 2013-11-15 2016-09-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
US9899053B1 (en) 2016-10-11 2018-02-20 Seagate Technology Llc Protecting against unauthorized firmware updates using induced servo errors
KR102612842B1 (ko) 2018-09-17 2023-12-13 에스케이하이닉스 주식회사 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치
JP2020087293A (ja) * 2018-11-30 2020-06-04 キヤノン株式会社 情報処理装置および情報処理装置の制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5938764A (en) * 1996-10-23 1999-08-17 Micron Electronics, Inc. Apparatus for improved storage of computer system configuration information
US6438687B2 (en) * 1997-10-30 2002-08-20 Micron Technology, Inc. Method and apparatus for improved storage of computer system configuration information
US8196130B2 (en) * 2000-11-17 2012-06-05 Hewlett-Packard Development Company, L.P. Tri-phase boot process in electronic devices
GB0116568D0 (en) * 2001-07-06 2001-08-29 Ncipher Corp Ltd Firmware validation
CA2357382A1 (en) * 2001-09-17 2003-03-17 Soma Networks, Inc. Software update method, apparatus and system
US7299345B2 (en) * 2001-09-28 2007-11-20 Hewlett-Packard Development Company, L.P. Reserved ROM space for storage of operating system drivers
US7640424B2 (en) * 2005-10-13 2009-12-29 Sandisk Corporation Initialization of flash storage via an embedded controller

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944051A (zh) * 2010-09-29 2011-01-12 山东大学 片上多备份的高可靠嵌入式系统固件及其工作方法
US10528434B2 (en) 2014-12-22 2020-01-07 Xiaomi Inc. Method, device and terminal for restoring firmware program
CN109358982A (zh) * 2018-08-16 2019-02-19 成都华为技术有限公司 硬盘自愈装置、方法以及硬盘
CN109358982B (zh) * 2018-08-16 2021-08-13 成都华为技术有限公司 硬盘自愈装置、方法以及硬盘
CN109284135A (zh) * 2018-09-07 2019-01-29 深圳市航顺芯片技术研发有限公司 一种简捷调用微控制器内部启动程序的方法
CN109284135B (zh) * 2018-09-07 2022-02-01 深圳市航顺芯片技术研发有限公司 一种简捷调用微控制器内部启动程序的方法

Also Published As

Publication number Publication date
US20090271603A1 (en) 2009-10-29

Similar Documents

Publication Publication Date Title
CN101571807A (zh) 具有固件的系统及其启动方法
CN101281469B (zh) 嵌入式系统及其启动加载的方法
US20070055969A1 (en) System and method for updating firmware
US7313682B2 (en) Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code
CN101251813A (zh) 手机系统恢复装置及其方法
CN105760200A (zh) 终端设备及其系统升级方法
CN101188516B (zh) 一种网络设备软件系统高可靠性自适应远程更新的方法
CN101923473B (zh) 嵌入式电子装置及更新其固件的方法
CN106020861A (zh) 一种智能手表的fota升级方法及系统
CN104166561A (zh) 电子设备系统启动方法和电子设备
CN103299276A (zh) 嵌入式装置的软件更新过程
CN107566169B (zh) 一种基于openwrt的固件升级方法及路由器
CN110231949A (zh) 系统升级方法、装置、电子设备和存储介质
CN102722394A (zh) 一种嵌入式设备的启动升级方法
CN109753299A (zh) 一种系统升级方法、装置以及计算机存储介质
CN102314354A (zh) 一种嵌入式系统启动方法及嵌入式装置
WO2021103745A1 (zh) 一种引导程序的保护设计方法
CN110413230A (zh) 一种嵌入式系统构建方法及存储介质
CN108345464A (zh) 一种安卓系统的启动方法及安卓车机
CN101330695A (zh) 一种移动终端及其系统升级的方法和装置
CN102063317A (zh) 一种嵌入式设备重新烧写应用程序的方法及系统
CN101639877B (zh) 电子装置及其更新基本输入输出系统方法
CN117130672A (zh) 服务器启动流程控制方法、系统、终端及存储介质
CN107329855A (zh) 还原固件信息的方法及装置
CN104765631A (zh) 一种移动终端的应用程序恢复方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20091104