CN113032246B - Ssd固件运行方法、装置、可读存储介质及电子设备 - Google Patents

Ssd固件运行方法、装置、可读存储介质及电子设备 Download PDF

Info

Publication number
CN113032246B
CN113032246B CN202110241201.0A CN202110241201A CN113032246B CN 113032246 B CN113032246 B CN 113032246B CN 202110241201 A CN202110241201 A CN 202110241201A CN 113032246 B CN113032246 B CN 113032246B
Authority
CN
China
Prior art keywords
test
ssd
request
data
ssd firmware
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
Application number
CN202110241201.0A
Other languages
English (en)
Other versions
CN113032246A (zh
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.)
Chengdu Baiwei Storage Technology Co ltd
Original Assignee
Chengdu Baiwei Storage 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 Chengdu Baiwei Storage Technology Co ltd filed Critical Chengdu Baiwei Storage Technology Co ltd
Priority to CN202110241201.0A priority Critical patent/CN113032246B/zh
Publication of CN113032246A publication Critical patent/CN113032246A/zh
Application granted granted Critical
Publication of CN113032246B publication Critical patent/CN113032246B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种SSD固件运行方法、装置、可读存储介质及电子设备,接收SSD固件运行请求;根据所述SSD固件运行请求确定对应的运行模式,若所述运行模式为测试模式,则解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试;若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行,无论是对SSD固件进行开发还是测试,在没有硬件的情况下,如SSD没有板卡、主控还未流片,也能够使固件像应用程序一样在PC端调试运行,不依赖于硬件工作,提高了调试运行的效率。

Description

