CN112799889A - 一种flash芯片的测试方法及相关装置 - Google Patents

一种flash芯片的测试方法及相关装置 Download PDF

Info

Publication number
CN112799889A
CN112799889A CN202011609761.9A CN202011609761A CN112799889A CN 112799889 A CN112799889 A CN 112799889A CN 202011609761 A CN202011609761 A CN 202011609761A CN 112799889 A CN112799889 A CN 112799889A
Authority
CN
China
Prior art keywords
test
source code
program
flash chip
resource
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
CN202011609761.9A
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.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information Technology 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 Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN202011609761.9A priority Critical patent/CN112799889A/zh
Publication of CN112799889A publication Critical patent/CN112799889A/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/2273Test methods
    • 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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • 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/26Functional testing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请公开了一种flash芯片的测试方法及相关装置,该方法包括:利用引导源码加载测试程序;利用所述引导源码,将与待测flash芯片匹配的测试资源的存储地址传输至所述测试程序中;执行所述测试程序,以根据所述存储地址调用所述测试资源,并基于所述测试资源对所述flash芯片进行测试。通过本申请所提供的技术方案,可以实现在不占用flash芯片及基于flash芯片所发布产品的资源,实现对flash芯片进行稳定可靠性测试。

Description

一种flash芯片的测试方法及相关装置
技术领域
本申请涉及芯片测试技术领域,特别是涉及一种flash芯片的测试方法及相关装置。
背景技术
flash芯片作为常用的非易失的存储类芯片,具有随机存储、可靠性强、读取速度快、可执行代码、成本低等特点,广泛的使用在中小型嵌入系统中。然而在实际的生产应用中,对于flash芯片的可靠性测试一直都是被忽略的环节,现有的用于测试的flash芯片的测试方法,均存在算法较为复杂,需要的测试时间较长,故现有对于flash芯片的测试大部分都只是停留在理论研究层面,很少用于工程实践中作为评判flash稳定性的依据。故需要一种不占用flash芯片资源或基于flash芯片发布的产品的资源的,且执行效率较高的方案对flash芯片进行测试,进而实现更好地保证flash芯片的稳定可靠性。
发明内容
本申请主要解决的技术问题是提供一种flash芯片的测试方法及相关装置,可以实现在不占用flash芯片及基于flash芯片所发布产品的资源,实现对flash芯片进行稳定可靠的测试。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种flash芯片的测试方法,所述方法包括:
利用引导源码加载测试程序;
利用所述引导源码,将与待测flash芯片匹配的测试资源的存储地址传输至所述测试程序中;
执行所述测试程序,以根据所述存储地址调用所述测试资源,并基于所述测试资源对所述flash芯片进行测试。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种测试设备,所述测试设备包括处理器以及与所述处理器耦接的存储器和通信接口;其中,
所述通信接口用于与其他电子设备通信;
所述存储器用于存储计算机程序;
所述处理器用于运行所述计算机程序以执行如上所述的flash芯片的测试方法。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种计算机可读存储介质,所述计算机可读存储介质存储有能够被处理器运行的计算机程序,所述计算机程序用于实现如上所述的flash芯片的测试方法。
本申请的有益效果是:区别于现有技术的情况,本申请所提供的技术方案,通过将测试资源预先存储于引导源码中,然后在对flash芯片进行测试时,首先利用引导源码加载测试程序,并将测试资源存储于引导源码中的存储地址传输至测试程序中,再执行测试程序,进而使得测试程序根据所接收到的测试资源的存储地址调用对应的测试资源,之后基于测试资源对flash芯片进行测试。即本申请所提供的技术方案通过将测试资源预先存储于引导源码中,实现在对flash芯片进行测试时无需占用flash芯片的资源,也无需占用基于flash芯片发布的产品的资源,即可完成对flash芯片进行稳定可靠的测试。
附图说明
图1为本申请一种flash芯片的测试方法一实施例中的流程示意图;
图2为本申请一种flash芯片的测试方法一实施例中的流程示意图;
图3为本申请一种flash芯片的测试方法又一实施例中的流程示意图;
图4为本申请一种flash芯片的测试方法又一实施例中的流程示意图;
图5为本申请一种flash芯片的测试方法再一实施例中的流程示意图;
图6为本申请一种测试设备一实施例中的结构示意图;
图7为本申请一种计算机可读存储介质一实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先需要说明的是,本申请所提供的技术方案中提供了不同类型flash芯片适用的测试资源,可以实现在对不同类型的flash芯片进行测试时,无需依赖固定硬件,较好地实现跨平台移植本申请所提供的技术方案,同时利用测试程序并将测试资源动态加载至引导源码下运行,方便了测试程序的动态升级,且无需占用正常的产品发布时任何资源。
请参见图1,图1为本申请一种flash芯片的测试方法一实施例中的流程示意图。在当前实施例中,本申请所提供的方法包括:
S110:利用引导源码加载测试程序。
在对flash芯片进行测试时,利用引导源码加载测试程序。其中,引导源码为用于引导系统程序启动的开放性源码。
在一实施例中,引导源码包括uboot。其中,uboot是一种普遍用于嵌入式系统中的BootLoader,BootLoader是在操作系统运行之前执行的一小段程序,通过它初始化对应的硬件设备,建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备。
测试程序为对flash芯片进行测试的程序代码。具体地,测试程序为对flash芯片进行读、写、擦除和复位中至少一种进行测试的程序代码,测试程序中至少包括对flash芯片进行测试的所需要的程序逻辑主架构。
在一实施例中,测试程序是预先存储于测试设备的存储器中。
在另一实施例中,测试程序预先存储于测试设备可访问的外部存储器或外部设备中。故需要说明的是,在执行本申请所提供技术方案前,首先将测试设备与存储了测试程序的外部存储器或外部设备连接,进而使得测试设备在执行本申请所提供的技术方案时,可以访问存储了测试程序的外部存储器或外部设备,进而实现利用引导源码加载所需要的测试程序。其中,外部存储器至少包括SD存储卡,外部设备可以包括后台服务器。可以理解的是,在其他实施例中,测试程序还可以通过其他方式存储于测试设备可以进行通信的其他位置,在此不一一列举。
在一实施例中,当测试程序是存储于外部的SD存储卡中时,本申请所提供的测试设备还包括通信接口,其中,SD存储卡通过通信接口与测试设备连接。具体地,在执行本申请所提供的技术方案时,首先要将存储了测试程序的SD存储卡插设至通信接口,实现与测试设备连接,进而使得测试设备可以正常访问SD存储卡。在对flash芯片进行测试时,首先利用引导源码将SD存储卡中的测试程序加载至处理器中。
进一步地,预先存储了多种适用于不同类型的flash芯片的测试程序。则上述步骤S110进一步包括:确定待测flash芯片的类型,并利用引导源码,加载与待测flash芯片的类型匹配的测试程序。
S120:利用引导源码,将与待测flash芯片匹配的测试资源的存储地址传输至测试程序中。
在利用引导源码加载测试程序之后,进一步利用引导源码,将与待测flash芯片匹配的测试资源的存储地址传输至测试程序中。
其中,测试资源是被预先设置在引导源码中的,用于对flash芯片进行测试所需的资源。与待测flash芯片匹配的测试资源未适用于当前待测flash芯片的测试资源。可以理解的是,在一些实施例中,预先存储于引导源码中的测试资源为多种不同类型的flash芯片通用的测试资源。如:引导源码中存储的是spi Norflash、Nand和AG-AND Flash等通用的测试资源。在当前实施例中,通过在引导源码中提供可适用多种不同类型flash芯片的测试资源,可以实现使得对不同类型flash芯片进行测试时,无需依赖固定的硬件,也较为方便用于测试flash芯片的测试程序的跨平台移植。
其中,测试资源包括测试类型、测试次数、测试地址、测试范围等中的至少一种,测试类型包括:读、写、擦除、复位等中的至少一种,测试次数为测试时执行测试操作(测试操作包括:读、写、擦除、复位)的次数,测试地址为对flash芯片进行测试的起始地址;测试范围是自测试地址起,需要进行测试的区域的大小。进一步地,在其他实施例中测试资源中还可以包括测试函数,测试函数为对flash芯片执行测试过程中所需调用一些函数,根据测试类型或测试芯片的不同对应需要不同的测试函数。可以理解的是,在其他实施例中,测试资源还可以是被预先存储至其他测试设备可以访问的区域,在此不做限定。
进一步地,在一实施例中,测试资源包括spi Norflash芯片等通用的API函数。可以理解的是,在其他实施例中,测试资源还可以包括其他类型的函数。
进一步地,在另一实施例中,根据对flash芯片测试的需求,会将与待测flash芯片匹配的测试资源的存储地址以函数结构体的形式传输至测试程序中。
S130:执行测试程序,以根据存储地址调用测试资源,并基于测试资源对flash芯片进行测试。
在利用引导源码加载测试程序,并利用引导源码将与待测flash芯片匹配的测试资源在引导源码中的存储地址传输至测试程序中之后,进一步执行测试程序,以对flash芯片进行测试,进而得到flash芯片的测试结果。具体地,执行测试程序时,测试程序进一步根据引导源码传输的存储地址,自引导源码中调用所需的测试资源,然后基于测试资源对flash芯片进行测试资源所指示的测试,进而获得flash芯片的测试结果。
进一步地,在一实施例中,在执行测试程序之前,本申请所提供的方法包括:利用测试程序,检验测试资源的有效性。如,利用测试程序校验测试资源中所包括的参数的合理性,如若校验得到测试资源合理,则继续执行步骤S130;反之,若如校验得到测试资源不合理,进而确定该测试资源无效,此时则重新执行步骤S110。
本申请图1所提供的技术方案,通过利用引导源码加载测试程序,并利用引导源码将与待测flash芯片匹配的测试资源的存储地址传输至测试程序中,然后执行测试程序,进而根据存储地址自引导源码中调用测试资源,基于测试资源对flash芯片进行测试。本申请所提供的技术方案,通过在利用引导源码加载测试程序后,利用引导源码将预先存储于引导源码中的测试资源的测试地址传输至测试程序,再执行测试程序以根据存储地址自引导源码中调用测试资源,然后基于所调用的测试资源对flash芯片完成测试,即本申请所提供的技术方案在不占用flash芯片以及基于flash芯片而发布的产品的资源,即可完成对flash芯片的测试。
请参见图2,图2为本申请一种flash芯片的测试方法一实施例中的流程示意图。在当前实施例中,在步骤利用引导源码加载测试程序之前,本申请所提供的方法还包括步骤S201至步骤S202。
S201:获取至少一个测试资源。
在对flash芯片进行测试之前,首先获取至少一个测试资源,以在引导源码中存储至少一个测试资源。其中,测试资源可以为用户直接输入至测试设备的,也可以是用户通过其他可以与测试设备进行通信的设备输入的,具体根据实际的需要进行设定,在此不做限定。
其中,测试资源包括API函数。可以理解的是,在其他实施例中,测试资源还可以包括其他类型的函数,在此不一一列举。
S202:利用引导源码,验证每个测试资源的有效性,并将有效的测试资源存储至引导源码。
在获取到至少一个测试资源之后,进一步利用引导源码,验证每个测试资源的有效性,进而避免存储无效的测试资源至引导源码,造成资源的浪费。
其中,在此对于存储至引导源码的测试资源的数量不做限定。当测试资源的数量为多个时,则步骤S202中会利用引导源码,依次分别验证每个测试资源的有效性。在另一实施例中,当测试资源的数量为多个时,步骤S202还可以是利用引导源码并行验证每个测试资源的有效性。
进一步地,测试资源包括测试类型、测试次数、测试地址、测试范围、测试函数等中的至少一种参数,对于测试资源的有效性验证至少包括:验证测试资源中各个参数是否有效。其中,测试地址为对flash芯片进行测试的起始地址。更进一步地,当测试资源包括测试地址和测试范围时,则对应根据测试地址和测试范围直接确定对flash芯片进行测试的测试区域,并确定flash芯片中是否存在该测试区域;如当测试区域超出flash芯片所包括的内存范围时,则判断当前测试资源无效。
如,在一实施例中,步骤S201中获取的某一个测试资源中包括测试地址,对应在验证测试地址的有效性时,需要验证测试地址是否为flash芯片中的有效地址,地址是否为可以被正常读取的地址。如若校验得到无法读取该测试地址时,则判断该测试地址无效,对应校验得到当前测试资源无效。同理,若经过校验得到当前输入的测试地址在flash芯片中是不存在的,则对应判断得到当前的测试地址无效,对应确定当前的测试资源是无效的。
如,在另一实施例中,校验测试资源的有效性时,还会根据测试地址、测试范围和flash芯片的自身的参数,进一步验证当前的测试范围是否均是有效的。如,根据测试地址获得的测试范围已经超出常用flash芯片本身所包括的地址范围时,此时则判断该测试范围无效,进而得到当前测试资源无效。
需要说明的是,由于在不同的实施例中,测试资源所包括的参数的数量并不一致,故在验证测试资源的有效性时,如若验证得到测试资源中只要存在一个参数为无效的,则判定当前测试资源无效。
其中,需要说明的是,在此不限定将有效测试资源存储至引导源码中的具体位置,也不限定测试资源的存储形式,具体以实际设置为准。
进一步地,在一实施例中,当在引导源码中存储多个有效的测试资源时,则在此不限定多个有效的测试资源存储的位置和存储形式。如,多个有效的测试资源可以存储于引导源码中的同一个位置。在另一实施例中,也可以将多个有效的测试资源分别存储于引导源码中不同的位置,即将有效的测试资源分布式存储至引导源码中。同理,存储至引导源码的多个测试资源的存储形式可以是相同的,也可以是不同的。如,某个测试资源可以是整包存储在引导源码中的同一个位置。在另一实施例中,当某一个有效的测试资源所占用的空间较大时,同一个有效的测试资源也可以是被拆分成多个不同的数据块,然后分别被存储至引导源码的不同位置。
进一步地,步骤上述S202中的利用引导源码,验证每个测试资源的有效性,包括:利用引导源码,对每个测试资源进行循环码校验,以分别判断每个测试资源的有效性。其中,循环码校验为crc校验。
更进一步地,在利用引导源码对每个测试资源进行循环码校验之后,并检验得到测试资源有效后,进一步将每个引导资源的校验值与测试资源的地址关联存储,以在将测试资源的地址传输至测试程序时,同时将测试资源的校验值传输至测试程序。
再进一步地,当存在多个测试资源时,在利用引导源码对每个测试资源进行循环码校验之后,并检验得到多个测试资源有效后,进一步将每个引导资源的存储地址与其校验值打包,然后将打包后的有效的测试资源的存储地址与各测试资源所对应的校验值以一个结构体形式对应增加至变量参数中。其中,变量参数包括环境变量和全局变量。
进一步地,在一实施例中,请继续参见图2,在验证得到测试资源有效的情况下,本申请所提供的方法还包括步骤S203。
S203:将有效的测试资源的存储地址对应增加至环境变量。
在验证得到当前测试资源为有效的测试资源时,进一步将有效的测试资源在引导源码中的存储地址对应增加至环境变量。具体地,是将有效的测试资源在引导源码中的存储地址是以结构体形式添加至环境变量。在另一实施例中,可以将有效的测试资源的存储地址对应增加至全局变量中。
进一步地,在一实施例中,当有效的测试资源数量为多个时,则是将多个有效的测试资源在引导源码中的存储地址以一个结构体形式添加至环境变量。
更进一步地,在另一实施例中,在利用引导源码对每个测试资源进行循环码校验之后,并检验得到多个测试资源有效后,将每个引导资源的存储地址与其校验值打包,然后将打包后的有效的测试资源的存储地址与各测试资源所对应的校验值以同一个结构体形式对应增加至环境变量或全局变量中。
请参见图3,图3为本申请一种flash芯片的测试方法又一实施例中的流程示意图。在当前实施例中,本申请所提供的方法包括步骤S301至步骤S305。
在当前实施例中,上述步骤S110利用引导源码加载测试程序,进一步包括步骤S301。
S301:利用引导源码以bootm standalone的方式加载测试程序。
在当前实施例中,在对flash芯片进行测试时,首先利用引导源码以bootmstandalone的方式加载测试程序,将测试程序加载至处理器中,以用于后续对flash芯片的测试。
进一步地,在当前实施例中,在步骤利用引导源码加载测试程序之前,本申请所提供的方法还包括:初始化引导源码。即在对测试设备进行上电之后,启动引导源码之后,首先初始化引导源码,使得引导源码进入准备状态。更进一步地,在初始化引导源码时,还会进一步校验引导源码是否存在异常,若检验得到引导源码无误,并将引导源码的各项数值调整至默认初始值,进而使得引导源码进入准备状态,以执行步骤S301。
S302:利用引导源码,将与待测flash芯片匹配的测试资源的存储地址传输至测试程序中。
在一实施例中,若多个测试资源被存储至引导源码中的同一位置时,则各个测试资源在引导源码中的存储地址相同,则在加载测试程序之后,进一步利用引导源码,直接将引导源码中用于存储测试资源的存储地址传输至测试程序中。
在另一实施例中,若多个测试资源被分别存储至引导源码中不同位置时,则对应的各个测试资源在引导源码中的存储地址不同。对应的,则加载测试程序之后,进一步确定与待测flash芯片匹配的测试资源,并利用引导源码,将与待测flash芯片匹配的测试资源的存储地址传输至测试程序中。
具体地,利用引导源码自环境变量或全局变量获取测试资源的存储地址,然后继续利用引导源码将所获取的测试资源在引导源码中的存储地址传输至测试程序中,以供测试程序根据所接收到的存储地址,访问引导源码对应的位置以获取测试资源,用于对待测flash芯片的测试。
在当前实施例中,上述步骤S130执行测试程序,以根据存储地址调用测试资源,并基于测试资源对flash芯片进行测试之前,本申请所提供的方法还包括步骤S303至步骤S305。
S303:利用引导源码,验证测试程序的完整性。
在利用引导源码加载测试程序后,进一步利用引导资源验证所加载的测试程序的完整性。其中,验证测试程序的完整性,具体是验证测试程序是否可以正常执行。进一步地,在一实施例中,可以通过利用默认资源预执行测试程序,以判断测试程序是否完整,若可以正常执行测试程序,则判断当前测试程序完整;反之,若测试程序无法正常执行,则判断当前测试程序不完整。可以理解的是,在其他实施例中,还可以利用专门用于校验测试程序的校验工具,校验判断测试程序是否完整。
其中,需要说明的是,在此不限定步骤S303与步骤S302的顺序。在一实施例中,步骤S303和步骤S302可以是同时执行。在另一实施例中,也可以是先执行步骤S302,再执行步骤S303。在又一实施例中,还可以是先执行步骤S303,再执行步骤S302。
进一步地,在一实施例中,步骤S303之前,还包括:将测试程序编译成可执行文件,并为可执行文件添加引导源码专用的头部信息。在该实施例中,在利用引导源码加载测试程序之后,进一步将所记载的测试程序编译成可执行文件。然后在可执行文件的头部添加引导源码专用的头部信息,用于对外标记当前测试程序为待执行程序。
更进一步地,引导源码专用的头部信息包括:uboot标准头部。在一实施例中,是用mkimage为可执行文件添加uboot标准头部,以对外标记当前执行文件(测试程序)为待执行程序。
更进一步地,在另一实施例中,也可以是将测试程序编译成可执行文件之后,进一步对可执行文件进行验证,以验证测试程序是否完整。故步骤S303进一步包括:利用引导源码验证可执行文件的完整性。即利用引导源码验证被编译成可执行文件的测试程序的完整性。
S304:若验证得到测试程序完整,执行测试程序,以根据存储地址调用测试资源,并基于测试资源对待测flash芯片进行测试。
若验证得到测试程序完整,则执行上述步骤S130。即验证得到测试程序完整,则进一步利用测试程序根据存储地址调用测试资源,进而利用测试程序基于所调用的测试资源对待测flash芯片进行测试。
进一步地,在当前实施例中,在执行测试程序之前,本申请所提供的方法还包括:利用测试程序,检验测试资源的有效性。在当前实施例中,若在将测试资源存储至引导源码时,是利用引导源码对测试资源进行crc校验,进而获得测试资源的第一crc校验值,并将第一crc校验值与测试资源在引导源码中的存储地址关联存储。对应的,在利用引导源码将测试资源的存储地址传输至测试程序中时,同样将测试资源的crc校验值与测试资源的存储地址同时传输至测试程序,以在利用测试程序校验测试资源的有效性时调用。故在测试程序根据存储地址调用到测试资源时,重新利用测试程序对测试资源进行crc校验,进而获得测试资源的第二crc校验值,然后将第二crc校验值与第一crc校验值进行比对,判断第二crc校验值是否等于第一crc校验值;若是,则判断得到当前的测试资源有效;反之,若判断第二crc校验值不等于第一crc校验值,则判断得到当前的测试资源无效,则终止当前循环,重新执行利用引导源码加载测试程序。在当前实施例中,通过分别利用引导源码校验测试资源的有效性,并在利用测试程序调用测试资源时,再利用测试程序校验测试资源的有效性,可以较好地避免因传输异常而导致无效的测试资源用于flash芯片的测试,可以较好地实现保证测试资源的有效性,进而实现对待测flash芯片进行有效的测试操作。
S305:若经过验证得到测试程序不完整,则重新执行利用引导源码加载测试程序。
若经过验证得到测试程序不完整,则重新执行利用引导源码加载测试程序,以重新获取测试程序。
在一实施例中,若本申请所提供的方法在利用引导源码加载测试程序之前,还包括:初始化引导源码,对应的,若经过验证得到测试程序不完整时,则重新执行初始化引导源码,以重新利用引导源码加载测试程序,然后再利用引导源码,将与待测flash芯片匹配的测试资源的存储地址传输至测试程序中。
基于图3,以引导源码为uboot为例,本申请所提供的flash芯片的测试方法的流程如下:对测试设备进行上电,启动uboot,并初始化uboot,利用uboot加载固件,并利用uboot将固件资源的存储地址传输至固件中,利用uboot检查固件完整性,如若固件完整,则运行固件,反之,如若检查得到固件不完整,则进一步重新执行启动uboot或初始化uboot的步骤。进一步地,在运行固件时,首先会利用固件校验固件资源的有效性,如若有效,则执行固件中的逻辑,反之,则重新获取固件资源。其中,如上所述,固件包括测试程序,对应的,固件资源包括测试资源。
请参见图4,图4为本申请一种flash芯片的测试方法又一实施例中的流程示意图。在当前实施例中,本申请所提供的方法包括:
S401:利用引导源码加载测试程序。
S402:利用引导源码,将与待测flash芯片匹配的测试资源的存储地址传输至测试程序中。
步骤S401和步骤S402分别与上述步骤S110和步骤S120相同,在此不再赘述,可参见上文对应部分的阐述。
在当前实施例中,上述步骤S130执行测试程序,以根据存储地址调用测试资源,并基于测试资源对flash芯片进行测试,进一步包括步骤S403至步骤S405。
S403:利用测试程序,根据存储地址访问引导源码,获取测试资源。
在执行测试程序时,首先利用测试程序根据存储地址访问引导源码,以获取在存储地址所指示位置获取存储于引导源码中的测试资源。其中,测试资源包括:测试类型、测试次数、测试地址和测试范围中的至少一种测试参数。
S404:利用测试程序,获取测试数据。
同时利用测试程序,获取测试数据。测试数据包括:sd、tftp、本地随机数。进一步地,测试数据也可以是由用户自定义的,在此不做限定。
可以理解的是,在其他实施例中,还可以是通过其他方式获取测试数据。
S405:根据测试数据和测试资源,执行测试程序,以对待测flash芯片执行测试获取测试结果。
在获取测试数据和测试资源之后,进一步根据所获取的测试数据和测试资源执行测试程序,进而对待测flash芯片完成测试操作,进而获取到测试结果。
进一步地,请参见图5,图5为本申请一种flash芯片的测试方法再一实施例中的流程示意图。
在当前实施例中,上述步骤S405进一步包括步骤S501至步骤S503。
S501:根据测试地址和测试范围,在flash芯片中确定测试区域。
如上所述,测试资源包括多种测试参数。其中,测试参数包括测试类型、测试次数、测试地址和测试范围中的至少一种。故上述步骤是根据测试资源中所包括的测试地址和测试范围,以及flash参数中的测试地址和测试范围,在flash芯片中确定测试区域。
S502:对测试区域分别执行测试次数的设定测试操作,统计各个设定操作的成功次数和/或失败次数。
然后根据测试资源中所包括的测试次数,对步骤S501中确定的测试区域依次执行对应测试次数的设定测试操作,并统计各个设定操作的成功次数和/或失败次数。如,当设定测试操作包括擦除、写和读时,则是依次对测试区域执行擦除、写和读,当对测试区域依次完成一次擦除、写和读,则判断得到对测试区域完成一轮完整的测试操作,然后判断当前对测试区域依次完成擦除、写和读的次数是否等于测试次数,若是,则将测试结果输出,若否,则对测试区域进行新一轮的依次擦除、写和读。
其中,设定测试操作是根据测试资源中的测试类型确定。其中,测试类型包括:读、写、擦除、复位等中的至少一种。对应的,设定测试操作包括读操作、写操作、擦除操作和复位操作。具体地,写操作是向flash芯片的测试区域写测试数据;读操作是读取flash芯片中测试区域所写的数据;擦除操作是将flash芯片中测试区域的内容擦除;复位是将flash芯片进行复位。需要说明的是,在此不限定设定测试操作仅仅包括上述各种,在其他实施例中,设定测试操作还可以包括其他类型的操作,在此不一一列举。
对应的,在对测试区域分别执行测试次数的设定测试操作时,还会统计每种不同类型的测试操作成功次数和失败次数。若可以在测试区域完成设定的测试操作,则对应将该测试操作的成功次数加一,反之,若无法在测试区域完成设定的测试操作,则对应将该测试操作的失败次数加一。
S503:将测试参数与设定测试操作的成功次数和/或失败次数,作为测试结果。
在对测试区域执行完成测试次数的设定测试操作之后,进一步将每种设定测试操作的成功次数和/或失败次数与测试参数输出作为测试结果,并显示于测试设备,用于展示flash芯片的功能。
进一步地,在另一实施例中,只是将设定操作的成功次数和失败次数与部分测试参数输出作为测试结果,并将测试结果输出。
请同时参见上述各图,在一实施例中,以引导源码为uboot为例,本申请所提供的flash芯片的测试方法的流程如下:
对测试设备进行上电,启动uboot,并初始化uboot,利用uboot加载测试程序,并利用uboot将测试资源的存储地址传输至测试程序中,利用uboot检查测试程序完整性,如若检测得到测试程序完整,则运行测试程序,反之,如若检查得到测试程序不完整,则进一步重新执行启动uboot或初始化uboot的步骤。
其中,在运行测试程序时,利用uboot跳到测试程序,然后利用测试程序根据测试资源的存储地址访问uboot,以自uboot中调用测试资源,测试程序校验测试资源的有效性。如经过校验得到测试资源有效,则自测试资源中获取测试类型、测试次数、测试地址和测试范围,自flash参数区获取测试类型、测试次数、测试地址和测试范围,如若无法自测试资源中获取到上述各种参数时,则可以进一步获取默认的测试类型、测试次数、测试地址和测试范围,以对待测flash芯片进行测试。在获取测试类型、测试次数、测试地址和测试范围时,同时还会获取测试数据,然后根据不同测试类型和其他对应的测试参数对flash芯片执行测试操作,并统计各个设定测试操作的成功次数和/或失败次数,并将设定操作的成功次数和/或失败次数与测试参数,作为测试结果并输出。
进一步地,如若测试类型包括擦除、写和读时,上述步骤S405包括如下:根据测试地址和测试范围确定测试区域,然后对测试区域进行擦除,计算擦除速度并记录,如若擦除出错,则将擦除出错(擦除失败)统计次数加一,反之,如若擦除成功,则将擦除成功统计次数加一。然后,再向测试区域写入测试数据,计算写速度,如若写入出错,则将写出错统计次数加一,反之,则将写成功统计次数加一。最后在执行读操作,并计算读速度,如若读出错,则将读出错统计次数加一,反之,则将读成功统计次数加一。执行完上述各个步骤之后,进一步将擦除、写和读的成功次数和失败次数,以及擦除速度、写速度和读速度对应输出作为测试结果。
更进一步地,在另一实施例中,在执行测试程序对测试区域进行擦除、写和读操作时,只分别计算擦除速度、写速度和读速度,并分别统计擦除、写和读操作失败的次数即可,对应的,只将统计所得的擦除、写和读操作失败的次数,以及擦除速度、写速度和读速度和测试次数,对应输出作为测试结果。
其中,每对测试区域执行完一次擦除、写和读,则会进一步判断当前完成的擦除、写和读的次数是否等于测试资源中要求的测试次数,若是,则结束当前循环,并将擦除、写和读操作失败的次数,以及擦除速度、写速度和读速度和测试次数,对应输出作为测试结果;反之,则继续对测试区域依次执行擦除、写和读。
进一步地,在另一实施例中,如若测试类型包括擦除、写、复位和读时,上述步骤S405包括如下流程:根据测试地址和测试范围确定测试区域;首先判断当前对测试区域完成的测试次数,是否等于测试资源中的测试次数,若否,则进一步判断当前读写类型是哪一种。如若判断得到当前读写类型为擦除时,对测试区域进行擦除,计算擦除速度,如若擦除出错,则将擦除出错统计次数加一,然后向测试区域写入测试数据,计算写速度,如若写出错,则将写出错统计次数加一;然后将测试读写类型设为读,并将擦除速度、擦除出错统计次数、写速度和写出错统计次数保存,并输出为测试结果,然后复位。如若在判断当前对测试区域完成的测试次数小于测试资源中的测试次数,且判断当前读写类型为读时,则读取测试区域,并计算读速度,并将读写类型设为写,如若读出错则对应将读出错统计次数增加一,反之,则在读成功统计次数增加一,并将读速度和读出错统计次数保存,并输出为测试结果,然后进行复位。
本申请所提供的flash芯片的测试方法,通过检测flash芯片的测试,可以较好地避免芯片本身的缺陷对芯片以及基于芯片发布产品的稳定性的影响,同时通过提高多种测试方案,可以较为准确的获取到flash芯片缺陷对于稳定性影响。其中,多种测试方案包括:如上所述的对根据测试地址和测试范围确定的flash芯片中的测试区域进行长期擦除、写、读测试;对测试区域进行长期擦除、写、复位、读测试。其中,测试数据可以是内部的随机数,也可以是用户自己定义的数据,较好地方便用户以数据的形式确定测试方案。
同时本申请所提供的技术方案的测试结果可以选择实时输出,也可以保存到flash或测试设备中,方便用户断电后的连续性长期测试。
请参见图6,图6为本申请一种测试设备一实施例中的结构示意图。在当前实施例中,本申请所提供的测试设备600包括处理器601以及与处理器601耦接的存储器602和通信接口603,即存储器602和通信接口603分别与处理器601连接。其中测试设备600可以执行图1至图5及其对应的任意一个实施例中的方法。
其中,处理器601分别与存储器602和通信接口603连接。
通信接口603用于在处理器601的控制下与外部其他电子设备进行通信,以进行数据资源的传输和调用。其中,其他电子设备包括:外部存储器和后台服务器,外部存储器包括SD存储卡。
存储器602包括本地储存,且存储有计算机程序,计算机程序被处理器601执行时可实现如上的任意一个实施例的方法。
处理器601用于运行存储器602存储的计算机程序,以执行图1至图5及其对应的任意一个实施例的方法。
参见图7,图7为本申请一种计算机可读存储介质一实施例结构示意图。该计算机可读存储介质700存储有能够被处理器运行的计算机程序701,该计算机程序701用于实现如上图1至图5及其对应的任意一个实施例中所描述的flash芯片的测试方法。具体地,上述计算机可读存储介质700可以是存储器、个人计算机、服务器、网络设备,或者U盘等其中的一种,具体在此不做任何限定。
以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (12)

