CN106021089B - 一种补丁接口的测试方法及装置 - Google Patents

一种补丁接口的测试方法及装置 Download PDF

Info

Publication number
CN106021089B
CN106021089B CN201510718951.7A CN201510718951A CN106021089B CN 106021089 B CN106021089 B CN 106021089B CN 201510718951 A CN201510718951 A CN 201510718951A CN 106021089 B CN106021089 B CN 106021089B
Authority
CN
China
Prior art keywords
patch
interface
parameter
buffering area
write
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
Application number
CN201510718951.7A
Other languages
English (en)
Other versions
CN106021089A (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.)
Beijing CEC Huada Electronic Design Co Ltd
Original Assignee
Beijing CEC Huada Electronic Design 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 Beijing CEC Huada Electronic Design Co Ltd filed Critical Beijing CEC Huada Electronic Design Co Ltd
Priority to CN201510718951.7A priority Critical patent/CN106021089B/zh
Publication of CN106021089A publication Critical patent/CN106021089A/zh
Application granted granted Critical
Publication of CN106021089B publication Critical patent/CN106021089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种补丁接口的测试方法和装置,方法包括:补丁接口参数备份步骤,用于将所述补丁接口即将传入的参数逐个备份至缓冲区A中;补丁接口运行步骤,用于根据状态标识执行补丁模块或只读存储器ROM功能模块;当状态标识表明是执行补丁模块,将通过补丁接口运行EEPROM中的补丁测试数据生成步骤;补丁测试数据生成步骤,用于将接口传入的参数逐个写入缓冲区B中;数据比较步骤,用于将缓冲区A中的数据与缓冲区B中的数据进行比较;结果确定步骤,用于确定是否正确进入到补丁,以及确定ROM中的补丁接口是否已将参数完整的传递到上述补丁测试数据生成步骤中。

Description

