一种NAND驱动程序测试系统及方法技术方案

技术编号:29672837 阅读:42 留言:0更新日期:2021-08-13 21:54
本发明专利技术公开一种NAND驱动程序测试系统及方法,将驱动测试功能划分为不同的模块,通过对模块的裁剪、功能复用,以及模块对CPU的时分复用,满足了不同场景下的多任务同步测试需求,提高了开发效率和可维护性。本发明专利技术针对不同的混合类型仅需设置不同的命令发送及处理模块即可,测试过程、资源使用等基本需求也可通过管理模块进行了有效监控。而模块的CPU时分复用调度技术则为调度模块提供了一个通用的方法,调度器完全可以按照预设的需求按照顺序分配CPU给各模块,避免了使用简单的分支、循环代码调用模块带来的不确定性和调试困难,且仅需通过修改优先级即能调整不同类型测试命令的比例,做到了可靠和高效。

【技术实现步骤摘要】
一种NAND驱动程序测试系统及方法
本专利技术涉及NAND测试领域,具体是一种NAND驱动程序测试系统及方法。
技术介绍
目前多类型测试命令同步混合测试系统存在开发及维护困难的问题。传统方法面对此类测试问题时,一般需要针对每一个种类型的命令编制独立的测试代码,而进行混合命令类型的测试时,再将这些代码重新整理糅合到一个新的用例中,此过程往往伴随着大量的接口修改、数据处理顺序调整等工作;且当混合类型变更后,上述工作还需要再次重新进行。传统方法即使在设计阶段使用模块化设计,当进行多类型命令混合发送时,仅通过简单的分支、循环等方式实现的模块调用也经常不能满足复杂的数据处理,往往需要进行反复的精细调整,且在批量测试中一旦出现BUG很难调试,部分情况下甚至需要拆解模块本身来保证混合测试时的命令序列。
技术实现思路
针对现有技术的缺陷,本专利技术提供一种NAND驱动程序测试系统及方法,通过模块化设计结合CPU的时分复用调度技术,解决了多类型测试命令同步混合测试系统开发及维护困难的问题。为了解决所述技术问题,本专利技术采用的技术方案是:一种NAND驱动程序测试系统,包括测试管理模块、信息统计模块、数据处理模块、命令生成模块、反馈信息分析模块、NAND驱动程序接口模块、资源管理模块及调度模块;测试管理模块负责监控整个测试流程并进行异常处理;信息统计模块用于记录当前已发送及接收的命令数量、类型及状态,以及数据处理模块的比对结果;数据处理模块用于将驱动程序返回的数据与预期数据进行比对,并将结果反馈至信息统计模块;命令生成模块用于生成各种类型的驱动测试命令,命令生成模块在每次生成命令前,均需查询信息统计模块确认所需测试命令是否均已发送完成,若完成则停止模块运行,不再占用CPU;反馈信息分析模块用于分析NAND驱动程序返回的反馈信息,确定每一个反馈信息的内容及格式是否正确,并且是否与发送的命令相对应,同时确认是否存在需要处理的数据,将分析结果发送至信息统计模块和数据处理模块;NAND驱动接口模块用于按照NAND驱动程序要求的格式与其进行通信;调度模块用于确定各模块间的运行顺序,并根据调度优先级来决定下一步将进入命令发送、反馈接收或数据分析三者之中的哪种操作流程;资源管理模块用于管理系统资源,当发送任一命令时,均需要从该模块获取此一类资源;当收取反馈信息或完成数据处理后,需要释放此一类资源到此模块;测试启动后,测试管理模块配置信息统计模块,预设各种命令的类型及总数量,之后在调度模块的协调下,命令生成模块向资源管理模块申请系统资源产生测试命令,并由NAND驱动程序接口模块发送至驱动程序,同时NAND驱动程序接口模块查询驱动程序的反馈信息并将受到的反馈信息发送至反馈信息分析模块,反馈信息分析模块分析后将结果传输至信息统计模块及数据处理模块,当测试管理模块查询信息统计模块确定全部命令发送完成且相应数据处理完成后,测试结束;除资源管理模块以外的每一个模块均接受调度模块的管理,分时独立占用CPU资源,实现对CPU的短时时分复用。进一步的,调度模块调度除资源管理模块以外的每一个模块的过程为:a、测试系统初始化时,为每一个模块分配独立的栈空间,使各个模块的运行互不干扰;b、某一模块占用CPU运行时,其他模块的运行情况存入对应的栈中,运行中的模块暂停,将当前运行信息存入自身对应的栈中,并切换至调度模块;c、由调度模块根据优先级决定下一个占用CPU的模块,任何已暂停的模块在被调度模块启用后,会将栈中存储的中断点信息重装入CPU,因此该模块在之前暂停的位置接续执行。进一步的,某一模块占用CPU运行时,其他模块均处于挂起状态,直至调度模块将其唤醒并交付CPU使用权。进一步的,每一个模块在每次阶段性工作完成后,均被调整调度优先级,以确保调度模块按照预设概率进行调度。进一步的,针对模块的功能,设置它们对应的可裁剪性能。进一步的,测试管理模块、信息统计模块、NAND驱动接口模块、调度模块、资源管理模块不具备可裁剪性能,数据处理模块、命令生成模块、反馈信息分析模块具备可裁剪性能。进一步的,在不需要反馈信息或数据处理的测试过程中裁减掉反馈信息分析模块或数据处理模块。进一步的,根据测试需求,每次测试例化1个或多个命令生成模块,每个命令生成模块配置为不相同的功能。进一步的,混合测试时,同时例化多个命令生成模块来生成多种不同类型的命令,从而验证驱动程序对多类型混合命令的处理情况。本专利技术还公开了一种NAND驱动程序测试方法,包括以下步骤:包括以下步骤:S01)、测试系统初始化时,为每一个模块分配独立的栈空间以及调度时所需的初始优先级,然后启动测试管理模块;S02)、测试管理模块发送配置信息至信息统计模块,确定需要发送的命令类型及每一种命令的数量;S03)、启动命令生成模块进入命令生成流程,命令生成模块首先查询资源管理模块,查看系统能否分配给它对应的资源,如果可以获得此类资源则进入步骤S04,否则进入步骤S06;S04)、如果可以获得此类资源,则命令生成模块生成对应的测试命令,将命令发送至NAND驱动接口模块,并将命令状态更新信息发送至信息统计模块,之后主动释放CPU,同时要求调度模块启用NAND驱动接口模块并指定要求其发送数据;S05)、NAND驱动接口模块将数据通过与驱动程序连接的接口FIFO发送至驱动程序,之后主动释放CPU,并要求调度模块依次启用信息统计模块及测试管理模块,进入步骤S07;S06)、如果步骤S03中,命令生成模块无法获取所需的系统资源,则该模块将命令发送异常状态信息发送至信息统计模块,之后主动释放CPU,并要求调度模块依次启用信息统计模块及测试管理模块;S07)、信息统计模块更新统计信息,确认当前有多少命令完成收发,并根据时间戳计算性能;测试管理模块根据统计信息确认全部流程是否已完成,若完成则测试结束;若仍有命令需要发送,则首先查看统计信息中的异常信息,并与自身设定的等待超时信息相比对,如果异常状态的存在大于超时阈值,则强制终止测试并报错;如果统计信息中没有异常状态信息,则CPU使用权再次交付至调度模块;S08)、调度模块接管根据预设调度方案调整各个模块的优先级,之后按照更新后的优先级顺序确认下一步进入哪一种测试:是另一种类型的命令生成流程,或者是命令接收流程,再或者是数据处理流程;如果该模块根据优先级查询确定测试需再次进入命令生成流程,则按照步骤S03至S07执行;如果测试需要进入反馈信息接收流程,则启用NAND驱动接口模块并指定要求其接收数据,此时进入步骤S09;如果测试需要进入数据处理流程,则进入步骤S13;S09)、反馈信息接收流程启动后,NAND驱动接口模块读取与被测驱动程序连接的FIFO,如果存在反馈数据,则进入步骤S10,否则进入步骤S12;S10)、NAND驱动接口模块将从驱动程序除获取的数据调整格式后本文档来自技高网...

