CN111143218A - 适用于5G嵌入式设备的log调试方法、装置和可读存储介质 - Google Patents
适用于5G嵌入式设备的log调试方法、装置和可读存储介质 Download PDFInfo
- Publication number
- CN111143218A CN111143218A CN201911380014.XA CN201911380014A CN111143218A CN 111143218 A CN111143218 A CN 111143218A CN 201911380014 A CN201911380014 A CN 201911380014A CN 111143218 A CN111143218 A CN 111143218A
- Authority
- CN
- China
- Prior art keywords
- debugging
- log
- read
- write
- shared memory
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000006854 communication Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000875 corresponding effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002079 cooperative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种适用于5G嵌入式设备的log调试方法、装置和可读存储介质,所述嵌入式设备包括至少一功能模块,所述嵌入式设备内预置共享内存区和Socket接口,所述共享内存区预设有写API接口和读API接口,该方法包括:通过所述Socket接口与用于显示调试log的显示端建立Socket连接;然后通过所述写API接口向所述共享内存区并发写入各功能模块对应输出的调试log;通过所述读API接口从所述共享内存区批量读出对应功能模块的所述调试log,并通过所述Socket接口周期性发送至所述显示端。本发明的技术方案通过利用共享内存区缓存调试log并通过Socket接口周期性发送所述调试log至显示端,使嵌入式设备的调试过程更为简单高效。
Description
技术领域
本发明涉及嵌入式设备调试领域,尤其涉及一种适用于5G嵌入式设备的log调试方法、装置和可读存储介质。
背景技术
随着计算机技术的快速发展,嵌入式设备被越来越广泛地应用到通信、汽车、消费电子、航空航天等各种领域。
目前,嵌入式设备通常采用RS232串口进行调试。利用串口线将嵌入式设备与PC进行连接,嵌入式设备利用RS232串口向PC端输出运行信息。然后,操作人员在PC端上通过串口调试助手之类的工具软件观察嵌入式设备的运行信息,判断嵌入式设备的执行是否符合预期。
这种调试方法存在以下三个缺点:一、调试硬件成本较高。目前,市面上主流的PC,尤其是笔记本电脑,大部分都不提供RS232串口。为了调试嵌入式设备,普遍采用在PC上连接USB转串口模块的方式,然后再通过交叉串口线与嵌入式设备相连接。这样会导致调试的硬件成本增加。二、嵌入式设备的性能有所下降。由于RS232串口的传输速率较慢,所以在运行信息较多的情况下,嵌入式设备需要消耗较多的软件资源来将运行信息发送给PC,使得性能下降。三、调试非常不便利。理论上,RS232的传输距离能达到15米。但实际上,常用的串口线一般只有2米。这使得在调试嵌入式设备的时候,需要操作人员在离设备较近的区域。上述原因使得嵌入式设备调试的效率大大降低。
发明内容
鉴于上述问题,本发明提出一种适用于5G嵌入式设备的log调试方法和装置。
本发明的一个实施方案提出一种适用于5G嵌入式设备的log调试方法,所述嵌入式设备包括至少一功能模块,所述嵌入式设备内预置共享内存区和Socket接口,所述共享内存区预设有写API接口和读API接口,该方法包括:
通过所述Socket接口与用于显示调试log的显示端建立Socket连接;
然后通过所述写API接口向所述共享内存区并发写入各功能模块对应输出的调试log;
通过所述读API接口从所述共享内存区批量读出对应功能模块的所述调试log,并通过所述Socket接口周期性发送至所述显示端。
优选的,上述方案所述共享内存区包括控制信息存储区和调试log存储区;
所述控制信息存储区用于存储对所述调试log存储区进行读写控制的读写控制信息,所述读写控制信息包括当前写入地址、当前读出地址和已写入的调试log数量;
所述调试log存储区用于存储各功能模块对应输出的调试log。
进一步的,上述方案通过所述写API接口向所述共享内存区并发写入调试log,包括:
获取各功能模块输出的待写入调试log,计算当前待写入的调试log占用的内存大小,并对所述写API接口进行加锁;
在所述当前待写入的调试log写入后,根据所述内存大小更新所述控制信息存储区中的所述当前写入地址和所述调试log数量,并对所述写API接口进行解锁。
进一步的,上述方案通过所述读API接口从所述共享内存区批量读出调试log,包括:
对所述读API接口加锁,并获取所述共享内存区的当前写入地址和当前读出地址,以将所述当前写入地址和所述当前读出地址之间的所有调试log批量读出;
在所述所有调试log读出后,更新所述控制信息存储区中的所述当前读出地址和所述调试log数量,然后对所述读API接口解锁。
进一步的,上述方案通过所述写API接口向所述共享内存区并发写入调试log,还包括:
对所述写API接口加锁时,设置所述当前待写入的调试log的写入线程的优先级为最高以使所述写入线程被优先处理;
然后解锁时,将所述写入线程的优先级恢复至原优先级。
进一步的,上述方案所述通过所述读API接口从所述共享内存区批量读出调试log,还包括:
对所述读API接口加锁时,设置当前待读出的调试log的读出进程的优先级为最高以使所述读出进程被优先处理;
然后解锁时,将所述读出进程的优先级恢复至原优先级。
进一步的,上述方案所述通过所述读API接口从所述共享内存区批量读出调试log,还包括:判断所述当前写入地址和所述当前读出地址是否相同且所述调试log数量是否为零;
若所述当前写入地址和当前读出地址相同且所述调试log数量不为零,则读出所述调试log存储区的全部调试log,并更新所述控制信息存储区中所述读写控制信息;
若所述当前写入地址和当前读出地址相同且所述调试log数量为零,则取消对写API接口的加锁,以提高待写入所述共享内存区的调试log的写入速度。
本发明的另一实施方案提出一种适用于5G嵌入式设备的log调试装置,所述嵌入式设备包括至少一功能模块,所述嵌入式设备内预置共享内存区和Socket接口,所述共享内存区预设有写API接口和读API接口,该装置包括:
通信连接控制模块,用于通过所述Socket接口与用于显示调试log的显示端建立Socket连接;
调试log写入模块,用于通过所述写API接口向所述共享内存区并发写入各功能模块对应输出的调试log;
调试log发送模块,用于通过所述读API接口从所述共享内存区批量读出对应功能模块的所述调试log,并通过所述Socket接口周期性发送至所述显示端。
本发明的又一实施方案提出一种5G嵌入式设备,所述5G嵌入式设备包括存储器以及处理器,所述存储器存储有计算机程序,所述处理器运行所述计算机程序以使所述嵌入式设备执行上述方案的适用于5G嵌入式设备的log调试方法。
本发明的再一实施方案提出一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行上述方案的适用于5G嵌入式设备的log调试方法。
本发明的技术方案通过在嵌入式设备中划分一共享内存区并对所述共享内存区封装一写API接口和一读API接口,以及对嵌入式设备封装一Socket接口。在log调试时,通过写API接口向共享内存区并发写入调试log,同时通过读API接口批量读出,然后,通过Socket接口周期性发送所述调试log至所述显示端,以使显示端显示嵌入式设备输出的调试log的速度更快,输出结果更为可靠,同时,也使调试环境不受被测端与显示端距离的限制,实现高效快速的远距离测试。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本发明第一实施例一种适用于5G嵌入式设备的log调试方法的流程示意图;
图2示出了本发明第一实施例一种适用于5G嵌入式设备的log调试方法中对写API接口加锁解锁的流程示意图;
图3示出了本发明第一实施例一种适用于5G嵌入式设备的log调试方法中写入线程优先级设置的流程示意图;
图4示出了本发明第一实施例一种适用于5G嵌入式设备的log调试方法中对读API接口加锁解锁的流程示意图;
图5示出了本发明第一实施例一种适用于5G嵌入式设备的log调试方法中读出进程优先级设置的流程示意图;
图6示出了本发明第一实施例一种适用于5G嵌入式设备的log调试方法中一种特殊情况的流程示意图;
图7示出了本发明第二实施例一种适用于5G嵌入式设备的log调试装置的结构示意图。
主要元件符号:
200-适用于5G嵌入式设备的log调试装置;201-通信连接控制模块;202-调试log写入模块;203-调试log发送模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
实施例1
本实施例提出一种嵌入式设备的log调试方法,所述嵌入式设备包括至少一功能模块,所述嵌入式设备内预置一共享内存区和Socket接口,所述共享内存区预设有一写API接口和读API接口。
由于不同类型的嵌入式设备包括不同的功能模块,并且不同类型的嵌入式设备所包括的功能模块的数目也不相同,因此,不同类型的嵌入式设备输出的调试log的数量也不相同,进而不同类型的嵌入式设备的共享内存区的大小可以根据调试log的数量灵活地划分。
上述共享内存区包括控制信息存储区和调试log存储区,其中,控制信息存储区用于存储读写控制信息,所述读写控制信息包括当前写入地址、当前读出地址和已写入的调试log数量;所述调试log存储区用于存储写入的调试log,调试log包括log头信息和log体信息,所述log头信息包括log体长度、写入时间和所属模块信息,所述log体信息为调试log内容。
图1示出了本发明第一实施例一种适用于5G嵌入式设备的log调试方法的流程示意图。
嵌入式设备的log调试方法包括:
步骤S100:通过所述Socket接口与用于显示调试log的显示端建立Socket连接。
进行调试时,待调试的嵌入式设备通过预设的Socket接口与显示端建立Socket连接,以将嵌入式设备的调试log实时显示在显示端。
示范性的,待测试的嵌入式设备获取到显示端的IP地址和端口号与显示端建立通信连接,在二者通讯过程,只用一个Socket对象,长期保持Socket的连接,以使显示端与待测试的嵌入式设备利用Socket实现TCP通信。
上述显示端的IP地址和端口号可以根据调试环境灵活地修改,例如,待测试的嵌入式设备可以先设置一显示端的IP地址和端口号,将输出的调试log发送给该显示端;用户也可以对IP地址和端口号进行修改,修改后,待测试的嵌入式设备将输出的调试log发送给修改后的IP地址对应的显示端。
所述Socket连接,支持同一个显示端连接多个被测的嵌入式设备。
所述显示端包括台式电脑、笔记本电脑、平板电脑和手机等中的任意一种或多种。
步骤S200:然后通过所述写API接口向所述共享内存区并发写入各功能模块对应输出的调试log。
在调试过程中,各个功能模块对应输出相应的调试log,所述调试log通过写API接口向所述共享内存区并发写入。
示范性的,如图2所示,对于上述步骤S200,主要包括以下子步骤:
子步骤S210:获取各功能模块输出的待写入调试log,计算当前待写入的调试log占用的内存大小,并对所述写API接口进行加锁。
示范性的,在向通过所述写API接口向所述共享内存区并发写入各功能模块对应输出的调试log时,为了保证调试log并发写入共享内存区并对待写入的调试log进行有序的写入管理,可先计算当前写入的调试log占用的内存大小,根据内存大小更新控制信息存储区的当前写入地址,以获取下一条待写入的调试log的写入位置,为了防止多条调试log同时写入,破坏写入内容,在调试log写入同时需要对所述写API接口进行加锁。
子步骤S220:在所述当前待写入的调试log写入后,根据所述内存大小更新所述控制信息存储区中的所述当前写入地址和所述调试log数量,并对所述写API接口进行解锁。
示范性的,在当前的调试log写入后,根据当前写入的调试log占用的内存大小更新所述当前写入地址和所述调试log数量,并对所述写API接口进行解锁,以允许下一条调试log写入。
进一步的,如图3所示,对于上述步骤子步骤S210和S220还包括以下子步骤:
子步骤S211:对所述写API接口加锁时,设置所述当前待写入的调试log的写入线程的优先级为最高以使所述写入线程被优先处理。
示范性的,对所述写API接口加锁时,设置当前写入调试log的写入线程的优先级为最高以使所述写入线程被优先处理,防止被测试的嵌入式设备的处理器优先处理其他线程,导致写API接口被长时间锁住,影响各个功能模块输出的调试log写入共享内存的效率。
子步骤S212:解锁时,恢复所述写入线程的优先级。
可理解的,当前调试log的写入完成,对所述写API接口解锁时,恢复所述写入线程的优先级,以使该写入线程正常执行后续步骤。
步骤S300:通过所述读API接口从所述共享内存区批量读出对应功能模块的所述调试log,并通过所述Socket接口周期性发送至所述显示端。
当从共享内存区读出调试log时,利用读API接口批量读出共享内存区中已经写入的各个功能模块对应的调试log,然后,通过嵌入式设备的Socket接口周期性发送各个功能模块对应的调试log至显示端,通过显示端显示调试log。
示范性的,如图4所示,对于上述步骤S300所述的通过所述读API接口从所述共享内存区批量读出对应功能模块的所述调试log,还包括以下子步骤:
子步骤S310:对所述读API接口加锁后,获取所述共享内存区的当前写入地址和当前读出地址,以将所述当前写入地址和所述当前读出地址之间的所有调试log批量读出。
示范性的,从所述共享内存区批量读出调试log时,可先对所述读API接口加锁,以防止所述调试log读出时更新所述当前读出地址和所述调试log数量,同时,获取所述共享内存区中控制信息存储区的当前写入地址和当前读出地址,以将所述当前写入地址和所述当前读出地址之间的所有调试log读出至临时缓存区。
子步骤S320:在所述所有调试log读出后,更新所述控制信息存储区中的所述当前读出地址和所述调试log数量,然后对所述读API接口解锁。
示范性的,在所述所有调试log读出后,更新共享内存区中控制信息存储区的所述当前读出地址和所述调试log数量,并对所述读API接口解锁,以允许下一批调试log读出。
进一步的,如图5所示,对于上述步骤子步骤S310和S320还包括以下子步骤:
子步骤S311:对所述读API接口加锁时,设置当前待读出调试log的读出进程的优先级为最高以使所述读出进程被优先处理。
示范性的,对所述读API接口加锁时,设置当前读出调试log的读出进程的优先级为最高以使所述读出进程被优先处理,防止被测试的嵌入式设备的处理器优先处理其他读出进程,导致读API接口被长时间锁住,影响调试log从共享内存读出的效率。
子步骤S321:解锁时,恢复所述写入线程的优先级。
示范性的,当前调试log的读出完成,对所述读API接口解锁时,恢复所述读出进程的优先级,以使该读出进程正常执行后续步骤。
进一步的,在log调试过程中还存在一种特殊情况,即子步骤S310中所述获取所述共享内存区的当前写入地址和当前读出地址,以将所述当前写入地址和所述当前读出地址之间的所有调试log批量读出时,当前写入地址和所述当前读出地址可能相同,此时,应根据共享内存区中控制信息存储区记录的调试log数量判断当前共享内存区是否已满。示范性的,如图6所示,相应的子步骤如下:
子步骤S313:判断所述调试log数量是否为零。
获取所述共享内存区中控制信息存储区中的调试log数量,如果调试log数量不为零,则表示当前共享内存区已满,可执行子步骤S314;如果调试log数量为零,则表示当前共享内存区已空,可执行子步骤S315。
子步骤S314:读出所述调试log存储区的全部调试log,并更新所述控制信息存储区中所述读写控制信息。
示范性的,如果当前写入地址和当前读出地址相同,并且,调试log数量不为零,则当前共享内存区已满,被测试的嵌入式设备的各个功能模块输出的调试log通过写API接口写入到共享内存的写入速度大于调试log通过读API接口读出共享内存的读出速度。此时,暂时停止向所述共享内存区写入调试log,同时,读API接口将共享内存区的所有调试log读出(即共享内存区中调试log存储区的首地址和尾地址之间的所有内容),并更新共享内存区的控制信息存储区中的相应读写控制信息,例如,当前写入地址和当前读出地址更新为共享内存区的调试log存储区的首地址,调试log数量更新为零。
子步骤S315:取消对写API接口的加锁,以提高待写入所述共享内存区的调试log的写入速度。
示范性的,如果当前写入地址和当前读出地址相同,并且,调试log数量为零,则当前共享内存区已空,被测试的嵌入式设备的各个功能模块输出的调试log通过写API接口写入到共享内存的写入速度小于调试log通过读API接口读出共享内存的读出速度,此时,调试效率为最高。
进一步的,如果被测试的嵌入式设备的各个功能模块输出的调试log通过写API接口写入到共享内存的写入速度小于调试log通过读API接口读出共享内存的读出速度,可以取消对写API的加锁操作,以提高待写入共享内存区的调试log的写入速度,以使被测试的嵌入式设备的调试效率更高。
进一步的,对于上述步骤S300所述的通过所述Socket接口周期性发送所述调试log至所述显示端。即从所述共享内存区读出的调试log通过Socket接口周期性发送所述调试log至所述显示端。
可以理解,由于Socket连接遵循TCP协议,而TCP协议能为应用程序提供可靠的通信连接,使被测的嵌入式设备发送的字节流无差错地发往网络上的其他设备终端,因此,Socket接口可以快速的、高效的、可靠的发送大量的调试log至所述显示端。
本实施例的技术方案通过对嵌入式设备内预置一共享内存区和Socket接口,并对共享内存区预设一写API接口和读API接口。在log调试时,通过写API接口向共享内存区并发写入调试log,同时通过读API接口批量读出,在写入和读出时,利用加锁、解锁以及设置优先级的方式控制各个写入线程和读出线程,以使写入和读出并发进行,然后,通过Socket接口周期性发送所述调试log至所述显示端,以使显示端显示嵌入式设备输出的调试log的速度更快,输出结果更为可靠,同时,也使调试环境不受被测端与显示端距离的限制,实现高效快速的远距离测试。
实施例2
本实施例,参见图7,示出了本发明第二实施例一种适用于5G嵌入式设备的log调试装置的结构示意图。
适用于5G嵌入式设备的log调试装置200,包括:通信连接控制模块201、调试log写入模块202和调试log发送模块203。
通信连接控制模块201,用于通过所述Socket接口与用于显示调试log的显示端建立Socket连接;
调试log写入模块202,用于通过所述写API接口向所述共享内存区并发写入各功能模块对应输出的调试log;
调试log发送模块203,用于通过所述读API接口从所述共享内存区批量读出对应功能模块的所述调试log,并通过所述Socket接口周期性发送至所述显示端。
本实施例所述适用于5G嵌入式设备的log调试装置200,对应于上述实施例的嵌入式设备的log调试的方法,上述实施例的可选项同样适用于本实施例,故在此不再详述。
本实施例所述5G嵌入式设备,包括存储器以及处理器,所述存储器存储有计算机程序,所述处理器运行所述计算机程序以使所述嵌入式设备执行上述实施例的嵌入式设备的log调试方法。
本实施例,在log调试时,通过通信连接控制模块201、调试log写入模块202和调试log发送模块203协同作用,通过写API接口向共享内存区并发写入调试log,同时通过读API接口批量读出,然后,通过Socket接口周期性发送所述调试log至所述显示端,以使显示端显示嵌入式设备输出的调试log的速度更快,输出结果更为可靠,同时,也使调试环境不受被测端与显示端距离的限制,实现高效快速的远距离测试。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种适用于5G嵌入式设备的log调试方法,其特征在于,所述嵌入式设备包括至少一功能模块,所述嵌入式设备内预置共享内存区和Socket接口,所述共享内存区预设有写API接口和读API接口,该方法包括:
通过所述Socket接口与用于显示调试log的显示端建立Socket连接;
然后通过所述写API接口向所述共享内存区并发写入各功能模块对应输出的调试log;
通过所述读API接口从所述共享内存区批量读出对应功能模块的所述调试log,并通过所述Socket接口周期性发送至所述显示端。
2.根据权利要求1所述的适用于5G嵌入式设备的log调试方法,其特征在于,所述共享内存区包括控制信息存储区和调试log存储区;
所述控制信息存储区用于存储对所述调试log存储区进行读写控制的读写控制信息,所述读写控制信息包括当前写入地址、当前读出地址和已写入的调试log数量;
所述调试log存储区用于存储各功能模块对应输出的调试log。
3.根据权利要求2所述的适用于5G嵌入式设备的log调试方法,其特征在于,通过所述写API接口向所述共享内存区并发写入调试log包括:
获取各功能模块输出的待写入调试log,计算当前待写入的调试log占用的内存大小,并对所述写API接口进行加锁;
在所述当前待写入的调试log写入后,根据所述内存大小更新所述控制信息存储区中的所述当前写入地址和所述调试log数量,并对所述写API接口进行解锁。
4.根据权利要求2所述的适用于5G嵌入式设备的log调试方法,其特征在于,通过所述读API接口从所述共享内存区批量读出调试log包括:
对所述读API接口加锁,并获取所述共享内存区的当前写入地址和当前读出地址,以将所述当前写入地址和所述当前读出地址之间的所有调试log批量读出;
在所述所有调试log读出后,更新所述控制信息存储区中的所述当前读出地址和所述调试log数量,然后对所述读API接口解锁。
5.根据权利要求3所述的适用于5G嵌入式设备的log调试方法,其特征在于,还包括:
对所述写API接口加锁时,设置所述当前待写入的调试log的写入线程的优先级为最高以使所述写入线程被优先处理;
然后解锁时,将所述写入线程的优先级恢复至原优先级。
6.根据权利要求4所述的适用于5G嵌入式设备的log调试方法,其特征在于,还包括:
对所述读API接口加锁时,设置当前待读出的调试log的读出进程的优先级为最高以使所述读出进程被优先处理;
然后解锁时,将所述读出进程的优先级恢复至原优先级。
7.根据权利要求4所述的适用于5G嵌入式设备的log调试方法,其特征在于,还包括:
判断所述当前写入地址和所述当前读出地址是否相同以及所述调试log数量是否为零;
若所述当前写入地址和当前读出地址相同且所述调试log数量不为零,则读出所述调试log存储区的全部调试log,并更新所述控制信息存储区中所述读写控制信息;
若所述当前写入地址和当前读出地址相同且所述调试log数量为零,则取消对写API接口的加锁,以提高待写入所述共享内存区的调试log的写入速度。
8.一种适用于5G嵌入式设备的log调试装置,其特征在于,所述嵌入式设备包括至少一功能模块,所述嵌入式设备内预置共享内存区和Socket接口,所述共享内存区预设有写API接口和读API接口,该装置包括:
通信连接控制模块,用于通过所述Socket接口与用于显示调试log的显示端建立Socket连接;
调试log写入模块,用于通过所述写API接口向所述共享内存区并发写入各功能模块对应输出的调试log;
调试log发送模块,用于通过所述读API接口从所述共享内存区批量读出对应功能模块的所述调试log,并通过所述Socket接口周期性发送至所述显示端。
9.一种5G嵌入式设备,其特征在于,所述5G嵌入式设备包括存储器以及处理器,所述存储器存储有计算机程序,所述处理器运行所述计算机程序以使所述5G嵌入式设备执行权利要求1至7任一项所述的适用于5G嵌入式设备的log调试方法。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序在处理器上运行时执行权利要求1至7任一项所述的适用于5G嵌入式设备的log调试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911380014.XA CN111143218B (zh) | 2019-12-27 | 2019-12-27 | 适用于5G嵌入式设备的log调试方法、装置和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911380014.XA CN111143218B (zh) | 2019-12-27 | 2019-12-27 | 适用于5G嵌入式设备的log调试方法、装置和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143218A true CN111143218A (zh) | 2020-05-12 |
CN111143218B CN111143218B (zh) | 2024-03-26 |
Family
ID=70521056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911380014.XA Active CN111143218B (zh) | 2019-12-27 | 2019-12-27 | 适用于5G嵌入式设备的log调试方法、装置和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143218B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112542208A (zh) * | 2020-12-29 | 2021-03-23 | 深圳市芯天下技术有限公司 | Sd nand测试方法、装置、存储介质和终端 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5652885A (en) * | 1993-05-25 | 1997-07-29 | Storage Technology Corporation | Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control |
US20070168994A1 (en) * | 2005-11-03 | 2007-07-19 | International Business Machines Corporation | Debugging a computer program in a distributed debugger |
CN101349992A (zh) * | 2008-09-18 | 2009-01-21 | 浙江大学 | 嵌入式远程调试器端jdwp通讯连接代理实现方法 |
CN102799490A (zh) * | 2011-05-27 | 2012-11-28 | 北京神州泰岳软件股份有限公司 | 一种实现一对多的进程间通信的系统和方法 |
CN103218294A (zh) * | 2013-04-16 | 2013-07-24 | 华为技术有限公司 | 一种嵌入式系统的调试方法、调试转换装置和系统 |
CN103577209A (zh) * | 2012-08-06 | 2014-02-12 | 浙江大华技术股份有限公司 | 一种基于嵌入式设备的应用程序远程在线调试方法及装置 |
CN103631936A (zh) * | 2013-12-06 | 2014-03-12 | 北京首钢自动化信息技术有限公司 | 一种管理共享内存的方法 |
CN104503907A (zh) * | 2014-12-15 | 2015-04-08 | 深圳市盛弘电气有限公司 | 一种基于linux系统的应用程序远程调试方法及系统 |
CN105740120A (zh) * | 2014-12-11 | 2016-07-06 | 中国科学院软件研究所 | 基于共享内存的软件运行过程实时监测与控制方法及系统 |
CN106161074A (zh) * | 2015-04-21 | 2016-11-23 | 中兴通讯股份有限公司 | 一种云终端日志处理方法、装置及系统 |
CN106445640A (zh) * | 2016-10-20 | 2017-02-22 | 南京南瑞继保电气有限公司 | 一种嵌入式虚拟装置运行方法和系统 |
CN108509327A (zh) * | 2018-04-20 | 2018-09-07 | 深圳市文鼎创数据科技有限公司 | 一种日志输出方法、装置、终端设备和存储介质 |
CN109246120A (zh) * | 2018-09-29 | 2019-01-18 | 中国船舶重工集团公司第七〇九研究所 | 一种嵌入式设备的远程调试方法及其系统 |
-
2019
- 2019-12-27 CN CN201911380014.XA patent/CN111143218B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5652885A (en) * | 1993-05-25 | 1997-07-29 | Storage Technology Corporation | Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control |
US20070168994A1 (en) * | 2005-11-03 | 2007-07-19 | International Business Machines Corporation | Debugging a computer program in a distributed debugger |
CN101349992A (zh) * | 2008-09-18 | 2009-01-21 | 浙江大学 | 嵌入式远程调试器端jdwp通讯连接代理实现方法 |
CN102799490A (zh) * | 2011-05-27 | 2012-11-28 | 北京神州泰岳软件股份有限公司 | 一种实现一对多的进程间通信的系统和方法 |
CN103577209A (zh) * | 2012-08-06 | 2014-02-12 | 浙江大华技术股份有限公司 | 一种基于嵌入式设备的应用程序远程在线调试方法及装置 |
CN103218294A (zh) * | 2013-04-16 | 2013-07-24 | 华为技术有限公司 | 一种嵌入式系统的调试方法、调试转换装置和系统 |
CN103631936A (zh) * | 2013-12-06 | 2014-03-12 | 北京首钢自动化信息技术有限公司 | 一种管理共享内存的方法 |
CN105740120A (zh) * | 2014-12-11 | 2016-07-06 | 中国科学院软件研究所 | 基于共享内存的软件运行过程实时监测与控制方法及系统 |
CN104503907A (zh) * | 2014-12-15 | 2015-04-08 | 深圳市盛弘电气有限公司 | 一种基于linux系统的应用程序远程调试方法及系统 |
CN106161074A (zh) * | 2015-04-21 | 2016-11-23 | 中兴通讯股份有限公司 | 一种云终端日志处理方法、装置及系统 |
CN106445640A (zh) * | 2016-10-20 | 2017-02-22 | 南京南瑞继保电气有限公司 | 一种嵌入式虚拟装置运行方法和系统 |
CN108509327A (zh) * | 2018-04-20 | 2018-09-07 | 深圳市文鼎创数据科技有限公司 | 一种日志输出方法、装置、终端设备和存储介质 |
CN109246120A (zh) * | 2018-09-29 | 2019-01-18 | 中国船舶重工集团公司第七〇九研究所 | 一种嵌入式设备的远程调试方法及其系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112542208A (zh) * | 2020-12-29 | 2021-03-23 | 深圳市芯天下技术有限公司 | Sd nand测试方法、装置、存储介质和终端 |
CN112542208B (zh) * | 2020-12-29 | 2021-10-29 | 芯天下技术股份有限公司 | Sd nand测试方法、装置、存储介质和终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111143218B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160300044A1 (en) | Anti-debugging method | |
CN111611145B (zh) | 崩溃信息收集方法、装置、存储介质及电子设备 | |
CN111124288B (zh) | 一种vpd存储管理方法、装置、设备及可读存储介质 | |
CN103365701A (zh) | 一种模拟读卡器的工作方法和模拟通信系统 | |
US10353370B2 (en) | Programmable logic controller, control method thereof and contorl program thereof | |
CN110888603B (zh) | 高并发数据写入方法、装置、计算机设备及存储介质 | |
CN113220229B (zh) | 一种用于分布式控制系统的在线式i/o无扰组态方法 | |
CN110928935A (zh) | 数据的访问命令处理方法、装置和系统 | |
CN115269544A (zh) | 一种数据库集群升级方法、装置、电子设备及存储介质 | |
CN111666184B (zh) | 固态驱动器ssd硬盘测试方法、装置及电子设备 | |
CN106952426B (zh) | 数据处理方法及装置 | |
CN112148337A (zh) | 一种固件升级方法及装置 | |
CN111143218B (zh) | 适用于5G嵌入式设备的log调试方法、装置和可读存储介质 | |
CN106547485B (zh) | 数据迁移方法及装置 | |
CN109522174B (zh) | 控制adb使能的方法、装置、终端及存储介质 | |
CN114936135A (zh) | 一种异常检测方法、装置及可读存储介质 | |
CN114356446A (zh) | 一种进程间事件的处理方法、装置、设备以及存储介质 | |
CN113805854A (zh) | 基于Linux系统的应用层Hook实现方法、系统、装置及存储介质 | |
US20170322893A1 (en) | Computing node to initiate an interrupt for a write request received over a memory fabric channel | |
CN113986592A (zh) | 日志记录方法、装置、终端设备及可读存储介质 | |
CN108874560B (zh) | 进行通信的方法和通信设备 | |
CN113646744A (zh) | 针对未对齐的存储器操作将存储器访问加宽至对齐的地址 | |
CN112231290A (zh) | 一种本地日志的处理方法、装置、设备及存储介质 | |
CN206312120U (zh) | 一种移动设备软件更新设备 | |
CN113760631A (zh) | 页面加载时长确定方法、装置、设备和存储介质 |
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 |