一种补丁接口的测试方法及装置
技术领域
本发明涉及嵌入式设计领域,尤其涉及一种补丁接口的测试方法及装置。
背景技术
掩膜式的嵌入式***,其存储体系包括:只读存储器(ROM,Read-Only Memory)、电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-OnlyMemory)、以及随机存储器(RAM,Random-Access Memory)。ROM用于存储操作***及应用;RAM用于存储操作***和应用的变量数据;EEPROM用于存储数据,如通讯录、短信息等。其中,EEPROM是可以修改的存储区域。通常,***会设计成中央处理器(CPU,CentralProcessing Unit)可以直接访问ROM和EEPROM的地址空间,所以程序代码可以分别存储在ROM和EEPROM这两个存储介质上运行。
在制造掩膜芯片时,设计厂商会将操作***及应用的代码形成可执行的HEX文件,然后由半导体生产厂商将HEX文件掩膜形成在ROM内。掩膜在ROM中的操作***和应用程序由于介质特性,不能再被修改。这造成一旦掩膜开始,即使厂商发现程序存在缺陷也不能修改,导致掩膜芯片报废,带来巨大的损失。所以厂商会设计补丁机制来应对这种问题。
补丁机制是指,ROM中的程序根据一定规则调用EEPROM中的某段程序或函数,以替换ROM中存在缺陷的程序或函数,通常替换的单位是函数模块。在嵌入式***中,由于存储空间有限,往往不能替换全部程序,从实际出发,往往是在一定的程序点上预留补丁判断和分支的接口,当确认补丁生效后将调用补丁模块。业界称这种接口为补丁接口。
对于补丁接口要进行测试,以保证ROM中的程序可在约定条件下执行补丁正确。通常的测试方法都是设计出存储在EEPROM中的补丁模块,该补丁模块与ROM中的模块功能相同,并特别设计出一定的差异;然后用测试ROM中该功能模块的方法结合预期的差异,来表明执行到了补丁模块中,以证明补丁接口正确。
但上述测试方法存在两点问题:
一,为了测试,需要开发每个和原ROM模块功能相近并设计出差异的补丁模块,这样的工作量较大,导致测试效率低。
二,该测试方法的测试覆盖率有一定局限,即没有关注到补丁接口本身,而是关注通过补丁的执行间接证明补丁接口正确,在参数传递方面容易漏测。
发明内容
为解决现有存在的技术问题,本发明实施例期望提供一种补丁接口的测试方法及装置。
为实现上述发明目的,本发明实施例采用以下方式来实现:
本发明实施例提供了一种补丁接口的测试方法,所述方法包括:
补丁接口参数备份步骤,用于将所述补丁接口即将传入的参数逐个备份至缓冲区A中;
补丁接口运行步骤,用于根据状态标识执行补丁模块或只读存储器ROM功能模块;当状态标识表明是执行补丁模块,将通过补丁接口运行EEPROM中的补丁测试数据生成步骤;
补丁测试数据生成步骤,用于将接口传入的参数逐个写入缓冲区B中;
数据比较步骤,用于将缓冲区A中的数据与缓冲区B中的数据进行比较;
结果确定步骤,用于确定是否正确进入到补丁,以及确定ROM中的补丁接口是否已将参数完整的传递到上述补丁测试数据生成步骤中。
上述方案中,所述方法还包括:
对参数的备份次序采用以下规则:写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
上述方案中,所述方法还包括:
对参数的写入次序采用以下规则:写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
上述方案中,所述方法还包括:
在结果确定步骤中,如果数据比较的结果完全一致,表明正确进入到补丁,并且补丁传输参数正确;如果数据比较的结果不一致,表明没有正确进入到补丁或者补丁传输参数不正确。
本发明实施例还提供了一种补丁接口的测试装置,所述装置包括:
补丁接口参数备份单元,用于将接口即将传入的参数逐个备份至缓冲区A中;
补丁接口运行单元,用于根据状态标识执行补丁模块或ROM功能模块;当状态标识表明是执行补丁模块,将通过补丁接口运行EEPROM中的补丁测试数据生成装置;
补丁测试数据生成单元,用于将接口传入的参数逐个写入缓冲区B中;
数据比较单元,用于将缓冲区A中的数据与缓冲区B中的数据进行比较;
结果确定单元,用于确定是否正确进入到补丁,以及确定ROM中的补丁接口是否已将参数完整的传递到上述补丁测试数据生成单元中。
上述方案中,所述补丁接口参数备份单元对参数的备份次序采用以下规则:写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
上述方案中,所述补丁测试数据生成单元对参数的写入次序采用以下规则:写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
上述方案中,所述结果确定单元进一步用于,在结果确定时,如果数据比较的结果完全一致,表明正确进入到补丁,并且补丁传输参数正确;如果数据比较的结果不一致,表明没有正确进入到补丁或者补丁传输参数不正确。
本发明实施例提供的一种补丁接口的测试方法及装置,备份调用补丁前的接口参数,在补丁中对传入的参数再次备份,通过比较两次备份数据的一致性,达到测试是否正确进入到补丁,以及确定ROM中的补丁接口是否已将参数完整的传递到补丁中的目的。本发明实施例简单可行,能够以更高的效率、更全面的覆盖率的完成补丁接口测试。
附图说明
图1为本发明实施例的一种补丁接口的测试方法的流程图;
图2为本发明实施例的补丁接口运行的实施流程示意图;
图3为本发明实施例的一种补丁接口的测试装置的组成结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明实施例提供一种补丁接口的测试方法与装置,用以解决现有技术中补丁接口测试效率不高和不全面的问题。本发明实施例的方法关键在于,关注被测对象为补丁接口,而不是补丁程序;通过本发明实施例的方法可测试出补丁接口是否可正常引导至补丁程序,以及补丁接口是否将充分必要的参数正确传递至补丁程序。
本发明实施例提供的一种补丁接口的测试方法,该方法主要包括:
补丁接口参数备份步骤,用于将补丁接口(补丁接口位于ROM中)即将传入的参数逐个备份至缓冲区A(缓冲区A位于RAM中)中。对参数的备份次序采用一种规则,即写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
补丁接口运行步骤,用于根据状态标识执行补丁模块或ROM功能模块。如果状态标识表明是执行补丁模块,将通过补丁接口运行EEPROM中的补丁测试数据生成步骤。
补丁测试数据生成步骤,用于将补丁接口传入的参数逐个写入缓冲区B(缓冲区B位于RAM中)中。写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
数据比较步骤,用于将缓冲区A中的数据与缓冲区B中的数据进行比较。
结果确定步骤,用于确定是否正确进入到补丁,以及确定ROM中的补丁接口是否已将参数完整的传递到上述补丁测试数据生成装置中。
前文提过补丁替换的单位通常是函数模块,本实施例提供一种测试补丁接口的方法,就是针对一个函数模块的补丁接口的测试方法。如图1所示,所述方法包括:
步骤A01、补丁参数备份。将整理函数的多个输入接口参数,并将这些参数逐个备份写入至缓冲区A中。备份动作必须依照一定的顺序进行,例如按照传入的参数从左至右的顺序;当参数为结构体参数时,写入顺序与结构体中成员顺序一致。
步骤A02、补丁接口运行。据状态标识执行补丁模块或ROM功能模块。状态标识用于控制补丁是否生效,不由本实施例维护,本实施例仅读取状态标识。如果状态标识表明是执行补丁模块,将通过补丁接口运行EEPROM中的补丁测试数据生成模块。
步骤A03、补丁测试数据生成。在进入本模块时,补丁接口会将函数参数传入,本步骤中会将这些参数逐个写入至缓冲区B中。写入的次序必须依照步骤A01的顺序,例如按照传入的参数从左至右的顺序;当参数为结构体参数时,写入顺序与结构体中成员顺序一致。
步骤A04、进行数据比较。将缓冲区A和缓冲区B的数据逐一进行比对,输出完全一致或不一致的结果。
步骤A05、进行结果判断,如果上一步比较的结果完全一致,表明正确进入到补丁,并且补丁传输参数正确;如果比较的结果不一致,表明没有正确进入到补丁或者补丁传输参数不正确。
其中,补丁接口运行的具体实施过程如图2所示,主要包括:
步骤B00、开始进入补丁模块。
步骤B01、读取补状态标识,并进行判断。
步骤B02、当补状态标识表示补丁生效,则准备执行EEPROM中的程序。
步骤B03、当补状态标识表示补丁生效,则准备执行ROM中的程序。
本发明实施例提供的一种补丁接口的测试装置,如图3所示,主要包括:
补丁接口参数备份单元10,用于将接口即将传入的参数逐个备份至缓冲区A中。对参数的备份次序采用一种规则,即写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
补丁接口运行单元20,用于根据状态标识执行补丁模块或ROM功能模块。如果状态标识表明是执行补丁模块,将通过补丁接口运行EEPROM中的补丁测试数据生成装置。
补丁测试数据生成单元30,用于将接口传入的参数逐个写入缓冲区B中。写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
数据比较单元40,用于将缓冲区A中的数据与缓冲区B中的数据进行比较。
结果确定单元50,用于确定是否正确进入到补丁,以及确定ROM中的补丁接口是否已将参数完整的传递到上述补丁测试数据生成装置中。
经实践证明,本发明实施例提供的补丁接口的测试方法及装置,简单可行,能够以更高的效率、更全面的覆盖率的完成补丁接口测试。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (6)