SSD固件运行方法、装置、可读存储介质及电子设备
技术领域
本发明涉及计算机存储领域,尤其涉及一种SSD固件运行方法、装置、可读存储介质及电子设备。
背景技术
在当前SSD(Solid State Drive,固态硬盘)FW(Firmwar,固件)的开发过程中,开发、调试、测试必须依赖于硬件,一般正常流程是写好code(编码)、编译生成AXF文件(ARMExecutable File,目标调试映像文件)、通过调试工具download(下载)进板卡、运行、等待结果。在这个流程中只要任何步骤遇到硬件问题,整个调试测试将无法进行,或者结果没有达到预期,整个流程又必须重新来一遍,这是一个效率比较低的过程。
同时,在面对调试一些复杂的feature(功能),或者需要构造一个特殊场景、corner case(极端情况)来验证问题的时候,在真实的硬件环境上很难做到,实际项目中经常需要长时间的测试去撞上这些corner case,或者复杂的手段去捕捉异常。
发明内容
本发明所要解决的技术问题是:提供了一种SSD固件运行方法、装置、可读存储介质及电子设备,能够使固件不依赖于硬件运行,提高调试运行的效率。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种SSD固件运行方法,包括步骤:
接收SSD固件运行请求;
根据所述SSD固件运行请求确定对应的运行模式,若所述运行模式为测试模式,则解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试;
若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种SSD固件运行装置,包括:
请求接收模块,用于接收SSD固件运行请求;
固件运行模块,用于根据所述SSD固件运行请求确定对应的运行模式,若所述运行模式为测试模式,则解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试;
若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述SSD固件运行方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述SSD固件运行方法中的各个步骤。
本发明的有益效果在于:
通过接收SSD固件运行请求,根据该请求确定运行模式,当为测试模式时,将其对应的测试指令发送给桩模块进行测试,当为开发模式时,其包含的测试用例通过测试框架调用桩模块运行,当SSD固件已经开发完成时,可以对固件进行测试,而当固件未开发完成时,也能够对固件进行运行开发,且无论是对SSD固件进行开发还是测试,都不再像现有技术中需要通过硬件实现,在没有硬件的情况下,如SSD没有板卡、主控还未流片,也能够使固件像应用程序一样在PC端调试运行,不依赖于硬件工作,提高了调试运行的效率。
附图说明
图1为本发明实施例的一种SSD固件运行方法的步骤流程图;
图2为本发明实施例的一种SSD固件运行方法的结构示意图;
图3为本发明实施例的一种电子设备的结构示意图;
图4为本发明实施例的SSD固件运行方法中的架构示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种SSD固件运行方法,包括步骤:
接收SSD固件运行请求;
根据所述SSD固件运行请求确定对应的运行模式,若所述运行模式为测试模式,则解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试;
若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行。
从上述描述可知,本发明的有益效果在于:通过接收SSD固件运行请求,根据该请求确定运行模式,当为测试模式时,将其对应的测试指令发送给桩模块进行测试,当为开发模式时,其包含的测试用例通过测试框架调用桩模块运行,当SSD固件已经开发完成时,可以对固件进行测试,而当固件未开发完成时,也能够对固件进行运行开发,且无论是对SSD固件进行开发还是测试,都不再像现有技术中需要通过硬件实现,在没有硬件的情况下,如SSD没有板卡、主控还未流片,也能够使固件像应用程序一样在PC端调试运行,不依赖于硬件工作,提高了调试运行的效率。
进一步地,所述解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试包括:
解析所述SSD固件运行请求生成对应的数据写入指令,所述数据写入指令包括待写入数据;
将所述待写入数据保存至缓存,判断所述缓存中的待写入数据是否达到预设条件,若是,则根据所述数据写入指令和所述待写入数据生成对应的写请求,将所述写请求发送至桩模块进行数据写入。
由上述描述可知,先将待写入数据保存至缓存,若缓存中的数据达到预设条件,可以发送写请求至桩模块进行数据写入,能够很好的模拟SSD固件执行数据写入操作时的实际情况,且由于桩模块用于模拟那些需要基于硬件工作的模块,可通过软件实现硬件功能,无需硬件就能够实现固件的数据写入测试。
进一步地,所述解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试包括:
解析所述SSD固件运行请求生成对应的数据读取指令,所述数据读取指令包括待读取数据;
根据所述待读取数据查询所述缓存,判断缓存中是否存在与所述待读取数据对应的数据,若是,则读取与所述待读取数据对应的数据,若否,则根据所述数据读取指令和所述待读取数据生成对应的读请求,将所述读请求发送至桩模块进行数据读取。
由上述描述可知,先查询缓存中是否存在待读取数据,若不存在,则说明数据被发送到桩模块进行写入,能够很好的模拟SSD固件执行数据读取操作时的实际情况,无需硬件就能够实现固件的数据读取测试。
进一步地,若所述运行模式为测试模式,则在接收SSD固件运行请求之前包括步骤:
发送启动指令至所述桩模块;
接收所述桩模块发送的启动完成信息。
由上述描述可知,在进行数据写入与读取测试前,先启动桩模块,能够使桩模块模拟好SSD固件的实际环境,便于后续实现数据读取与写入测试。
进一步地,所述将所述SSD固件运行请求中包含的测试用例代码发送至测试框架运行所述测试用例之前包括步骤:
初始化所述测试框架。
由上述描述可知,初始化测试框架,便于后续运行测试用例,实现对SSD固件的调试运行,完成开发任务。
进一步地,所述测试用例通过所述测试框架调用所述桩模块运行之后包括步骤:
接收运行完成信息,根据所述运行完成信息生成对应的测试报告。
还包括步骤:
接收测试报告展示请求,根据所述测试报告展示请求将所述测试报告进行展示。
由上述描述可知,运行完成之后生成对应的测试报告,将测试报告进行展示,便于用户根据测试报告进行分析,若分析结果表示异常,可以调整测试用例继续进行运行测试,直至最终完成SSD固件的开发。
请参照图2,本发明另一实施例提供了一种SSD固件运行装置,包括:
请求接收模块,用于接收SSD固件运行请求;
固件运行模块,用于根据所述SSD固件运行请求确定对应的运行模式,若所述运行模式为测试模式,则解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试;
若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述SSD固件运行方法中的各个步骤。
请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述SSD固件运行方法中的各个步骤。
本发明上述SSD固件运行方法、装置、计算机可读存储介质及电子设备能够适用于任何类型的SSD运行,比如基于闪存类、基于DRAM类以及基于3D XPoint类,以下通过具体实施方式进行说明:
实施例一
如图4所示,图4展示了用于实现上述SSD固件运行方法的架构示意图,图左部分为用户交互模块,图中部分为SSD FW纯软件模块,图右部分为通过软件实现硬件功能的桩模块;
用户交互模块:
Terminal:电脑终端设备,提供给用户与FW的交互窗口,可以发送read(读)、write(写)或trim(擦)等多种命令给FW进行IO test;
pure simulation mode:纯模拟模式,FW在PC端运行与在板卡上运行流程基本一致,用户可以通过Terminal发送read、write或trim等命令对FW进行测试;
Gen Req:根据用户输入的命令,模拟FW的FE部分解析协议之后生成的读写数据请求,然后转给DC处理,或者生成DC处理之后的FTL请求直接给FTL处理;
Test case:用户自行编写的测试用例;
TDD test mode:Test-Driven Development,测试驱动开发模式,用户通过构造Test case输入给测试框架,测试框架会check条件或结果来控制FW的运行,若是预期的结果或达到某种条件则执行某个动作,若是非预期结果或不满足条件则执行某个动作;
Test Framework:开源的测试框架,用于运行测试用例;
SSD FW纯软件模块:指在SSD FW架构中按大的模块主要分为四部分,分别是FE、DC、FTL、FCL;FE主要负责前端协议SATA或者NVME的处理,FCL负责控制NAND(计算机闪存设备)的读写擦等操作,这两部分主要是与硬件打交道,而DC和FTL基本上是纯软件和算法,在一些多核controller(处理器)上,通常将FE、DC放在一个核上,FTL和FCL放在另一个核上,核之间通过IPC通信;
桩模块:用于处理那些基于硬件工作的模块,通过软件来实现硬件功能;图3只是列举了SSD中的一些常用硬件模块,不同厂家的controller有差异;
Kernel:指SSD的FW中的RTOS(Real Time Operating System,实时操作系统),在带有RTOS的SSD FW中需要去模拟实现RTOS中的多任务功能;
Memory mgr:SSD FW的内存管理,在FW中管理的是存在于板卡上的真实内存,在上述SSD固件运行方法中需要通过PC端的内存来模拟;
Log:FW在板卡上通过串口输出日志,或者将日志保存到NAND,上述SSD固件运行方法中可以将Log输出到屏幕或者保存到日志文件;
HAL&Reg:板卡上会去操作真实的硬件寄存器,上述SSD固件运行方法只需要根据测试要求返回想要的硬件返回值即可,保障后续测试流程继续进行;
FCL:用于实现对NAND的读写擦等硬件操作,在上述SSD固件运行方法中全部转化成对文件的读写删操作,即用户写操作最终会把数据写到文件里面,读操作从文件里面去读,擦除操作即删除对应的文件;
Boot info:指FW启动的时候会从NAND上读取的各种配置管理信息,在上述SSD固件运行方法中将这些信息全部保存到文件,启动时从文件读取信息;
NAND mgr:指SSD板卡上NAND的阵列管理,FW中通过读取NAND来得到CH/CE/DIE/PLANE/BLOCK等信息,从而构建NAND阵列进行空间管理,上述SSD固件运行方法中通过配置文件来设置这些信息;
RAID:一种通过异或运算实现的数据纠错模块,不同厂家的controller可能会有一些通过硬件来实现软件算法的模块,比如类似于RAID模块通过硬件实现的异或运算,在上述SSD固件运行方法中需要通过软件算法来实现该硬件实现的算法;
名称解释:
TDD:测试驱动开发,一种软件开发过程中的应用方法;
Stub:桩函数,使用一些自定义的测试函数来替换当前需要被测试的函数;
请参照图1、4,本实施例的一种SSD固件运行方法,包括步骤:
S1、接收SSD固件运行请求;
比如,接收用户发送的SSD固件运行请求;
S2、根据所述SSD固件运行请求确定对应的运行模式;
发送启动指令至所述桩模块;
接收所述桩模块发送的启动完成信息;
比如,如图4所示,用户交互模块根据SSD固件运行请求确定对应的运行模式,发送启动指令至桩模块;
桩模块接收该启动指令,桩模块中的Mem mgr负责初始化好整个系统的内存及管理,HAL&REG配置好系统运行需要的正常硬件状态,NAND mgr通过读取文件信息构建好NAND阵列,Boot info获取启动时需要的管理配置信息初始化FW系统状态,Kernel创建好多任务进行运行,等待IO请求命令;
桩模块发送启动完成信息至用户交互模块,用户交互模块接收该信息;
若所述运行模式为测试模式,则解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试;
具体的,解析所述SSD固件运行请求生成对应的数据写入指令,所述数据写入指令包括待写入数据;
将所述待写入数据保存至缓存,判断所述缓存中的待写入数据是否达到预设条件,若是,则根据所述数据写入指令和所述待写入数据生成对应的写请求,将所述写请求发送至桩模块进行数据写入;
比如,如图4所示,用户通过用户交互模块中的Terminal输入数据写入指令,并配置好数据写入指令的参数;
Gen REQ根据Terminal解析用户输入的数据写入指令及参数后,根据数据写入指令、待写入数据和参数生成写请求,并将写请求转发至DC模块处理;
DC模块处理Gen REQ的写请求,将待写入数据保存至缓存,判断该缓存中的待写入数据是否达到flush(输出缓冲区的内容)条件,若是,则将数据flush到FTL模块处理;
FTL模块处理DC模块flush下来的数据,生成对应的写请求并发送至桩模块处理;
桩模块中的FCL模块将写请求中的待写入数据写入文件;
具体的,解析所述SSD固件运行请求生成对应的数据读取指令,所述数据读取指令包括待读取数据;
根据所述待读取数据查询所述缓存,判断缓存中是否存在与所述待读取数据对应的数据,若是,则读取与所述待读取数据对应的数据,若否,则根据所述数据读取指令和所述待读取数据生成对应的读请求,将所述读请求发送至桩模块进行数据读取;
比如,如图4所示,用户通过用户交互模块中的Terminal输入数据读取指令,并配置好数据读取指令的参数;
Gen REQ根据Terminal解析用户输入的数据读取指令及参数后,根据数据读取指令、待读取数据和参数生成读请求,并将读请求转发至DC模块处理;
DC模块处理Gen REQ的读请求,根据该待读取数据查询缓存,判断缓存中是否存在与该待读取数据对应的数据,若是,则读取与待读取数据对应的数据,若否,则生成FTL读请求,将FTL读请求发送至FTL模块处理;
FTL模块处理DC模块发送的FTL读请求,生成对应的读请求并发送至桩模块处理;
桩模块中的FCL模块根据该读请求从文件中读取数据放至内存;
其中,数据写入过程的前提是启动过程已经执行完毕,数据读取过程的前提是启动过程已经执行完毕并写入了数据;
S3、若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行。
实施例二
请参照图1、4,本实施例在实施例一的基础上进一步限定了如何对SSD固件进行开发,具体为:
若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行;
其中,所述将所述SSD固件运行请求中包含的测试用例代码发送至测试框架运行所述测试用例之前包括步骤:
初始化所述测试框架;
比如,如图4所示,若根据所述SSD固件运行请求确定对应的运行模式为开发模式,则初始化Test Framework,用户针对FW中的某个流程或者函数编写测试用例代码,根据测试要求编写被测试流程或者被测试函数中的桩函数代码;
将测试用例代码发送至Test Framework,并将桩函数代码发送至桩模块;
设置Test Framework通过调用桩模块运行该测试用例;
接收运行完成信息,根据所述运行完成信息生成对应的测试报告;
接收测试报告展示请求,根据所述测试报告展示请求将所述测试报告进行展示;
比如,用户交互模块接收桩模块发送的运行完成信息,根据该运行完成信息生成对应的测试报告;
接收用户发送的测试报告展示请求,根据该请求将测试报告进行展示;
用户根据该测试报告进行分析,若结果异常,则调整测试用例继续进行调试开发。
实施例三
请参照图2,一种SSD固件运行装置,包括:
请求接收模块,用于接收SSD固件运行请求;
固件运行模块,用于根据所述SSD固件运行请求确定对应的运行模式,若所述运行模式为测试模式,则解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试;
若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行。
实施例四
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现实施例一或实施例二中SSD固件运行方法的各个步骤。
实施例五
请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一或实施例二中SSD固件运行方法的各个步骤。
综上所述,本发明提供的一种SSD固件运行方法、装置、可读存储介质及电子设备,通过接收SSD固件运行请求,根据该请求确定运行模式,发送启动指令至所述桩模块,接收所述桩模块发送的启动完成信息,能够使桩模块模拟好SSD固件的实际环境,便于后续实现数据读取与写入测试;当为测试模式时,将其对应的测试指令发送给桩模块进行测试,测试指令包括数据写入指令以及数据读取指令,当为开发模式时,初始化所述测试框架,其包含的测试用例通过测试框架调用桩模块运行,接收运行完成信息,根据所述运行完成信息生成对应的测试报告,接收测试报告展示请求,根据所述测试报告展示请求将所述测试报告进行展示,便于用户根据测试报告进行分析,若分析结果表示异常,可以调整测试用例继续进行运行测试,直至最终完成SSD固件的开发;当SSD固件已经开发完成时,可以对固件进行测试,而当固件未开发完成时,也能够对固件进行运行开发,且无论是对SSD固件进行开发还是测试,都不再像现有技术中需要通过硬件实现,在没有硬件的情况下,如SSD没有板卡、主控还未流片,也能够使固件像应用程序一样在PC端调试运行,方便构造、验证复杂问题,不依赖于硬件工作,提高了调试运行的效率。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种SSD固件运行方法,其特征在于,包括步骤:
接收SSD固件运行请求;
根据所述SSD固件运行请求确定对应的运行模式,若所述运行模式为测试模式,则解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试;
若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行;
所述桩模块包括Kernel、Memory mgr、Log、HAL&Reg、FCL、Boot info、NAND mgr以及RAID;
所述Kernel指SSD的FW中的实时操作系统,在带有实时操作系统的SSD FW中需要去模拟实现实时操作系统中的多任务功能;
所述Memory mgr为SSD FW的内存管理;
所述Log为FW在板卡上通过串口输出日志,或者将日志保存到NAND;
所述HAL&Reg为板卡上会去操作真实的硬件寄存器;
所述FCL用于实现对NAND的读写擦等硬件操作;
所述Boot info指FW启动的时候会从NAND上读取的各种配置管理信息;
所述NAND mgr指SSD板卡上NAND的阵列管理;
所述RAID是一种通过异或运算实现的数据纠错模块。
2.根据权利要求1所述的一种SSD固件运行方法,其特征在于,所述解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试包括:
解析所述SSD固件运行请求生成对应的数据写入指令,所述数据写入指令包括待写入数据;
将所述待写入数据保存至缓存,判断所述缓存中的待写入数据是否达到预设条件,若是,则根据所述数据写入指令和所述待写入数据生成对应的写请求,将所述写请求发送至桩模块进行数据写入。
3.根据权利要求2所述的一种SSD固件运行方法,其特征在于,所述解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试包括:
解析所述SSD固件运行请求生成对应的数据读取指令,所述数据读取指令包括待读取数据;
根据所述待读取数据查询所述缓存,判断缓存中是否存在与所述待读取数据对应的数据,若是,则读取与所述待读取数据对应的数据,若否,则根据所述数据读取指令和所述待读取数据生成对应的读请求,将所述读请求发送至桩模块进行数据读取。
4.根据权利要求1至3中任一项所述的一种SSD固件运行方法,其特征在于,若所述运行模式为测试模式,则在接收SSD固件运行请求之前包括步骤:
发送启动指令至所述桩模块;
接收所述桩模块发送的启动完成信息。
5.根据权利要求1所述的一种SSD固件运行方法,其特征在于,所述将所述SSD固件运行请求中包含的测试用例代码发送至测试框架运行所述测试用例之前包括步骤:
初始化所述测试框架。
6.根据权利要求1或5所述的一种SSD固件运行方法,其特征在于,所述测试用例通过所述测试框架调用所述桩模块运行之后包括步骤:
接收运行完成信息,根据所述运行完成信息生成对应的测试报告。
7.根据权利要求6所述的一种SSD固件运行方法,其特征在于,还包括步骤:
接收测试报告展示请求,根据所述测试报告展示请求将所述测试报告进行展示。
8.一种SSD固件运行装置,其特征在于,包括:
请求接收模块,用于接收SSD固件运行请求;
固件运行模块,用于根据所述SSD固件运行请求确定对应的运行模式,若所述运行模式为测试模式,则解析所述SSD固件运行请求生成对应的测试指令,将所述测试指令发送至桩模块进行测试;
若所述运行模式为开发模式,则将所述SSD固件运行请求中包含的测试用例代码发送至测试框架,并将所述SSD固件运行请求中包含的与所述测试用例代码对应的桩函数代码发送至桩模块,所述测试用例通过所述测试框架调用所述桩模块运行;
所述桩模块包括Kernel、Memory mgr、Log、HAL&Reg、FCL、Boot info、NAND mgr以及RAID;
所述Kernel指SSD的FW中的实时操作系统,在带有实时操作系统的SSD FW中需要去模拟实现实时操作系统中的多任务功能;
所述Memory mgr为SSD FW的内存管理;
所述Log为FW在板卡上通过串口输出日志,或者将日志保存到NAND;
所述HAL&Reg为板卡上会去操作真实的硬件寄存器;
所述FCL用于实现对NAND的读写擦等硬件操作;
所述Boot info指FW启动的时候会从NAND上读取的各种配置管理信息;
所述NAND mgr指SSD板卡上NAND的阵列管理;
所述RAID是一种通过异或运算实现的数据纠错模块。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种SSD固件运行方法中的各个步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种SSD固件运行方法中的各个步骤。
CN202110241201.0A 2021-03-04 2021-03-04 Ssd固件运行方法、装置、可读存储介质及电子设备 Active CN113032246B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110241201.0A CN113032246B (zh) 2021-03-04 2021-03-04 Ssd固件运行方法、装置、可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110241201.0A CN113032246B (zh) 2021-03-04 2021-03-04 Ssd固件运行方法、装置、可读存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113032246A CN113032246A (zh) 2021-06-25
CN113032246B true CN113032246B (zh) 2023-10-03

