CN112765021A - 一种引导程序的调试检验方法、装置、设备及存储介质 - Google Patents
一种引导程序的调试检验方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112765021A CN112765021A CN202110057755.5A CN202110057755A CN112765021A CN 112765021 A CN112765021 A CN 112765021A CN 202110057755 A CN202110057755 A CN 202110057755A CN 112765021 A CN112765021 A CN 112765021A
- Authority
- CN
- China
- Prior art keywords
- program
- abnormal
- debugging
- bootstrap program
- control instruction
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000002159 abnormal effect Effects 0.000 claims abstract description 119
- 238000012795 verification Methods 0.000 claims abstract description 76
- 238000004088 simulation Methods 0.000 claims abstract description 53
- 230000002093 peripheral effect Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 7
- 238000013508 migration Methods 0.000 claims description 3
- 230000005012 migration Effects 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种引导程序的调试检验方法,包括:获取引导程序,并将引导程序输入至预设仿真验证平台;利用预设仿真验证平台的处理器运行引导程序;当预设仿真验证平台出现运行异常时,根据处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;根据异常控制指令确定出引导程序的异常定位。本方法能够在对引导程序进行调试检验时,能够更精准地对引导程序进行异常定位,进而提高对引导程序进行debug的便捷度。本申请还公开了一种引导程序的调试检验装置、设备及计算机可读存储介质,均具有上述有益效果。
Description
技术领域
本发明涉及程序检验领域,特别涉及一种引导程序的调试检验方法、装置、设备及计算机可读存储介质。
背景技术
BMC(Baseboard Management Controller,基板控制器)是服务器架构中必不可少的一个部分,主要实现对服务器的控制、监测等。通常情况下,在服务器架构中,BMC属于一个以芯片的形式呈现的独立的系统,而BMC本质上为SoC(System on Chip,片上系统)芯片,由处理器、系统总线以及若干硬件外设组成;BMC上运行一套独立的嵌入式Linux操作系统,操作各硬件外设,完成BMC的功能。Bootloader(启动加载器/引导程序)是指引导操作系统启动的程序,BIOS开机完成后,Bootloader就接手初始化硬件设备、创建存储器空间的映射,以便为操作系统内核准备好正确的软硬件环境。
由于引导程序涉及了BMC的软件和硬件外设,其调试检验是开发过程中的一大难点。现有技术中,通常是在芯片开发的FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)原型验证阶段,将编译好的引导程序导入FPGA板中进行调试,常用方法是在引导程序中增加调试信息,通过串口打印观察了解引导程序的运行状态。这种方式的优点是速度快,容易了解引导程序的运行状态,但是当引导程序发生错误或异常时,只能确定出引导程序发生异常时对应的硬件外设的位置,因此难以对引导程序进行debug。
因此,如何在对引导程序进行调试检验时,能够更精准地对引导程序进行异常定位,进而提高对引导程序进行debug的便捷度,是本领域技术人员目前需要解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种引导程序的调试检验方法,能够在对引导程序进行调试检验时,能够更精准地对引导程序进行异常定位,进而提高对引导程序进行debug的便捷度;本发明的另一目的是提供一种引导程序的调试检验装置、设备及计算机可读存储介质,均具有上述有益效果。
为解决上述技术问题,本发明提供一种引导程序的调试检验方法,包括:
获取引导程序,并将所述引导程序输入至预设仿真验证平台;
利用所述预设仿真验证平台的处理器运行所述引导程序;
当所述预设仿真验证平台出现运行异常时,根据所述处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;
根据所述异常控制指令确定出所述引导程序的异常定位。
优选地,所述利用所述预设仿真验证平台的处理器运行所述引导程序的过程,具体包括:
利用所述预设仿真验证平台的所述处理器运行所述引导程序,执行打印字符、关闭MMU和L1/L2 Cache、创建临时变量、前端初始化、U-Boot迁移以及后端初始化操作。
优选地,在所述根据所述异常控制指令确定出所述引导程序的异常定位之后,进一步包括:
根据所述异常定位对所述引导程序进行debug调试,并在debug调试之后进入所述获取引导程序,并将所述引导程序输入至预设仿真验证平台的处理器中的步骤。
优选地,进一步包括:
在debug调试达到预设次数之后仍存在异常定位时,对所述预设仿真验证平台中与所述异常定位相关的硬件外设中的程序代码进行验证。
优选地,在所述根据所述异常控制指令确定出所述引导程序的异常定位之后,进一步包括:
从预设的故障方案信息库中获取与所述异常定位对应的解决方案。
优选地,在所述根据所述异常控制指令确定出所述引导程序的异常定位之后,进一步包括:
根据所述异常定位发出对应的提示信息。
优选地,在所述根据所述异常控制指令确定出所述引导程序的异常定位之后,进一步包括:
将所述异常定位以及对应的检测时间记录至日志。
为解决上述技术问题,本发明还提供一种引导程序的调试检验装置,包括:
输入模块,用于获取引导程序,并将所述引导程序输入至预设仿真验证平台;
运行模块,用于利用所述预设仿真验证平台的处理器运行所述引导程序;
确定模块,用于当所述预设仿真验证平台出现运行异常时,根据所述处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;
定位模块,用于根据所述异常控制指令确定出所述引导程序的异常定位。
为解决上述技术问题,本发明还提供一种引导程序的调试检验设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一种引导程序的调试检验方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种引导程序的调试检验方法的步骤。
本发明提供的一种引导程序的调试检验方法,通过预设仿真验证平台的处理器运行引导程序;当预设仿真验证平台出现运行异常时,根据处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;再根据异常控制指令确定出引导程序的异常定位;可见,相较于现有技术中仅能够定位引导程序发生异常时对应的硬件外设的位置的情况,本方法能够进一步确定出异常控制指令并根据异常控制指令确定出引导程序的异常定位,因此本方法能够更加精准地对引导程序进行异常定位,从而提高对引导程序进行debug的便捷度。
为解决上述技术问题,本发明还提供了一种引导程序的调试检验装置、设备及计算机可读存储介质,均具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种引导程序的调试检验方法的流程图;
图2为本发明实施例提供的一种预设仿真验证平台的结构示意图;
图3为本发明实施例提供的另一种引导程序的调试检验方法的流程图;
图4为本发明实施例提供的一种引导程序的调试检验装置的结构图;
图5为本发明实施例提供的一种引导程序的调试检验设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的核心是提供一种引导程序的调试检验方法,能够在对引导程序进行调试检验时,能够更精准地对引导程序进行异常定位,进而提高对引导程序进行debug的便捷度;本发明的另一核心是提供一种引导程序的调试检验装置、设备及计算机可读存储介质,均具有上述有益效果。
为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明实施例提供的一种引导程序的调试检验方法的流程图。如图1所示,一种引导程序的调试检验方法包括:
S10:获取引导程序,并将引导程序输入至预设仿真验证平台。
具体的,在实际操作中,预先基于SoC架构设置仿真验证平台,预设仿真验证平台由处理器、系统总线、以及若干硬件外设组成;预设仿真验证平台可以在通用的仿真工具软件中运行,仿真工具软件包括IES、VCS(编译型Verilog模拟器)等。需要说明的是,当前最主流的引导程序Bootloader为U-Boot程序,U-Boot程序是开源的,且涵盖了多种处理器架构,已经发展成为具有标准流程的程序体系;因此本实施例主要以U-Boot程序作为引导程序为例进行解释说明。
请参考图2,图2为本发明实施例提供的一种预设仿真验证平台的结构示意图;预设仿真验证平台由总线将各个模块互联,其中主要包括:
AXI(Advanced eXtensible Interface,一种总线协议标准)系统总线:遵循AXI协议的总线,用于连接ARM(Advanced RISC Machine)处理器、DDR(Double Data Rate,双倍速率同步动态随机存储器)等一些高速设备;APB(Advanced Peripheral Bus,一种总线协议标准)系统总线:遵循APB协议的总线,用于连接Uart等一些低速设备;
ARM处理器:用于运行U-Boot程序;
DDR:内存,U-Boot程序运行过程中会用到DDR;
Flash控制器/Flash模型:U-Boot程序最初的存储位置;
SRAM(StaticRandom-AccessMemory,静态随机存取存储器):一小段存储空间,用于U-Boot程序初始启动时进行一些变量的读写;
Uart(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)/Uart模型:用于监测U-Boot程序运行过程中的打印输出,或者输入命令到U-Boot程序中。
SD(Secure Digital)控制器/SD模型:验证U-Boot程序的SD驱动程序;
MAC(Medium/Media Access Control):验证U-Boot程序的MAC初始化程序;
MMU(Memory Management Unit,内存管理单元)及L1/L2 Cache(CPU的一级/二级缓存):ARM处理器架构中的若干模块,U-Boot程序运行阶段会操作这些模块。
可见,本发明实施例提供的预设仿真验证平台,结构简单易实现,并且可以与芯片开发中系统仿真验证环境相兼容,并且能够在调试验证引导程序时确定出具体的异常定位,利于对引导程序进行调试检验。
在实际操作中,在编写出U-Boot程序之后,将U-Boot程序进行编译:使用通用的编译技术,生成二进制的U-Boot镜像文件;而由于二进制格式的U-Boot程序无法直接输入至预设仿真验证平台,因此需要进一步通过预设的转换脚本将二进制U-Boot程序转换为预设仿真验证平台中Flash模型能够识别的格式;完成格式转换后的U-Boot程序作为仿真的一种激励形式输入到预设仿真验证平台的Flash模型中。
S20:利用预设仿真验证平台的处理器运行引导程序;
S30:当预设仿真验证平台出现运行异常时,根据处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;
S40:根据异常控制指令确定出引导程序的异常定位。
具体的,在将引导程序输入到预设仿真验证平台中之后,仿真开始启动,ARM处理器从Flash模型中获取U-Boot程序,位于Flash模型中的U-Boot程序经过Flash控制器,通过AXI系统总线到达ARM处理器,ARM处理器解析并执行U-Boot程序。
在利用处理器运行引导程序的过程中,当预设仿真验证平台出现运行异常时,例如预设仿真验证平台中的某个外设硬件执行异常时,根据处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;最后利用控制指令与引导程序中的程序代码的对应关系,确定出与异常控制指令对应的引导程序的异常定位。因此本方法能够根据引导程序的运行情况,定位到每一条控制指令对应的的执行情况。
本发明实施例提供的一种引导程序的调试检验方法,通过预设仿真验证平台的处理器运行引导程序;当预设仿真验证平台出现运行异常时,根据处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;再根据异常控制指令确定出引导程序的异常定位;可见,相较于现有技术中仅能够定位引导程序发生异常时对应的硬件外设的位置的情况,本方法能够进一步确定出异常控制指令并根据异常控制指令确定出引导程序的异常定位,因此本方法能够更加精准地对引导程序进行异常定位,从而提高对引导程序进行debug的便捷度。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,图3为本发明实施例提供的另一种引导程序的调试检验方法的流程图,本实施例以U-Boot程序作为引导程序为例进行解释说明。
在本实施例中,利用预设仿真验证平台的处理器运行引导程序的过程,具体包括:
利用预设仿真验证平台的处理器运行引导程序,执行打印字符、关闭MMU和L1/L2Cache、创建临时变量、前端初始化、U-Boot迁移以及后端初始化操作。
在实际操作中,在处理器运行U-Boot程序时,通过处理器根据U-Boot程序控制执行一些操作,以实现对U-Boot程序的检验。
具体的,为了验证U-Boot程序控制整个系统环境是否正常,在U-Boot程序最起始部分加入了一段测试打印代码,ARM处理器根据U-Boot程序中的测试打印代码确定出打印字符指令,通过AXI系统总线-APB系统总线,将字符数据发送到Uart模块,再被Uart模型捕获,捕获到的字符数据与U-Boot程序中一致,表示U-Boot程序控制系统环境及通路基本正常,预设仿真验证平台出现运行正常,进入到下一流程,否则视为异常。
ARM处理器要根据U-Boot程序关闭MMU和L1/L2 Cache,这是U-Boot程序中通用的程序;在关闭MMU和L1/L2 Cache后,ARM处理器访问其它硬件外设时不会经过这两个模块;据此确定预设仿真验证平台是否正常运行。
U-Boot程序在执行时会产生一些临时的可读可写变量,这些临时变量在SRAM中创建,ARM处理器通过AXI系统总线访问SRAM,并据此确定预设仿真验证平台是否正常运行。
前端初始化是U-Boot程序的通用程序,涉及到一系列驱动程序,包括DDR初始化、Flash初始化、Uart初始化,也是U-Boot开发时非常容易出错的部分,在前端初始化时,ARM处理器会通过AXI/APB系统总线访问DDR、Flash、Uart,如果访问过程发生异常,则表示预设仿真验证平台出现运行异常。
在进行U-Boot迁移时,ARM处理器发送控制指令,将最起始位于Flash模型中的U-Boot程序经过AXI系统总线迁移到DDR中并继续执行,并根据执行情况判断预设仿真验证平台是否正常运行。
U-Boot程序运行的最后阶段为后端初始化,这时U-Boot程序已经在DDR中运行,后端初始化也涉及到一系列驱动程序,包括SD初始化、MAC初始化;在后端初始化时,ARM处理器会通过AXI/APB系统总线访问SD、MAC,根据执行情况判断预设仿真验证平台是否正常运行。
具体的,在确定出预设仿真验证平台出现运行异常时,根据处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;进而根据异常控制指令确定出引导程序的异常定位。
例如在后端初始化时,如果发现SD初始化发生异常,可以调取ARM处理器中的PC指针寄存器,逐级的分析每一条U-Boot程序的控制指令的执行情况,实时查看ARM处理器、AXI系统总线、SD控制器、SD模型等几个模块中的所有信号的状态,根据异常状态确定出异常控制指令,进而根据异常控制指令确定出引导程序的异常定位。
作为优选的实施方式,在根据异常控制指令确定出引导程序的异常定位之后,进一步包括:
根据异常定位对引导程序进行debug调试,并在debug调试之后进入获取引导程序,并将引导程序输入至预设仿真验证平台的处理器中的步骤。
在本实施例中,是在确定出预设仿真验证平台出现运行异常且根据异常控制指令确定出引导程序的异常定位之后,根据异常定位对引导程序进行debug调试,在对引导程序进行debug调试之后,相当于更新了引导程序,因此需要重新对引导程序进行编译、格式转换操作,并输入到预设仿真验证平台中进行仿真运行,以再次进行调试检验。
作为优选的实施方式,本实施例进一步包括:
在debug调试达到预设次数之后仍存在异常定位时,对预设仿真验证平台中与异常定位相关的硬件外设中的程序代码进行验证。
需要说明的是,若是在实际操作中,反复进行debug调试的此次达到预设次数,且此时仿真运行引导程序后仍存在异常定位,则表示当前可能是由于预设仿真验证平台中的硬件外设存在问题,因此可以进一步对预设仿真验证平台中与异常定位相关的硬件外设中的程序代码进行验证,即对硬件外设中的内部信号进行分析。
可见,本方法不仅能够调试检验出引导程序的异常情况,还能够确定出硬件外设的异常情况。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例在根据异常控制指令确定出引导程序的异常定位之后,进一步包括:
从预设的故障方案信息库中获取与异常定位对应的解决方案。
需要说明的是,在本实施例中,预先根据不同的异常定位设置对应的解决方案,确定出故障方案信息库;在确定出当前的异常定位后,从预设的故障方案信息库中获取与当前的异常定位对应的解决方案;以便用户可以便捷地获取解决方案以根据解决方案对引导程序进行debug调试,从而进一步提升用户的使用体验。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例在根据异常控制指令确定出引导程序的异常定位之后,进一步包括:
根据异常定位发出对应的提示信息。
具体的,在本实施例中,是在根据异常控制指令确定出引导程序的异常定位之后,进一步触发提示装置根据异常定位发出对应的提示信息。需要说明的是,提示装置可以具体是蜂鸣器和/或指示灯和/或显示器,通过触发蜂鸣器/指示灯/显示器等提示装置发出对应的提示信息,如蜂鸣音/闪烁灯/显示文字或图像等,以直观地提示用户已经确定出异常定位,并且在实际操作中,可以根据不同的异常定位分别发出对应类型的提示信息,以便根据提示信息的类型可以确定出异常情况,从而能够进一步提升用户的使用体验。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例在根据异常控制指令确定出引导程序的异常定位之后,进一步包括:
将异常定位以及对应的检测时间记录至日志。
具体的,在本实施例中,是根据异常控制指令确定出引导程序的异常定位之后,获取确定出引导程序的异常定位的检测时间,然后将异常定位的信息以及对应的检测时间记录至日志。
需要说明的是,在实际操作中,具体的记录方式可以是以文本或以excel表格或者以数据库表的形式记录,本实施例对此不做限定,根据实际需求进行选择。更具体的,可以是以内存条、硬盘、TF(Trans-flash Card)卡和SD(Secure Digital Memory Card)卡等方式进行记录存储,具体根据实际需求进行选择,本实施例对此不做限定。
在本实施例中,通过进一步将异常定位以及对应的检测时间记录至日志,能够便于用户查看对引导程序进行调试检验的情况,从而进一步提升用户的使用体验。
上文对于本发明提供的一种引导程序的调试检验方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的引导程序的调试检验装置、设备及计算机可读存储介质,由于装置、设备及计算机可读存储介质部分的实施例与方法部分的实施例相互照应,因此装置、设备及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图4为本发明实施例提供的一种引导程序的调试检验装置的结构图,如图4所示,一种引导程序的调试检验装置包括:
输入模块41,用于获取引导程序,并将引导程序输入至预设仿真验证平台;
运行模块42,用于利用预设仿真验证平台的处理器运行引导程序;
确定模块43,用于当预设仿真验证平台出现运行异常时,根据处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;
定位模块44,用于根据异常控制指令确定出引导程序的异常定位。
本发明实施例提供的引导程序的调试检验装置,具有上述引导程序的调试检验方法的有益效果。
作为优选的实施方式,另一种引导程序的调试检验装置进一步包括:
调试模块,用于根据异常定位对引导程序进行debug调试,并调用输入模块。
作为优选的实施方式,另一种引导程序的调试检验装置进一步包括:
验证模块,用于在debug调试达到预设次数之后仍存在异常定位时,对预设仿真验证平台中与异常定位相关的硬件外设中的程序代码进行验证。
作为优选的实施方式,另一种引导程序的调试检验装置进一步包括:
执行模块,用于从预设的故障方案信息库中获取与异常定位对应的解决方案。
作为优选的实施方式,另一种引导程序的调试检验装置进一步包括:
提示模块,用于根据异常定位发出对应的提示信息。
作为优选的实施方式,另一种引导程序的调试检验装置进一步包括:
记录模块,用于将异常定位以及对应的检测时间记录至日志。
图5为本发明实施例提供的一种引导程序的调试检验设备的结构图,如图5所示,一种引导程序的调试检验设备包括:
存储器51,用于存储计算机程序;
处理器52,用于执行计算机程序时实现如上述引导程序的调试检验方法的步骤。
本发明实施例提供的引导程序的调试检验设备,具有上述引导程序的调试检验方法的有益效果。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述引导程序的调试检验方法的步骤。
本发明实施例提供的计算机可读存储介质,具有上述引导程序的调试检验方法的有益效果。
以上对本发明所提供的引导程序的调试检验方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (10)
1.一种引导程序的调试检验方法,其特征在于,包括:
获取引导程序,并将所述引导程序输入至预设仿真验证平台;
利用所述预设仿真验证平台的处理器运行所述引导程序;
当所述预设仿真验证平台出现运行异常时,根据所述处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;
根据所述异常控制指令确定出所述引导程序的异常定位。
2.根据权利要求1所述的方法,其特征在于,所述利用所述预设仿真验证平台的处理器运行所述引导程序的过程,具体包括:
利用所述预设仿真验证平台的所述处理器运行所述引导程序,执行打印字符、关闭MMU和L1/L2 Cache、创建临时变量、前端初始化、U-Boot迁移以及后端初始化操作。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述异常控制指令确定出所述引导程序的异常定位之后,进一步包括:
根据所述异常定位对所述引导程序进行debug调试,并在debug调试之后进入所述获取引导程序,并将所述引导程序输入至预设仿真验证平台的处理器中的步骤。
4.根据权利要求3所述的方法,其特征在于,进一步包括:
在debug调试达到预设次数之后仍存在异常定位时,对所述预设仿真验证平台中与所述异常定位相关的硬件外设中的程序代码进行验证。
5.根据权利要求1所述的方法,其特征在于,在所述根据所述异常控制指令确定出所述引导程序的异常定位之后,进一步包括:
从预设的故障方案信息库中获取与所述异常定位对应的解决方案。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述异常控制指令确定出所述引导程序的异常定位之后,进一步包括:
根据所述异常定位发出对应的提示信息。
7.根据权利要求1至6任一项所述的方法,其特征在于,在所述根据所述异常控制指令确定出所述引导程序的异常定位之后,进一步包括:
将所述异常定位以及对应的检测时间记录至日志。
8.一种引导程序的调试检验装置,其特征在于,包括:
输入模块,用于获取引导程序,并将所述引导程序输入至预设仿真验证平台;
运行模块,用于利用所述预设仿真验证平台的处理器运行所述引导程序;
确定模块,用于当所述预设仿真验证平台出现运行异常时,根据所述处理器中的PC指针寄存器逐级分析引导程序的每一条控制指令的执行情况,确定出异常控制指令;
定位模块,用于根据所述异常控制指令确定出所述引导程序的异常定位。
9.一种引导程序的调试检验设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的引导程序的调试检验方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的引导程序的调试检验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110057755.5A CN112765021A (zh) | 2021-01-15 | 2021-01-15 | 一种引导程序的调试检验方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110057755.5A CN112765021A (zh) | 2021-01-15 | 2021-01-15 | 一种引导程序的调试检验方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112765021A true CN112765021A (zh) | 2021-05-07 |
Family
ID=75702053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110057755.5A Withdrawn CN112765021A (zh) | 2021-01-15 | 2021-01-15 | 一种引导程序的调试检验方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765021A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297085A (zh) * | 2021-05-31 | 2021-08-24 | 北京经纬恒润科技股份有限公司 | 一种基于soc平台的算法验证方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320783A1 (en) * | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | Verification using opcode compare |
CN108287775A (zh) * | 2018-03-01 | 2018-07-17 | 郑州云海信息技术有限公司 | 一种服务器故障检测的方法、装置、设备及存储介质 |
-
2021
- 2021-01-15 CN CN202110057755.5A patent/CN112765021A/zh not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320783A1 (en) * | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | Verification using opcode compare |
CN108287775A (zh) * | 2018-03-01 | 2018-07-17 | 郑州云海信息技术有限公司 | 一种服务器故障检测的方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
JASON416就是我: "Uboot 网卡移植遇到的问题与解决方法", 《HTTPS://BLOG.CSDN.NET/JASON_416/ARTICLE/DETAILS/103797602》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297085A (zh) * | 2021-05-31 | 2021-08-24 | 北京经纬恒润科技股份有限公司 | 一种基于soc平台的算法验证方法及装置 |
CN113297085B (zh) * | 2021-05-31 | 2023-08-08 | 北京经纬恒润科技股份有限公司 | 一种基于soc平台的算法验证方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110865971B (zh) | Soc芯片的验证系统及其方法 | |
US8930912B2 (en) | Method and system for performing software verification | |
RU2473115C2 (ru) | Способ автоматического генерирования сценария для проверки правильности функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для применения способа | |
KR101019210B1 (ko) | 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법 | |
CN110704304B (zh) | 一种应用程序测试方法、装置、存储介质和服务器 | |
US8402438B1 (en) | Method and system for generating verification information and tests for software | |
US20160378627A1 (en) | Flexible configuration and control of a testing system | |
Potyra et al. | Evaluating fault-tolerant system designs using FAUmachine | |
CN113157508B (zh) | 嵌入式系统的测试方法、系统、装置、设备及存储介质 | |
RU2451990C2 (ru) | Способ обработки объема данных, используемого во время фазы отладки функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для его осуществления | |
CN117422026B (zh) | 一种基于risc-v架构的处理器验证系统 | |
CN113220514A (zh) | 固态硬盘测试方法、装置、可读存储介质及电子设备 | |
CN115935631A (zh) | 用于车机设备的测试系统和方法、存储介质 | |
CN112286750A (zh) | 一种gpio验证方法、装置、电子设备和介质 | |
CN102722438B (zh) | 一种内核调试的方法和设备 | |
US7243059B2 (en) | Simulation of hardware based on smart buffer objects | |
CN103713977B (zh) | 一种微处理器ip核比较验证的实现方法 | |
CN111400997A (zh) | 一种基于同步执行的处理器核验证方法、系统及介质 | |
CN113377586B (zh) | 一种服务器自动化检测方法、装置及存储介质 | |
CN112765021A (zh) | 一种引导程序的调试检验方法、装置、设备及存储介质 | |
CN107145381A (zh) | 面向实践教学的mips‑cpu测试工具 | |
US20040025081A1 (en) | System and method for collecting code coverage information before file system is available | |
CN113378502B (zh) | 验证信号走向配码的测试方法、装置、介质及设备 | |
CN110096888B (zh) | 一种加快验证及分析smm安全隐患的方法及系统 | |
CN114265786A (zh) | 自动化测试方法、装置,计算机设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210507 |