一种基于安卓系统的sd协议栈调试方法

文档序号:6540920阅读:340来源:国知局
一种基于安卓系统的sd协议栈调试方法
【专利摘要】本发明披露了一种基于安卓系统的SD协议栈调试方法,包括步骤:在系统内存中开辟指令存储空间与回复存储空间;所述指令存储空间用于缓存系统执行的SD协议指令与参数,所述回复存储空间用于存储与所述SD协议指令与参数相关的回复结果;进行调试。在调试步骤中,利用sys文件系统挂载命令接口函数,并操作SD协议栈用于访问SD卡;并且所述调试包括单步调试、重演调试或自定义调试。本发明提供了一种在没有代码的情况下进行异常SD卡调试的方法,能够简便地定位SD协议栈与SD卡之间配合的异常点,降低了出错的风险,并提高了卡上数据的完整性和安全性。
【专利说明】一种基于安卓系统的SD协议栈调试方法
【技术领域】
[0001]本发明涉及电子设备外设调试领域,特别涉及一种基于安卓系统的SD协议栈调试方法。
【背景技术】
[0002]SD卡作为安卓系统上最为普遍的外部存储设备之一,担负着保存用户资料与数据信息的任务。所有的SD卡都要求符合SD卡协议规范,但是不排除一些卡存在不合理的操作行为,以及容易在某些操作情况下不稳定,导致用户资料与数据信息丢失的情况。因而,在安卓系统中,亟需提供一种能够方便的进行SD卡的异常调试的方法,在没有代码的情况下,能够定位SD协议栈与SD卡之间配合的异常点,以处理SD卡协议栈调试的问题。

【发明内容】

[0003]本发明的发明目的为提供一种基于安卓系统的SD协议栈调试方法。为达到所述发明目的,本发明采取的技术方案如下:
[0004]一种基于安卓系统的SD协议栈调试方法,包括步骤:
[0005]在系统内存中开辟指令存储空间与回复存储空间;所述指令存储空间用于缓存系统执行的SD协议指令与参数,所述回复存储空间用于存储与所述SD协议指令与参数相关的回复结果;
[0006]进行调试。
[0007]进一步地,所述的SD协议栈调试方法中,在调试步骤中,利用sys文件系统挂载命令接口函数,并操作SD协议栈用于访问SD卡。
[0008]进一步地,所述的SD协议栈调试方法中,所述调试包括单步调试、重演调试或自定义调试。
[0009]进一步地,所述的SD协议栈调试方法中,在所述单步调试中,用户手动键入单步调试命令并向系统获取执行所述单步调试的指令与参数,并在读取回复后暂停调试。
[0010]进一步地,所述的SD协议栈调试方法中,在所述单步调试中,系统响应用户输入的单步调试命令,将单步调试命令写入内核的sys文件系统节点,并在所述节点对应注册的写执行函数中执行停止系统向SD协议栈队列写入指令的请求。
[0011]进一步地,所述的SD协议栈调试方法中,在所述重演调试中,系统读取并执行存储于指令存储空间中的指令及参数并再次执行,直至指令出错时停止。
[0012]进一步地,所述的SD协议栈调试方法中,所述重演调试用于查看指令出错时系统的运行状况并分析错误原因。
[0013]进一步地,所述的SD协议栈调试方法中,在所述自定义调试中,将指令及参数写入一系统节点,将上述指令及参数设定至控制器中对应的寄存器,并发起对SD卡的访问。
[0014]进一步地,所述的SD协议栈调试方法中,在自定义调试中,将指令及参数写入的系统节点为经系统驱动注册到sysfs的节点,并通过该节点绑定的写函数将上述指令集参数设定至控制器中对应的寄存器。
[0015]采取上述技术方案的有益效果为:采用本方法可以方便地对每条指令进行验证,以分析每个SD卡在不同工作状态下对每一个指令的响应情况。本发明利用了 sys文件系统挂载命令接口函数,操作SD卡协议栈来访问SD卡,并且在内存中开辟指令缓存,方便进行操作追溯,从而提供一种在没有代码的情况下进行异常SD卡调试的方法,能够简便地定位SD协议栈与SD卡之间配合的异常点,降低了出错的风险,并提高了卡上数据的完整性和安全性。
【专利附图】