Family

ID=76467593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110241201.0A Active CN113032246B (zh) 2021-03-04 2021-03-04 Ssd固件运行方法、装置、可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113032246B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114464231B (zh) * 2022-01-14 2024-02-13 苏州浪潮智能科技有限公司 一种固件存储方法及系统
CN115168129B (zh) * 2022-08-09 2023-02-10 北京得瑞领新科技有限公司 植入仿真器的自动化测试系统及ssd硬盘测试方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103578568A (zh) * 2012-07-24 2014-02-12 苏州捷泰科信息技术有限公司 固态硬盘的性能测试方法及装置
CN105068909A (zh) * 2015-08-13 2015-11-18 北京京存技术有限公司 一种内嵌式存储器的模拟测试开发平台
CN109240729A (zh) * 2018-12-12 2019-01-18 翱捷科技(上海)有限公司 一种修复固件代码的方法及系统
CN111651366A (zh) * 2020-07-06 2020-09-11 Oppo广东移动通信有限公司 Sdk测试方法、装置、设备及存储介质
CN112395146A (zh) * 2020-11-27 2021-02-23 深圳忆联信息系统有限公司 Ssd固件仿真验证方法、系统、计算机设备及存储介质
CN112417461A (zh) * 2020-12-07 2021-02-26 北京梆梆安全科技有限公司 设备固件的模糊测试方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103578568A (zh) * 2012-07-24 2014-02-12 苏州捷泰科信息技术有限公司 固态硬盘的性能测试方法及装置
CN105068909A (zh) * 2015-08-13 2015-11-18 北京京存技术有限公司 一种内嵌式存储器的模拟测试开发平台
CN109240729A (zh) * 2018-12-12 2019-01-18 翱捷科技(上海)有限公司 一种修复固件代码的方法及系统
CN111651366A (zh) * 2020-07-06 2020-09-11 Oppo广东移动通信有限公司 Sdk测试方法、装置、设备及存储介质
CN112395146A (zh) * 2020-11-27 2021-02-23 深圳忆联信息系统有限公司 Ssd固件仿真验证方法、系统、计算机设备及存储介质
CN112417461A (zh) * 2020-12-07 2021-02-26 北京梆梆安全科技有限公司 设备固件的模糊测试方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Ryan S. McDowell等.Using Current Draw Analysis to Identify Suspicious Firmware Behavior in Solid State Drives.《2019 IEEE International Conference on Computational Science and Engineering (CSE) and IEEE International Conference on Embedded and Ubiquitous Computing (EUC)》.2019,1-5. *
侯冰剑.固态硬盘的多通道存储系统设计 .《中国优秀硕士学位论文全文数据库 信息科技辑》.2011,I137-89. *
满晓磊.固态硬盘固件的测试系统设计与开发.《中国优秀硕士学位论文全文数据库 信息科技辑》.2019,I137-33. *
黄圆.固态硬盘的Flash FTL算法仿真平台设计 .《中国优秀硕士学位论文全文数据库 信息科技辑》.2020,I137-110. *

