CN105159810B - 对计算机系统的bios进行测试的方法及装置 - Google Patents
对计算机系统的bios进行测试的方法及装置 Download PDFInfo
- Publication number
- CN105159810B CN105159810B CN201510680541.8A CN201510680541A CN105159810B CN 105159810 B CN105159810 B CN 105159810B CN 201510680541 A CN201510680541 A CN 201510680541A CN 105159810 B CN105159810 B CN 105159810B
- Authority
- CN
- China
- Prior art keywords
- submodule
- bios
- sequence
- value
- failure
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种对计算机系统的BIOS进行测试的方法以及基于该方法对计算机系统的BIOS进行测试的装置。所述方法包括:顺序运行BIOS的多个子模块;记录已运行的子模块所对应的标识符,并存储在CMOS中;设置用于标明所述多个子模块的顺序运行为成功或失败的标志位;在计算机系统重启时,根据所述标志位的值来判定所述多个子模块的顺序运行是否为失败,如果为失败,则不进行所述记录。本发明的优点是:BIOS测试工程师无需像传统方法那样进行拆机,或依赖于外部工具和操作上较为复杂的第三方软件就可实现及时了解BIOS的运行信息、确定运行出错的子模块。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种对计算机系统的BIOS进行测试的方法及装置。
背景技术
在对计算机系统(如笔记型电脑)进行测试的过程中,经常会出现各种死机,异常重启及关机的情况,当出现类似情况时,BIOS(Basic Input Output System,基本输入/输出系统)工程师需要立即了解当前的详细的BIOS代码(BIOS code)的数据信息。现有的解决方案通常有:1、发布特殊版本的BIOS,缺点是该方案增加了问题解决的时间;2、通过借助外部工具或者第三方软件来实现,缺点是:使用外部工具往往需要拆机步骤,并且增加了成本,而第三方软件在操作上比较复杂,不利于应用。
发明内容
本发明的目的在于提供一种对计算机系统的BIOS进行测试的方法及装置,通过该方法和/或装置,能够在不拆机前提下,简单易行地对BIOS中运行出错的子模块进行定位。
为了实现上述目的,本发明一方面提供了一种对计算机系统的BIOS进行测试的方法,包括:顺序运行BIOS的多个子模块;记录已运行的子模块所对应的标识符,并存储在CMOS中;设置用于标明所述多个子模块的顺序运行为成功或失败的标志位;在计算机系统重启时,根据所述标志位的值来判定所述多个子模块的顺序运行是否为失败,如果为失败,则不进行所述记录。
优选地,该方法还包括:记录已运行的子模块的检查点数据,并存储在CMOS中。
优选地,所述设置用于标明所述多个子模块的顺序运行为成功或失败的标志位具体包括:将所述标志位的值预设为用于标明所述多个子模块的顺序运行为失败的值;以及如果所述多个子模块的顺序运行为成功,则将所述标志位的值变更为用于标明所述多个子模块的顺序运行为成功的值。
优选地,所述多个子模块包括:多个PEI模块和/或多个DXE Driver模块。
作为本发明的另一方案,还提供一种基于上述方法对计算机系统的BIOS进行测试的装置,包括:执行模块,其配置为顺序运行BIOS的多个子模块;记录转存模块,其配置为记录已运行的子模块所对应的标识符,并存储在CMOS中;标志位设置模块,其配置为设置用于标明所述多个子模块的顺序运行为成功或失败的标志位;以及判定模块,其配置为在计算机系统重启时,根据所述标志位的值来判定所述多个子模块的顺序运行是否为失败,如果为失败,则使所述记录转存模块失效。
优选地,所述记录转存模块还配置为:记录已运行的子模块的检查点数据,并存储在CMOS中。
优选地,所述标志位设置模块具体包括:标志位值预设模块,其配置为将所述标志位的值预设为用于标明所述多个子模块的顺序运行为失败的值;以及标志位值变更模块,其配置为如果所述多个子模块的顺序运行为成功,则将所述标志位的值变更为用于标明所述多个子模块的运行为成功的值。
优选地,所述多个子模块包括:多个PEI模块和/或多个DXE Driver模块。
附图说明
图1为本发明实施例的一种对计算机系统的BIOS进行测试的方法的流程示意图。
图2为本发明一优选实施例的对计算机系统的BIOS进行测试的方法的流程示意图。
图3为一种基于本发明实施例的方法对计算机系统的BIOS进行测试的装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明,下面参照附图对本发明的实施例进行详细说明。
图1示出了本发明实施例的一种对计算机系统的BIOS进行测试的方法的流程示意图。如图1所示,该方法包括以下步骤:
顺序运行BIOS的多个子模块。即,执行BIOS POST(Power On Self Test,加电自检)过程。
在BIOS POST过程中,记录已运行的子模块所对应的标识符,并存储在CMOS中。BIOS的各个子模块具有全局唯一标识符(GUID),以作为对子模块的标识。
设置用于标明该多个子模块的顺序运行为成功或失败的标志位Boot Flag。BootFlag意在用于标明多个子模块的顺序运行是否成功,也即是标明BIOS启动成功或失败。
如果BIOS启动失败,将导致计算机重启。在计算机系统重启时,根据Boot Flag的值来判定该多个子模块的顺序运行,即BIOS上一次启动是否失败,如果失败,则不记录子模块所对应的标识符。从而,可以确保CMOS中存储的是上一次运行BIOS的各个子模块时的最新信息,因此,本领域技术人员可以通过访问CMOS,根据CMOS中存储的GUID信息来确定运行出错的子模块。说明的是,如果由于BIOS运行失败而导致计算机重启,则理论上Boot Flag的值必然是标明运行失败的情况,如在这种情况下出现相反的情况,则进入异常处理,但这并非本发明的重点,因此不对其进行赘述。
本实施例提供的对计算机系统的BIOS进行测试的方法,不需要像传统方法那样进行拆机,该方法利用CMOS进行存储,并通过已运行的BIOS子模块的标识符,使得本领域技术人员能够简单方便地确定运行出错的子模块,无需依赖于外部工具和第三方软件就实现了及时了解BIOS的运行信息、确定运行出错的子模块。
图2示出了本发明一优选实施例的对计算机系统的BIOS进行测试的方法的流程示意图。本实施例的方法包括如下步骤:
顺序运行BIOS的多个子模块。即,执行BIOS POST(Power On Self Test,加电自检)过程。该多个子模块优选为BIOS中的多个PEI模块和/或多个DXE Driver模块。
在BIOS POST过程中,记录已运行的子模块所对应的标识符GUID和检查点(Checkpoint)数据,并存储在CMOS中。可选地,可以存储GUID的高4个字节而不是整个GUID,也就是,只要确保所存储的GUID的信息能够唯一地标识出子模块即可。
设置用于标明该多个子模块的顺序运行为成功或失败的标志位Boot Flag。对Boot Flag的值的设置较佳地包括这样的步骤:将Boot Flag的值预设为Boot Flag=0,当Boot Flag的值为0时,用于标明BIOS启动失败;如果多个子模块顺序运行成功,即BIOS启动成功,则设置Boot Flag=1。可以理解的是,如果运行到某个子模块时出错,则会导致计算机重启,此时Boot Flag的值仍然为0。可见,Boot Flag的值能够用于判定BIOS启动为成功或失败。
在计算机系统重启时,根据Boot Flag的值判定该多个子模块的顺序运行是否为失败。如果为失败,则不记录子模块对应的GUID和Checkpoint数据(例如,自动关闭记录功能)。从而,BIOS工程师可以根据CMOS中存储的GUID和Checkpoint数据容易地确定BIOS运行出错的具体位置。
在本优选实施例中,能够对BIOS运行的信息(GUID、Checkpoint数据)进行更详细的记录,方便BIOS工程师及时了解BIOS的详细运行情况。且本实施例的方法对于BIOS中易于出错的PEI模块和DXE Driver模块的错误位置的判定尤其有效。
在一可选实施例中,Boot Flag可以设置或存储在CMOS中。
在本发明再一个实施例中,提供了一种基于上述方法对计算机系统的BIOS进行测试的装置10。如图3所示,该装置包括:执行模块101,其顺序运行BIOS的多个子模块,例如,该多个子模块可以为多个PEI模块和/或多个DXE Driver模块;记录转存模块102,其记录已运行的子模块所对应的标识符,并存储在CMOS中;标志位设置模块103,其设置用于标明该多个子模块的顺序运行为成功或失败的标志位;以及判定模块104,其在计算机系统重启时,根据该标志位的值来判定该多个子模块的顺序运行是否为失败,如果为失败,则使该记录转存模块102失效。
由于通过CMOS存储了上一次运行BIOS的各个子模块时的最新信息,因此,本领域技术人员可以通过访问CMOS,以根据CMOS中存储的GUID信息来确定运行出错的子模块,因此本实施例提供的对计算机系统的BIOS进行测试的装置无需对计算机系统进行拆机操作,而且能够简便及时地获取BIOS运行出错时的信息。
在一优选实施例中,该标志位设置模块103包括:标志位值预设模块,其将该标志位的值预设为用于标明该多个子模块的顺序运行为失败的值;以及标志位值变更模块,如果该多个子模块的顺序运行为成功,则其将该标志位的值变更为用于标明该多个子模块的运行为成功的值。
在另一优选实施例中,本实施例中的记录转存模块102还可以配置为:记录已运行的子模块的检查点(Checkpoint)数据,并存储在CMOS中。从而,BIOS工程师(本领域技术人员)可以方便地根据CMOS中存储的GUID和Checkpoint数据来确定BIOS运行出错的具体位置。
本发明不局限于上述特定实施例,在不背离本发明精神及其实质情况下,熟悉本领域的技术人员可根据本发明作出各种相应改变和变形,但这些相应改变和变形都应属于本发明所附权利要求的保护范围之内。
Claims (6)
1.一种对计算机系统的BIOS进行测试的方法,包括:
顺序运行BIOS的多个子模块;所述多个子模块包括:多个PEI模块和/或多个DXEDriver模块;
记录已运行的子模块所对应的标识符,并存储在CMOS中;
设置用于标明所述多个子模块的顺序运行为成功或失败的标志位;
在计算机系统重启时,根据所述标志位的值来判定所述多个子模块的顺序运行是否为失败,如果为失败,则不进行所述记录。
2.如权利要求1所述的方法,还包括:
记录已运行的子模块的检查点数据,并存储在CMOS中。
3.如权利要求1或2所述的方法,其中,所述设置用于标明所述多个子模块的顺序运行为成功或失败的标志位具体包括:
将所述标志位的值预设为用于标明所述多个子模块的顺序运行为失败的值;以及
如果所述多个子模块的顺序运行为成功,则将所述标志位的值变更为用于标明所述多个子模块的顺序运行为成功的值。
4.一种基于如权利要求1所述的方法对计算机系统的BIOS进行测试的装置,包括:
执行模块,其配置为顺序运行BIOS的多个子模块;所述多个子模块包括:多个PEI模块和/或多个DXE Driver模块;
记录转存模块,其配置为记录已运行的子模块所对应的标识符,并存储在CMOS中;
标志位设置模块,其配置为设置用于标明所述多个子模块的顺序运行为成功或失败的标志位;以及
判定模块,其配置为在计算机系统重启时,根据所述标志位的值来判定所述多个子模块的顺序运行是否为失败,如果为失败,则使所述记录转存模块失效。
5.如权利要求4所述的装置,其中,所述记录转存模块还配置为:记录已运行的子模块的检查点数据,并存储在CMOS中。
6.如权利要求4或5所述的装置,其中,所述标志位设置模块具体包括:
标志位值预设模块,其配置为将所述标志位的值预设为用于标明所述多个子模块的顺序运行为失败的值;以及
标志位值变更模块,其配置为如果所述多个子模块的顺序运行为成功,则将所述标志位的值变更为用于标明所述多个子模块的运行为成功的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510680541.8A CN105159810B (zh) | 2015-10-16 | 2015-10-16 | 对计算机系统的bios进行测试的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510680541.8A CN105159810B (zh) | 2015-10-16 | 2015-10-16 | 对计算机系统的bios进行测试的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105159810A CN105159810A (zh) | 2015-12-16 |
CN105159810B true CN105159810B (zh) | 2019-05-24 |
Family
ID=54800672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510680541.8A Active CN105159810B (zh) | 2015-10-16 | 2015-10-16 | 对计算机系统的bios进行测试的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159810B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912393A (zh) * | 2016-04-12 | 2016-08-31 | 合肥联宝信息技术有限公司 | 禁止bios系统部分功能的方法、装置及计算机 |
CN107480052B (zh) * | 2017-07-21 | 2020-11-13 | 广东虹勤通讯技术有限公司 | 一种定位宕机时bios代码的方法及装置 |
CN111504427B (zh) * | 2020-05-27 | 2021-10-22 | 岳海民 | 一种燃气表检表方法及应用该检表方法的燃气表 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192181A (zh) * | 2006-11-22 | 2008-06-04 | 英业达股份有限公司 | 开机自我检测方法 |
CN102253873A (zh) * | 2010-05-19 | 2011-11-23 | 鸿富锦精密工业(深圳)有限公司 | Bios报警系统及方法 |
CN103729219A (zh) * | 2013-12-25 | 2014-04-16 | 合肥联宝信息技术有限公司 | 一种uefi bios架构方法及系统 |
CN103729220A (zh) * | 2013-12-25 | 2014-04-16 | 合肥联宝信息技术有限公司 | 一种利用ec rom恢复bios rom的方法及装置 |
-
2015
- 2015-10-16 CN CN201510680541.8A patent/CN105159810B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192181A (zh) * | 2006-11-22 | 2008-06-04 | 英业达股份有限公司 | 开机自我检测方法 |
CN102253873A (zh) * | 2010-05-19 | 2011-11-23 | 鸿富锦精密工业(深圳)有限公司 | Bios报警系统及方法 |
CN103729219A (zh) * | 2013-12-25 | 2014-04-16 | 合肥联宝信息技术有限公司 | 一种uefi bios架构方法及系统 |
CN103729220A (zh) * | 2013-12-25 | 2014-04-16 | 合肥联宝信息技术有限公司 | 一种利用ec rom恢复bios rom的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105159810A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10365961B2 (en) | Information handling system pre-boot fault management | |
US6393586B1 (en) | Method and apparatus for diagnosing and conveying an identification code in post on a non-booting personal computer | |
CN110750396B (zh) | 一种服务器操作系统兼容性测试方法、装置及存储介质 | |
US10922071B2 (en) | Centralized off-board flash memory for server devices | |
US20120191963A1 (en) | BIOS Updating System, BIOS Updating Method, and Related Computer Program Product | |
CN103970564A (zh) | 嵌入式操作系统自动修复升级功能的方法及其系统 | |
CN105159810B (zh) | 对计算机系统的bios进行测试的方法及装置 | |
CN106844177B (zh) | Linux日志管理方法、装置和系统 | |
CN103577201A (zh) | 嵌入式双系统的更新方法及系统 | |
CN105204968A (zh) | 一种故障内存检测方法和装置 | |
CN104049999A (zh) | 基于网络的存储设备自动修复系统及其方法 | |
US20050033952A1 (en) | Dynamic scheduling of diagnostic tests to be performed during a system boot process | |
CN113315675B (zh) | 一种白盒交换机U-Boot自动化测试方法、系统和存储介质 | |
CN110096882B (zh) | 一种设备运行过程中的安全度量方法 | |
CN113672306A (zh) | 服务器组件自检异常恢复方法、装置、系统及介质 | |
CN102122258A (zh) | 嵌入式设备文件系统受损的修复方法 | |
US20140143601A1 (en) | Debug device and debug method | |
CN105183580A (zh) | 一种引导程序的存储方法、故障恢复方法及设备 | |
CN104750600A (zh) | 设备状态记录方法和系统 | |
CN104657232A (zh) | Bios自动恢复系统及方法 | |
CN109375953A (zh) | 一种操作系统启动方法及装置 | |
CN105718324A (zh) | 移动终端升级过程异常掉电的模拟测试方法、装置和设备 | |
CN104317645B (zh) | 一种应用程序实例监听端口的方法及装置 | |
US7415560B2 (en) | Method of automatically monitoring computer system debugging routine | |
CN105955857A (zh) | 一种检验bios的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |