CN114121135A - 基于宏的嵌入式系统地址线数据线测试方法和装置 - Google Patents
基于宏的嵌入式系统地址线数据线测试方法和装置 Download PDFInfo
- Publication number
- CN114121135A CN114121135A CN202111310840.4A CN202111310840A CN114121135A CN 114121135 A CN114121135 A CN 114121135A CN 202111310840 A CN202111310840 A CN 202111310840A CN 114121135 A CN114121135 A CN 114121135A
- Authority
- CN
- China
- Prior art keywords
- test
- type
- storage space
- embedded system
- address
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供一种基于宏的嵌入式系统地址线数据线自动化测试方法和装置。本发明制定出基于宏的嵌入式系统地址线和数据线的测试指令和协议,设计宏测试功能组件并驻留在嵌入式系统中;开发脚本自动生成工具,根据配置好的测试类型相关参数,自动生成适配不同存储空间的专用测试脚本文件。将测试脚本文件通过串口输入到包含宏测试功能组件的嵌入式系统中,宏测试功能组件对其解析、执行,并将结果输出。本发明实现了6种自动化测试类型:地址线波动“0”测试、地址线波动“1”测试时、数据线波动“0”测试、数据线波动“1”测试、跨步“0”测试和跨步“1”测试,能有效地检测存储器是否有地址线粘连、数据线粘连以及具体存储单元存取数功能。
Description
技术领域
本发明属于嵌入式系统测试领域,具体涉及了一种基于宏的嵌入式系统地址线数据线测试方法和装置。
背景技术
随着市场对系统快速研发的需求日益迫切,型号研制的周期需进一步缩短,对软硬件集成调试的质量和效率提出了较高的要求。
传统嵌入式系统开发时,对单板的测试和系统齐套后的软硬件集成调试时,并没有针对单板存储器的测试方法,往往通过示波器,在板卡上加载激励,通过示波器量取波形,来测试单板存储器功能。这种方法操作难度大、耗时长、效率低。
发明内容
为了有效解决传统嵌入式系统开发时,对单板的测试和系统齐套后的软硬件集成调试时,传统方法耗时长、效率低、测试不精准的问题,本发明提供了一种基于宏的嵌入式系统地址线数据线的测试方法和装置。
本发明第一方面提供一种基于宏的嵌入式系统地址线数据线测试方法,包括:
S1、生成基于宏的嵌入式地址线和数据线的至少一个测试指令脚本文件,所述至少一个测试指令脚本文件包括嵌入式系统地址线和数据线的波动“0”测试、波动“1”测试,以及嵌入式系统跨步“0”测试和跨步“1”测试的脚本文件,每个脚本文件包括至少一条测试指令,测试指令包括:指令操作类型、嵌入式系统中存储器的总线通道信息、嵌入式系统操作地址、操作数;
S2、嵌入式系统中的宏测试功能组件模块接收测试指令脚本文件,对收到的所有测试指令进行解析和执行,得到执行结果,并判断执行结果,得到嵌入式系统测试结果,将执行结果和测试结果输出。
可选的,指令类型包括:“读”操作和“写”操作;
嵌入式系统中存储器的总线通道信息包括:使能和非使能;
操作数包括:“读”操作的期望值和“写”操作的写入值。
可选的,嵌入式系统地址线的波动“0”测试的测试指令脚本文件包括对第一类型的存储空间进行第一预设数据的第一预设顺序的读写测试的至少一条测试指令;
第一类型的存储空间包括在用户测试的所有地址位中只有一位为“0”的存储空间;用户测试的所有地址位数不大于嵌入式系统地址线的总位数;
其中,第一预设数据包括:
f1(n)=2n-n+2n-n+2+……+2n-2,
f2(n)=2n-n+1+2n-n+3+……+2n-1,
f3(n)=2n-1;
其中,n为用户测试的所有地址位;
第一预设顺序包括:写入0,读所有第一类型的存储空间地址,向第一类型的存储空间的第一个地址写入第一预设数据,读所有第一类存储空间,向第一类型的存储空间的第二个地址写入第一预设数据,读所有第一类存储空间……向第一类型的存储空间的最后一个地址写入第一预设数据,读所有第一类存储空间。
可选的,嵌入式系统地址线的波动“1”测试的测试指令脚本文件包括对第二类型的存储空间进行第一预设数据的第二预设顺序的读写测试的至少一条测试指令;
第二类型的存储空间包括在用户测试的所有地址位中只有一位为“1”的存储空间;用户测试的所有地址位不大于嵌入式系统地址线的总位数;
第二预设顺序包括:写入0,读所有第二类型的存储空间地址,向第二类型的存储空间的第一个地址写入第一预设数据,读所有第二类存储空间,向第二类型的存储空间的第二个地址写入第一预设数据,读所有第二类存储空间……向第二类型的存储空间的最后一个地址写入第一预设数据,读所有第二类存储空间。
可选的,嵌入式系统数据线的波动“0”测试的测试指令脚本文件包括对第三类型的存储空间进行第二预设数据的第三预设顺序的读写测试的至少一条测试指令;
第三类型的存储空间包括由用户指定、待测试的存储空间;
第二预设数据包括:一个数据集合,集合里的每个数据为:
{2m-1-20,2m-1-21,……,2m-1-2m-2,2m-1-2m-1},
其中,m为用户测试的存储空间长度;
第三预设顺序包括:向第三类型的存储空间写入第二预设数据集合的第一个值,读第三类型的存储空间,向第三类型的存储空间写入第二预设数据集合的第二个值,读第三类型的存储空间,……,向第三类型的存储空间写入第二预设数据集合的最后一个值,读第三类型的存储空间。
可选的,嵌入式系统数据线的波动“1”测试的测试指令脚本文件包括对第四类型的存储空间进行第三预设数据的第四预设顺序的读写测试的至少一条测试指令;
第四类型的存储空间包括由用户指定、待测试的存储空间;
第三预设数据包括:一个数据集合,集合里的数据元素为:
{20,21,22,……,2m-2,2m-1},
其中,m为用户测试的存储空间长度;
第四预设顺序包括:向第四类型的存储空间写入第三预设数据集合的第一个值,读第四类型的存储空间,向第四类型的存储空间写入第三预设数据集合的第二个值,读第四类型的存储空间,……,向第四类型的存储空间写入第三预设数据集合的最后一个值,读第四类型的存储空间。
可选的,嵌入式系统跨步“0”测试的测试指令脚本文件包括对第五类型的存储空间进行第四预设数据的第五预设顺序的读写测试的至少一条测试指令;
第五类型的存储空间包括用户指定的地址线长度范围内的所有存储空间,是一个存储空间集合,集合中的每个地址元素为:
{20,20+1,20+2,20+3,……,2n-1},
第四预设数据包括一个数据:2n-1,
其中,n为用户测试的所有地址位;
第五预设顺序包括:向第五类型的存储空间写入第四预设数据,然后读第五类型的存储空间的第一个地址,读出值如果与第四预设数据相符,写入0,再读第五类型的存储空间的第二个地址,读出值如果与第四预设数据相符,写入0,……,读第五类型的存储空间的最后一个地址,读出值如果与第四预设数据相符,写入0。
可选的,嵌入式系统跨步“1”测试的测试指令脚本文件包括对第五类型的存储空间进行第四预设数据的第六预设顺序的读写测试的至少一条测试指令;
第六预设顺序包括:向第五类型的存储空间写入0,然后读第五类型的存储空间的第一个地址,读出值如果是“0”,写入第四预设数据,再读第五类型的存储空间的第二个地址,读出值如果是“0”,写入第四预设数据,……,读第五类型的存储空间的最后一个地址,读出值如果是“0”,写入第四预设数据。
可选的,若嵌入式系统地址线的波动“0”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统地址线的波动“1”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统数据线的波动“0”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统数据线的波动“1”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统跨步“0”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统跨步“1”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过。
本发明另一方面还设计开发了一种基于宏的嵌入式系统地址线数据线测试装置,包括脚本生成模块和宏测试功能组件模块,脚本生成模块,用于获取基于宏的嵌入式地址线和数据线的至少一个测试指令脚本文件,所述至少一个测试指令脚本文件包括嵌入式系统地址线和数据线的波动“0”测试、波动“1”测试,以及嵌入式系统跨步“0”测试和跨步“1”测试的脚本文件,每个脚本文件包括至少一条测试指令,测试指令包括:指令操作类型、嵌入式系统中存储器的总线通道信息、嵌入式系统操作地址、操作数;
宏测试功能组件模块,驻留在嵌入式系统中,运行在待测板卡上,用于对收到的所有测试指令逐条解析,根据解析结果读、写指令中规定的存储空间的值,判断指令执行的结果,得到嵌入式系统测试结果,将执行结果和测试结果输出。
本发明提供了一种基于宏的嵌入式系统地址线数据线的测试方法和装置,设计实现了一种基于宏的嵌入式系统地址线数据线自动化测试方法;定义了基于串口与待测试板卡交互的方法;设计了基本指令格式并针对地址线、数据线的自动化测试编写了具体的指令脚本文件;编制了嵌入式程序接口函数,用于实现指令的解析执行并将执行结果返回给用户;基于宏的嵌入式系统地址线数据线自动化测试方法,解决了传统单板存储器测试繁琐、不易操作、定位困难的问题。通过从根本上分析存储器测试的特点,主要针对存储器是否有地址线粘连、数据线粘连以及具体存储单元存取数功能这几个测试项,设计了完整的测试方法。该方法操作简单、效率高、易实现、可精准定位问题,大大提高了测试效率。针对地址线粘连问题,只需要执行一组地址线波动“0”测试和波动“1”测试,即可快速定位。针对数据线粘连问题,通过数据线波动“0”测试和波动“1”测试,即可快速定位。通过跨步“0”和跨步“1”测试,可快速检测出具体存储单元存取数功能是否正常。本发明方法同时具有可扩展性,可根据不同的需要定制不同的脚本文件,进而完成各种测试。例如,可对一整块存储区域进行写操作,通过外部设备检测写时间,进而判断存储区域写功能、性能是否正常。
附图说明
图1是本发明提供的基于宏的嵌入式系统地址线数据线测试装置示意图。
具体实施方式
下面结合附图,对本发明提供的基于宏的嵌入式系统地址线数据线测试方法和装置进行具体解释说明。
本发明考虑到在软硬件集成调试前,如果能先对单板的功能和性能进行准确的评估,可以有效地将问题扼杀在初级阶段,为软硬件集成和产品交付节约时间和经济成本,大幅加快型号的研制进度。
而单板测试中,占比最大是存储器测试。存储器的测试,主要涉及存储器的读写基本功能是否正确、不同的存储单元之间是否相互干扰等方面。
针对这些问题,本发明设计了一种基于宏的嵌入式系统地址线数据线测试的方法和装置。
图1是本发明提供的基于宏的嵌入式系统地址线数据线测试装置示意图,如图1所示,基于宏的嵌入式系统地址线数据线测试方法,包括:
S1、获取基于宏的嵌入式地址线和数据线的至少一个测试指令脚本文件,所述至少一个测试指令脚本文件包括嵌入式系统地址线和数据线的地址线波动“0”测试、地址线波动“1”测试时、数据线波动“0”测试、数据线波动“1”测试、跨步“0”测试和跨步“1”测试的脚本文件,每个脚本文件包括至少一条测试指令,测试指令包括:指令操作类型、嵌入式系统中存储器的总线通道信息、嵌入式系统操作地址、操作数。
其中,指令类型包括:“读”操作和“写”操作;嵌入式系统中存储器的总线通道信息包括:使能和非使能;操作数包括:“读”操作的期望值和“写”操作的写入值。
其中,地址线波动“0”测试,指取地址线按照某一位是“0”,其他位全是“1”的存储单元,写入特定数据再读出,对所有这些存储单元进行读写测试,波动“1”反之。数据线波动“0”测试,指某一存储单元,按照其数据线宽度,依次写入一组有规律的数据并读出,被写入的这组数据的特点是:某一位是“0”,其他位全是“1”。数据线波动“1”测试与此类似,对某个存储单元写入并读出一组有规律的数据,这组数据的特点是:某一位是“1”,其他位全是“0”。跨步测试指从地址线为全“0”的存储单元开始,逐个加1,一直访问到地址线为全“1”的存储单元,对这些存储空间进行读写功能测试。
测试指令举例说明:某条指令的内容如下所示:
WR0,1111,60003000,0001,0001,0001,0001。
在该条指令中,“WR0”代表指令类型,“WR0”指“写”操作,若为“RD0”则指“读”操作;“1111”代表通道信息,每位分别表示四个通道的使能,全“1”表示4个通道都使能;“60003000”指待访问的存储单元地址;第一个“0001”代表第1通道的写入值;第二个“0001”代表第2通道的写入值;第三个“0001”代表第3通道的写入值;第四个“0001”代表第4通道的写入值。
S2、对收到的所有测试指令进行解析和执行,得到执行结果,并判断执行结果,得到嵌入式系统测试结果,将执行结果和测试结果输出。
本发明提供了基于宏的嵌入式系统地址线数据线测试方法,设计了基本指令格式并针对地址线、数据线的自动化测试中针对存储器是否有地址线粘连、数据线粘连以及具体存储单元存取数功能这几个测试项,研发了自动生成指令脚本文件的工具,大大提高了测试效率。
在一种可能的具体实现方式中,嵌入式系统地址线的波动“0”测试的测试指令脚本文件包括对第一类型的存储空间进行第一预设数据的第一预设顺序的读写测试的至少一条测试指令;
第一类型的存储空间包括在用户测试的所有地址位中只有一位为“0”的存储空间;用户测试的所有地址位数不大于嵌入式系统地址线的总位数;
其中,第一预设数据为二进制形式,第一预设数据包括:
f1(n)=2n-n+2n-n+2+……+2n-2,
f2(n)=2n-n+1+2n-n+3+……+2n-1,
f3(n)=2n-1;
其中,n为用户测试的所有地址位;
第一预设顺序包括:写入0,读所有第一类型的存储空间地址,向第一类型的存储空间的第一个地址写入第一预设数据,读所有第一类存储空间,向第一类型的存储空间的第二个地址写入第一预设数据,读所有第一类存储空间……向第一类型的存储空间的最后一个地址写入第一预设数据,读所有第一类存储空间。
例如,进行8bits地址总线波动〝0〞测试时,要对〝FEH〞、〝FDH〞、〝FBH〞、〝F7H〞、〝EFH〞、〝DFH〞、〝BFH〞、〝7FH〞一组存储空间进行特定数据的读写测试。写入的值可以选取〝00H〞、〝55H〞、〝AAH〞和〝FFH〞。
在一种可能的具体实现方式中,嵌入式系统地址线的波动“1”测试的测试指令脚本文件包括对第二类型的存储空间进行第一预设数据的第二预设顺序的读写测试的至少一条测试指令;
第二类型的存储空间包括在用户测试的所有地址位中只有一位为“1”的存储空间;用户测试的所有地址位不大于嵌入式系统地址线的总位数;
第二预设顺序包括:写入0,读所有第二类型的存储空间地址,向第二类型的存储空间的第一个地址写入第一预设数据,读所有第二类存储空间,向第二类型的存储空间的第二个地址写入第一预设数据,读所有第二类存储空间……向第二类型的存储空间的最后一个地址写入第一预设数据,读所有第二类存储空间。
例如,进行8bits地址总线的波动〝1〞测试时,要对〝01H〞、〝02H〞、〝04H〞、〝08H〞、〝10H〞、〝20H〞、〝40H〞、〝80H〞一组存储空间进行特定数据的读写测试,写入的值可以选取〝00H〞、〝55H〞、〝AAH〞和〝FFH〞。
在一种可能的具体实现方式中,嵌入式系统数据线的波动“0”测试的测试指令脚本文件包括对第三类型的存储空间进行第二预设数据的第三预设顺序的读写测试的至少一条测试指令;
第三类型的存储空间包括由用户指定、待测试的存储空间;
第二预设数据包括:一个数据集合,集合里的每个数据为:
{2m-1-20,2m-1-21,……,2m-1-2m-2,2m-1-2m-1},
其中,m为用户测试的所有存储空间长度;
第三预设顺序包括:向第三类型的存储空间写入第二预设数据集合的第一个值,读第三类型的存储空间,向第三类型的存储空间写入第二预设数据集合的第二个值,读第三类型的存储空间,……,向第三类型的存储空间写入第二预设数据集合的最后一个值,读第三类型的存储空间。
例如,8bits数据总线,实现某个存储空间的波动“0”测试时,要对该空间进行〝FEH〞、〝FDH〞、〝FBH〞、〝F7H〞、〝EFH〞、〝DFH〞、〝BFH〞、〝7FH〞一组数据的读写测试。
在一种可能的具体实现方式中,嵌入式系统数据线的波动“1”测试的测试指令脚本文件包括对第四类型的存储空间进行第三预设数据的第四预设顺序的读写测试的至少一条测试指令;
第四类型的存储空间包括由用户指定、待测试的存储空间;
第三预设数据包括:一个数据集合,集合里的数据元素为:
{20,21,22,……,2m-2,2m-1},
其中,m为用户测试的存储空间长度;
第四预设顺序包括:向第四类型的存储空间写入第三预设数据集合的第一个值,读第四类型的存储空间,向第四类型的存储空间写入第三预设数据集合的第二个值,读第四类型的存储空间,……,向第四类型的存储空间写入第三预设数据集合的最后一个值,读第四类型的存储空间。
例如,实现某个存储空间的波动“1”测试时,要对该空间进行〝01H〞、〝02H〞、〝04H〞、〝08H〞、〝10H〞、〝20H〞、〝40H〞、〝80H〞一组数据的读写测试。
在一种可能的具体实现方式中,嵌入式系统跨步“0”测试的测试指令脚本文件包括对第五类型的存储空间进行第四预设数据的第五预设顺序的读写测试的至少一条测试指令;在一种可能的具体实现方式中,嵌入式系统跨步“1”测试的测试指令脚本文件包括对第五类型的存储空间进行第四预设数据的第六预设顺序的读写测试的至少一条测试指令。
第五类型的存储空间包括用户指定的地址线长度范围内的所有存储空间,是一个存储空间集合,集合中的每个地址元素为:
{20,20+1,20+2,20+3,……,2n-1},
第四预设数据包括一个数据:2n-1,
其中,n为用户测试的所有地址位;
第五预设顺序包括:向第五类型的存储空间写入第四预设数据,然后读第五类型的存储空间的第一个地址,读出值如果与第四预设数据相符,写入0,再读第五类型的存储空间的第二个地址,读出值如果与第四预设数据相符,写入0,……,读第五类型的存储空间的最后一个地址,读出值如果与第四预设数据相符,写入0。
例如,跨步〝0〞测试,首先从地址〝00H〞到〝FFH〞全部单元写背景〝FFH〞(当跨步〝1〞测试正确完成后,紧接着进行跨步〝0〞测试,本步可免);然后从〝00H〞单元开始,先检查〝FFH〞是否正确,如果正确则写〝00H〞,当检测写入正确时,地址加〝1〞;对新单元重复进行读写〝00H〞的检测,直到最后一个单元〝FFH〞检测结束。
第六预设顺序包括:向第五类型的存储空间写入0,然后读第五类型的存储空间的第一个地址,读出值如果是“0”,写入第四预设数据,再读第五类型的存储空间的第二个地址,读出值如果是“0”,写入第四预设数据,……,读第五类型的存储空间的最后一个地址,读出值如果是“0”,写入第四预设数据。
例如,对64kB结构存储器,跨步〝1〞测试,首先从地址〝00H〞到〝FFH〞全部单元写背景〝00H〞;然后从〝00H〞单元开始,先检查〝00H〞是否正确,如果正确则写〝FFH〞,当检查写入正确时,地址加〝1〞;对新单元重复进行读写〝00H〞的检测,直到最后一个单元〝FFH〞检测结束。
下面结合具体16bits存储器项目测试应用对本发明提供的方法做进一步的详细说明,示例性的,基于宏的嵌入式系统地址线数据线测试方法,包括:
步骤1、搭建测试环境:包括待测试板卡,板卡上的嵌入式程序、嵌入式程序测试模块和与测试脚本交互的通讯端口。
步骤2、进行地址线波动“0”测试;
生成地址线波动“0”测试脚本,将测试脚本通过通讯端口注入到嵌入式系统中,执行测试脚本,返回执行结果。
例如,一种可能的地址线波动“0”测试脚本的部分内容如下:
WR0,1111,FFFE,0000,0000,0000,0000
WR0,1111,FFFD,0000,0000,0000,0000
WR0,1111,FFFB,0000,0000,0000,0000
……
RD0,1111,BFFF,0000,0000,0000,0000
RD0,1111,7FFF,0000,0000,0000,0000
WR0,1111,FFFE,AAAA,AAAA,AAAA,AAAA
RD0,1111,FFFE,AAAA,AAAA,AAAA,AAAA
RD0,1111,FFFD,0000,0000,0000,0000
……
RD0,1111,7FFF,0000,0000,0000,0000
WR0,1111,FFFE,0000,0000,0000,0000
WR0,1111,FFFD,AAAA,AAAA,AAAA,AAAA
RD0,1111,FFFE,0000,0000,0000,0000
RD0,1111,FFFD,AAAA,AAAA,AAAA,AAAA
……
RD0,1111,7FFF,0000,0000,0000,0000
WR0,1111,FFFD,0000,0000,0000,0000
……
……
步骤3、进行地址线波动“1”测试;
生成地址线波动“1”测试脚本,将测试脚本通过通讯端口注入到嵌入式系统中,执行测试脚本,返回执行结果。
例如,一种可能的地址线波动“1”测试脚本的部分内容如下:
WR0,1111,0001,0000,0000,0000,0000
WR0,1111,0002,0000,0000,0000,0000
WR0,1111,0004,0000,0000,0000,0000
……
RD0,1111,4000,0000,0000,0000,0000
RD0,1111,8000,0000,0000,0000,0000
WR0,1111,0001,AAAA,AAAA,AAAA,AAAA
RD0,1111,0001,AAAA,AAAA,AAAA,AAAA
RD0,1111,0002,0000,0000,0000,0000
……
RD0,1111,8000,0000,0000,0000,0000
WR0,1111,0001,0000,0000,0000,0000
WR0,1111,0002,AAAA,AAAA,AAAA,AAAA
RD0,1111,0001,0000,0000,0000,0000
RD0,1111,0002,AAAA,AAAA,AAAA,AAAA
……
RD0,1111,8000,0000,0000,0000,0000
WR0,1111,0002,0000,0000,0000,0000
……
……
步骤4、进行数据线波动“0”测试;
生成数据线波动“0”测试脚本,将测试脚本通过通讯端口注入到嵌入式系统中,执行测试脚本,返回执行结果。
例如,一种可能的数据线波动“0”测试脚本的部分内容如下:
WR0,1111,60001000,FFFE,FFFE,FFFE,FFFE
RD0,1111,60001000,FFFE,FFFE,FFFE,FFFE
WR0,1111,60001000,FFFD,FFFD,FFFD,FFFD
……
RD0,1111,60001000,BFFF,BFFF,BFFF,BFFF
WR0,1111,60001000,7FFF,7FFF,7FFF,7FFF
RD0,1111,60001000,7FFF,7FFF,7FFF,7FFF
步骤5、进行数据线波动“1”测试;
生成数据线波动“1”测试脚本,将测试脚本通过通讯端口注入到嵌入式系统中,执行测试脚本,返回执行结果。
例如,一种可能的数据线波动“1”测试脚本的部分内容如下:
WR0,1111,60001000,0001,0001,0001,0001
RD0,1111,60001000,0002,0002,0002,0002
WR0,1111,60001000,,00044,0004,0004,0004
……
RD0,1111,60001000,2000,2000,2000,2000
WR0,1111,60001000,4000,4000,4000,4000
RD0,1111,60001000,8000,8000,8000,8000
步骤6、进行嵌入式系统跨步“0”测试;
生成跨步“0”测试脚本,将测试脚本通过通讯端口注入到嵌入式系统中,执行测试脚本,返回执行结果。
例如,一种可能的嵌入式系统跨步“0”测试脚本的部分内容如下:
WR0,0000,FFFF,FFFF,FFFF,FFFF
WR0,0001,FFFF,FFFF,FFFF,FFFF
WR0,0002,FFFF,FFFF,FFFF,FFFF
……
WR0,FFFF,FFFF,FFFF,FFFF,FFFF
RD0,0000,0000,FFFF,FFFF,FFFF,FFFF
WR0,0000,0000,0000,0000,0000,0000
RD0,0001,0001,FFFF,FFFF,FFFF,FFFF
WR0,0001,0001,0000,0000,0000,0000
……
RD0,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF
WR0,FFFF,FFFF,0000,0000,0000,0000
步骤7、进行嵌入式系统跨步“1”测试;
生成跨步“1”测试脚本,将测试脚本通过通讯端口注入到嵌入式系统中,执行测试脚本,返回执行结果。
例如,一种可能的嵌入式系统跨步“1”测试脚本的部分内容如下:
WR0,0000,0000,0000,0000,0000
WR0,0001,0000,0000,0000,0000
WR0,0002,0000,0000,0000,0000
……
WR0,FFFF,0000,0000,0000,0000
RD0,0000,0000,0000,0000,0000,0000
WR0,0000,0000,FFFF,FFFF,FFFF,FFFF
RD0,0001,0001,0000,0000,0000,0000
WR0,0001,0001,FFFF,FFFF,FFFF,FFFF
……
RD0,FFFF,FFFF,0000,0000,0000,0000
WR0,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF
步骤8、整理步骤2~步骤7的执行结果,若步骤2~步骤7的执行结果都为“YES”,说明本次测试通过,测试的存储单元未发生地址线粘连、数据线粘连,存储单元读写功能正常。
本发明提供的基于宏的嵌入式系统地址线数据线测试方法具有以下有益效果:
a)建立宏测试模型、工具复用
设计实现了一种基于宏的嵌入式系统地址线数据线自动化测试方法;定义了基于串口与待测试板卡交互的方法;设计了基本指令格式并针对地址线、数据线的自动化测试研发了自动生成指令脚本文件的工具;设计开发了宏测试功能组件,集成到嵌入式程序中,用于实现指令的解析执行,并将执行结果返回给用户。
自动生成指令脚本文件工具的设计原理是:获取用户输入的测试类型配置参数:测试基地址,通道号,测试的地址线长度,测试类型(地址线波动0,地址线波动1,数据线波动0,数据线波动1,系统跨步0,系统跨步1),根据用户配置的测试基地址和测试的地址线长度,按照权利要求书中步骤3~8的方法,计算每种类型的测试所需的预设存储空间集合、预设数据集合,根据预设顺序,生成每种测试所需的每条脚本指令,将所有指令按照字符串的形式存储到文本文件中,即为测试指令脚本文件。
例如,生成测试基地址为0x5600,地址线长度为8bits的数据线波动“0”脚本时,预设存储空间集合为:{0x5600};预设数据集合为:{FE,FD,FB,F7,EF,DF,BF,7F};生成的测试指令脚本文件为:
WR0,1111,5600,FE,FE,FE,FE
RD0,1111,5600,FE,FE,FE,FE
WR0,1111,5600,FD,FD,FD,FD
RD0,1111,5600,FD,FD,FD,FD
WR0,1111,5600,FB,FB,FB,FB
RD0,1111,5600,FB,FB,FB,FB
WR0,1111,5600,F7,F7,F7,F7
RD0,1111,5600,F7,F7,F7,F7
WR0,1111,5600,EF,EF,EF,EF
RD0,1111,5600,EF,EF,EF,EF
WR0,1111,5600,DF,DF,DF,DF
RD0,1111,5600,DF,DF,DF,DF
WR0,1111,5600,BF,BF,BF,BF
RD0,1111,5600,BF,BF,BF,BF
WR0,1111,5600,7F,7F,7F,7F
RD0,1111,5600,7F,7F,7F,7F
b)提高接存储器测试效率
基于宏的嵌入式系统地址线数据线自动化测试方法,解决了传统单板存储器测试繁琐、不易操作、定位困难的问题。通过从根本上分析存储器测试的特点,主要针对存储器是否有地址线粘连、数据线粘连以及具体存储单元存取数功能这几个测试项,设计了完整的测试方法。该方法操作简单、效率高、易实现、可精准定位问题,大大提高了测试效率。
针对地址线粘连问题,只需要执行一组地址线波动“0”测试和波动“1”测试,即可快速定位。针对数据线粘连问题,通过数据线波动“0”测试和波动“1”测试,即可快速定位。通过跨步“0”和跨步“1”测试,可快速检测出具体存储单元存取数功能是否正常。
c)可扩展性
本发明方法同时具有可扩展性,可根据不同的需要定制不同的脚本文件,进而完成各种测试。例如,可对一整块存储区域进行写操作,通过外部设备检测写时间,进而判断存储区域写功能、性能是否正常。
Claims (10)
1.一种基于宏的嵌入式系统地址线数据线测试方法,其特征在于,包括:
S1、生成基于宏的嵌入式地址线和数据线的至少一个测试指令脚本文件,所述至少一个测试指令脚本文件包括嵌入式系统地址线和数据线的波动“0”测试、波动“1”测试,以及嵌入式系统跨步“0”测试和跨步“1”测试的脚本文件,每个脚本文件包括至少一条测试指令,测试指令包括:指令操作类型、嵌入式系统中存储器的总线通道信息、嵌入式系统操作地址、操作数;
S2、嵌入式系统中的宏测试功能组件模块接收测试指令脚本文件,对收到的所有测试指令进行解析和执行,得到执行结果,并判断执行结果,得到嵌入式系统测试结果,将执行结果和测试结果输出。
2.根据权利要求1所述的方法,其特征在于,指令类型包括:“读”操作和“写”操作;
嵌入式系统中存储器的总线通道信息包括:使能和非使能;
操作数包括:“读”操作的期望值和“写”操作的写入值。
3.根据权利要求2所述的方法,其特征在于,嵌入式系统地址线的波动“0”测试的测试指令脚本文件包括对第一类型的存储空间进行第一预设数据的第一预设顺序的读写测试的至少一条测试指令;
第一类型的存储空间包括在用户测试的所有地址位中只有一位为“0”的存储空间;用户测试的所有地址位数不大于嵌入式系统地址线的总位数;
其中,第一预设数据包括:
f1(n)=2n-n+2n-n+2+……+2n-2,
f2(n)=2n-n+1+2n-n+3+……+2n-1,
f3(n)=2n-1;
其中,n为用户测试的所有地址位;
第一预设顺序包括:写入0,读所有第一类型的存储空间地址,向第一类型的存储空间的第一个地址写入第一预设数据,读所有第一类存储空间,向第一类型的存储空间的第二个地址写入第一预设数据,读所有第一类存储空间……向第一类型的存储空间的最后一个地址写入第一预设数据,读所有第一类存储空间。
4.根据权利要求3所述的方法,其特征在于,嵌入式系统地址线的波动“1”测试的测试指令脚本文件包括对第二类型的存储空间进行第一预设数据的第二预设顺序的读写测试的至少一条测试指令;
第二类型的存储空间包括在用户测试的所有地址位中只有一位为“1”的存储空间;用户测试的所有地址位不大于嵌入式系统地址线的总位数;
第二预设顺序包括:写入0,读所有第二类型的存储空间地址,向第二类型的存储空间的第一个地址写入第一预设数据,读所有第二类存储空间,向第二类型的存储空间的第二个地址写入第一预设数据,读所有第二类存储空间……向第二类型的存储空间的最后一个地址写入第一预设数据,读所有第二类存储空间。
5.根据权利要求4所述的方法,其特征在于,嵌入式系统数据线的波动“0”测试的测试指令脚本文件包括对第三类型的存储空间进行第二预设数据的第三预设顺序的读写测试的至少一条测试指令;
第三类型的存储空间包括由用户指定、待测试的存储空间;
第二预设数据包括:一个数据集合,集合里的每个数据为:
{2m-1-20,2m-1-21,……,2m-1-2n-2,2m-1-2m-1},
其中,m为用户测试的存储空间长度;
第三预设顺序包括:向第三类型的存储空间写入第二预设数据集合的第一个值,读第三类型的存储空间,向第三类型的存储空间写入第二预设数据集合的第二个值,读第三类型的存储空间,……,向第三类型的存储空间写入第二预设数据集合的最后一个值,读第三类型的存储空间。
6.根据权利要求5所述的方法,其特征在于,嵌入式系统数据线的波动“1”测试的测试指令脚本文件包括对第四类型的存储空间进行第三预设数据的第四预设顺序的读写测试的至少一条测试指令;
第四类型的存储空间包括由用户指定、待测试的存储空间;
第三预设数据包括:一个数据集合,集合里的数据元素为:
{20,21,22,……,2m-2,2m-1},
其中,m为用户测试的存储空间长度;
第四预设顺序包括:向第四类型的存储空间写入第三预设数据集合的第一个值,读第四类型的存储空间,向第四类型的存储空间写入第三预设数据集合的第二个值,读第四类型的存储空间,……,向第四类型的存储空间写入第三预设数据集合的最后一个值,读第四类型的存储空间。
7.根据权利要求6所述的方法,其特征在于,嵌入式系统跨步“0”测试的测试指令脚本文件包括对第五类型的存储空间进行第四预设数据的第五预设顺序的读写测试的至少一条测试指令;
第五类型的存储空间包括用户指定的地址线长度范围内的所有存储空间,是一个存储空间集合,集合中的每个地址元素为:
{20,20+1,20+2,20+3,……,2n-1},
第四预设数据包括一个数据:2n-1,
其中,n为用户测试的所有地址位;
第五预设顺序包括:向第五类型的存储空间写入第四预设数据,然后读第五类型的存储空间的第一个地址,读出值如果与第四预设数据相符,写入0,再读第五类型的存储空间的第二个地址,读出值如果与第四预设数据相符,写入0,……,读第五类型的存储空间的最后一个地址,读出值如果与第四预设数据相符,写入0。
8.根据权利要求7所述的方法,其特征在于,嵌入式系统跨步“1”测试的测试指令脚本文件包括对第五类型的存储空间进行第四预设数据的第六预设顺序的读写测试的至少一条测试指令;
第六预设顺序包括:向第五类型的存储空间写入0,然后读第五类型的存储空间的第一个地址,读出值如果是“0”,写入第四预设数据,再读第五类型的存储空间的第二个地址,读出值如果是“0”,写入第四预设数据,……,读第五类型的存储空间的最后一个地址,读出值如果是“0”,写入第四预设数据。
9.根据权利要求3所述的方法,其特征在于,若嵌入式系统地址线的波动“0”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统地址线的波动“1”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统数据线的波动“0”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统数据线的波动“1”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统跨步“0”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过;若嵌入式系统跨步“1”测试的测试指令脚本文件的执行结果为“YES”,则确定测试通过。
10.一种基于宏的嵌入式系统地址线数据线自动化测试装置,其特征在于,包括脚本生成模块和宏测试功能组件模块,其中,
脚本生成模块,用于获取基于宏的嵌入式地址线和数据线的至少一个测试指令脚本文件,所述至少一个测试指令脚本文件包括嵌入式系统地址线和数据线的波动“0”测试、波动“1”测试,以及嵌入式系统跨步“0”测试和跨步“1”测试的脚本文件,每个脚本文件包括至少一条测试指令,测试指令包括:指令操作类型、嵌入式系统中存储器的总线通道信息、嵌入式系统操作地址、操作数;
宏测试功能组件模块,驻留在嵌入式系统中,运行在待测板卡上,用于对收到的所有测试指令逐条解析,根据解析结果读、写指令中规定的存储空间的值,判断指令执行的结果,得到嵌入式系统测试结果,将执行结果和测试结果输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111310840.4A CN114121135A (zh) | 2021-11-05 | 2021-11-05 | 基于宏的嵌入式系统地址线数据线测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111310840.4A CN114121135A (zh) | 2021-11-05 | 2021-11-05 | 基于宏的嵌入式系统地址线数据线测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114121135A true CN114121135A (zh) | 2022-03-01 |
Family
ID=80381056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111310840.4A Pending CN114121135A (zh) | 2021-11-05 | 2021-11-05 | 基于宏的嵌入式系统地址线数据线测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114121135A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117079703A (zh) * | 2023-10-17 | 2023-11-17 | 紫光同芯微电子有限公司 | 用于测试芯片内嵌存储器的方法及装置、电子设备 |
-
2021
- 2021-11-05 CN CN202111310840.4A patent/CN114121135A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117079703A (zh) * | 2023-10-17 | 2023-11-17 | 紫光同芯微电子有限公司 | 用于测试芯片内嵌存储器的方法及装置、电子设备 |
CN117079703B (zh) * | 2023-10-17 | 2024-02-02 | 紫光同芯微电子有限公司 | 用于测试芯片内嵌存储器的方法及装置、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0453394B1 (en) | Dynamic process for the generation of biased pseudo-random test patterns for the functional verification of hardware designs | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
CN111831564A (zh) | 一种回归测试方法、装置及计算设备 | |
CN107329889B (zh) | 一种c编译器自动化测试的方法 | |
CN112597064B (zh) | 对程序进行仿真的方法、电子设备及存储介质 | |
CN106776334A (zh) | 基于注释生成测试用例方法及装置 | |
CN112558942A (zh) | 算子注册方法和相关产品 | |
CN111797006B (zh) | 一种线程测试的方法、装置、设备以及存储介质 | |
JP2012150535A (ja) | プログラム検証方法及び検証プログラム | |
US20140019939A1 (en) | Iterative Generation of Symbolic Test Drivers for Object-Oriented Languages | |
CN114121135A (zh) | 基于宏的嵌入式系统地址线数据线测试方法和装置 | |
Jaffuel et al. | LEIRIOS test generator: Automated test generation from B models | |
CN112560372B (zh) | 一种芯片原型验证方法、装置、设备及介质 | |
CN113094252B (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN112380133B (zh) | 一种指令集模拟器利用功能库仿真的方法及装置 | |
CN116663489A (zh) | 一种rtl模块复位方法、装置、电子设备及存储介质 | |
CN112463633B (zh) | 一种片上存储器的地址译码校验方法、装置、设备及介质 | |
CN115657981A (zh) | 验证环境中的打印信息的打印等级的设置方法及验证方法 | |
US7546589B2 (en) | Semi-automated desk checking system and method | |
CN113806234A (zh) | 一种芯片寄存器提取及测试方法 | |
CN112363969A (zh) | 一种接口调试方法、装置、电子设备及可读存储介质 | |
KR100580071B1 (ko) | 메모리 오류 검출방법 | |
CN111209199B (zh) | 一种指令的相关性验证方法、装置、电子设备及存储介质 | |
CN116382992B (zh) | 一种硬件测试方法、装置、电子设备及存储介质 | |
CN112527657B (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 |