Also Published As

Publication number Publication date
CN113032246A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
US5022028A (en) Software verification apparatus
CN113032246B (zh) Ssd固件运行方法、装置、可读存储介质及电子设备
CN102750221B (zh) 一种针对Linux文件系统的性能测试方法
WO2013123405A1 (en) Profiling and sequencing operators executable in an emulated computing system
CN110955589A (zh) 基于浏览器的无头模式的测试方法、系统、设备及介质
CN109933521A (zh) 基于bdd的自动化测试方法、装置、计算机设备及存储介质
KR20080052341A (ko) 내장형 시스템 소프트웨어 자동 테스트 시스템 및 방법과테스트 시나리오 작성 방법
CN109445691B (zh) 一种提高ftl算法开发和验证效率的方法及装置
CN114528792A (zh) 芯片验证方法、装置、电子设备及存储介质
CN111814354B (zh) 仪器性能的模拟测试方法、系统、介质及电子设备
CN116302743A (zh) 一种usb接口测试方法、系统、计算机设备和存储介质
CN111459814A (zh) 自动化测试用例生成方法、装置及电子设备
US7243059B2 (en) Simulation of hardware based on smart buffer objects
CN113868174A (zh) 验证平台搭建方法、装置及存储介质
CN112860587A (zh) Ui自动测试方法和装置
CN112216340A (zh) 硬盘测试方法、装置、存储介质及电子设备
CN112445670B (zh) 一种eMMC测试方法和装置
CN112256560A (zh) 应用程序测试方法、装置及电子设备
CN1770119A (zh) 嵌入式设备调试方法及其调试工具
CN115588458A (zh) 存储设备测试方法、系统、设备和可读存储介质
CN110806981B (zh) 一种应用程序测试方法、装置、设备和存储介质
CN112115010B (zh) 一种自助设备的模拟测试方法、智能终端、存储介质
CN111078570A (zh) 基于界面框架的参数格式检测方法、装置、设备和介质
JP2005353020A (ja) コンピュータプログラムのシミュレーション方式
CN112035300A (zh) 服务器bmc自动化测试系统、方法、存储介质、电子设备

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
GR01 Patent grant
GR01 Patent grant