CN102346235A - 一种面向硬件设备功能的自动测试系统及方法 - Google Patents

一种面向硬件设备功能的自动测试系统及方法 Download PDF

Info

Publication number
CN102346235A
CN102346235A CN2011101926795A CN201110192679A CN102346235A CN 102346235 A CN102346235 A CN 102346235A CN 2011101926795 A CN2011101926795 A CN 2011101926795A CN 201110192679 A CN201110192679 A CN 201110192679A CN 102346235 A CN102346235 A CN 102346235A
Authority
CN
China
Prior art keywords
test
file
auto
fpga
platform
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
Application number
CN2011101926795A
Other languages
English (en)
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.)
BEIDA ZHONGZHI MICROSYSTEM SCIENCE AND TECHNOLOGY Co Ltd BEIJING
Original Assignee
BEIDA ZHONGZHI MICROSYSTEM SCIENCE AND TECHNOLOGY Co Ltd BEIJING
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 BEIDA ZHONGZHI MICROSYSTEM SCIENCE AND TECHNOLOGY Co Ltd BEIJING filed Critical BEIDA ZHONGZHI MICROSYSTEM SCIENCE AND TECHNOLOGY Co Ltd BEIJING
Priority to CN2011101926795A priority Critical patent/CN102346235A/zh
Priority to PCT/CN2011/080802 priority patent/WO2013007068A1/zh
Publication of CN102346235A publication Critical patent/CN102346235A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/24Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests

Abstract

本发明公开了一种面向硬件设备功能的自动测试系统及方法,所述系统包括作为被测硬件设备测试平台的现场可编程门阵列(FPGA)测试目标平台,还包括FPGA bit文件管理和烧录子系统,基本输入/输出系统(BIOS)文件管理及烧录子系统,自动测试系统平台。在初始化完成后,测试时,自动测试系统平台提供对测试目标平台的测试控制,保存有自动测试所需的自动测试脚本文件及测试用例集,在测试时利用自动测试脚本完成自动测试过程,通过测试用例集完成功能测试,并用于保存测试结果。本测试系统具有通用性,并具有较强可扩展性,可根据实际需求,增加特定的环境初始化、执行控制、结果分析模块。

Description

一种面向硬件设备功能的自动测试系统及方法
技术领域
本发明涉及面向硬件设备功能的开发测试技术领域,尤其涉及一种面向硬件设备功能的自动测试系统及方法。
背景技术
基于FPGA(现场可编程门阵列,Field Programmable Gate Array)原型系统的功能能验证和性能评测是集成电路开发过程中的一个重要环节。在基于FPGA器件的计算机原型系统开发平台中,对各个硬件设备模块(如硬盘控制器、USB控制器、网络适配器等)的汇编程序测试是硬件设备功能验证的必要步骤。当前在此类测试中一般存在以下几个问题:
第一,为保证测试的覆盖率以及满足特定情况下的压力测试需求,对某一单独功能模块的测试过程可能涉及大量测试程序,对于所涉及的大量测试程序很难凭借纯手工操作方式进行测试。
第二,对于不同的测试,从测试结果判定测试成功与否的标准不尽相同,且有些测试向量可能涉及到对二进制数据的比较分析。若采用手工操作方式进行测试,则往往需要借助其它工具来实现,必然会影响到测试效率。
第三,对于大量测试结果的记录与统计,采用依靠人力的手工测试方式同样难以实现。
因此,目前对于此类测试,一般采用编写测试脚本的方式完成测试过程,但由于模块差异以及测试脚本的程序特性差异,测试不同模块所得结果的表示方式等内容也不尽相同,往往需要为不同的单元测试编写不同的测试脚本,因其不具通用性而必然造成效率较低、代价较大的结果。
目前已有的自动测试相关专利中,测试方案的侧重点均有所不同,并不适应于基于FPGA的计算机原型系统开发平台中各设备功能的软件测试。例如,申请号为200710076906.1的专利“一种嵌入设备的软件自动测试工具及方法”主要针对手机、固定机台等嵌入式设备的软件测试,其技术方案需要建立专门的测试用例XML脚本并对其进行解析执行;申请号为200710134884.X的专利“基于可编程逻辑器件的多芯片自动测试方法”则注重测试FPGA电路中的电气特性,无法满足系统级硬件设备功能的测试要求;申请号为200610126966.5的专利“嵌入式软件自动测试系统及其测试方法”和申请号为200410064302.1的专利“一种嵌入式软件自动化测试的装置及其方法”所提的测试方案则针对软件系统提出的测试方法。
所以,这就需要一种面向硬件设备功能的通用的自动测试系统及方法,来解决当前测试中所存在的问题。
发明内容
本发明所要解决的技术问题在于,提供一种面向硬件设备功能的自动测试系统及方法,用于解决现有硬件设备的测试系统中存在的测试复杂且不具通用性的问题。
为了解决上述问题,本发明提出了一种面向硬件设备功能的自动测试系统,包括作为被测硬件设备测试平台的现场可编程门阵列(FPGA)测试目标平台,还包括:
FPGA bit文件管理和烧录子系统,通过FPGA接口与FPGA测试目标平台相连接,用于管理FPGA测试目标平台上所运行的硬件设备功能模块所需的具体的bit文件,用于在准备测试时通过FPGA接口向FPGA测试目标平台烧录与当前被测的硬件设备功能模块相对应的bit文件;
基本输入/输出系统(BIOS)文件管理及烧录子系统,通过BIOS仿真器与FPGA测试目标平台相连接,用于在准备测试时向BIOS仿真器烧录测试所需的BIOS文件;
自动测试系统平台,通过硬件调试器与FPGA测试目标平台连接,用于提供对测试目标平台的测试控制,保存有自动测试所需的自动测试脚本文件及测试用例集,在测试时利用自动测试脚本完成自动测试过程,通过测试用例集完成功能测试,并用于保存测试结果。
进一步地,所述BIOS文件管理及烧录子系统向BIOS仿真器提供的BIOS文件中,包括:
用于在初始化流程后及开始执行测试前的一个循环等待对应的死循环地址;
用于在跳过上述死循环地址对应的死循环后,BIOS初始化供测试环境使用的段描述符,以及对应的保护模式,最后长跳转至地址0x0:0x0进入保护模式;其中,
所述段描述符包括基址为0x00000000的代码段CS的段描述符,代码段从物理地址0x00000000开始;
所述保护模式从0x0000:0x00B00000处,即物理地址0x00B00000处开始执行;
数据段DS、ES、FS和堆栈段SS的段描述符基址均为0x00000000,对上述段描述符对应的段址寄存器进行内存读写时,实际读写的物理地址与所用逻辑地址数值相等。
进一步地,所述自动测试系统平台保存的测试用例文件的测试代码结构中包括:
以text段开头、标明32位指令模式、偏移量为0的开头部分;
用于在测试过程和结束时保存结果数据的内存区域;
用于在测试结束后通知测试脚本测试已完成的应跳转到的一个固定地址。
进一步地,所述自动测试系统平台在测试结束后对测试结果的表示方式包括如下方式之一或它们的组合:是否执行结束;是否执行成功;保存测试结果;比较测试结果。
进一步地,所述自动测试系统平台的自动测试脚本文件中包括用于保存测试脚本文件的所在文件夹的绝对路径信息。
本发明还提供一种基于上述面向硬件设备功能的自动测试系统的测试方法,包括:
全局测试初始化步骤,对自动测试系统平台进行初始化,设置测试运行所需的断点信息,统计测试用例文件集,获得测试文件列表,对列表中的每一测试用例文件执行以下两个步骤:
单文件测试准备步骤,重置FPGA测试目标平台,进行BIOS初始化,将当前测试所需测试用例文件载入FPGA测试目标平台内存中,在进入保护模式后,设置测试程序终止地址断点;
单文件测试执行步骤,在保护模式下执行测试用例程序,根据规定的内存使用规范按需使用特定的内存区域,并将结果保存在规定的测试结果数据区域,测试执行结束后,跳转到终止地址,触发在准备步骤中所设置的终止地址断点;测试过程中和/或测试结束后按对应结果表示方式,对测试结果进行处理。
进一步地,所述测试用例文件的测试代码结构中包括:
以text段开头、标明32位指令模式、偏移量为0的开头部分;
用于在测试过程和结束时保存结果数据的内存区域;
用于在测试结束后通知测试脚本测试已完成的应跳转到的一个固定地址。
进一步地,在对BIOS进行初始化过程中,包括:配置在初始化流程后及开始执行测试前的一个循环等待对应的死循环地址;配置在跳过上述死循环地址对应的死循环后,BIOS初始化供测试环境使用的段描述符,以及对应的保护模式,最后跳转至地址0x0:0x0进入保护模式;其中,
所述段描述符包括基址为0x00000000的代码段CS的段描述符,代码段从物理地址0x00000000开始;
所述保护模式从0x0000:0x00B00000处,即物理地址0x00B00000处开始执行;
数据段DS、ES、FS和堆栈段SS的段描述符基址均为0x00000000,对上述段描述符对应的段址寄存器进行内存读写时,实际读写的物理地址与所用逻辑地址数值相等。
进一步地,所述自动测试系统平台对测试结果的表示方式包括如下方式之一或它们的组合:是否执行结束;是否执行成功;保存测试结果;比较测试结果。
进一步地,所述全局测试初始化步骤,中,包括将测试脚本文件的所在文件夹的绝对路径信息加入自动测试系统平台的自动测试脚本文件的步骤。
本发明的自动测试系统及自动测试方法,利用硬件调试器(比如FS2)的支持,通过定义统一的测试执行规范实现通用的自动测试系统,支持对不同硬件模块单元测试程序的自动执行,并可对测试结果进行分析判定以及统计。与现有技术相比,本自动测试系统及方法采用软件来测试硬件设备功能,主要具有以下几个特点:
第一,FPGA目标测试平台为完整的通用PC硬件系统,可以运行BIOS(Basic Input/Output System)甚至操作系统;
第二,主要侧重于系统级硬件环境下的某个或某些硬件模块的功能验证,与模拟验证和硬件电气特性验证等互补,对于目标硬件平台的操作系统开发具有重要意义;
第三,基于硬件调试器,可以在自动测试系统平台实现对FPGA目标测试平台的全面执行控制,满足多种测试的需求;
第四,测试可基于Tcl语言实现,可跨平台运行于WindoWs/Linux操作系统,满足不同硬件环境需求;
第五,本测试系统具有较强可扩展性,可根据实际需求,增加特定的环境初始化、执行控制、结果分析模块。
附图说明
图1是自动测试系统的结构示意图;
图2是自动测试系统的自动测试流程图;
图3是自动测试系统具体应用实施例的操作执行流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。
如图1所示,给出了以FPGA为例的面向硬件设备功能的自动测试系统的组成示意图。该面向硬件设备功能的自动测试系统包括如下几个部分:
FPGA测试目标平台,其作为FPGA的系统开发平台,其上的基于FPGA的硬件设备为被测试对象,在某些环境中也可以改为其它系统开发板平台;
FPGA bit文件管理和烧录子系统,与FPGA测试目标平台通过FPGA接口相连接,用于负责管理FPGA测试目标平台上所运行的硬件设备功能模块,硬件设备功能模块所需的具体的bit文件由硬件平台开发人员提供到该FPGAbit文件管理和烧录子系统,在准备测试时,通过FPGA接口向FPGA板中烧录与当前被测的硬件设备功能模块相对应的bit文件。
BIOS文件管理及烧录子系统,通过BIOS仿真器与FPGA测试目标平台相连接,负责维护针对FPGA测试目标平台的BIOS(Basic Input/OutputSystem,基本输入/输出系统)芯片程序,保证FPGA测试目标平台的正常运行,其在准备测试时向BIOS仿真器烧录测试所用的BIOS程序。其中,BIOS仿真器还可以提供高效率的BIOS使用方法,避免在更新BIOS程序时需要更换BIOS芯片。
自动测试系统平台,通过硬件调试器与FPGA测试目标平台连接,是该自动测试系统的运行控制平台,用于提供对测试目标平台的控制功能。所述硬件调试器是FS2硬件调试器或其它适用的硬件调试器。该自动测试系统平台保存有自动测试所需的自动脚本文件及测试用例集,在测试时利用自动测试脚本完成自动测试过程,通过测试用例集完成功能测试。
为保证自动测试脚本的正常执行,需要针对FPGA测试目标平台的内存布局作出规定,在该FPGA测试目标平台所用的BIOS版本中作出如下规范:
第一,BIOS在完成必要初始化流程后,在开始执行测试之前进入一个循环等待,死循环地址为0xF000:0x3F2F;
第二,在跳过上述死循环地址对应的死循环后,BIOS初始化供测试环境使用的段描述符,并跳转至地址0x0:0x0进入保护模式继续执行,该保护模式有如下特点:其代码段CS的段描述符基址为0x00000000,即代码段从物理地址0x00000000开始;进入该保护模式后,将从0x0000:0x00B00000处(即物理地址0x00B00000处)开始执行;数据段DS、ES、FS和堆栈段SS的段描述符基址均为0x00000000,则在使用这些段址寄存器进行内存读写时,实际读写的物理地址与所用逻辑地址数值相等。
需要注意的是,在上述规范中,根据设置的段描述符,理论上所有的4G内存地址空间均可读写,但是考虑到实际的硬件配置以及内存中其它代码和数据的安全,建议使用的区域为0x100000到0x800000以及0xA00000以上区域,并注意不要与I/O地址空间重叠。
如图2所示,给出了基于图1所示硬件设备功能的自动测试系统的自动测试流程示意图。所述自动测试流程通过在调试环境执行的自动测试脚本实现自动测试过程,测试过程中无需人工干预,极大减少了工作量并提高了测试效率。该自动测试流程主要分为三个阶段:
第一阶段,全局测试初始化阶段
在全局测试初始化阶段,主要进行自动测试系统平台和FPGA目标测试平台的初始化工作,设置测试运行所需的断点等信息。另外,本阶段需要解析并保存测试目标文件集的文件名信息,这些信息将用于后续的测试过程。该过程在一次自动测试流程中仅需执行一次。
第二阶段,单文件测试准备阶段
在单文件测试准备阶段,负责每个测试文件运行前的环境准备工作。其主要工作包括:重置FPGA测试平台,并等待BIOS初始化完毕;将本次需要测试的文件载入到FPGA平台的内存中;在FPGA平台进入保护模式后,设置测试程序终止地址断点,以便后面监视测试程序是否执行完毕。
第三阶段,单文件测试执行阶段
在单文件测试执行阶段,将继续在前面完成初始化的保护模式下,执行测试目标文件。
该测试过程中,测试程序可以根据规定的内存使用规范,按照需要使用特定的内存区域,并将结果保存在规定的测试结果数据区域。测试执行结束后,将跳转到终止地址,触发自动测试系统设置的断点。在到达该终止地址断点后,自动测试系统将根据设定对该测试程序的执行结果进行判定,并保存到结果目录中。
对于每个尚未测试的文件,将依次执行上述的第二和第三阶段流程,直至所有的文件都测试结束。
在图2所示的自动测试流程中,具体包括如下步骤:
首先,设置测试所需的触发器,检测测试文件目录的合法性,并获取测试文件列表;检测结果文件目录的合法性。通过合法性检测可以避免读取测试文件或保存测试结果时出现读写错误。
然后,对所获取的测试文件列表进行非空检测,若否则所有测试文件都已测试完毕,结束测试流程;若为非空,则表明仍有待测文件,则从测试文件列表中获取下一个测试文件,进一步判断该测试文件是否已经测试过,若已测试过,则返回进行测试文件列表是否非空的检测,若未经测试,则进入单文件测试准备阶段。
在单文件测试准备阶段,先发出RESET(复位)指令重置FPGA平台,在进入保护模式前的死循环阶段设置第一断点(断点1),然后发出GO指令,FPGA平台开始执行测试,测试过程中,判断是否到达第一断点,若未到达则继续进行该判断,若已到达该第一断点,则载入当前的测试文件到内存中(地址为0x00B00000);然后,跳过第一断点处的死循环,在保护模式第一条指令处设置第二断点(断点2:EIP 0x00000000),发出GO指令,FPGA平台继续执行,过程中判断是否到达第二断点,若未到达则继续判断,若已到达第二断点,则指令指针(EIP)地址改为测试文件入口地址0x00B00000,进入单文件测试执行阶段。
在单文件测试执行阶段,需要设置第三断点作为测试终止地址断点(断点3:EIP 0x00F00000),然后发出GO指令,测试代码开始执行,执行过程中,判断是否到达第三断点,若否则继续判断,若已到达第三断点,则将测试结果数据保存到文件,并根据需要进行相应处理。该单文件测试结束后,返回判断测试文件列表是否非空,直到所有测试文件都已执行测试完毕,整个测试过程结束。
如图3所示,给出了以FS2硬件调试器为例的自动测试本系统的基本使用操作流程图,其基本使用操作流程包括如下步骤:
S301:接通作为测试目标平台的FPGA板的电源,开启电源开关加电启动FPGA板;
S302:从FPGA bit文件管理及烧录子系统经FPGA接口向FPGA板中烧录与所述FPGA板相应的bit文件,所述bit文件包括适用于待测试目标功能模块的bit文件;
S303:从BIOS文件管理及烧录子系统向BIOS仿真器烧录测试所需的BIOS文件;
S304:按下FPGA板上的复位(reset)按钮,初始化FPGA板的状态,并在自动测试系统中的FS2后端控制系统执行HALT命令;
S305:初始化硬件调试器,在FS2控制台(Console)程序的菜单栏中,选择File->Source,载入FS2附带的ice-tle.tcl脚本,加载ICE基本运行环境支持;
S306:建立合适的测试目标文件集文件夹,在FS2调试程序和测试脚本所在计算机系统上配置测试文件(包括但不限于测试用例文件)和测试脚本,在计算机系统中新建一个目录(需保证此该信件目录的绝对路径中不包含空格),假设其为”C:/SomeDir”,在该新建目录中创建一个bin目录,并将所有测试二进制文件复制到该bin目录中;
S307:根据测试目标文件集所在的文件夹路径,修改自动测试脚本文件auto_run_test.tcl中第一条指令,将其中的路径改为步骤S306所新建的目录的绝对路径;
S308:加载自动测试脚本执行测试,在FS2的控制台(Console)中,执行File->Source,载入修改后的自动测试脚本文件auto_run_test.tcl,开始执行测试;
S309:收集测试结果数据,在所有测试结束后,测试目录下的result目录中保存了所有测试结果,该result目录可预先建立,也可在第一次测试之前自动创建。
为保证测试目标汇编代码与本自动测试系统能较好地耦合并正常运行,需要对测试目标汇编代码的格式和内存使用情况进行一些规范。目前本测试系统对于测试目标汇编代码主要有以下规范。
对于测试代码结构模板:本自动测试系统支持AT&T格式汇编以及Intel格式汇编测试文件。此处以AT&T格式为例介绍编写测试代码的相关约定和结构模板。
对于测试代码内存使用规范:由于测试代码的执行环境是由BIOS临时构建的保护模式环境,其代码段与数据段配置包括:代码段基址从物理地址0x00000000开始,EIP从0x00B00000开始执行;数据段基址从物理地址0x00000000开始,在通过EAX、EBX等寄存器进行内存读写寻址时,实际访问的物理地址与EAX/EBX...数值相等。根据设置的段描述符,理论上所有的4G内存地址空间均可读写,但是考虑到实际的硬件配置以及内存中其它代码和数据的安全,本自动测试系统使用的区域为0x100000到0x800000以及0xa00000以上区域,并不与其他设备地址空间重叠。
对于测试代码结构规范如下:
测试代码应以text段开头,且应标明32位指令模式,偏移量为0,即开头部分应形如:
Figure BDA0000074947190000101
在测试过程和结束时,如果有需要保存的结果数据,可以保存在0xA00000开始的1KB内存区域中,当该测试文件测试完成后,测试脚本会将该部分数据保存到结果文件。
在测试结束后,为通知测试脚本测试已完成,应跳转到一个固定地址0XF00000。作为参考,可以使用如下方式跳转:
Figure BDA0000074947190000111
综上,测试代码的整体模板可以表示如下:
对于测试目标文件生成方案,测试汇编代码采用binutils的gas和ld进行汇编和链接,并利用objcopy将elf格式的可执行文件转换为可直接从文件起始地址执行的二进制文件。使用gas进行汇编时,建议使用的参数为“--32”。使用ld进行链接时,建议使用下面给出的参考链接脚本link.lds。建议使用参数:“-melf_i386-T link.lds”。link.lds的具体示例如下:
Figure BDA0000074947190000113
Figure BDA0000074947190000121
用objcopy转换二进制文件,使用命令参数“-O binary”。为了简化编译过程,建议使用Makefile。下面给出了一个可供参考的Makefile脚本。
Figure BDA0000074947190000122
Figure BDA0000074947190000131
在测试结束后,对于测试结果表示方式,可根据测试程序的具体需求选择。测试结果的表示可以有多种实现方式,下面举例说明一些基本的结果表示方法。
方式1:是否执行结束
此类测试仅需要检测测试程序是否正常执行结束。对某些硬件模块的测试中,可能并不需要生成结果数据,只要该测试程序能够正常执行结束,就可以证明测试目标硬件模块工作正常。
在该类测试过程中,需要对测试文件执行状态进行判断,以有效检测程序运行中的异常状态。主要异常状态包括:
1、程序“跑飞”,EIP或CS值非法,无法继续执行;
2、程序陷入死循环;
3、程序陷入阻塞I/O或中断过程,并由于硬件模块缺陷无法恢复;
4、程序由于某些非法指令而无法继续执行。
方式2:是否执行成功
此类测试在执行结束时,测试程序根据测试过程判断是否成功完成,并根据测试成功与否将内存中特定地址的数据修改为1或0,其中1代表测试成功,反之代表测试失败。该文件测试完成后,本自动测试系统将读取该内存地址的值,并依据此值判断本测试文件执行是否成功。
另外,为保证测试文件正常执行结束,本测试同样需要利用上述测试文件执行状态检测。出现异常状态同样表示测试失败。
方式3:保存测试结果
此类测试将测试程序运行结束时保存在内存特定位置的数据保存为结果文件。某些硬件模块的测试中,并不能明确地得到测试成功或失败的结果,而是需要根据测试产生的结果数据,对硬件模块工作状态进行分析和评测。该类测试可以满足这类硬件模块的测试需求。
同样,此类测试也需要测试程序执行异常状态的判断机制支持。
方式4:比较测试结果
此类测试中,测试系统根据测试程序提供的参考结果,与实际测试得到的结果进行对比,判断测试结果是否正确或合理。
参考结果数据可以通过两种方式提供:一种是直接提供参考数据的文件形式,程序运行结束后需要将运行结果数据文件与参考文件进行对比,得出结论;另外一种可以通过在汇编文件中定义专门的数据区域,存储参考数据,在运行结束后,通过FS2调试器的内存比较功能对结果数据与参考数据进行自动对比,得到比较结果。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种面向硬件设备功能的自动测试系统,其特征在于,包括作为被测硬件设备测试平台的现场可编程门阵列(FPGA)测试目标平台,还包括:
FPGA bit文件管理和烧录子系统,通过FPGA接口与FPGA测试目标平台相连接,用于管理FPGA测试目标平台上所运行的硬件设备功能模块所需的具体的bit文件,用于在准备测试时通过FPGA接口向FPGA测试目标平台烧录与当前被测的硬件设备功能模块相对应的bit文件;
基本输入/输出系统(BIOS)文件管理及烧录子系统,通过BIOS仿真器与FPGA测试目标平台相连接,用于在准备测试时向BIOS仿真器烧录测试所需的BIOS文件;
自动测试系统平台,通过硬件调试器与FPGA测试目标平台连接,用于提供对测试目标平台的测试控制,保存有自动测试所需的自动测试脚本文件及测试用例集,在测试时利用自动测试脚本完成自动测试过程,通过测试用例集完成功能测试,并用于保存测试结果。
2.如权利要求1所述的自动测试系统,其特征在于,所述BIOS文件管理及烧录子系统向BIOS仿真器提供的BIOS文件中,包括:
用于在初始化流程后及开始执行测试前的一个循环等待对应的死循环地址;
用于在跳过上述死循环地址对应的死循环后,BIOS初始化供测试环境使用的段描述符,以及对应的保护模式,最后跳转至地址0x0:0x0进入保护模式;其中,
所述段描述符包括基址为0x00000000的代码段CS的段描述符,代码段从物理地址0x00000000开始;
所述保护模式从0x0000:0x00B00000处,即物理地址0x00B00000处开始执行;
数据段DS、ES、FS和堆栈段SS的段描述符基址均为0x00000000,上述段描述符对应的段址寄存器进行内存读写时,实际读写的物理地址与所用逻辑地址数值相等。
3.如权利要求1所述的自动测试系统,其特征在于,所述自动测试系统平台保存的测试用例文件的测试代码结构中包括:
以text段开头、标明32位指令模式、偏移量为0的开头部分;
用于在测试过程和结束时保存结果数据的内存区域;
用于在测试结束后通知测试脚本测试已完成的应跳转到的一个固定地址。
4.如权利要求1所述的自动测试系统,其特征在于,所述自动测试系统平台在测试结束后对测试结果的表示方式包括如下方式之一或它们的组合:是否执行结束;是否执行成功;保存测试结果;比较测试结果。
5.如权利要求1所述的自动测试系统,其特征在于,所述自动测试系统平台的自动测试脚本文件中包括用于保存测试脚本文件的所在文件夹的绝对路径信息。
6.一种基于权利要求1所述面向硬件设备功能的自动测试系统的测试方法,其特征在于,包括:
全局测试初始化步骤,对自动测试系统平台进行初始化,设置测试运行所需的断点信息,统计测试用例文件集,获得测试文件列表,对列表中的每一测试用例文件执行以下两个步骤:
单文件测试准备步骤,重置FPGA测试目标平台,进行BIOS初始化,将当前测试所需测试用例文件载入FPGA测试目标平台内存中,在进入保护模式后,设置测试程序终止地址断点;
单文件测试执行步骤,在保护模式下执行测试用例程序,根据规定的内存使用规范按需使用特定的内存区域,并将结果保存在规定的测试结果数据区域,测试执行结束后,跳转到终止地址,触发在准备步骤中所设置的终止地址断点;测试过程中和/或测试结束后按对应结果表示方式,对测试结果进行处理。
7.如权利要求6所述的方法,其特征在于,所述测试用例文件的测试代码结构中包括:
以text段开头、标明32位指令模式、偏移量为0的开头部分;
用于在测试过程和结束时保存结果数据的内存区域;
用于在测试结束后通知测试脚本测试已完成的应跳转到的一个固定地址。
8.如权利要求6所述的方法,其特征在于,在对BIOS进行初始化过程中,包括:配置在初始化流程后及开始执行测试前的一个循环等待对应的死循环地址;配置在跳过上述死循环地址对应的死循环后,BIOS初始化供测试环境使用的段描述符,以及对应的保护模式,最后跳转至地址0x0:0x0进入保护模式;其中,
所述段描述符包括基址为0x00000000的代码段CS的段描述符,代码段从物理地址0x00000000开始;
所述保护模式从0x0000:0x00B00000处,即物理地址0x00B00000处开始执行;
数据段DS、ES、FS和堆栈段SS的段描述符基址均为0x00000000,上述段描述符对应的段址寄存器进行内存读写时,实际读写的物理地址与所用逻辑地址数值相等。
9.如权利要求6所述的方法,其特征在于,所述自动测试系统平台对测试结果的表示方式包括如下方式之一或它们的组合:是否执行结束;是否执行成功;保存测试结果;比较测试结果。
10.如权利要求6所述的方法,其特征在于,所述全局测试初始化步骤,中,包括将测试脚本文件的所在文件夹的绝对路径信息加入自动测试系统平台的自动测试脚本文件的步骤。
CN2011101926795A 2011-07-11 2011-07-11 一种面向硬件设备功能的自动测试系统及方法 Pending CN102346235A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2011101926795A CN102346235A (zh) 2011-07-11 2011-07-11 一种面向硬件设备功能的自动测试系统及方法
PCT/CN2011/080802 WO2013007068A1 (zh) 2011-07-11 2011-10-14 一种面向硬件设备功能的自动测试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101926795A CN102346235A (zh) 2011-07-11 2011-07-11 一种面向硬件设备功能的自动测试系统及方法

