CN106021089B - 一种补丁接口的测试方法及装置 - Google Patents
一种补丁接口的测试方法及装置 Download PDFInfo
- 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
Links
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/3664—Environments for testing or debugging software
-
- 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
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所述补丁接口的测试装置,其特征在于,所述补丁测试数据生成单元对参数的写入次序采用以下规则:写入的参数顺序与接口传入顺序一致;若为结构体类型的参数,写入顺序与结构体中成员顺序一致。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391085A (zh) * | 2017-06-20 | 2017-11-24 | 深圳芯邦科技股份有限公司 | 一种rom代码补丁运行方法和系统 |
Citations (6)
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)
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 |
-
2015
- 2015-10-30 CN CN201510718951.7A patent/CN106021089B/zh active Active
Patent Citations (6)
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)
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 | |
CN111581084A (zh) | 基于智能电表操作系统的进程测试方法和装置 | |
CN103257922B (zh) | 一种快速测试bios与os接口代码可靠性的方法 | |
CN107179982B (zh) | 一种跨进程调试方法和装置 | |
CN106681877B (zh) | 芯片调试系统及方法与系统芯片 | |
CN115756984A (zh) | 内存测试方法、装置、设备及存储介质 | |
CN107516546B (zh) | 一种随机存储器的在线检测装置及方法 | |
CN110134598B (zh) | 一种批量处理方法、装置及系统 | |
US9786373B2 (en) | EEPROM backup method and device | |
CN107544804A (zh) | 嵌入式系统终端开发模式的启动方法及装置 | |
JP6643407B2 (ja) | 欠陥関数を検査する方法、装置、サーバ及びプログラム | |
CN106021089B (zh) | 一种补丁接口的测试方法及装置 | |
US7640421B1 (en) | Method and system for determining context switch state | |
CN106909382B (zh) | 输出不同类型系统启动信息的方法及装置 | |
CN113315675A (zh) | 一种白盒交换机U-Boot自动化测试方法、系统和存储介质 | |
CN115757099A (zh) | 平台固件保护恢复功能自动测试方法和装置 | |
CN113835944B (zh) | 快速判断固态硬盘链路速率的测试方法、装置及计算机设备 | |
Sargsyan | Firmware generation architecture for memory BIST | |
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代替方法及装置 |
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 |