一种设备诊断方法及系统技术方案

技术编号:6988549 阅读:206 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种设备诊断方法和系统,其中,所述设备诊断方法包括:当系统启动后,判断是否进入诊断模式;当判断进入诊断模式时,通过执行诊断程序对设备进行诊断;当判断不进入诊断模式时,进行常规BIOS或EFI启动。本发明专利技术实施例通过在系统启动后先判断是否进入诊断模式,如果是,则进入诊断模式,如果否,则继续执行常规BIOS或EFI启动,可以实现对设备的准确诊断;且当设备出现内存或PCI/PCIE总线错误时,由于诊断程序是在BIOS启动前加载,因此,也可以实现故障的诊断。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种设备诊断方法及系统
技术介绍
在IT及电子通信领域,为了提高设备运行的可靠性以及增强设备的可维护性,一 般都会对设备进行诊断检测,如果有错误,输出相关错误信息,后续根据这些出错信息对设 备进行维护操作。基于X86体系的设备先通过BIOS (Basic Input Output System,基本输入输出系 统)或EFI (Extensible Firmware hterface,可扩展固件接口 )启动系统,完成硬件设备 的初始化及诊断,然后再进入操作系统。以通过BIOS启动为例,为了对硬件设备进行诊断, 现有技术常采用在BIOS中加入调试程序,通过运行调试程序向0x80端口输出调试信息方 法,这些诊断信息往往比较简单,给出的信息量较少,无法对故障做出更准确的判断。为了得到更准确的诊断信息,现有技术通过一个专门的诊断程序,在操作系统下 运行或者在BIOS启动阶段通过特殊的按键触发来进行诊断检测。参见图1,系统上电后进 入BIOS程序执行,先初始化CPU,然后再对内存、PCI/PCIE、VGA等设备进行初始化,接着判 断是否有指定键按下,如果有,则进入诊断模式进行诊断,可以包括对键盘、内存、PCI设备、 硬盘等设备的诊断;如果没有指定键按下,则接着进行BIOS启动及进入0S。由于在进入诊 断模式前已经对内存、VGA等设备进行了初始化,因此,诊断完成后通过显示器将信息详细 地显示出来,这样可以让用户更精确地对设备故障进行定位,使得维护更加方便。专利技术人在实现本专利技术的过程中发现现有技术至少存在如下缺点使用0x80端口调试时,输出的信息往往过于简单,无法对故障做出准确的判断; 而使用专门诊断程序由于在BIOS操作系统下运行或在BIOS启动阶段运行,当因为内存或PCI/PCIE (Peripheral Component Interconnect/PeripheralComponent Interconnect Express,外设连接总线/外设连接增加型总线)出现故障时,往往无法使用显示器、键盘等 设备,从而也就无法实现诊断功能。
技术实现思路
本专利技术实施例提供一种设备诊断方法和系统,用于对设备进行准确诊断,且在内 存或PCI/PCIE等设备出现故障时也能实现诊断功能。其中,一种设备诊断方法包括当系统启动后,判断是否进入诊断模式;当判断进入诊断模式时,通过执行诊断程序对设备进行诊断;当判断不进入诊断模式时,进行常规BIOS或EFI启动。其中,一种设备诊断系统包括判断单元,用于当系统启动后,判断是否进行诊断模式;诊断单元,用于当所述判断单元判断进行诊断模式后,通过执行诊断程序对设备3进行诊断;常规启动单元,用于当所述判断单元判断不进入诊断模式时,进行常规BIOS或 EFI启动。上述技术方案中具有如下的优点本专利技术实施例通过在系统启动后先判断是否进入诊断模式,如果是,则进入诊断 模式,如果否,则继续执行BIOS或EFI启动,可以实现对设备的准确诊断;且当设备出现内 存或PCI/PCIE总线错误时,由于诊断程序是在BIOS启动前加载,因此,也可以实现故障的 诊断。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述 中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些 实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附 图获得其他的附图。图1为现有技术一种设备诊断方法流程图;图2为本专利技术实施例一方法流程图;图3为本专利技术实施例二方法流程图;图4为本专利技术实施例二步骤S204方法流程图;图5为本专利技术实施例三系统示意图;图6为本专利技术实施例三具体应用场景示意图。具体实施例方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下将通过具体实施例和相 关附图,对本专利技术作进一步详细说明。实施例一本专利技术实施例一提供了一种设备诊断方法,参见图2,包括如下步骤S101、当系统启动后,判断是否进入诊断模式;S102、当判断进入诊断模式时,通过执行诊断程序对设备进行诊断;S103、当判断不进入诊断模式时,进行常规BIOS或EFI启动。本专利技术实施例中,诊断程序代码可以和系统原来的常规BIOS或EFI位于同一存储 器,如Flash、E2PR0M等存储器;也可以与BIOS或EFI位于不同的存储器,例如再为系统增 加一个存储器来存放诊断程序的代码。无论使用哪种存储方法,诊断程序代码与BIOS程序 代码(或EFI程序代码)相独立。需要说明的是,上述常规BIOS(或EFI)主要是指具有原来系统BIOS功能的 BIOS(或EFI),由于实际应用中,BIOS —般是指在操作系统(0S,OperationSystem)之前启 动的一段程序,而原先BIOS功能的那块代码、新加入的诊断程序代码以及判断程序代码都 在操作系统启动前,因此,也可以将原BIOS功能代码、诊断程序代码、判断程序代码等都看 成是一个新的BIOS。为了描述方便,本专利技术实施例将原BIOS部分和新的诊断模块作为两部 分进行描述。判断是否进入诊断模式的方法可以通过外部电平触发,也可以通过软件设置的方 式来进行。在进入诊断模式后,为了加快程序执行的速度,还可以将存储器中的程序代码加 载到Cache中执行。进入诊断程序对设备进行诊断前,先进行一些系统的初始化,如对Cache、串口等 进行初始化,诊断主要包括对一些硬件设备如内存、PCI/PCIE等进行诊断,具体诊断的内容 可以根据实际应用而定,诊断完之后可以通过串口将相关的诊断信息进行输出。由于诊断 内容可以自定义,因此,可以使得诊断功能更加丰富及准确。本专利技术实施例通过在系统启动后先判断是否进入诊断模式,如果是,则进入诊断 模式,如果否,则继续执行BIOS或EFI启动,可以实现对设备的准确诊断;且当设备出现内 存或PCI/PCIE总线错误时,由于诊断程序是在BIOS启动前加载,因此,也可以实现故障的 诊断。实施例二本专利技术实施例提供了一种设备诊断方法,以设备使用BIOS启动为例,参见图3,包 括如下步骤S201、将诊断程序与BIOS程序分成两个独立的模块一起存放;这里的BIOS程序和现有的常规BIOS程序相一致,用于完成设备启动功能,通常存 储在Flash、E2PR0M等存储器。诊断程序与现有的BIOS程序相独立,即单独执行诊断程序 或BIOS程序并不会对另一个程序产生影响。诊断程序可以用C语言或其他语言实现,编译 后生成一个二进制的计算机可执行程序,然后可以将其与BIOS—起存储在同一存储器中, 也可以将其与BIOS分别存储在一个存储器中,这里的存储器可以采用Flash、或者E2PR0M 等存储器。为了在系统启动时选择运行哪个程序模块,在存储器当中还会有一段启动引导程 序,用于在系统刚刚启动时选择运行哪个程序模块。为了使用方便,可以将启动程序、BIOS 程序和诊断程序放在同一存储器当中。需要说明的是,上述BIOS主要是指具有原来系统BIOS功能的BIOS,由于实际应用 中,BIOS—般是指在操作系统((^,Operation System)之前启动的一段程序,而原先BIOS 功能的那块代码、新加入的诊断程序代码以及判断程序代码都本文档来自技高网
...

【技术保护点】
一种设备诊断方法,其特征在于,包括:当系统启动后,判断是否进入诊断模式;当判断进入诊断模式时,通过执行诊断程序对设备进行诊断;当判断不进入诊断模式时,进行常规BIOS或EFI启动。

【技术特征摘要】

【专利技术属性】
技术研发人员:王飞舟陶林李羿常琳
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1