一种日志输出方法、装置、设备及可读存储介质

文档序号:1003497 发布日期:2020-10-23 浏览:6次 >En<

阅读说明:本技术 一种日志输出方法、装置、设备及可读存储介质 (Log output method, device and equipment and readable storage medium ) 是由 赵昌磊 于 2020-06-30 设计创作,主要内容包括:本发明公开了一种日志输出方法,该方法包括以下步骤:对接收到的日志输出请求进行解析,得到待输出的目标日志;读取预置的串口上锁标志位;判断串口上锁标志位是否处于解锁状态;若是,则将串口上锁标志位置为锁定状态,并调用串口硬件单元将目标日志输出至串口控制界面。应用本发明实施例所提供的技术方案,提高了日志输出的实时性,为固态硬盘内部的控制器程序多核交互流程的代码调试提供了便利,提高了问题定位速度,节省人力,提高了软件开发效率。本发明还公开了一种日志输出装置、设备及存储介质,具有相应技术效果。(The invention discloses a log output method, which comprises the following steps: analyzing the received log output request to obtain a target log to be output; reading a preset serial port locking flag bit; judging whether the serial port locking flag bit is in an unlocking state; if yes, the serial port locking mark position is in a locking state, and the serial port hardware unit is called to output the target log to the serial port control interface. By applying the technical scheme provided by the embodiment of the invention, the real-time property of log output is improved, convenience is provided for code debugging of a multi-core interaction process of a controller program in the solid state disk, the problem positioning speed is improved, the labor is saved, and the software development efficiency is improved. The invention also discloses a log output device, equipment and a storage medium, and has corresponding technical effects.)

一种日志输出方法、装置、设备及可读存储介质

技术领域

本发明涉及计算机应用技术领域,特别是涉及一种日志输出方法、装置、设备及计算机可读存储介质。

背景技术

固态硬盘(SSD,solid state disk)的控制器为了满足性能的要求,一般都是多核心架构。在软件开发过程中,各控制器核依靠串口硬件单元(UART)输出日志定位问题,但多核心会对串口硬件单元资源进行抢占式运用,造成串口硬件单元的输出日志是混合杂乱无章的,不具备可读性。

为解决各控制器核对串口硬件单元资源进行抢占式运用的问题,现有的日志输出方式为每个控制器核把日志都输入到自身对应的双倍率动态随机存储器(DDR)中,然后在通过串口硬件单元串行的输出到串口控制界面。当根据日志内容确认开发过程出现问题时,通过人工对比各日志对应的时间戳的大小关系定位多核之间的交互流程问题,不利于调试固态硬盘内部的控制器程序(firmware)多核交互流程的代码,且需要将日志先输入到双倍率动态随机存储器中进行缓存,日志输出实时性较差,浪费人力,软件开发效率低。

综上所述,如何有效地解决现有的日志输出方式日志输出实时性较差,浪费人力,软件开发效率低等问题,是目前本领域技术人员急需解决的问题。

发明内容

本发明的目的是提供一种日志输出方法,该方法提高了日志输出的实时性,提高了软件开发效率;本发明的另一目的是提供一种日志输出装置、设备及计算机可读存储介质。

为解决上述技术问题,本发明提供如下技术方案:

一种日志输出方法,包括:

对接收到的日志输出请求进行解析,得到待输出的目标日志;

读取预置的串口上锁标志位;

判断所述串口上锁标志位是否处于解锁状态;

若是,则将所述串口上锁标志位置为锁定状态,并调用串口硬件单元将所述目标日志输出至串口控制界面。

在本发明的一种

具体实施方式

中,在调用串口硬件单元将所述目标日志输出至串口控制界面之后,还包括:

将所述串口上锁标志位置为所述解锁状态。

在本发明的一种具体实施方式中,对接收到的日志输出请求进行解析,得到待输出的目标日志,包括:

对接收到的日志输出请求进行解析,得到所述目标日志和发送所述日志输出请求的目标控制器核;

调用串口硬件单元将所述目标日志输出至串口控制界面,包括:

通过所述目标控制器核预锁定的目标网络硬件单元调用所述串口硬件单元将所述目标日志输出至所述串口控制界面。

在本发明的一种具体实施方式中,读取预置的串口上锁标志位,包括:

从控制器内的随机存取存储器中读取所述串口上锁标志位。

一种日志输出装置,包括:

请求解析模块,用于对接收到的日志输出请求进行解析,得到待输出的目标日志;

标志位读取模块,用于读取预置的串口上锁标志位;

判断模块,用于判断所述串口上锁标志位是否处于解锁状态;

日志输出模块,用于当确定所述串口上锁标志位处于解锁状态时,将所述串口上锁标志位置为锁定状态,并调用串口硬件单元将所述目标日志输出至串口控制界面。

在本发明的一种具体实施方式中,还包括:

状态设置模块,用于在调用串口硬件单元将所述目标日志输出至串口控制界面之后,将所述串口上锁标志位置为所述解锁状态。

