access memory,静态随机存取存储器)上,这样即使emmc发生故障,emmc主控仍然可以通过故障分析固件接收主机的命令,实现对命令的正常响应,以此使主机能够通过获取到的数据了解并分析故障发生原因,从而在不破坏异常现场的同时,实现了emmc故障分析。
附图说明
9.图1为本发明实施例的一种emmc故障分析方法的步骤流程图;图2为本发明实施例的一种emmc故障分析装置的结构示意图;图3为本发明实施例的一种电子设备的结构示意图;图4为本发明实施例的emmc故障分析方法中的调试工具操作界面示意图。
具体实施方式
10.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
11.请参照图1,本发明实施例提供了一种emmc故障分析方法,包括步骤:将故障分析固件写入emmc的sram上;通过所述故障分析固件得到所述emmc对应的分析数据,并将所述分析数据发送至主机。
12.从上述描述可知,本发明的有益效果在于:将故障分析固件写入在emmc的sram上,通过故障分析固件得到emmc对应的分析数据,并将分析数据发送至主机,实现了emmc的故障分析,故障分析固件不再像现有正常固件一样位于nand闪存上,而是被写入emmc的sram(static random-access memory,静态随机存取存储器)上,这样即使emmc发生故障,emmc主控仍然可以通过故障分析固件接收主机的命令,实现对命令的正常响应,以此使主机能够通过获取到的数据了解并分析故障发生原因,从而在不破坏异常现场的同时,实现了emmc故障分析。
13.进一步地,所述将故障分析固件写入emmc的sram上之前包括:判断emmc的上电初始化是否正常,若否,则编译得到所述emmc对应的故障分析固件。
14.由上述描述可知,当emmc无法正常上电初始化时,表示emmc出现异常,无法正常处理命令,则编译对应的故障分析固件。
15.进一步地,所述判断emmc的上电初始化是否正常,若否,则编译得到所述emmc对应的故障分析固件包括:读取emmc的容量,判断所述容量是否为正常容量,若否,则编译得到所述emmc对应的故障分析固件。
16.由上述描述可知,当emmc能够正常上电初始化时,可以读取到emmc正常的容量,若读取到的容量异常,则表示emmc进入rom mode(主控只读模式),无法正常处理命令,当前emmc故障,以此简单有效地判断emmc工作状态。
17.进一步地,所述故障分析固件包括引导固件和命令处理固件数据;所述将故障分析固件写入emmc的sram上包括:将所述引导固件写入emmc的sram上;
将所述命令处理固件数据写入所述emmc的sram上;所述通过所述故障分析固件得到所述emmc对应的分析数据包括:根据所述命令处理固件数据及所述引导固件对nandflash进行操作,得到所述emmc对应的分析数据。
18.由上述描述可知,故障分析固件的写入分为两步,先将引导固件写入emmc的sram上,然后将命令处理固件数据写入emmc的sram上,引导固件能够引导后续数据写入emmc的nand,命令处理固件数据即通过软件实现cmd hander(命令处理)功能,且由于固件结构中不包含下刷固件数据,在全部固件写入完成后不会被下刷到系统块中,从而实现了故障分析固件的写入。
19.进一步地,所述通过所述故障分析固件得到所述emmc对应的分析数据,并将所述分析数据发送至主机包括:获取主机发送的故障分析指令;根据所述故障分析指令运行所述故障分析固件得到所述emmc对应的分析数据,并将所述分析数据发送至所述主机。
20.由上述描述可知,根据获取的主机发送的故障分析指令运行故障分析固件得到emmc对应的分析数据,并将分析数据发送至主机,以此实现在emmc故障的情况下,正常实现命令处理,从而在不破坏异常现场的同时,实现了emmc故障分析。
21.进一步地,所述故障分析指令包括读指令;所述读指令包括物理块信息;所述根据所述故障分析指令运行所述故障分析固件得到所述emmc对应的分析数据,并将所述分析数据发送至所述主机包括:根据所述读指令使用所述故障分析固件读取所述物理块信息对应的物理块的数据;对所述数据进行分析,得到分析数据,并将所述分析数据发送至所述主机。
22.由上述描述可知,根据读指令使用故障分析固件读取物理块信息对应的物理块的数据,对读取到的数据进行分析,得到分析数据,并将分析数据发送至主机,从而在故障发生时,在不破坏emmc内部数据的情况下实现对主机读指令的响应。
23.进一步地,所述获取主机发送的故障分析指令包括:判断所述emmc的寄存器中是否存在主机发送的故障分析指令,若是,则获取所述主机发送的故障分析指令,若否,则返回执行所述判断所述emmc的寄存器中是否存在主机发送的故障分析指令步骤。
24.由上述描述可知,不间断地判断emmc的寄存器中是否存在主机发送的故障分析指令,从而能够及时地响应主机发送的指令。
25.请参照图2,本发明另一实施例提供了一种emmc故障分析装置,包括:固件写入模块,用于将故障分析固件写入emmc的sram上;数据发送模块,用于通过所述故障分析固件得到所述emmc对应的分析数据,并将所述分析数据发送至主机。
26.本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种emmc故障分析方法中的各个步骤。
27.请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种emmc故障分析方法中的各个步骤。
28.本发明上述的emmc故障分析方法能够适用于故障的emmc,以下通过具体实施方式进行说明:实施例一emmc由三大部分组成,主控、sram以及nandflash;正常固件在量产阶段会通过主控接收到sram上,最终写入nandflash中,并在这一过程中对nandflash做一些擦写读操作;请参照图1和图4,本实施例的一种emmc故障分析方法,包括步骤:s0、判断emmc的上电初始化是否正常,若否,则编译得到所述emmc对应的故障分析固件,具体包括:读取emmc的容量,判断所述容量是否为正常容量,若否,则编译得到所述emmc对应的故障分析固件;其中,所述故障分析固件包括引导固件和命令处理固件数据;所述正常容量为128g和512g等常规容量;比如,调试工具读取emmc的容量,读取到的容量为128m,意味着emmc进入rom mode(主控只读模式),无法正常处理命令,即无法调取固件至sram上,判断该容量不为正常容量,则编译得到所述emmc对应的故障分析固件;s1、将故障分析固件写入emmc的sram上,具体包括:故障分析固件在sram上的位置与正常固件进行量产操作的sram地址相同,这意味着当主控将故障分析固件写到sram上时,emmc会进行到debug(故障分析)流程而非量产流程;s11、将所述引导固件写入emmc的sram上;具体的,通过主控将所述引导固件写入emmc的sram上,所述引导固件引导后续数据写入nandflash;s12、将所述命令处理固件数据写入所述emmc的sram上;具体的,通过主控将所述命令处理固件数据写入所述emmc的sram上,在软件上实现了cmd hander(命令处理)功能,可接受处理来自主机的信号;由于故障分析固件结构中不包含下刷固件数据,在全部固件写入完成后不会被下刷到系统块中;s2、通过所述故障分析固件得到所述emmc对应的分析数据,并将所述分析数据发送至主机;在一种可选的实施方式中,所述s2中通过所述故障分析固件得到所述emmc对应的分析数据具体包括:根据所述命令处理固件数据及所述引导固件对nandflash进行操作,得到所述emmc对应的分析数据;在另一种可选的实施方式中,所述s2具体包括:s21、获取主机发送的故障分析指令,具体包括:s211、判断所述emmc的寄存器中是否存在主机发送的故障分析指令,若是,则执行
s212,若否,则执行s213;具体的,当host发送故障分析指令时,emmc内部的寄存器会将故障分析指令记录下来,debug fw(故障分析固件)判断所述emmc的寄存器中是否存在主机发送的故障分析指令,若是,则执行s212,若否,则执行s213,处理完当前指令后才会去获取下一个指令,即debug fw通过寄存器的值获取到具体命令以及参数,根据命令和参数的不同进行不同处理;s212、获取所述主机发送的故障分析指令;s213、返回执行s211;其中,所述故障分析指令包括读指令,读指令为cmd18;所述读指令包括物理块信息;所述故障分析指令还可以包括写指令,写指令为cmd25;s22、根据所述故障分析指令运行所述故障分析固件得到所述emmc对应的分析数据,并将所述分析数据发送至所述主机,具体包括:s221、根据所述读指令使用所述故障分析固件读取所述物理块信息对应的物理块的数据;s222、对所述数据进行分析,得到分析数据,并将所述分析数据发送至所述主机;其中,当物理块为系统块时,所述分析数据包括物理块的ecc(error correcting code,错误检查和纠正)情况、vt(cell导通电压概率密度)分布、pe(擦写)次数和有效数据等信息,当物理块为其他常规块时,所述分析数据包括物理块的ecc情况和vt分布;主机可通过调试工具发送故障分析指令,emmc运行sram上的debug fw,可以正常接收处理命令,并将对应的分析数据回传给主机的调试工具,由调试工具处理相关数据;如图4所示,图4中右下角红框为读取的物理块的地址选择,blk表示读取的块号,blkcnt为读取的块的数量,左上角红框为操作选项,该红框内操作为物理页读/写/擦除块;本发明不同于正常量产固件会写入nandflash中,debug固件只落在sram上,debug固件在sram上的位置与正常固件进行量产操作的sram地址相同,这意味着当主控将debug 固件写到sram上时,emmc会进行到debug流程而非量产流程,主控可以通过debug固件接收上层的命令,实现对命令的正常响应,以此使主机能够通过获取到的数据了解并分析故障发生原因,从而在不破坏异常现场的同时,实现了emmc故障分析。
29.实施例二请参照图2,一种emmc故障分析装置,包括:固件写入模块,用于将故障分析固件写入emmc的sram上;数据发送模块,用于通过所述故障分析固件得到所述emmc对应的分析数据,并将所述分析数据发送至主机。
30.实施例三一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现实施例一中emmc故障分析方法的各个步骤。
31.实施例四请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一中emmc故障分析方
法的各个步骤。
32.综上所述,本发明提供的一种emmc故障分析方法、装置、可读存储介质及电子设备,将故障分析固件写入emmc的sram上,所述故障分析固件包括引导固件和命令处理固件数据;不间断地判断emmc的寄存器中是否存在主机发送的故障分析指令,若是,则获取主机发送的故障分析指令,以此能够及时地响应主机发送的指令,根据所述故障分析指令运行所述故障分析固件得到所述emmc对应的分析数据,并将所述分析数据发送至所述主机,实现了emmc的故障分析,故障分析固件不再像现有正常固件一样位于nand闪存上,而是被写入emmc的sram(static random-access memory,静态随机存取存储器)上,这样即使emmc发生故障,emmc主控仍然可以通过故障分析固件接收主机的命令,实现对命令的正常响应,以此使主机能够通过获取到的数据了解并分析故障发生原因,从而在不破坏异常现场的同时,实现了emmc故障分析。
33.在本技术所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
34.所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
35.另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
36.所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
37.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
38.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
39.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。