一种多核固态硬盘调试方法及系统与流程

文档序号:13007614阅读:188来源:国知局
一种多核固态硬盘调试方法及系统与流程

本发明涉及调试领域,尤其涉及一种多核固态硬盘调试方法及系统。



背景技术:

随着互联网、云计算、物联网等技术的发展,固态硬盘作为新一代存储装置,被广泛应用。在固态硬盘软件系统开发阶段,串口打印作为嵌入式设备重要的调试手段之一,具有重要意义。

对于多核架构的固态硬盘,即固态硬盘的板卡芯片中有多个cpu内核,每个cpu内核相当于一个独立的进程,多个进程可同时运行。

在针对多核固态硬盘进行调试时,多个cpu内核同时访问串口资源,就会出现串口输出时,内容糅杂在一起,从而导致串口打印出现乱码的问题,无法起到串口调试应有的效果。



技术实现要素:

有鉴于此,本发明提供一种多核固态硬盘调试方法及系统,以解决现有技术中对多核固态硬盘进行调试时,多个cpu同时访问串口资源,导致串口打印出现乱码,无法起到串口调试应用的效果的问题,其具体方案如下:

一种多核固态硬盘调试方法,应用于固态硬盘,包括:

为所述固态硬盘的公共存储区域设置串口输出锁资源标志位;

当检测到cpu内核发送的串口资源访问请求时,确定所述串口输出锁资源标志位的状态;

当所述串口输出锁资源标志位的状态表明当前公共存储区域的串口资源未被占用时,接受所述发送串口资源访问请求的cpu内核的访问请求,输出串口打印。

进一步的,还包括:

当所述串口输出锁资源标志位的状态表明当前公共存储区域的串口资源被占用时,不响应所述发送串口资源访问请求的cpu内核的访问请求。

进一步的,所述当所述串口输出锁资源标志位的状态表明当前公共存储区域的串口资源未被占用时,接受所述发送串口资源访问请求的cpu内核的访问请求,包括:

当所述串口输出锁资源标志位的状态表明当前公共存储区域的串口资源未被占用时,确定检测到的发送串口资源访问请求的cpu内核的数量;

当所述检测到的cpu内核的数量为不少于两个时,确定检测到的所述不少于两个cpu内核的优先级顺序;

接受所述不少于两个cpu内核中优先级顺序最高的cpu内核的访问请求。

进一步的,确定检测到的所述不少于两个cpu内核的优先级顺序,包括:

确定检测到的所述不少于两个cpu内核发送串口资源访问请求的时间;

按照所述串口资源访问请求的时间先后确定所述不少于两个cpu内核的优先级顺序。

进一步的,所述串口输出锁资源标志位的状态表明当前公共存储区域的串口资源是否被占用,包括:

当所述串口输出锁资源标志位为1时,表明当前公共存储区域的串口资源被占用;

当所述串口输出锁资源标志位为0时,表明当前公共存储区域的串口资源未被占用。

进一步的,当所述接受所述发送串口资源访问请求的cpu内核的访问请求时,还包括:

将所述串口输出锁资源标志位置为1。

进一步的,还包括:

当所述公共存储区域的串口资源被占用结束时,将所述串口输出锁资源标志位置为0。

一种多核固态硬盘调试系统,应用于固态硬盘,包括:设置单元,确定单元,打印单元,其中:

所述设置单元用于为所述固态硬盘的公共存储区域设置串口输出锁标志位;

所述确定单元用于当检测到cpu内核发送的串口资源访问请求时,确定所述串口输出锁资源标志位的状态;

所述打印单元用于当所述串口输出锁资源标志位的状态表明当前公共存储区域的串口资源未被占用时,接受所述发送串口资源访问请求的cpu内核的访问请求,输出串口打印。

进一步的,所述打印单元还用于:

当所述串口输出锁资源标志位的状态表明当前公共存储区域的串口资源被占用时,不响应所述发送串口资源访问请求的cpu内核的访问请求。

进一步的,所述打印单元还用于:

当接受所述发送串口资源访问请求的cpu内核的访问请求时,将所述串口输出锁资源标志位置为被占用状态;

当所述公共存储区域的串口资源被占用结束时,将所述串口输出锁资源标志位置为未被占用状态。