1.一种flash芯片的测试方法,其特征在于,所述方法包括:
利用引导源码加载测试程序;
利用所述引导源码,将与待测flash芯片匹配的测试资源的存储地址传输至所述测试程序中;
执行所述测试程序,以根据所述存储地址调用所述测试资源,并基于所述测试资源对所述flash芯片进行测试。
2.根据权利要求1所述的方法,其特征在于,所述利用引导源码加载测试程序之前,所述方法还包括:
获取至少一个所述测试资源;
利用所述引导源码,验证每个所述测试资源的有效性,并将有效的所述测试资源存储至所述引导源码。
3.根据权利要求2所述的方法,其特征在于,所述利用所述引导源码,验证每个所述测试资源的有效性,进一步包括:
利用所述引导源码,对每个所述测试资源进行循环码校验,以分别判断每个所述测试资源的有效性。
4.根据权利要求2所述的方法,其特征在于,所述利用所述引导源码,验证每个所述测试资源的有效性之后,所述方法还包括:
在验证所述测试资源有效的情况下,将有效的所述测试资源的存储地址对应增加至环境变量。
5.根据权利要求1所述的方法,其特征在于,所述利用引导源码加载测试程序,进一步包括:
利用所述引导源码以bootm standalone的方式加载所述测试程序。
6.根据权利要求1所述的方法,其特征在于,所述执行所述测试程序之前,所述方法还包括:
利用所述引导源码,验证所述测试程序的完整性;
若验证得到所述测试程序完整,则执行执行所述测试程序,以根据所述存储地址调用所述测试资源,并基于所述测试资源对所述flash芯片进行测试;反之,则重新执行所述利用引导源码加载测试程序。
7.根据权利要求6所述的方法,其特征在于,在所述利用所述引导源码,验证所述测试程序的完整性之前,所述方法还包括:
将所述测试程序编译成可执行文件,并为所述可执行文件添加引导源码专用的头部信息,以标记所述测试程序为需要执行的所述测试程序;
所述利用所述引导源码验证所述测试程序的完整性,包括:
利用所述引导源码验证所述可执行文件的完整性。
8.根据权利要求1所述的方法,其特征在于,所述执行所述测试程序之前,所述方法还包括:
利用所述测试程序,检验所述测试资源的有效性。
9.根据权利要求1所述的方法,其特征在于,所述执行所述测试程序,以根据所述存储地址调用所述测试资源,并基于所述测试资源对所述待测flash芯片执行测试,进一步包括:
利用所述测试程序,根据所述存储地址访问所述引导源码,获取所述测试资源;其中,所述测试资源包括:测试类型、测试次数、测试地址和测试范围中的至少一种测试参数;
利用所述测试程序,获取测试数据;
根据所述测试数据和所述测试资源,执行所述测试程序,以对所述待测flash芯片执行测试获取测试结果。
10.根据权利要求9所述的方法,其特征在于,所述根据所述测试数据和所述测试资源,执行所述测试程序,以对所述待测flash芯片执行测试获取测试结果,进一步包括:
根据所述测试地址和所述测试范围,在所述flash芯片中确定测试区域;
对所述测试区域分别执行所述测试次数的设定测试操作,统计各个设定操作的成功次数和/或失败次数;
将所述测试参数与设定操作的成功次数和/或失败次数,作为所述测试结果。
11.一种测试设备,其特征在于,所述测试设备包括处理器以及与所述处理器耦接的存储器和通信接口;其中,
所述通信接口用于与其他电子设备通信;
所述存储器用于存储计算机程序;
所述处理器用于运行所述计算机程序以执行权利要求1至10任意一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有能够被处理器运行的计算机程序,所述计算机程序用于实现权利要求1至10任一项所述的方法。
CN202011609761.9A 2020-12-30 2020-12-30 一种flash芯片的测试方法及相关装置 Pending CN112799889A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011609761.9A CN112799889A (zh) 2020-12-30 2020-12-30 一种flash芯片的测试方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011609761.9A CN112799889A (zh) 2020-12-30 2020-12-30 一种flash芯片的测试方法及相关装置