1.一种补丁接口的测试方法,其特征在于,所述方法包括:
补丁接口参数备份步骤,用于将所述补丁接口即将传入的参数逐个备份至缓冲区A中;
补丁接口运行步骤,用于根据状态标识执行补丁模块或只读存储器ROM功能模块;当状态标识表明是执行补丁模块,将通过补丁接口运行EEPROM中的补丁测试数据生成步骤;
补丁测试数据生成步骤,用于将接口传入的参数逐个写入缓冲区B中;
数据比较步骤,用于将缓冲区A中的数据与缓冲区B中的数据逐一进行比较,输出完全一致或不一致的结果;
结果确定步骤,用于确定是否正确进入到补丁,以及确定ROM中的补丁接口是否已将参数完整的传递到上述补丁测试数据生成步骤中,在结果确定时,如果数据比较的结果完全一致,表明正确进入到补丁,并且补丁传输参数正确;如果数据比较的结果不一致,表明没有正确进入到补丁或者补丁传输参数不正确。
2.根据权利要求1所述补丁接口的测试方法,其特征在于,所述方法还包括:
对参数的备份次序采用以下规则:写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
3.根据权利要求1所述补丁接口的测试方法,其特征在于,所述方法还包括:
对参数的写入次序采用以下规则:写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
4.一种补丁接口的测试装置,其特征在于,所述装置包括:
补丁接口参数备份单元,用于将接口即将传入的参数逐个备份至缓冲区A中;
补丁接口运行单元,用于根据状态标识执行补丁模块或ROM功能模块;当状态标识表明是执行补丁模块,将通过补丁接口运行EEPROM中的补丁测试数据生成装置;
补丁测试数据生成单元,用于将接口传入的参数逐个写入缓冲区B中;
数据比较单元,用于将缓冲区A中的数据与缓冲区B中的数据逐一进行比较,输出完全一致或不一致的结果;
结果确定单元,用于确定是否正确进入到补丁,以及确定ROM中的补丁接口是否已将参数完整的传递到上述补丁测试数据生成单元中,在结果确定时,如果数据比较的结果完全一致,表明正确进入到补丁,并且补丁传输参数正确;如果数据比较的结果不一致,表明没有正确进入到补丁或者补丁传输参数不正确。
5.根据权利要求4所述补丁接口的测试装置,其特征在于,所述补丁接口参数备份单元对参数的备份次序采用以下规则:写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
6.根据权利要求4所述补丁接口的测试装置,其特征在于,所述补丁测试数据生成单元对参数的写入次序采用以下规则:写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
CN201510718951.7A 2015-10-30 2015-10-30 一种补丁接口的测试方法及装置 Active CN106021089B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510718951.7A CN106021089B (zh) 2015-10-30 2015-10-30 一种补丁接口的测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510718951.7A CN106021089B (zh) 2015-10-30 2015-10-30 一种补丁接口的测试方法及装置

Publications (2)

Publication Number Publication Date
CN106021089A CN106021089A (zh) 2016-10-12
CN106021089B true CN106021089B (zh) 2018-09-18