【附图说明】
[0016]图1为本发明一实施方式中一种基于安卓系统的SD协议栈调试方法的不意图。【具体实施方式】
[0017]为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0018]请参阅图1,为本发明一实施方式中一种基于安卓系统的SD协议栈调试方法的不意图。
[0019]本发明所述的SD协议栈调试方法中,调试功能分为单步调试、重演调试、自定义调试三种模式。本发明所述协议栈(Protocol Stack)是指设备与外设(如SD卡)之间各种协议的总和,反映了在该信息系统中文件和信息传输过程所遵循的协议和规律。正常安卓系统中执行SD协议的代码路径是系统将上层的读写和控制需求转换成相应的指令与参数,送往SD控制器的驱动,驱动按照指令、参数以及控制器寄存器的要求对控制器进行配置,配置后的控制器将指令和参数发送到外部的SD卡,外部的SD卡回复指令执行的结果至SD控制器,触发控制器驱动程序读取结果并反馈给上层系统。为了清楚地知道各个时间点SD协议的走向和系统的控制流程以方便调试,本发明引入上述三种调试方式。为了实现这些调试手段,首先需要在系统内存中开辟两块空间,其一为指令存储空间,用于缓存系统中所有执行的SD协议指令与参数,另一为回复存储空间,用于存储与所述SD协议指令与参数相关的回复结果。
[0020]在单步调试步骤中,通过用户输入的方式发出执行SD协议的调试指令与参数,并将该指令与参数缓存于指令存储空间,进而将单步调试命令写入内核的sys文件系统节点(如SI节点),则SI节点对应注册的写执行函数中执行停止系统向SD协议栈队列写指令的请求,本步骤中,必须由用户手动键入单步调试命令才向系统获取一个指令及参数用以执行,并将得到执行上述SD协议指令与参数的回复结果存储于回复存储空间,读取回复结果之后再次暂停系统。
[0021]在重演调试步骤中,将之前缓存在指令存储空间中的SD协议指令和参数按照顺序再执行一次,直至指令出错时停止,得到的执行上述SD协议指令和参数的回复结果亦存储于回复存储空间,并在需要时调取检视。本步骤可以方便查看出错时系统的运行状况并供调试者分析错误原因。
[0022]在自定义调试步骤中,输入用于调试的SD协议指令和参数并缓存于指令存储空间,并进一步将指令和参数写入驱动注册到SYSFS的节点,由该节点绑定的写函数将指令和参数设定到控制器中对应的寄存器,发起对SD卡的访问。同样,执行所述指令和参数的回复结果亦存储于回复存储空间。
[0023]在实际调试的过程中,根据不同时间点上和不同工作状态下的调试需求选择不同的调试模式,其中单步调试应用于任何经用户判断认为需要调试并手动键入调试指令的情形;重演调试应用于需要用到之前已经缓存于指令存储空间中的SD协议指令和参数进行调试的情形;自定义调试应用于将指令和参数设定到控制器中对应的寄存器并发起向SD卡访问的情形。如此一来可以方便地对每条指令进行验证,以分析每个SD卡在不同工作状态下对每一个指令的响应情况。本发明利用了 sys文件系统挂载命令接口函数,操作SD卡协议栈来访问SD卡,并且在内存中开辟指令存储空间与回复存储空间两块缓存空间,方便进行操作追溯,从而提供一种在没有代码的情况下进行异常SD卡调试的方法,能够简便地定位SD协议栈与SD卡之间配合的异常点,降低了出错的风险,并提高了卡上数据的完整性和安全性。
[0024]以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1.一种基于安卓系统的SD协议栈调试方法,其特征在于,包括步骤: 在系统内存中开辟指令存储空间与回复存储空间;所述指令存储空间用于缓存系统执行的SD协议指令与参数,所述回复存储空间用于存储与所述SD协议指令与参数相关的回复结果; 进行调试。
2.如权利要求1所述的SD协议栈调试方法,其特征在于,在调试步骤中,利用sys文件系统挂载命令接口函数,并操作SD协议栈用于访问SD卡。
3.如权利要求1或2所述的SD协议栈调试方法,其特征在于,所述调试包括单步调试、重演调试或自定义调试。
4.如权利要求3所述的SD协议栈调试方法,其特征在于,在所述单步调试中,用户手动键入单步调试命令并向系统获取执行所述单步调试的指令与参数,并在读取回复后暂停调试。
5.如权利要求4所述的SD协议栈调试方法,其特征在于,在所述单步调试中,系统响应用户输入的单步调试命令,将单步调试命令写入内核的sys文件系统节点,并在所述节点对应注册的写执行函数中执行停止系统向SD协议栈队列写入指令的请求。
6.如权利要求3所述的SD协议栈调试方法,其特征在于,在所述重演调试中,系统读取并执行存储于指令存储空间中的指令及参数并再次执行,直至指令出错时停止。
7.如权利要求6所述的SD协议栈调试方法,其特征在于,所述重演调试用于查看指令出错时系统的运行状况并分析错误原因。
8.如权利要求3所述的SD协议栈调试方法,其特征在于,在所述自定义调试中,将指令及参数写入一系统节点,将上述指令及参数设定至控制器中对应的寄存器,并发起对SD卡的访问。
9.如权利要求8所述的SD协议栈调试方法,其特征在于,在自定义调试中,将指令及参数写入的系统节点为经系统驱动注册到sysfs的节点,并通过该节点绑定的写函数将上述指令集参数设定至控制器中对应的寄存器。
【文档编号】G06F11/22GK103823731SQ201410100269
【公开日】2014年5月28日 申请日期:2014年3月18日 优先权日:2014年3月18日
【发明者】林涛 申请人:福州瑞芯微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1