【技术保护点】
1.一种NAND驱动程序测试系统,其特征在于:包括测试管理模块、信息统计模块、命令生成模块、NAND驱动程序接口模块、资源管理模块及调度模块;/n测试管理模块负责监控整个测试流程并进行异常处理;/n信息统计模块用于记录当前已发送及接收的命令数量、类型及状态,以及数据处理模块的比对结果;/n命令生成模块用于生成各种类型的驱动测试命令,命令生成模块在每次生成命令前,均通过查询信息统计模块确认所需测试命令是否均已发送完成,若完成则停止模块运行,不再占用CPU;/nNAND驱动接口模块用于按照NAND驱动程序要求的格式与其进行通信;/n调度模块用于确定各模块间的运行顺序,并根据调度优先级来决定下一步将进入命令发送、反馈接收或数据分析三者之中的哪种操作流程;/n资源管理模块用于管理系统资源,当发送任一命令时,均需要从该模块获取此一类资源;当收取反馈信息或完成数据处理后,需要释放此一类资源到此模块;/n测试启动后,测试管理模块配置信息统计模块,预设各种命令的类型及总数量,之后在调度模块的协调下,命令生成模块向资源管理模块申请系统资源产生测试命令,并由NAND驱动程序接口模块发送至驱动程序,当测试管理模块查询信息统计模块确定全部命令发送完成且相应数据处理完成后,测试结束;/n除资源管理模块以外的每一个模块均接受调度模块的管理,分时独立占用CPU资源,实现对CPU的短时时分复用。/n...

【技术特征摘要】
1.一种NAND驱动程序测试系统,其特征在于:包括测试管理模块、信息统计模块、命令生成模块、NAND驱动程序接口模块、资源管理模块及调度模块;
测试管理模块负责监控整个测试流程并进行异常处理;
信息统计模块用于记录当前已发送及接收的命令数量、类型及状态,以及数据处理模块的比对结果;
命令生成模块用于生成各种类型的驱动测试命令,命令生成模块在每次生成命令前,均通过查询信息统计模块确认所需测试命令是否均已发送完成,若完成则停止模块运行,不再占用CPU;
NAND驱动接口模块用于按照NAND驱动程序要求的格式与其进行通信;
调度模块用于确定各模块间的运行顺序,并根据调度优先级来决定下一步将进入命令发送、反馈接收或数据分析三者之中的哪种操作流程;
资源管理模块用于管理系统资源,当发送任一命令时,均需要从该模块获取此一类资源;当收取反馈信息或完成数据处理后,需要释放此一类资源到此模块;
测试启动后,测试管理模块配置信息统计模块,预设各种命令的类型及总数量,之后在调度模块的协调下,命令生成模块向资源管理模块申请系统资源产生测试命令,并由NAND驱动程序接口模块发送至驱动程序,当测试管理模块查询信息统计模块确定全部命令发送完成且相应数据处理完成后,测试结束;
除资源管理模块以外的每一个模块均接受调度模块的管理,分时独立占用CPU资源,实现对CPU的短时时分复用。


2.根据权利要求1所述的NAND驱动程序测试系统,其特征在于:还包括数据处理模块和反馈信息分析模块;
数据处理模块用于将驱动程序返回的数据与预期数据进行比对,并将结果反馈至信息统计模块;
反馈信息分析模块用于分析NAND驱动程序返回的反馈信息,确定每一个反馈信息的内容及格式是否正确,并且是否与发送的命令相对应,同时确认是否存在需要处理的数据,将分析结果发送至信息统计模块和数据处理模块;
测试时,NAND驱动程序接口模块查询驱动程序的反馈信息并将受到的反馈信息发送至反馈信息分析模块,反馈信息分析模块分析后将结果传输至信息统计模块及数据处理模块。


3.根据权利要求1所述的NAND驱动程序测试系统,其特征在于:调度模块调度除资源管理模块以外的每一个模块的过程为:
a、测试系统初始化时,为每一个模块分配独立的栈空间,使各个模块的运行互不干扰;
b、某一模块占用CPU运行时,其他模块的运行情况存入对应的栈中,运行中的模块暂停,将当前运行信息存入自身对应的栈中,并切换至调度模块;
c、由调度模块根据优先级决定下一个占用CPU的模块,任何已暂停的模块在被调度模块启用后,会将栈中存储的中断点信息重装入CPU,因此该模块在之前暂停的位置接续执行。


4.根据权利要求1或3所述的NAND驱动程序测试系统,其特征在于:某一模块占用CPU运行时,其他模块均处于挂起状态,直至调度模块将其唤醒并交付CPU使用权。


5.根据权利要求1所述的NAND驱动程序测试系统,其特征在于:每一个模块在每次阶段性工作完成后,均被调整调度优先级,以确保调度模块按照预设概率进行调度。


6.根据权利要求1所述的NAND驱动程序测试系统,其特征在于:资源管理模块管理包括DDR存储空间、命令上下文记录空间在内的系统资源,资源管理模块不具备独立的CPU占用权力和栈空间,被所有模块调用。


7.根据权利要求1所述的NAND驱动程序测试系统,其特征在于:根据测试需求,每次测试例化1个或多个命令生成模块,每个命令生成模块配置为不相同的功能。


8.根据权利要求7所述的NAND驱动程序测试系统,其特征在于:混合测试时,同时例化多个命令生成模块来生成多种不同类型的命令,从而验证驱动程序对多类型混合命令的处理情况。


9.一种NAND驱动程序测试方法,...

【专利技术属性】
技术研发人员:唐汉钊
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1