Family

ID=57082643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510718951.7A Active CN106021089B (zh) 2015-10-30 2015-10-30 一种补丁接口的测试方法及装置

Country Status (1)

Country Link
CN (1) CN106021089B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391085A (zh) * 2017-06-20 2017-11-24 深圳芯邦科技股份有限公司 一种rom代码补丁运行方法和***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489047A (zh) * 2002-10-09 2004-04-14 华为技术有限公司 嵌入式***中软件补丁的加载与同步的方法
CN101533481A (zh) * 2009-04-03 2009-09-16 东信和平智能卡股份有限公司 掩膜智能卡的功能扩展方法
JP2010113549A (ja) * 2008-11-06 2010-05-20 Dainippon Printing Co Ltd Icカードおよびパッチコードの実行方法
JP2010134644A (ja) * 2008-12-03 2010-06-17 Dainippon Printing Co Ltd Icカードおよびパッチ実行方法
CN103632185A (zh) * 2012-08-21 2014-03-12 北京同方微电子有限公司 一种具有扩展功能的掩膜智能卡
CN104007985A (zh) * 2013-02-25 2014-08-27 北京南瑞智芯微电子科技有限公司 一种智能卡apdu命令修正方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424570B2 (en) * 2004-04-08 2008-09-09 Incard Sa Method for patching ROM instructions in an electronic embedded system including at least a further memory portion

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489047A (zh) * 2002-10-09 2004-04-14 华为技术有限公司 嵌入式***中软件补丁的加载与同步的方法
JP2010113549A (ja) * 2008-11-06 2010-05-20 Dainippon Printing Co Ltd Icカードおよびパッチコードの実行方法
JP2010134644A (ja) * 2008-12-03 2010-06-17 Dainippon Printing Co Ltd Icカードおよびパッチ実行方法
CN101533481A (zh) * 2009-04-03 2009-09-16 东信和平智能卡股份有限公司 掩膜智能卡的功能扩展方法
CN103632185A (zh) * 2012-08-21 2014-03-12 北京同方微电子有限公司 一种具有扩展功能的掩膜智能卡
CN104007985A (zh) * 2013-02-25 2014-08-27 北京南瑞智芯微电子科技有限公司 一种智能卡apdu命令修正方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Designing,playing,and performing with a version-based mouth interface;Michael J.Lyons等;《NIME "03 Proceedings of the 2003 conference on New interface for musical expresssion》;20030522;第116-121页 *
智能卡固件的补丁机制设计;胡杰;《科技信息》;20140125(第3期);第44-45页 *

Also Published As

Publication number Publication date
CN106021089A (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
US9471435B2 (en) Information processing device, information processing method, and computer program
US9513911B2 (en) Method of detecting stack overflows and processor for implementing such a method
US9367427B2 (en) Embedding and executing trace functions in code to gather trace data
CN109710317B (zh) ***启动方法、装置、电子设备及存储介质
CN111581084B (zh) 基于智能电表操作***的进程测试方法和装置
CN103257922B (zh) 一种快速测试bios与os接口代码可靠性的方法
CN107301042A (zh) 一种带自检功能的SoC应用程序引导方法
CN106681877B (zh) 芯片调试***及方法与***芯片
CN115756984A (zh) 内存测试方法、装置、设备及存储介质
CN107516546B (zh) 一种随机存储器的在线检测装置及方法
US9786373B2 (en) EEPROM backup method and device
CN107544804A (zh) 嵌入式***终端开发模式的启动方法及装置
JP6643407B2 (ja) 欠陥関数を検査する方法、装置、サーバ及びプログラム
CN106021089B (zh) 一种补丁接口的测试方法及装置
US7640421B1 (en) Method and system for determining context switch state
CN110134598B (zh) 一种批量处理方法、装置及***
CN115757099A (zh) 平台固件保护恢复功能自动测试方法和装置
Sargsyan Firmware generation architecture for memory BIST
CN113835944A (zh) 快速判断固态硬盘链路速率的测试方法、装置及计算机设备
CN103593320B (zh) 多处理器***、装置和方法
CN111221701A (zh) 一种芯片及其电路逻辑重构***
US8090991B2 (en) Information processing apparatus, method, and computer program product for self-diagnosis for utilizing multiple diagnostic devices, each having exclusive access to a resource
CN112464499B (zh) 非易失芯片擦写数据检查方法、装置、存储介质和终端
CN109814888A (zh) NandFlash控制器EFUSE代替方法及装置
CN112530511B (zh) 非易失型芯片内部单步测试方法、装置、存储介质、终端

Legal Events

Date Code Title Description
DD01 Delivery of document by public notice

Addressee: Beijing CEC Huada Electronic Design Co., Ltd.

Document name: Notification to Make Rectification

C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant