CN1629808A - 固件更新的方法 - Google Patents

固件更新的方法 Download PDF

Info

Publication number
CN1629808A
CN1629808A CN 200310124702 CN200310124702A CN1629808A CN 1629808 A CN1629808 A CN 1629808A CN 200310124702 CN200310124702 CN 200310124702 CN 200310124702 A CN200310124702 A CN 200310124702A CN 1629808 A CN1629808 A CN 1629808A
Authority
CN
China
Prior art keywords
firmware
execution
indication
stored
microprocessor
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.)
Granted
Application number
CN 200310124702
Other languages
English (en)
Other versions
CN100543676C (zh
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.)
Tatung Co Ltd
Original Assignee
Tatung 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 Tatung Co Ltd filed Critical Tatung Co Ltd
Priority to CNB2003101247022A priority Critical patent/CN100543676C/zh
Publication of CN1629808A publication Critical patent/CN1629808A/zh
Application granted granted Critical
Publication of CN100543676C publication Critical patent/CN100543676C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明是关于一种固件更新的方法,可用于微处理器内部固件的更新,微处理器内部组设有一应用储存器、一负载储存器、及一暂存储存器,于负载储存器内储存固件更新程序以及固件检测程序,于每次开机时,检测固件是否正确,另外,能在固件更新的过程中,确保更新的正确性及完整性,如果在固件更新的过程中,发生固件更新失败的情况,处理机将重覆执行固件更新程序,并提示使用者重新执行固件更新的动作,直到成功完成固件更新为止。

Description

固件更新的方法
技术领域
本发明是关于一种固件更新的方法,尤指一种用于微处理器的固件更新。
背景技术
电脑系统中是由微处理器来执行运算处理,微处理器通常会先执行储存于储存设备(例如:ROM)中的程序以作为中介程序或驱动程序,以作为微处理器与外界沟通的桥梁。储存于储存设备的程序一般又称的为固件,如果固件是为错误,其结果将造成微处理器无法运作,辛好,在使用者正常地使用下,固件是由制造商所决定,且都是完整可执行的。如图1所示,整合性微处理器10是具有应用储存器(Application Memory)11、负载储存器(Load Memory)12、及暂存储存器13,整合性微处理器10可存取外部储存器14并与周边装置15进行相关的资料传输。其中,负载储存器12内部储存固件更新程序,当使用者欲进行固件更新的处理时,固件更新程序依序将新版的固件载入至应用储存器中,当电脑系统重置后,整合性微处理器10载入应用储存器11内部所储存的固件,使整合性微处理器10可与外部储存器14及周边装置15进行沟通。暂存储存器13是用以储存暂存值或储存旗标(Flag),而旗标可作提供整合性微处理器10进行组态(configuration)设定的判断。
由于功能上的精进或是进行除虫(debug)处理,使用者需执行固件更新程序以取得较新或功能较多的新版本固件。使用者执行固件更新程序以更新整合性微处理器10所使用的固件,如果,在使用者更新固件的过程中,发生非预期的状况,例如:断电、固件传输中断、或固件程序码错误等情形,因为整合性微处理器10尚未完成固件更新的步骤,此时整合性微处理器10所储存的固件可能为不完整或错误的固件,当电脑系统重置时,由于固件无法有效地载入至整合性微处理器10或无法执行,电脑系统将进入当机的模式,此时,使用者亦无法得知电脑系统所产生的问题所在。因此,现有的固件更新方法并无法有效保护整合性微处理器10进行固件更新时的系统安全,而有予以改进的必要。
发明内容
本发明的主要目的是在提供一种固件更新的方法,以便能于固件更新的过程中,如果发生固件更新失败时,将重覆执行固件更新的程序,直到完成固件更新为止。
本发明的次要目的是在提供一种固件更新的方法,以便能于固件更新的过程中,如果发生固件更新失败时,微处理机能提示使用者重新执行固件更新的动作。
为达成上述目的,本发明揭露一种固件更新的方法,可用于微处理器内部固件的更新,微处理器内部组设有应用储存器、负载储存器、及暂存储存器,其包括下列步骤:(A)电脑系统开机;(B)读取负载储存器所储存的固件,并执行;(C)判断是否存在更新指示,如果成立则执行步骤(I);(D)判断是否存在错误指示,如果成立则执行步骤(I);(E)判断应用储存器所储存的固件是否正确,如果不成立则执行步骤(K);(F)读取应用储存器所储存的固件,并执行;(G)判断是否欲更新应用储存器所储存的固件,如果不成立则重覆执行步骤(G);(H)储存更新指示并执行步骤(B);(I)执行固件更新的程序;(J)判断应用储存器所储存的固件是否正确,如果成立则执行步骤(L);(K)储存错误指示并执行步骤(B);以及(L)清除更新指示以及该错误指示,并执行步骤(B);其中更新指示及错误指示是储存于暂存储存器。
附图说明
图1是电脑系统的方块图;
图2是本发明固件更新方法的流程图。
具体实施方式
为能更了解本发明的技术内容,特举一较佳具体实施例说明如下。
在图电脑系统的架构下,并于负载储存器12内部储存固件,此固件是包括:固件更新程序以及固件检测程序。固件检测程序是用以检测应用储存器11所储存的固件程序码是否正确,其检测的方式较佳是使用错误检查码(checksum code)以检测固件程序码是否正确,当然,使用者亦可于固件程序码中加入假程序码(pseudo code)以供固件检测程序进行固件程序码的检测。
请参阅图2所示,本发明固件更新的方法是应用于整合性微处理器10,并需要应用储存器11、负载储存器12、及暂存储存器13的配合运作,其包括下列步骤:
步骤S20:电脑系统开机。
步骤S21:读取负载储存器12所储存的固件,并执行。每当电脑系统开机时,整合性微处理器10将会读取负载储存器所储存的固件,并执行此固件。
步骤S22:判断是否存在更新指示?整合性微处理器10检查暂存储存器13的旗标,以判断是否存在更新指示。假设,暂存储存器13中的一个旗标是作为更新旗标,且其预设值为0。如果更新旗标的值为1时,则执行步骤S28,否则执行步骤S23。
步骤S23:判断是否存在错误指示?整合性微处理器10检查暂存储存器13的旗标,以判断是否存在错误指示。假设,暂存储存器13中的另一个旗标是作为错误旗标,且其预设值为0。如果错误旗标的值为1时,则执行步骤S28,否则执行步骤S24。
步骤S24:判断应用储存器所储存的固件是否正确?整合性微处理器10呼叫固件检测程序以检测应用储存器11所储存的固件时,如果固件程序码为正确,则不变更错误旗标的值,并执行步骤S25;当固件检测程序执行固件检测时,检测的结果是表示固件程序码错误,则执行步骤S30。
步骤S25:读取应用储存器11所储存的固件,并执行。当读取应用储存器11所储存的固件是为正确且完整时,整合性微处理器10开始读取应用储存器11所储存的固件,并执行。
步骤S26:判断是否欲更新应用储存器所储存的固件?如果使用者欲更新固件,则执行步骤S27,否则,重覆执行步骤S26。
步骤S27:储存更新指示。整合性微处理器10将更新旗标的值由0变更至1,以储存更新指示,并执行步骤S21。
步骤S28:执行固件更新的程序。整合性微处理器10呼叫负载储存器12内部所储存的固件更新程序以进行固件更新的程序,并执行步骤S29。可想而知,此时使用者需提供新版的固件程序码,固件更新程序方能完成固件更新的程序。
步骤S29:判断应用储存器所储存的固件是否正确?整合性微处理器10呼叫负载储存器12内部所储存的固件检测程序以判断应用储存器所储存的固件是否正确。如果固件是为完整且正确,则执行步骤S31,否则执行步骤S30。
步骤S30:储存错误指示。整合性微处理器10将错误旗标的值由0变更至1,以储存错误指示,并执行步骤S21。
步骤S31:清除更新指示及错误指示。整合性微处理器10将更新旗标及错误旗标的值,皆由1变更至0,以清除更新指示及错误指示,并执行步骤S21。
如此一来,电脑系统于每次开机时,由固件检测程序来检查固件是否正确,如果固件出现异常的情形,则由使用者界面而告知使用者此固件异常的情况,并执行步骤S28以更新固件。如此一来,可确保更新固件过程的完整性和正确性,避免使用者因为固件错误而导致电脑系统无法开机的情形。
上述实施例仅是为了方便说明而举例而已,本发明所主张的权利范围自应以申请专利范围所述为准,而非仅限于上述实施例。

Claims (2)

1.一种固件更新的方法,可用于微处理器内部固件的更新,微处理器内部组设有一应用储存器、一负载储存器、及一暂存储存器,其特征在于,其包括下列步骤:
(A)电脑系统开机;
(B)读取该负载储存器所储存的固件,并执行;
(C)判断是否存在一更新指示,如果成立则执行步骤(I);
(D)判断是否存在一错误指示,如果成立则执行步骤(I);
(E)判断该应用储存器所储存的固件是否正确,如果不成立则执行步骤(K);
(F)读取该应用储存器所储存的固件,并执行;
(G)判断是否欲更新该应用储存器所储存的固件,如果不成立则重覆执行步骤(G);
(H)储存该更新指示并执行步骤(B);
(I)执行固件更新的程序;
(J)判断该应用储存器所储存的固件是否正确,如果成立则执行步骤(L);
(K)储存该错误指示并执行步骤(B);以及
(L)清除该更新指示以及该错误指示,并执行步骤(B);其中
该更新指示及该错误指示是储存于该暂存储存器。
2.如权利要求1所述的方法,其特征在于,所述该更新指示及该错误指示是以旗标的形态,储存于该暂存储存器。
CNB2003101247022A 2003-12-18 2003-12-18 固件更新的方法 Expired - Fee Related CN100543676C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101247022A CN100543676C (zh) 2003-12-18 2003-12-18 固件更新的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101247022A CN100543676C (zh) 2003-12-18 2003-12-18 固件更新的方法

Publications (2)

Publication Number Publication Date
CN1629808A true CN1629808A (zh) 2005-06-22
CN100543676C CN100543676C (zh) 2009-09-23

Family

ID=34845053

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101247022A Expired - Fee Related CN100543676C (zh) 2003-12-18 2003-12-18 固件更新的方法

Country Status (1)

Country Link
CN (1) CN100543676C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104624A (zh) * 2009-12-21 2011-06-22 英特尔公司 提供软件分发和更新服务而不管端点机的状态或物理位置
CN104239109A (zh) * 2014-09-30 2014-12-24 上海瑞猫自动化控制技术有限公司 嵌入式系统固件在线管理方法
CN111651297A (zh) * 2020-05-21 2020-09-11 深圳市同泰怡信息技术有限公司 一种sps固件监测方法和监测系统
CN111766797A (zh) * 2019-04-02 2020-10-13 海盗船存储器公司 微控制器、存储模块及用于更新微控制器的韧件的方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI478061B (zh) * 2012-04-03 2015-03-21 Asrock Inc 更新韌體的方法
TWI475486B (zh) * 2012-06-06 2015-03-01 Acer Inc 執行按鍵功能的方法及電子裝置
TWI498822B (zh) * 2012-12-27 2015-09-01 Giga Byte Tech Co Ltd 可更新基本輸入輸出系統的電子裝置及其基本輸入輸出系統的更新方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104624A (zh) * 2009-12-21 2011-06-22 英特尔公司 提供软件分发和更新服务而不管端点机的状态或物理位置
CN104239109A (zh) * 2014-09-30 2014-12-24 上海瑞猫自动化控制技术有限公司 嵌入式系统固件在线管理方法
CN111766797A (zh) * 2019-04-02 2020-10-13 海盗船存储器公司 微控制器、存储模块及用于更新微控制器的韧件的方法
CN111651297A (zh) * 2020-05-21 2020-09-11 深圳市同泰怡信息技术有限公司 一种sps固件监测方法和监测系统
CN111651297B (zh) * 2020-05-21 2023-10-03 深圳市同泰怡信息技术有限公司 一种sps固件监测方法和监测系统

Also Published As

Publication number Publication date
CN100543676C (zh) 2009-09-23

Similar Documents

Publication Publication Date Title
CN108268770B (zh) 一种栈溢出检测系统及方法
KR100868762B1 (ko) 임베디드용 소프트웨어의 오류 검출 방법
US6071317A (en) Object code logic analysis and automated modification system and method
US8499295B2 (en) Microcontroller firmware running from RAM and applications of the same
US20040205745A1 (en) Method and system for identifying compatibility between firmware images
US6874138B1 (en) Method and apparatus for resuming execution of a failed computer program
US20080148022A1 (en) Marking registers as available for register renaming
US8732681B2 (en) Stack analysis for post mortem analysis
US20070006222A1 (en) Software installation method and computer system
US20090320014A1 (en) System and method for offline updation of software in virtual machine (vm) images
US20080270855A1 (en) Method For Detecting Memory Error
CN101373451B (zh) 保护双基本输出入系统程序的计算机系统及其控制方法
CN104239082A (zh) 嵌入式系统的热补丁实现方法
US20150150024A1 (en) Method of detecting stack overflows and processor for implementing such a method
US20070101115A1 (en) Information processing device, bios processing method and program
CN100334561C (zh) 程序调试装置、程序调试方法
CN111133418B (zh) 在例外屏蔽更新指令之后允许未中止的事务处理
CN1629808A (zh) 固件更新的方法
CN106201640A (zh) 一种升级BootLoader程序的方法及装置
CN111562934A (zh) 一种基于热补丁的软件系统升级方法、终端及存储介质
CN100570560C (zh) 启动芯片软件版本信息设置方法和装置
CN100547554C (zh) 错误处理方法和信息处理装置
CN113986771B (zh) 用于调试目标程序代码的方法及装置、电子设备
US20080209265A1 (en) Information-Processing Method and Apparatus
KR101844095B1 (ko) 부트로더 실행 방법 및 장치

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090923

Termination date: 20111218