在本发明的一种具体实施方式中,所述请求解析模块具体为对接收到的日志输出请求进行解析,得到所述目标日志和发送所述日志输出请求的目标控制器核的模块;所述日志输出模块具体为通过所述目标控制器核预锁定的目标网络硬件单元调用所述串口硬件单元将所述目标日志输出至所述串口控制界面的模块。

在本发明的一种具体实施方式中,所述标志位读取模块具体为从控制器内的随机存取存储器中读取所述串口上锁标志位的模块。

一种日志输出设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如前所述日志输出方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述日志输出方法的步骤。

本发明提供了一种日志输出方法:对接收到的日志输出请求进行解析,得到待输出的目标日志;读取预置的串口上锁标志位;判断串口上锁标志位是否处于解锁状态;若是,则将串口上锁标志位置为锁定状态,并调用串口硬件单元将目标日志输出至串口控制界面。

通过上述技术方案可知,通过为串口硬件单元设置加锁解锁机制,保证了日志输出操作的串行执行,当确定串口硬件单元处于解锁状态时,直接调用串口硬件单元将目标日志输出至串口控制界面,不需要将日志先输入到双倍率动态随机存储器中进行缓存,提高了日志输出的实时性,目标日志通过先后调用串口硬件单元直接输出,为固态硬盘内部的控制器程序多核交互流程的代码调试提供了便利,提高了问题定位速度,节省人力,提高了软件开发效率。

相应的,本发明实施例还提供了与上述日志输出方法相对应的日志输出装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

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

图1为本发明实施例中日志输出方法的一种实施流程图;

图2为本发明实施例中日志输出方法的另一种实施流程图;

图3为本发明实施例中一种日志输出装置的结构框图;

图4为本发明实施例中一种日志输出设备的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

参见图1,图1为本发明实施例中日志输出方法的一种实施流程图,该方法可以包括以下步骤:

S101:对接收到的日志输出请求进行解析,得到待输出的目标日志。

在软件开发过程中,当固态硬盘的控制器中目标控制器核生成目标日志,需要将生成的目标日志输出到串口控制界面时,向日志输出控制中心发送日志输出请求,日志输出请求中包含待输出的目标日志。日志输出控制中心接收日志输出请求,对接收到的日志输出请求进行解析,得到待输出的目标日志。

目标控制器核可以为固态硬盘的多核控制器中任意一个控制器核。

S102:读取预置的串口上锁标志位。

日志需要通过串口硬件单元输出至串口控制界面,预先设置用于标志串口硬件单元的使用状态的串口上锁标志位,当各控制器核需要输出日志时,都可以读取该串口上锁标志位。在接收到日志输出请求之后,读取预置的串口上锁标志位。

S103:判断串口上锁标志位是否处于解锁状态,若是,则执行步骤S104,若否,则不做处理。

串口上锁标志位包含锁定状态和解锁状态两种使用状态,当串口上锁标志位为锁定状态时,说明串口硬件单元当前已被其他控制器核占用,处于不可用状态,如可以用串口上锁标志位置为1时表示锁定状态;当串口上锁标志位为解锁状态时,说明串口硬件单元当前未被其他控制器核占用,处于可用状态,如可以用串口上锁标志位置为0时表示解锁状态。在读取到串口上锁标志位之后,判断串口上锁标志位是否处于解锁状态,若是,则说明串口硬件单元当前未被其他控制器核占用,执行步骤S104。若否,则说明串口硬件单元当前已被其他控制器核占用,处于不可用状态,需要等待,不做其他处理。

S104:将串口上锁标志位置为锁定状态,并调用串口硬件单元将目标日志输出至串口控制界面。

当确定串口上锁标志位处于解锁状态时,将串口上锁标志位置为锁定状态,并调用串口硬件单元将目标日志输出至串口控制界面。通过将串口上锁标志位置为锁定状态,以标识串口硬件单元已被占用,防止其他控制器核抢占串口硬件单元,保证目标日志顺利输出至串口控制界面。

S105:等待处理。

当确定串口上锁标志位处于锁定状态时,说明串口硬件单元当前已被其他控制器核占用,处于不可用状态,等待处理。

通过上述技术方案可知,通过为串口硬件单元设置加锁解锁机制,保证了日志输出操作的串行执行,当确定串口硬件单元处于解锁状态时,直接调用串口硬件单元将目标日志输出至串口控制界面,不需要将日志先输入到双倍率动态随机存储器中进行缓存,提高了日志输出的实时性,目标日志通过先后调用串口硬件单元直接输出,为固态硬盘内部的控制器程序多核交互流程的代码调试提供了便利,提高了问题定位速度,节省人力,提高了软件开发效率。

需要说明的是,基于上述实施例一,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例一中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。

实施例二:

参见图2,图2为本发明实施例中日志输出方法的另一种实施流程图,该方法可以包括以下步骤:

S201:对接收到的日志输出请求进行解析,得到目标日志和发送日志输出请求的目标控制器核。

日志输出请求中还可以包含发送日志输出请求的目标控制器核的标识信息,通过对接收到的日志输出请求进行解析,得到目标日志和发送日志输出请求的目标控制器核。

S202:从控制器内的随机存取存储器中读取串口上锁标志位。

将用于标志串口硬件单元的使用状态的串口上锁标志位设置于控制器内的随机存取存储器(BRAM)中,具体的可以选随机存取存储器中固定位置的四字节作为串口上锁标志位。在接收到日志输出请求之后,从控制器内的随机存取存储器中读取串口上锁标志位。由于随机存取存储器设置于固态硬盘的控制器内部,将串口上锁标志位设置于随机存取存储器中,相较于将串口上锁标志位设置于固态硬盘控制器外部的双倍率动态随机存储器中,较大地提升了对串口上锁标志位的读写速度。

S203:判断串口上锁标志位是否处于解锁状态,若是,则执行步骤S204,若否,则执行步骤S206。

S204:将串口上锁标志位置为锁定状态,并通过目标控制器核预锁定的目标网络硬件单元调用串口硬件单元将目标日志输出至串口控制界面。

当每个控制器核上电初始化时,为其锁定一个目标网络硬件单元(datanetworktag),目标网络硬件单元作为控制器核与随机存取存储器及内存之间的通信通道。当确定串口上锁标志位处于解锁状态时,将串口上锁标志位置为锁定状态,并通过目标控制器核预锁定的目标网络硬件单元调用串口硬件单元将目标日志输出至串口控制界面。通过预先为目标控制器核锁定用于日志输出通信的目标网络硬件单元,保证了目标控制器核与随机存取存储器及内存之间的正常通信,从而保证了目标日志的正常输出。

S205:将串口上锁标志位置为解锁状态。

在将目标日志输出至串口控制界面之后,将串口上锁标志位置为解锁状态,从而使得串口硬件单元得以释放,以便后续其他控制器核需要输出日志时顺利调用串口硬件单元。

S206:等待处理。

相应于上面的方法实施例,本发明实施例还提供了一种日志输出装置,下文描述的日志输出装置与上文描述的日志输出方法可相互对应参照。

参见图3,图3为本发明实施例中一种日志输出装置的结构框图,该装置可以包括:

请求解析模块31,用于对接收到的日志输出请求进行解析,得到待输出的目标日志;

标志位读取模块32,用于读取预置的串口上锁标志位;

判断模块33,用于判断串口上锁标志位是否处于解锁状态;

日志输出模块34,用于当确定串口上锁标志位处于解锁状态时,将串口上锁标志位置为锁定状态,并调用串口硬件单元将目标日志输出至串口控制界面。

通过上述技术方案可知,通过为串口硬件单元设置加锁解锁机制,保证了日志输出操作的串行执行,当确定串口硬件单元处于解锁状态时,直接调用串口硬件单元将目标日志输出至串口控制界面,不需要将日志先输入到双倍率动态随机存储器中进行缓存,提高了日志输出的实时性,目标日志通过先后调用串口硬件单元直接输出,为固态硬盘内部的控制器程序多核交互流程的代码调试提供了便利,提高了问题定位速度,节省人力,提高了软件开发效率。

在本发明的一种具体实施方式中,该装置还可以包括:

状态设置模块,用于在调用串口硬件单元将目标日志输出至串口控制界面之后,将串口上锁标志位置为解锁状态。

在本发明的一种具体实施方式中,请求解析模块31具体为对接收到的日志输出请求进行解析,得到目标日志和发送日志输出请求的目标控制器核的模块;

日志输出模块34具体为通过目标控制器核预锁定的目标网络硬件单元调用串口硬件单元将目标日志输出至串口控制界面的模块。

在本发明的一种具体实施方式中,标志位读取模块32具体为从控制器内的随机存取存储器中读取串口上锁标志位的模块。

相应于上面的方法实施例,参见图4,图4为本发明所提供的日志输出设备的示意图,该设备可以包括:

存储器41,用于存储计算机程序;

处理器42,用于执行上述存储器41存储的计算机程序时可实现如下步骤:

对接收到的日志输出请求进行解析,得到待输出的目标日志;读取预置的串口上锁标志位;判断串口上锁标志位是否处于解锁状态;若是,则将串口上锁标志位置为锁定状态,并调用串口硬件单元将目标日志输出至串口控制界面。

对于本发明提供的设备的介绍请参照上述方法实施例,本发明在此不做赘述。

相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:

对接收到的日志输出请求进行解析,得到待输出的目标日志;读取预置的串口上锁标志位;判断串口上锁标志位是否处于解锁状态;若是,则将串口上锁标志位置为锁定状态,并调用串口硬件单元将目标日志输出至串口控制界面。

该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。

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

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据轮询方法、装置及终端设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!