CN115237753A - 固件排错方法、系统、终端设备及存储介质 - Google Patents
固件排错方法、系统、终端设备及存储介质 Download PDFInfo
- Publication number
- CN115237753A CN115237753A CN202210737784.0A CN202210737784A CN115237753A CN 115237753 A CN115237753 A CN 115237753A CN 202210737784 A CN202210737784 A CN 202210737784A CN 115237753 A CN115237753 A CN 115237753A
- Authority
- CN
- China
- Prior art keywords
- variable
- firmware
- real
- tested
- variable data
- 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/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Library & Information Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种固件排错方法、系统、终端设备及存储介质,所述固件排错方法包括以下步骤:获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。本发明可以提高检测人员对于固件的排错效率。
Description
技术领域
本发明涉及存储器技术领域,尤其涉及一种固件排错方法、系统、终端设备及存储介质。
背景技术
近年来,随着存储技术的飞速发展,由于SSD(Solid State Disk,固态硬盘)在性能、功耗、环境适应性等方面的优秀表现,正逐步替换传统的存储设备。而现在SSD的固件功能越来越强大,因此固件代码越来越多,随着而来地,固件代码中变量结构体,以及对应的各种配置参数随之增加。检测人员通常需要连接Jtag(Joint Test Action Group,联合测试工作组)通过现场代码查看固件中的各变量结构体对应的变量数值,从而进行排错工作。
但是,由于结构体类型不是由系统定义好的,而是程序设计者自己定义的,因此,在固件中的变量结构体的类型发生变化时,则需要对用于解析固件代码的整套程序进行重新编写,以适应变化后的变量结构体的类型。从而导致了检测人员对于固件的排错效率较低。
发明内容
本发明的主要目的在于提供一种固件排错方法、系统、终端设备及计算机存储介质,旨在解决检测人员对于固件的排错效率较低的技术问题。
为实现上述目的,本发明提供一种固件排错方法,所述固件排错方法包括以下步骤:
获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;
向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;
基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。
进一步地,在所述向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据的步骤之前,所述方法还包括:
将所述固件代码经ARM编译器进行编译以得到对应的固件文件;
将所述固件文件写入所述待测设备的存储单元。
进一步地,所述对所述固件代码中的变量结构体进行编译得到对应的XML文件的步骤,包括:
对所述固件代码中的各所述变量结构体经GCC编译器进行编译,以得到各所述变量结构体各自对应的XML文件。
进一步地,所述存储单元包括:待测设备的主控的存储器和/或寄存器,所述向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据的步骤,包括:
向待测设备发送预设私有命令,以使所述待测设备的系统固件通过NVMe协议或者SATA协议读取所述存储器和/或所述寄存器中的各变量结构体对应的变量数据,并返回各所述变量数据。
进一步地,所述基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数的步骤,包括:
根据各所述变量数据各自对应的变量结构体,确定各所述变量数据各自的变量名和各自对应的XML文件;
将各所述变量数据经对应的XML文件进行解析得到各所述变量数据各自的变量数值;
针对各所述变量数据,分别将所述变量数据的所述变量名和所述变量数值作为所述变量数据对应的实时变量参数。
进一步地,在所述基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数的步骤之后,所述方法还包括:
将所述实时变量参数与预设配置参数进行比对以判断所述实时变量参数中是否存在与对应的预设配置参数不一致的错误变量参数;
若判定所述实时变量参数中存在与预设配置参数不一致的错误变量参数,则输出包括所述错误变量参数的提示信息。
进一步地,所述将所述实时变量参数与预设配置参数进行比对的步骤,包括:
确定所述预设配置参数对应的实时变量参数;
判断所述预设配置参数的参数值与对应的实时变量参数的变量数值是否一致;
若判定所述参数值与所述变量数值不一致,则确定所述实时变量参数为所述错误变量参数。
此外,为实现上述目的,本发明还提供一种固件排错系统,所述固件排错系统包括:
编译模块,用于获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;
读取模块,用于向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;
解析模块,用于基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的固件排错程序,所述固件排错程序被所述处理器执行时实现如上述中的固件排错方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的固件排错方法的步骤。
本发明提出的固件排错方法、系统、终端设备以及计算机存储介质,通过获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。本发明中,由于所述XML文件为通过对所述固件代码中的变量结构体进行编译获得的,因此,所述XML文件可以实现对所述待测设备的存储单元中读取到的各变量数据的解析,同时无需像传统方案一样在固件中的变量结构体的类型发生变化时,则需要对用于解析固件代码的整套程序进行重新编写,而是可以适应变量结构体的不同类型,从而提高了检测人员对于固件的排错效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端设备的结构示意图;
图2是本发明一种固件排错方法一实施例的流程示意图;
图3是本发明一种固件排错系统的结构关系示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端设备的结构示意图。
本发明实施例终端设备可以是执行本发明提供的固件排错方法的设备,该终端设备具体可以是移动终端、数据存储控制终端、PC(Personal Computer,个人计算机)或者便携计算机等终端。
如图1所示,该终端设备可以包括:处理器1001,例如CPU(Central ProcessingUnit,中央处理器),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对所述终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及固件排错程序。其中,操作系统是管理和控制样本终端设备硬件和软件资源的程序,支持固件排错程序以及其它软件或程序的运行。
在图1所示的终端设备中,用户接口1003主要用于与各个终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的固件排错程序,并执行以下操作:
获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;
向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;
基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。
进一步地,处理器1001可以调用存储器1005中存储的固件排错程序,还执行以下操作:
将所述固件代码经ARM编译器进行编译以得到对应的固件文件;
将所述固件文件写入所述待测设备的存储单元。
进一步地,处理器1001可以调用存储器1005中存储的固件排错程序,还执行以下操作:
对所述固件代码中的各所述变量结构体经GCC编译器进行编译,以得到各所述变量结构体各自对应的XML文件。
进一步地,处理器1001可以调用存储器1005中存储的固件排错程序,还执行以下操作:
向待测设备发送预设私有命令,以使所述待测设备的系统固件通过NVMe协议或者SATA协议读取所述存储器和/或所述寄存器中的各变量结构体对应的变量数据,并返回各所述变量数据。
进一步地,处理器1001可以调用存储器1005中存储的固件排错程序,还执行以下操作:
根据各所述变量数据各自对应的变量结构体,确定各所述变量数据各自的变量名和各自对应的XML文件;
将各所述变量数据经对应的XML文件进行解析得到各所述变量数据各自的变量数值;
针对各所述变量数据,分别将所述变量数据的所述变量名和所述变量数值作为所述变量数据对应的实时变量参数。
进一步地,处理器1001可以调用存储器1005中存储的固件排错程序,还执行以下操作:
将所述实时变量参数与预设配置参数进行比对以判断所述实时变量参数中是否存在与对应的预设配置参数不一致的错误变量参数;
若判定所述实时变量参数中存在与预设配置参数不一致的错误变量参数,则输出包括所述错误变量参数的提示信息。
进一步地,处理器1001可以调用存储器1005中存储的固件排错程序,还执行以下操作:
确定所述预设配置参数对应的实时变量参数;
判断所述预设配置参数的参数值与对应的实时变量参数的变量数值是否一致;
若判定所述参数值与所述变量数值不一致,则确定所述实时变量参数为所述错误变量参数。
基于上述的结构,提出本发明固件排错方法的各个实施例。
需要说明的是,在本实施例中,由于近年来,随着存储技术的飞速发展,由于SSD(Solid State Disk,固态硬盘)在性能、功耗、环境适应性等方面的优秀表现,正逐步替换传统的存储设备。而现在SSD的固件功能越来越强大,因此固件代码越来越多,随着而来地,固件代码中变量结构体,以及对应的各种配置参数随之增加。检测人员通常需要连接Jtag(Joint Test Action Group,联合测试工作组)通过现场代码查看固件中的各变量结构体对应的变量数值,从而进行排错工作。
但是,由于结构体类型不是由系统定义好的,而是程序设计者自己定义的,因此,在固件中的变量结构体的类型发生变化时,则需要对用于解析固件代码的整套程序进行重新编写,以适应变化后的变量结构体的类型。从而导致了检测人员对于固件的排错效率较低。
针对上述问题,本申请提供一种固件排错方法,通过获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。本申请中,由于所述XML文件为通过对所述固件代码中的变量结构体进行编译获得的,因此,所述XML文件可以实现对所述待测设备的存储单元中读取到的各变量数据的解析,获得对应的实时变量参数。无需像传统方案一样在固件中的变量结构体的类型发生变化时,则需要对用于解析固件代码的整套程序进行重新编写,而是可以适应变量结构体的不同类型,从而提高了检测人员对于固件的排错效率。
请参照图2,图2为本发明固件排错方法第一实施例的流程示意图。
本发明实施例提供了固件排错方法的实施例,本发明实施例固件排错方法应用于上述终端设备。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例中,本发明固件排错方法包括:
步骤S100,获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;
所述待测设备可以是固态硬盘,或是安装有固态硬盘的设备。可以获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML(ExtensibleMarkup Language,可扩展标记语言)文件。由于XML可以用来标记数据、定义数据类型,并且提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。因此,通过对变量结构体进行编译,获得的XML文件可以用于解析待测设备的存储单元中各变量结构体在被运行时对应的变量数据。可以理解的是,所述变量结构体可以是一个或多个变量的集合,这些变量可以是不同的类型,为了处理的方便而将这些变量组织在一个名字之下。
其中,所述S100包括以下步骤:
步骤S100,对所述固件代码中的各所述变量结构体经GCC编译器进行编译,以得到各所述变量结构体各自对应的XML文件。
GCC(GNU Compiler Collection,GNU编译器套件)编译器是由GNU开发的编程语言译器。可以从固件代码中获取各所述变量结构体,然后将各变量结构体经GCC编译器进行编译后,得到各所述变量结构体对应的XML文件。
步骤S200,向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;
所述终端设备通过向待测设备发送预设私有命令,以使所述待测设备接收到该预设私有命令时,则可以响应该预设私有命令返回对应的存储单元中的各变量数据,以读取所述待测设备的存储单元中各变量数据。所述存储单元可以是所述待测设备的存储器(memory)和/或寄存器(register)。
其中,所述存储单元包括:待测设备的主控的存储器和/或寄存器,步骤S200包括:
步骤S210,向待测设备发送预设私有命令,以使所述待测设备的系统固件通过NVMe协议或者SATA协议读取所述存储器和/或所述寄存器中的各变量结构体对应的变量数据,并返回各所述变量数据。
具体地,所述待测设备的存储单元包括:待测设备的主控的存储器和/或寄存器。所述终端设备通过向待测设备发送预设私有命令后,所述待测设备的系统固件通过采用的固态硬盘的类型确定是通过NVMe协议进行下发还是通过SATA协议读取所述待测设备的主控的存储器和/或寄存器中的各变量结构体对应的变量数据,并向所述终端设备返回各所述变量数据。
进一步地,在步骤S200之前,所述方法包括:
步骤S220,将所述固件代码经ARM编译器进行编译以得到对应的固件文件;
步骤S220,将所述固件文件写入所述待测设备的存储单元。
固件代码在待测设备中运行,则将源代码编译成所述待测设备的微处理器能够执行的格式。ARM(Advanced RISC Machines,高级精简指令集机器)编译器包括ARMCC、IAR以及GCC for ARM等。将所述固件代码经ARM编译器进行编译以得到对应的固件文件,其中所述ARM编译器的种类可以根据具体使用需求进行选择。然后将编译后获得的固件文件写入所述待测设备的存储单元,从而使得所述固件代码在待测设备中运行。
步骤S300,基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。
在读取到所述待测设备的存储单元中各变量数据后,则可以基于所述XML文件对各所述变量数据进行解析,获得各所述变量数据对应的实时变量参数,从而可以基于所述实时变量参数进行固件排错。例如,可以将所述实时变量参数进行可视化处理,以供检测人员进行固件排错。可以理解的是,所述可视化处理的方法本实施例中不做限制,例如直接显示或者归纳为图表等形式进行显示。其中所述实时变量参数可以包括变量名和所述变量名对应的变量数值,例如,debug(排错,即故障排除)配置参数名及对应参数值、运行时长及对应时长、通电次数及对应次数等)。因此,检测人员可以通过获得的实时变量参数,确定待测设备的固件中用于debug的变量结构体的配置情况(是否配置正确)以及运行状态(变量结构体对应的变量运行是否异常)。此外,由于实时变量参数中还包括表征固件运行状态、运行日志(log)等设备运行信息的参数,检测人员也可以确定待测设备的整体运行情况。
其中,步骤S300包括以下步骤:
步骤S310,根据各所述变量数据各自对应的变量结构体,确定各所述变量数据各自的变量名和各自对应的XML文件;
步骤S311,将各所述变量数据经对应的XML文件进行解析得到各所述变量数据各自的变量数值;针对各所述变量数据,分别将所述变量数据的所述变量名和所述变量数值作为所述变量数据对应的实时变量参数。
可以理解的是,所述变量结构体中会定义该结构体的变量名。因此可以通过根据各所述变量数据各自对应的变量结构体,确定各所述变量数据各自的变量名,以及解析各变量数据所要采用的XML文件(即通过编译该变量数据对应的变量结构体所获得的XML文件)。然后将各所述变量数据经对应的XML文件进行解析得到各所述变量数据各自的变量数值;针对各所述变量数据,分别将所述变量数据的所述变量名和所述变量数值作为所述变量数据对应的实时变量参数。
在本发明一实施例中,通过获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。本实施例,由于所述XML文件为通过对所述固件代码中的变量结构体进行编译获得的,因此,所述XML文件可以实现对所述待测设备的存储单元中读取到的各变量数据的解析,获得对应的实时变量参数。无需像传统方案一样在固件中的变量结构体的类型发生变化时,则需要对用于解析固件代码的整套程序进行重新编写,而是可以适应变量结构体的不同类型,从而提高了检测人员对于固件的排错效率。
更进一步地,另一实施例中,在基于所述XML文件对各所述变量数据进行解析,获得各所述变量数据对应的实时变量参数的步骤之后,所述方法还包括:
步骤S320,将所述实时变量参数与预设配置参数进行比对以判断所述实时变量参数中是否存在与对应的预设配置参数不一致的错误变量参数;
步骤S321,若判定所述实时变量参数中存在与预设配置参数不一致的错误变量参数,则输出包括所述错误变量参数的提示信息。
预设配置参数为预先设置的用于维持所述待测设备中固件正常运行的参数。可以通过将所述实时变量参数与预设配置参数进行比对以判断所述实时变量参数中是否存在与对应的预设配置参数不一致的错误变量参数。若判定所述实时变量参数中存在与预设配置参数不一致的错误变量参数,则输出包括所述错误变量参数的提示信息。所述错误变量参数可以包括错误变量参数名和对应的参数值。本实施例中,通过将实时变量参数与预设配置参数进行对比,从而可以帮助检测人员快速确定出现问题的错误变量参数,以提高对于固件中变量的排错效率。
其中,步骤S320包括:
步骤a,确定所述预设配置参数对应的实时变量参数;
步骤b,判断所述预设配置参数的参数值与对应的实时变量参数的变量数值是否一致;
步骤b1,若判定所述参数值与所述变量数值不一致,则确定所述实时变量参数为所述错误变量参数。
在实时变量参数中可能只有部分变量参数与所述预设配置参数相对应,因此为了提高对所述实时变量参数的检测过程,则可以先确定所述预设配置参数对应的实时变量参数,再判断所述预设配置参数的参数值与对应的实时变量参数的变量数值是否一致。若判定所述参数值与所述变量数值不一致,说明该实时变量参数可能是被配置错误了,则确定所述实时变量参数为所述错误变量参数。若判定所述参数值与所述变量数值不一致,说明该实时变量参数可能是被配置错误了,说明该实时变量参数被配置正确,则确定所述实时变量参数并非错误变量参数。本实施例中,通过确定所述预设配置参数对应的实时变量参数,再判断所述预设配置参数的参数值与对应的实时变量参数的变量数值是否一致,从而确定所述实时变量参数是否为错误变量参数,可以避免对大量的实时变量参数进行遍历,进而提高对于固件中变量的排错效率。
此外,请参照图3,本发明实施例还提出一种固件排错系统,所述固件排错系统包括:
编译模块10,用于获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;
读取模块20,用于向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;
解析模块30,用于基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。
进一步地,所述固件排错系统还包括:写入模块40,用于
将所述固件代码经ARM编译器进行编译以得到对应的固件文件;
将所述固件文件写入所述待测设备的存储单元。
进一步地,编译模块10,还用于
对所述固件代码中的各所述变量结构体经GCC编译器进行编译,以得到各所述变量结构体各自对应的XML文件。
进一步地,读取模块20,还用于
向待测设备发送预设私有命令,以使所述待测设备的系统固件通过NVMe协议或者SATA协议读取所述存储器和/或所述寄存器中的各变量结构体对应的变量数据,并返回各所述变量数据。
进一步地,解析模块30,还用于
根据各所述变量数据各自对应的变量结构体,确定各所述变量数据各自的变量名和各自对应的XML文件;
将各所述变量数据经对应的XML文件进行解析得到各所述变量数据各自的变量数值;
针对各所述变量数据,分别将所述变量数据的所述变量名和所述变量数值作为所述变量数据对应的实时变量参数。
更进一步地,所述固件排错系统还包括:比对模块50,用于
将所述实时变量参数与预设配置参数进行比对以判断所述实时变量参数中是否存在与对应的预设配置参数不一致的错误变量参数;
若判定所述实时变量参数中存在与预设配置参数不一致的错误变量参数,则输出包括所述错误变量参数的提示信息。
进一步地,比对模块50,还用于
确定所述预设配置参数对应的实时变量参数;
判断所述预设配置参数的参数值与对应的实时变量参数的变量数值是否一致;
若判定所述参数值与所述变量数值不一致,则确定所述实时变量参数为所述错误变量参数。
此外,本发明实施例还提出一种计算机存储介质,应用于计算机,该计算机存储介质可以为非易失性计算机可读计算机存储介质,该计算机存储介质上存储有固件排错程序,所述固件排错程序被处理器执行时实现如上所述的固件排错方法的步骤。
其中,在所述处理器上运行的固件排错程序被执行时所实现的步骤可参照本发明固件排错方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机存储介质(如Flash存储器、ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)中,用于控制该存储介质进行数据读写操作的控制器执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种固件排错方法,其特征在于,所述固件排错方法包括以下步骤:
获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;
向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;
基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。
2.如权利要求1所述的固件排错方法,其特征在于,在所述向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据的步骤之前,所述方法还包括:
将所述固件代码经ARM编译器进行编译以得到对应的固件文件;
将所述固件文件写入所述待测设备的存储单元。
3.如权利要求1所述的固件排错方法,其特征在于,所述对所述固件代码中的变量结构体进行编译得到对应的XML文件的步骤,包括:
对所述固件代码中的各所述变量结构体经GCC编译器进行编译,以得到各所述变量结构体各自对应的XML文件。
4.如权利要求1所述的固件排错方法,其特征在于,所述存储单元包括:待测设备的主控的存储器和/或寄存器,所述向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据的步骤,包括:
向待测设备发送预设私有命令,以使所述待测设备的系统固件通过NVMe协议或者SATA协议读取所述存储器和/或所述寄存器中的各变量结构体对应的变量数据,并返回各所述变量数据。
5.如权利要求1所述的固件排错方法,其特征在于,所述基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数的步骤,包括:
根据各所述变量数据各自对应的变量结构体,确定各所述变量数据各自的变量名和各自对应的XML文件;
将各所述变量数据经对应的XML文件进行解析得到各所述变量数据各自的变量数值;
针对各所述变量数据,分别将所述变量数据的所述变量名和所述变量数值作为所述变量数据对应的实时变量参数。
6.如权利要求1至5中任一项所述的固件排错方法,其特征在于,在所述基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数的步骤之后,所述方法还包括:
将所述实时变量参数与预设配置参数进行比对以判断所述实时变量参数中是否存在与对应的预设配置参数不一致的错误变量参数;
若判定所述实时变量参数中存在与预设配置参数不一致的错误变量参数,则输出包括所述错误变量参数的提示信息。
7.如权利要求6所述的固件排错方法,其特征在于,所述将所述实时变量参数与预设配置参数进行比对的步骤,包括:
确定所述预设配置参数对应的实时变量参数;
判断所述预设配置参数的参数值与对应的实时变量参数的变量数值是否一致;
若判定所述参数值与所述变量数值不一致,则确定所述实时变量参数为所述错误变量参数。
8.一种固件排错系统,其特征在于,所述固件排错系统包括:
编译模块,用于获取待测设备的固件代码,并对所述固件代码中的变量结构体进行编译得到对应的XML文件;
读取模块,用于向待测设备发送预设私有命令以读取所述待测设备的存储单元中的各变量数据;
解析模块,用于基于所述XML文件对各所述变量数据进行解析得到各所述变量数据对应的实时变量参数,以基于所述实时变量参数进行固件排错。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的固件排错程序,所述固件排错程序被所述处理器执行时实现如权利要求1至7中任一项所述的固件排错方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的固件排错方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210737784.0A CN115237753A (zh) | 2022-06-24 | 2022-06-24 | 固件排错方法、系统、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210737784.0A CN115237753A (zh) | 2022-06-24 | 2022-06-24 | 固件排错方法、系统、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237753A true CN115237753A (zh) | 2022-10-25 |
Family
ID=83671401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210737784.0A Pending CN115237753A (zh) | 2022-06-24 | 2022-06-24 | 固件排错方法、系统、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115237753A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495275A (zh) * | 2022-11-16 | 2022-12-20 | 合肥康芯威存储技术有限公司 | 一种存储系统及其控制方法 |
-
2022
- 2022-06-24 CN CN202210737784.0A patent/CN115237753A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495275A (zh) * | 2022-11-16 | 2022-12-20 | 合肥康芯威存储技术有限公司 | 一种存储系统及其控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151018B2 (en) | Method and apparatus for testing a code file | |
US6718485B1 (en) | Software emulating hardware for analyzing memory references of a computer program | |
US5651111A (en) | Method and apparatus for producing a software test system using complementary code to resolve external dependencies | |
US7100152B1 (en) | Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof | |
US7725881B2 (en) | Automatically extracting coupling metrics from compiled code | |
US9274923B2 (en) | System and method for stack crawl testing and caching | |
CN112100072B (zh) | 应用程序代码的静态检测方法、装置、设备及介质 | |
CN110990019B (zh) | 一种Java类分析方法、装置、存储介质及电子设备 | |
US7257806B1 (en) | System and method for efficiently passing information between compiler and post-compile-time software | |
US20060294503A1 (en) | Code coverage analysis | |
CN107643893B (zh) | 一种程序检测方法及装置 | |
CN106371997B (zh) | 一种代码检查方法及装置 | |
CN109933326B (zh) | 改写代码的编译方法、装置及相应终端 | |
CN111459495A (zh) | 单元测试代码文件生成方法、电子装置及存储介质 | |
CN113742119A (zh) | 嵌入式系统的调用栈回溯方法、装置和计算机设备 | |
CN112328259A (zh) | 一种编译时长的处理方法和装置 | |
JPH0748182B2 (ja) | プログラム・エラー検出方法 | |
CN115237753A (zh) | 固件排错方法、系统、终端设备及存储介质 | |
CN112433940A (zh) | 软件开发工具包sdk测试方法及相关设备 | |
CN110928760B (zh) | 一种嵌入式系统中的单元测试方法与装置 | |
CN113867704A (zh) | 一种代码测试处理方法、装置、电子设备及存储介质 | |
US9710360B2 (en) | Optimizing error parsing in an integrated development environment | |
CN115617352A (zh) | 基于安全编码标准的c代码检测方法、设备和存储介质 | |
CN108614704B (zh) | 代码编译方法及装置 | |
CN112783736B (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 |