从上述技术方案可以看出,本申请公开的多核固态硬盘调试方法及系统,包括:为固态硬盘的公共存储区域设置串口输出锁资源标志位,当检测到cpu内核发送的串口资源访问请求时,确定串口输出锁资源标志位的状态,当其状态表明当前公共存储区域的串口资源未被占用时,接受发送串口资源访问请求的cpu内核的访问请求,输出串口打印。本方案通过为固态硬盘的公共存储区域设置串口输出锁资源标志位,在检测到cpu内核的访问请求时,对该标志位状态进行确认,从而使得只有当标志位显示串口资源未被占用时,才允许访问,进行该cpu内核的串口打印,从而避免了有多个cpu内核同时访问串口资源导致的打印出现乱码,无法起到串口调试应用的效果的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种多核固态硬盘调试方法的流程图;

图2为本发明实施例公开的一种多核固态硬盘调试方法的流程图;

图3为本发明实施例公开的一种多核固态硬盘调试系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明公开了一种多核固态硬盘调试方法,应用于固态硬盘,其中,固态硬盘的板卡芯片中有多个cpu内核,在对固态硬盘进行调试的过程中,会出现多个cpu内核同时访问串口资源,内容糅杂在一起,串口打印就会出现乱码,无法起到串口调试的效果。

而本申请公开了一种多核固态硬盘调试方法,就是为了解决这一问题,其流程图如图1所示,包括:

步骤s11、为固态硬盘的公共存储区域设置串口输出锁资源标志位;

固态硬盘中每个cpu内核均有其对应的dram空间,除此之外,固态硬盘中还设置有一个公共存储区域,用于进行串口打印。

为公共存储区域设置串口输出锁资源标志位,即在公共存储区域被占用时,其他cpu内核不能再进行访问,直至公共存储区域不被占用,才能接受其他cpu内核的访问,进行串口打印。

步骤s12、当检测到cpu内核发送的串口资源访问请求时,确定串口输出锁资源标志位的状态;

步骤s13、当串口输出锁资源标志位的状态表明当前公共存储区域的串口资源未被占用时,接受发送串口资源访问请求的cpu内核的访问请求,输出串口打印。

当有cpu内核发出串口资源的访问请求时,首先需要确定当前串口输出锁资源标志位的状态,即当前公共存储区域是否被占用,若未被占用,则接受该cpu内核的访问请求,进行串口打印;若被占用,则不能响应该cpu的访问请求,或,发送反馈信息至该cpu内核,使该cpu内核明确当前串口资源被占用,无法响应其访问请求。

具体的,当cpu内核发出串口资源访问请求,未接收到访问请求被接受,或该cpu内核未被允许访问公共存储区域,或接收到串口资源被占用的信息后,该cpu内核可以持续发送访问请求,直至该cpu内核被允许访问公共存储区域。

进一步的,当公共存储区域的串口资源被其中一个cpu内核占用结束时,将串口输出锁资源标志位置为空闲状态,直至接受了该发送串口资源访问请求的cpu内核的访问请求时,将串口输出锁资源标志位置为被占用状态。

其中,串口输出锁资源标志位的状态表明当前公共存储区域的串口资源是否被占用,包括:当串口输出锁资源标志位为1时,表明当前公共存储区域的串口资源被占用;当串口输出锁资源标志位为0时,表明当前公共存储区域的串口资源未被占用。

当接受该发送串口资源访问请求的cpu内核的访问请求时,将串口输出锁资源标志位置为1;当公共存储区域的串口资源被占用结束时,将串口输出锁资源标志位置为0。

具体的,也可以采用其他方式表明当前公共存储区域的串口资源是否被占用,如:直接将串口输出锁资源标志位设置为占用状态,或非占用状态,也可以为:仅设置串口输出锁,当该串口输出锁为锁定状态时,表明公共存储区域的串口资源被占用,当该串口输出锁为打开状态时,表明公共存储区域的串口资源未被占用。

本实施例公开的多核固态硬盘调试方法,包括:为固态硬盘的公共存储区域设置串口输出锁资源标志位,当检测到cpu内核发送的串口资源访问请求时,确定串口输出锁资源标志位的状态,当其状态表明当前公共存储区域的串口资源未被占用时,接受发送串口资源访问请求的cpu内核的访问请求,输出串口打印。本方案通过为固态硬盘的公共存储区域设置串口输出锁资源标志位,在检测到cpu内核的访问请求时,对该标志位状态进行确认,从而使得只有当标志位显示串口资源未被占用时,才允许访问,进行该cpu内核的串口打印,从而避免了有多个cpu内核同时访问串口资源导致的打印出现乱码,无法起到串口调试应用的效果的问题。

本实施例公开的多核固态硬盘调试方法,应用于固态硬盘,其流程图如图2所示,包括:

步骤s21、为固态硬盘的公共存储区域设置串口输出锁资源标志位;

步骤s22、当检测到cpu内核发送的串口资源访问请求时,确定串口输出锁资源标志位的状态;

步骤s23、当串口输出锁资源标志位的状态表明当前公共存储区域的串口资源未被占用时,确定检测到的发送串口资源访问请求的cpu内核的数量;

步骤s24、当检测到的cpu内核的数量为不少于两个时,确定检测到的不少于两个cpu内核的优先级顺序;

当发送串口资源访问请求的cpu内核为1个时,在串口输出锁资源标志位表明当前公共存储区域的串口资源未被占用时,直接接受该cpu内核的访问请求,输出串口打印;当发送串口资源访问请求的cpu内核数量为大于1个,即不少于两个时,需要从该不少于两个cpu内核中选取其中一个作为对串口资源进行访问的cpu内核。

具体的,确定该不少于两个cpu内核的优先级顺序,根据其优先级顺序接受对应的cpu内核的访问请求。

进一步的,确定该不少于两个cpu内核的优先级顺序,可以为:确定检测到的该不少于两个cpu内核发送串口资源访问请求的时间,按照串口资源访问请求的时间先后确定不少于两个cpu内核的优先级顺序。

具体的,当cpu内核发送串口资源访问请求,未接收到响应时,若cpu内核持续发送串口资源访问请求,那么,系统记录该cpu内核首次发送串口资源访问请求的时间,将该时间作为系统检测到的该cpu内核发送串口资源访问请求的时间;当cpu内核发送串口资源访问请求,未接收到响应时,该cpu内核不再发送串口资源访问请求,而是由系统记录该发送串口资源访问请求的cpu内核信息及时间,将该时间作为系统检测到的该cpu内核发送串口资源访问请求的时间,并在根据优先级顺序将该cpu内核作为第一优先级的cpu内核时,根据其发送串口资源访问请求时记录的cpu内核信息对其进行响应。

其中,根据优先级顺序接受对应的cpu内核的访问请求,具体的,确定发送串口资源访问请求的cpu内核的先后顺序,将最早发送串口资源访问请求的该cpu内核作为第一优先级,并按照时间先后顺序依次排列优先级顺序,当串口输出锁资源标志位的状态表明当前存储区域的串口资源未被占用时,从第一优先级开始,允许对应的cpu内核访问串口资源。

步骤s25、接受不少于两个cpu内核中优先级顺序最高的cpu内核的访问请求,输出串口打印。

本实施例公开的多核固态硬盘调试方法,包括:为固态硬盘的公共存储区域设置串口输出锁资源标志位,当检测到cpu内核发送的串口资源访问请求时,确定串口输出锁资源标志位的状态,当其状态表明当前公共存储区域的串口资源未被占用时,接受发送串口资源访问请求的cpu内核的访问请求,输出串口打印。本方案通过为固态硬盘的公共存储区域设置串口输出锁资源标志位,在检测到cpu内核的访问请求时,对该标志位状态进行确认,从而使得只有当标志位显示串口资源未被占用时,才允许访问,进行该cpu内核的串口打印,从而避免了有多个cpu内核同时访问串口资源导致的打印出现乱码,无法起到串口调试应用的效果的问题。

本实施例公开了一种多核固态硬盘调试系统,应用于固态硬盘,其结构示意图如图3所示,包括:

设置单元31,确定单元32及打印单元33。

设置单元31用于为固态硬盘的公共存储区域设置串口输出锁标志位。

固态硬盘中每个cpu内核均有其对应的dram空间,除此之外,固态硬盘中还设置有一个公共存储区域,用于进行串口打印。

为公共存储区域设置串口输出锁资源标志位,即在公共存储区域被占用时,其他cpu内核不能再进行访问,直至公共存储区域不被占用,才能接受其他cpu内核的访问,进行串口打印。

确定单元32用于当检测到cpu内核发送的串口资源访问请求时,确定串口输出锁资源标志位的状态。

打印单元33用于当串口输出锁资源标志位的状态表明当前公共存储区域的串口资源未被占用时,接受发送串口资源访问请求的cpu内核的访问请求,输出串口打印。

当有cpu内核发出串口资源的访问请求时,首先需要确定当前串口输出锁资源标志位的状态,即当前公共存储区域是否被占用,若未被占用,则接受该cpu内核的访问请求,进行串口打印;若被占用,则不能响应该cpu的访问请求,或,发送反馈信息至该cpu内核,使该cpu内核明确当前串口资源被占用,无法响应其访问请求。

具体的,当cpu内核发出串口资源访问请求,未接收到访问请求被接受,或该cpu内核未被允许访问公共存储区域,或接收到串口资源被占用的信息后,该cpu内核可以持续发送访问请求,直至该cpu内核被允许访问公共存储区域。

进一步的,当公共存储区域的串口资源被其中一个cpu内核占用结束时,将串口输出锁资源标志位置为空闲状态,直至接受了该发送串口资源访问请求的cpu内核的访问请求时,将串口输出锁资源标志位置为被占用状态。

其中,串口输出锁资源标志位的状态表明当前公共存储区域的串口资源是否被占用,包括:当串口输出锁资源标志位为1时,表明当前公共存储区域的串口资源被占用;当串口输出锁资源标志位为0时,表明当前公共存储区域的串口资源未被占用。

当接受该发送串口资源访问请求的cpu内核的访问请求时,将串口输出锁资源标志位置为1;当公共存储区域的串口资源被占用结束时,将串口输出锁资源标志位置为0。

具体的,也可以采用其他方式表明当前公共存储区域的串口资源是否被占用,如:直接将串口输出锁资源标志位设置为占用状态,或非占用状态,也可以为:仅设置串口输出锁,当该串口输出锁为锁定状态时,表明公共存储区域的串口资源被占用,当该串口输出锁为打开状态时,表明公共存储区域的串口资源未被占用。

打印单元33具体用于:当串口输出锁资源标志位的状态表明当前公共存储区域的串口资源未被占用时,确定检测到的发送串口资源访问请求的cpu内核的数量,当检测到的cpu内核的数量为不少于两个时,确定检测到的不少于两个cpu内核的优先级顺序,接受不少于两个cpu内核中优先级顺序最高的cpu内核的访问请求。。

当发送串口资源访问请求的cpu内核为1个时,在串口输出锁资源标志位表明当前公共存储区域的串口资源未被占用时,直接接受该cpu内核的访问请求,输出串口打印;当发送串口资源访问请求的cpu内核数量为大于1个,即不少于两个时,需要从该不少于两个cpu内核中选取其中一个作为对串口资源进行访问的cpu内核。

具体的,确定该不少于两个cpu内核的优先级顺序,根据其优先级顺序接受对应的cpu内核的访问请求。

进一步的,确定该不少于两个cpu内核的优先级顺序,可以为:确定检测到的该不少于两个cpu内核发送串口资源访问请求的时间,按照串口资源访问请求的时间先后确定不少于两个cpu内核的优先级顺序。

具体的,当cpu内核发送串口资源访问请求,未接收到响应时,若cpu内核持续发送串口资源访问请求,那么,系统记录该cpu内核首次发送串口资源访问请求的时间,将该时间作为系统检测到的该cpu内核发送串口资源访问请求的时间;当cpu内核发送串口资源访问请求,未接收到响应时,该cpu内核不再发送串口资源访问请求,而是由系统记录该发送串口资源访问请求的cpu内核信息及时间,将该时间作为系统检测到的该cpu内核发送串口资源访问请求的时间,并在根据优先级顺序将该cpu内核作为第一优先级的cpu内核时,根据其发送串口资源访问请求时记录的cpu内核信息对其进行响应。

其中,根据优先级顺序接受对应的cpu内核的访问请求,具体的,确定发送串口资源访问请求的cpu内核的先后顺序,将最早发送串口资源访问请求的该cpu内核作为第一优先级,并按照时间先后顺序依次排列优先级顺序,当串口输出锁资源标志位的状态表明当前存储区域的串口资源未被占用时,从第一优先级开始,允许对应的cpu内核访问串口资源。

本实施例公开的多核固态硬盘调试系统,包括:为固态硬盘的公共存储区域设置串口输出锁资源标志位,当检测到cpu内核发送的串口资源访问请求时,确定串口输出锁资源标志位的状态,当其状态表明当前公共存储区域的串口资源未被占用时,接受发送串口资源访问请求的cpu内核的访问请求,输出串口打印。本方案通过为固态硬盘的公共存储区域设置串口输出锁资源标志位,在检测到cpu内核的访问请求时,对该标志位状态进行确认,从而使得只有当标志位显示串口资源未被占用时,才允许访问,进行该cpu内核的串口打印,从而避免了有多个cpu内核同时访问串口资源导致的打印出现乱码,无法起到串口调试应用的效果的问题。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1