Publications (1)

Publication Number Publication Date
CN112799889A true CN112799889A (zh) 2021-05-14

Family

ID=75804578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011609761.9A Pending CN112799889A (zh) 2020-12-30 2020-12-30 一种flash芯片的测试方法及相关装置

Country Status (1)

Country Link
CN (1) CN112799889A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319526A (zh) * 2017-12-18 2018-07-24 北京时代民芯科技有限公司 一种基于片上嵌入式微系统及其内部fpga资源内建自测试方法
CN110446028A (zh) * 2019-08-09 2019-11-12 深圳市云之尚网络科技有限公司 机顶盒生产测试方法与系统
CN111309586A (zh) * 2018-12-12 2020-06-19 迈普通信技术股份有限公司 一种命令测试方法、装置及其存储介质
CN111370049A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种eMMC芯片测试方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319526A (zh) * 2017-12-18 2018-07-24 北京时代民芯科技有限公司 一种基于片上嵌入式微系统及其内部fpga资源内建自测试方法
CN111309586A (zh) * 2018-12-12 2020-06-19 迈普通信技术股份有限公司 一种命令测试方法、装置及其存储介质
CN111370049A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种eMMC芯片测试方法和装置
CN110446028A (zh) * 2019-08-09 2019-11-12 深圳市云之尚网络科技有限公司 机顶盒生产测试方法与系统

Similar Documents

Publication Publication Date Title
CN110134415A (zh) 一种控制器及其软件升级方法和装置
CN111124440A (zh) 芯片软件烧录方法、芯片软件烧录数据处理方法和装置
CN106547653B (zh) 计算机系统故障状态检测方法、装置及系统
CN110597675B (zh) 芯片的测试方法、装置、存储介质及烧录器
CN111813428A (zh) 终端固件的升级方法、装置、电子设备及存储介质
CN115756984A (zh) 内存测试方法、装置、设备及存储介质
CN115659883A (zh) 用于存储器控制器的验证装置、验证方法、存储介质及芯片
CN111666102A (zh) 文件格式转换方法、芯片验证方法、相关装置及网络芯片
CN112133357A (zh) 一种eMMC的测试方法及装置
CN113377586B (zh) 一种服务器自动化检测方法、装置及存储介质
CN114218882A (zh) 一种SoC芯片检验方法、装置及相关设备
CN112463633B (zh) 一种片上存储器的地址译码校验方法、装置、设备及介质
US6539338B1 (en) Self-diagnostic testing of a network interface adapter
CN112799889A (zh) 一种flash芯片的测试方法及相关装置
CN105301480A (zh) Soc芯片的测试方法
CN113672260B (zh) 一种处理器cpu初始化方法
CN115684882A (zh) 片上系统芯片的测试方法、系统、介质和计算设备
CN114121135A (zh) 基于宏的嵌入式系统地址线数据线测试方法和装置
CN109426546A (zh) 应用启动方法及装置、计算机存储介质及设备
KR100580071B1 (ko) 메모리 오류 검출방법
CN112765021A (zh) 一种引导程序的调试检验方法、装置、设备及存储介质
CN112885403A (zh) 一种Flash控制器的功能测试方法、装置及设备
CN112306954A (zh) 一种文件系统的测试方法和装置
CN112464499B (zh) 非易失芯片擦写数据检查方法、装置、存储介质和终端
CN113176974B (zh) 用于验证ip核的方法、装置及系统

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210514

RJ01 Rejection of invention patent application after publication