CN101571807A - 具有固件的系统及其启动方法 - Google Patents
具有固件的系统及其启动方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- 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
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot 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所述的具有固件的系统的启动方法,其特征在于:所述引导载入模块是通过校验和算法验证所述主固件模块是否处于正常状态。
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)
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)
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)
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 |
-
2008
- 2008-04-28 CN CNA200810301385XA patent/CN101571807A/zh active Pending
- 2008-05-28 US US12/127,934 patent/US20090271603A1/en not_active Abandoned
Cited By (6)
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 |