Publications (1)

Publication Number Publication Date
CN102346235A true CN102346235A (zh) 2012-02-08

Family

ID=45545096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101926795A Pending CN102346235A (zh) 2011-07-11 2011-07-11 一种面向硬件设备功能的自动测试系统及方法

Country Status (2)

Country Link
CN (1) CN102346235A (zh)
WO (1) WO2013007068A1 (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049380A (zh) * 2012-12-22 2013-04-17 中国船舶重工集团公司第七0九研究所 一种专用显示控制器的vbios调试方法
CN104698314A (zh) * 2015-03-05 2015-06-10 中国空间技术研究院 一种sram型fpga的器件级自动化测试平台及其测试方法
CN105868114A (zh) * 2016-03-31 2016-08-17 复旦大学 Fpga软件系统及其各模块测试系统和方法
CN106560797A (zh) * 2016-08-24 2017-04-12 北京安天电子设备有限公司 一种基于调试器的单元测试系统及方法
CN106649101A (zh) * 2016-11-18 2017-05-10 芯海科技(深圳)股份有限公司 一种ice自动化测试系统及测试方法
CN106681877A (zh) * 2015-11-11 2017-05-17 扬智科技股份有限公司 芯片调试系统及方法与系统芯片
CN107390110A (zh) * 2017-06-20 2017-11-24 广东科学技术职业学院 一种对pcba进行自动测试的方法、装置及系统
CN107846331A (zh) * 2017-12-21 2018-03-27 郑州云海信息技术有限公司 一种网络性能自动测试方法
CN109444723A (zh) * 2018-12-24 2019-03-08 成都华微电子科技有限公司 一种基于j750的芯片测试方法
CN110197698A (zh) * 2019-05-23 2019-09-03 东莞记忆存储科技有限公司 自动测试ssd不同电源状态影响的方法及装置
CN110413467A (zh) * 2019-07-31 2019-11-05 浪潮商用机器有限公司 一种服务器bios的调试方法、装置、设备及介质
CN110764947A (zh) * 2018-07-27 2020-02-07 深圳大心电子科技有限公司 数据写入方法以及存储控制器
CN111474441A (zh) * 2020-06-19 2020-07-31 北京机电工程研究所 一种面向定制化综合硬件的测评方法
CN112083320A (zh) * 2020-09-09 2020-12-15 中国航空工业集团公司雷华电子技术研究所 Fpga测试方法、测试板、装置、设备和存储介质
CN112131827A (zh) * 2020-09-11 2020-12-25 山东云海国创云计算装备产业创新中心有限公司 一种芯片测试方法、系统、设备及存储介质
CN113448863A (zh) * 2021-07-12 2021-09-28 度普(苏州)新能源科技有限公司 一种电控单元软件动态栈使用率的测试方法及装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106371962B (zh) * 2016-08-30 2019-01-01 广州广电运通金融电子股份有限公司 一种跨平台的驱动测试方法、装置及系统
CN110362434B (zh) * 2019-03-22 2023-08-15 斑马网络技术有限公司 对象测试方法及设备
CN111369359B (zh) * 2020-02-10 2022-02-22 中科驭数(北京)科技有限公司 证券交易风险控制硬件的测试方法及装置
CN115033442A (zh) * 2022-07-05 2022-09-09 天津普智芯网络测控技术有限公司 一种fpga的测试系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737775A (zh) * 2004-08-18 2006-02-22 华为技术有限公司 一种嵌入式软件自动化测试的装置及其方法
CN101029918A (zh) * 2007-01-23 2007-09-05 北京芯技佳易微电子科技有限公司 一种基于可编程器件的可控集成电路测试系统及方法
CN101137170A (zh) * 2007-09-04 2008-03-05 深圳市中兴移动通信有限公司 一种嵌入设备的软件自动测试工具及方法
CN101145126A (zh) * 2006-09-11 2008-03-19 中兴通讯股份有限公司 嵌入式软件自动测试系统及其测试方法
CN101158708A (zh) * 2007-10-23 2008-04-09 无锡汉柏信息技术有限公司 基于可编程逻辑器件的多芯片自动测试方法
CN101354674A (zh) * 2007-07-26 2009-01-28 北京神州龙芯集成电路设计有限公司 一种实现硬件级验证的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101858953A (zh) * 2009-04-07 2010-10-13 上海摩波彼克半导体有限公司 基于arm核芯片的数模转换器自动测试系统及其方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737775A (zh) * 2004-08-18 2006-02-22 华为技术有限公司 一种嵌入式软件自动化测试的装置及其方法
CN101145126A (zh) * 2006-09-11 2008-03-19 中兴通讯股份有限公司 嵌入式软件自动测试系统及其测试方法
CN101029918A (zh) * 2007-01-23 2007-09-05 北京芯技佳易微电子科技有限公司 一种基于可编程器件的可控集成电路测试系统及方法
CN101354674A (zh) * 2007-07-26 2009-01-28 北京神州龙芯集成电路设计有限公司 一种实现硬件级验证的方法及装置
CN101137170A (zh) * 2007-09-04 2008-03-05 深圳市中兴移动通信有限公司 一种嵌入设备的软件自动测试工具及方法
CN101158708A (zh) * 2007-10-23 2008-04-09 无锡汉柏信息技术有限公司 基于可编程逻辑器件的多芯片自动测试方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049380B (zh) * 2012-12-22 2016-02-17 中国船舶重工集团公司第七0九研究所 一种专用显示控制器的vbios调试方法
CN103049380A (zh) * 2012-12-22 2013-04-17 中国船舶重工集团公司第七0九研究所 一种专用显示控制器的vbios调试方法
CN104698314A (zh) * 2015-03-05 2015-06-10 中国空间技术研究院 一种sram型fpga的器件级自动化测试平台及其测试方法
CN106681877B (zh) * 2015-11-11 2020-02-04 扬智科技股份有限公司 芯片调试系统及方法与系统芯片
CN106681877A (zh) * 2015-11-11 2017-05-17 扬智科技股份有限公司 芯片调试系统及方法与系统芯片
CN105868114B (zh) * 2016-03-31 2019-04-05 复旦大学 Fpga软件系统及其各模块测试系统和方法
CN105868114A (zh) * 2016-03-31 2016-08-17 复旦大学 Fpga软件系统及其各模块测试系统和方法
CN106560797A (zh) * 2016-08-24 2017-04-12 北京安天电子设备有限公司 一种基于调试器的单元测试系统及方法
CN106560797B (zh) * 2016-08-24 2019-07-02 北京安天网络安全技术有限公司 一种基于调试器的单元测试系统及方法
CN106649101A (zh) * 2016-11-18 2017-05-10 芯海科技(深圳)股份有限公司 一种ice自动化测试系统及测试方法
CN106649101B (zh) * 2016-11-18 2019-12-03 芯海科技(深圳)股份有限公司 一种ice自动化测试系统及测试方法
CN107390110A (zh) * 2017-06-20 2017-11-24 广东科学技术职业学院 一种对pcba进行自动测试的方法、装置及系统
CN107846331A (zh) * 2017-12-21 2018-03-27 郑州云海信息技术有限公司 一种网络性能自动测试方法
CN110764947B (zh) * 2018-07-27 2023-10-20 深圳大心电子科技有限公司 数据写入方法以及存储控制器
CN110764947A (zh) * 2018-07-27 2020-02-07 深圳大心电子科技有限公司 数据写入方法以及存储控制器
CN109444723A (zh) * 2018-12-24 2019-03-08 成都华微电子科技有限公司 一种基于j750的芯片测试方法
CN109444723B (zh) * 2018-12-24 2020-07-24 成都华微电子科技有限公司 一种基于j750的芯片测试方法
CN110197698A (zh) * 2019-05-23 2019-09-03 东莞记忆存储科技有限公司 自动测试ssd不同电源状态影响的方法及装置
CN110197698B (zh) * 2019-05-23 2021-03-05 东莞记忆存储科技有限公司 自动测试ssd不同电源状态影响的方法及装置
CN110413467A (zh) * 2019-07-31 2019-11-05 浪潮商用机器有限公司 一种服务器bios的调试方法、装置、设备及介质
CN111474441A (zh) * 2020-06-19 2020-07-31 北京机电工程研究所 一种面向定制化综合硬件的测评方法
CN112083320A (zh) * 2020-09-09 2020-12-15 中国航空工业集团公司雷华电子技术研究所 Fpga测试方法、测试板、装置、设备和存储介质
CN112131827A (zh) * 2020-09-11 2020-12-25 山东云海国创云计算装备产业创新中心有限公司 一种芯片测试方法、系统、设备及存储介质
CN112131827B (zh) * 2020-09-11 2023-03-28 山东云海国创云计算装备产业创新中心有限公司 一种芯片测试方法、系统、设备及存储介质
CN113448863A (zh) * 2021-07-12 2021-09-28 度普(苏州)新能源科技有限公司 一种电控单元软件动态栈使用率的测试方法及装置
CN113448863B (zh) * 2021-07-12 2024-02-09 度普(苏州)新能源科技有限公司 一种电控单元软件动态栈使用率的测试方法及装置

Also Published As

Publication number Publication date
WO2013007068A1 (zh) 2013-01-17

Similar Documents

Publication Publication Date Title
CN102346235A (zh) 一种面向硬件设备功能的自动测试系统及方法
CN103186461B (zh) 一种现场数据的保存方法和恢复方法以及相关装置
CN100555218C (zh) 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
CN105074671A (zh) 用于在内核模块和设备驱动程序中检测并发编程错误的方法和系统
Higashi et al. An effective method to control interrupt handler for data race detection
CN103389939A (zh) 一种针对堆可控分配漏洞的检测方法及系统
CN105354045A (zh) 补丁的制作方法及装置、补丁的激活方法及装置
CN102722438B (zh) 一种内核调试的方法和设备
Barbosa et al. Assembly-level pre-injection analysis for improving fault injection efficiency
US8225286B2 (en) Debugging interpreted input
CN105573913A (zh) 一种onu系统中的程序调试方法及系统
CN102063367B (zh) 针对当机程序的离线分析方法及装置
US20080126862A1 (en) System and Method for Testing Software Code for Use on a Target Processor
CN105824750A (zh) 一种在NorFlash程序空间调试的软断点模拟方法
US9069900B2 (en) Method for determining whether a machine code instruction of a machine code program is executed in the machine code program
CN102722382A (zh) 仿真过程中加载表项的方法及仿真设备
CN100517265C (zh) 一种微控制器仿真系统
CN110096888B (zh) 一种加快验证及分析smm安全隐患的方法及系统
CN102750167A (zh) 应用程序启动方法、装置和计算机系统
KR102462864B1 (ko) 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치 및 방법
Laroche et al. Micropython virtual machine for on board control procedures
CN105068937A (zh) 一种Linux内核模块的单元测试方法
CN103116495B (zh) 基于ide的单片机寄存器值的自动存储方法和装置
CN112580282B (zh) 用于集成电路设计验证的方法、装置、设备以及存储介质
CN109753308A (zh) 指令通路验证系统及指令通路监测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20120208

AD01 Patent right deemed abandoned