[go: up one dir, main page]

CN115809175A - 一种用于便携式设备的出厂后调试的方法及便携式设备 - Google Patents

一种用于便携式设备的出厂后调试的方法及便携式设备 Download PDF

Info

Publication number
CN115809175A
CN115809175A CN202211434488.XA CN202211434488A CN115809175A CN 115809175 A CN115809175 A CN 115809175A CN 202211434488 A CN202211434488 A CN 202211434488A CN 115809175 A CN115809175 A CN 115809175A
Authority
CN
China
Prior art keywords
log information
portable device
debugging
string
data structure
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.)
Pending
Application number
CN202211434488.XA
Other languages
English (en)
Inventor
李撑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Heng Xuan Technology Beijing Co ltd
Original Assignee
Heng Xuan Technology Beijing Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Heng Xuan Technology Beijing Co ltd filed Critical Heng Xuan Technology Beijing Co ltd
Priority to CN202211434488.XA priority Critical patent/CN115809175A/zh
Publication of CN115809175A publication Critical patent/CN115809175A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种用于便携式设备的出厂后调试的方法及便携式设备,包括在便携式设备以外的存储位置预先存储用于对第一预设数据结构的第一日志信息进行解析的字符串字典,其中,第一预设数据结构包含信息头、参数个数、日志信息字符串偏移地址和调试所生成的参数数据,而不包含日志信息字符串;在用户对便携式设备进行出厂后调试的情况下由便携式设备按照第一预设数据结构生成并输出第一日志信息,而不输出日志信息字符串;由便携式设备将第一日志信息传输到调试终端,由调试终端,获取并利用字符串字典对第一日志信息进行解析并打印输出第三日志信息。如此,降低了便携式设备的资源占用空间,降低了便携式设备端的运行功耗。

Description

一种用于便携式设备的出厂后调试的方法及便携式设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种用于便携式设备的出厂后调试的方法及便携式设备。
背景技术
随着技术的发展,在便携式设备例如可穿戴设备中,小型嵌入式系统及复杂软件得到广泛的应用。而这些小型嵌入式系统及复杂软件在设备出厂前通常需要进行调试,调试过程中可能会产生大量的调试日志信息。在现有技术中,一种方式是将出厂前的调试日志信息全部打包到设备的二进制文件(bin文件)中,并烧录到便携式设备的芯片中,那么将会需要很大容量的Flash存储器,成本和设备体积都会大大增加。在另一种现有技术中,将出厂前的调试信息进行精简后烧入交付产品,或者不在最终交付的产品中包含调试信息,这将导致无法根据设备中的调试信息,对用户使用过程中遇到的问题进行快速精准地定位。另外,在便携式设备出厂后的调试过程中,按照现有技术进行调试信息输出调试日志信息时,当所需输出的调试信息较多时,一方面可能过度占用处理器和接口资源,影响设备运行的正常时序,增加功耗,同时还可能在从接口输出时,导致调试信息丢失。此外,当调试信息需要在便携式设备中存储时,也将需要大量存储空间。上述阻碍便携式设备小型化和低功耗的技术缺陷都是现有技术所尚未解决的。
发明内容
提供了本申请以解决现有技术中存在的上述问题。需要一种用于便携式设备的出厂后调试的方法及便携式设备,其能够减小写入便携式设备的bin文件的大小,降低对设备存储容量的需求,并且降低用户在对便携式设备进行出厂后调试时的调试日志信息处理量及信息输出量,从而减少对处理器和存储空间的占用,避免调试日志信息的丢失,还可以降低便携式设备调试时的功耗。
根据本申请的第一方案,提供一种用于便携式设备的出厂后调试的方法,在所述便携式设备以外的存储位置预先存储用于对第一预设数据结构的第一日志信息进行解析的字符串字典,其中,所述第一预设数据结构包含信息头、参数个数、日志信息字符串偏移地址和调试所生成的参数数据,而不包含日志信息字符串。在用户对所述便携式设备进行出厂后调试的情况下由所述便携式设备按照第一预设数据结构生成并输出第一日志信息,而不输出日志信息字符串。由所述便携式设备将所述第一日志信息传输到调试终端。由所述调试终端,获取并利用所述字符串字典对所述第一日志信息进行解析并打印输出第三日志信息。
根据本申请的第二方案,提供一种便携式设备,其特征在于,在用户对所述便携式设备进行出厂后调试的情况下,按照本申请各个实施例所述的用于便携式设备的出厂后调试的方法生成并打印输出日志信息。
与现有技术相比,本申请实施例的有益效果在于:
根据本申请实施例的用于便携式设备的出厂后调试的方法,在便携式设备以外的存储位置预先存储用于对第一预设数据结构的第一日志信息进行解析的字符串字典,比如,将字符串字典存储在电脑端,而不是打包到bin文件一并烧入便携式设备,因此可以大大降低对便携式设备存储容量的要求。进一步地,在用户进行设备出厂后的调试过程中,按照预设的数据结构生成并输出调试日志信息,其中,预设的数据结构包含信息头、参数个数、日志信息字符串偏移地址和调试所生成的参数数据,而不包含日志信息字符串,也即,无需通过对字符串中数据格式等进行解析来生成并输出传统的包含指定格式数据的调试日志字符串,在需要向用户呈现调试日志字符串时,可以由便携式设备将按照预设的数据结构生成的调试日志信息传输到调试终端,并由调试终端从所存储的位置获取字符串字典,并利用字符串字典对该调试日志信息进行解析并打印输出完整格式的调试日志信息。上述便携式设备的出厂后调试的方法,在进行调试日志信息输出时无需过多占用处理器资源,同时还减少了需要传输和/或存储的调试日志信息的数据量,因此能够降低对存储资源的占用,避免调试日志信息丢失,同时可以降低设备调试时的功耗。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相似的部件。具有字母后缀或不同字母后缀的相同附图标记可以表示相似部件的不同实例。附图大体上通过举例而不是限制的方式示出各种实施例,并且与说明书以及权利要求书一起用于对所公开的实施例进行说明。这样的实施例是例证性的,而并非旨在作为本装置或方法的穷尽或排他实施例。
图1示出根据本申请实施例的用于便携式设备的出厂后调试的方法流程图。
图2示出本申请实施例的示出第一日志信息的第一预设数据结构的示意图。
图3示出根据本申请实施例的用于便携式设备的出厂后调试的方法中生成并存储字符串字典的流程图。
图4示出根据本申请实施例的用于便携式设备的出厂后调试的方法中对第四日志信息中的字符串进行标识的示意图。
图5示出根据本申请实施例的用于便携式设备的出厂后调试的方法中将第四日志信息中的字符串集中存储的示意图。
图6示出根据本申请实施例的用于便携式设备的出厂后调试的方法中将集中存储的第四日志信息中的字符串从便携式设备的可执行文件中剥离并生成bin文件的示意图。
图7示出根据本申请实施例的对第一日志信息进行解析的流程示意图。
具体实施方式
为使本领域技术人员更好的理解本申请的技术方案,下面结合附图和具体实施方式对本申请作详细说明。下面结合附图和具体实施例对本申请的实施例作进一步详细描述,但不作为对本申请的限定。
本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分。“包括”或者“包含”等类似的词语意指在该词前的要素涵盖在该词后列举的要素,并不排除也涵盖其他要素的可能。本申请中结合附图所描述的方法中各个步骤的执行顺序并不作为限定。只要不影响各个步骤之间的逻辑关系,可以将数个步骤整合为单个步骤,可以将单个步骤分解为多个步骤,也可以按照具体需求调换各个步骤的执行次序。
图1示出根据本申请实施例的用于便携式设备的出厂后调试的方法流程图。在步骤S101中,在所述便携式设备以外的存储位置预先存储用于对第一预设数据结构的第一日志信息进行解析的字符串字典,其中,所述第一预设数据结构包含信息头、参数个数、日志信息字符串偏移地址和调试所生成的参数数据,而不包含日志信息字符串。其中,所述便携式设备包括但不限于智能手机、Pad、智能手表、智能手环、智能眼镜、头盔、耳机以及其他小型可穿戴设备等。通常情况下,便携式设备出厂前,在对便携式设备进行调试(debug)的过程中,会生成大量的调试日志信息(log信息),log信息由字符串和格式化数据组成,其中,字符串占据log信息大部分的存储容量。在现有技术中,会将上述包含字符串的log信息作为一个整体打包到bin文件并烧入便携式设备,以便在设备出厂后调试过程中,边调试边对log信息字符串中诸如数据格式标识符等进行解析,并将调试生成的数据填入字符串,并生成包含指定格式数据的调试日志字符串信息以向调试人员呈现。上述传统的调试方法,当出厂前的调试日志信息量较大时,对存储容量的需求可能阻碍便携式设备的小型化,当日志信息量过大时,甚至可能无法打包到bin文件并烧进设备,或者需要精简后再烧进设备,这都可能在后续设备出厂后调试时进行调试日志信息的解析输出造成损失。与此不同,在根据本申请实施例的方法中,将能够用于第一日志信息解析的字符串字典预先存储在便携式设备以外的存储位置,如此可以大大降低对便携式设备存储容量的要求,并且由于存储容量不受限,可以不对log信息进行精简,而是利用尽可能丰富的调试日志信息生成字符串字典,使得更多种类的第一日志信息能够基于字符串字典进行解析。在一些实施例中,字符串字典可以预先存储的位置包括但不限于云端的服务器,本申请对此不做具体限制,只要便携式设备出厂后调试过程中能够便利地获取即可。
如上所述,第一日志信息采用第一预设数据结构,具体地,图2示意性地示出根据本申请实施例的第一日志信息的第一预设数据结构。其中,Trace可与调试视为同一概念,指代生成并将log信息输出/存储的操作。从图2可见,第一预设数据结构trace_info_t包含信息头、参数个数count、日志信息字符串偏移地址addr和调试所生成的参数数据(未示出,将在调试时实时生成),并且不包含日志信息字符串。图2示出的日志信息字符串偏移地址addr:17;//127KB trace space support,表示addr为17bit,因此可以寻址127KB的存储空间。值得注意的是,日志信息字符串偏移地址addr是对应于特定日志信息字符串的存储位置的相对地址,因此,在对特定日志信息字符串寻址时,应在“初始地址”的基础上,通过日志信息字符串偏移地址addr所定义的相对地址来查找。在其他实施例中,也可以根据基于出厂前调试信息所生成的字符串字典的实际大小来调整日志信息字符串偏移地址的位数,以寻址与字符串字典相对应的存储空间范围。在图2中,信息头示例性地以6bit的crc(循环校验)来定义,在另一些实施例中,信息头并不一定仅限于进行循环校验,而是可以按需对其不同的比特编码进行自定义。图2中参数个数count为4bit,可以表示0-15共16种参数个数的情况,其与参数数据相对应,例如当参数个数count为0时,表示没有参数数据,参数个数count为2时,表示跟有2个参数数据,等等。在一些实施例中,参数个数count也可以设置为4bit以外的值,但对于便携式设备调试日志信息而言,最多15个参数可以满足一般情况下的调试日志信息输出需求。由此可见,当第一日志信息中不包含参数,即,参数个数count为0的情况下,其长度为32bit,即4字节;当第一日志信息包含2个参数,并且在各个参数均以4字节表示的情况下,第一日志信息的长度将为4+2×4=12字节。对于上述信息头、参数个数count和日志信息字符串偏移地址addr的bit位数和编码方式,本申请不做具体限制。
在步骤S102中,在用户对所述便携式设备进行出厂后调试的情况下,由所述便携式设备按照第一预设数据结构生成并输出第一日志信息,而不输出日志信息字符串。由于第一预设数据结构不包含日志信息字符串,因此,便携式设备按照第一预设数据结构所生成的第一日志信息相较原始的包含字符串的调试日志信息而言,数据量将大大减小,并且,原始log的字符串长度越长,具有第一预设数据结构的第一日志信息将越具有优势。仅作为示例,按照图2所示的第一预设数据结构trace_info_t,任意一条第一日志信息都可以用4字节的trace_info表示。例如,对于下面这条原始log输出:REL_LOG(0,"process_echo_resrxdata:rxlen=%d\n",rxlen);按照原有完整的输出/存储方式,需要占用36字节空间,然而,以第一预设数据结构的方式输出/存储时,由于其包含1个参数(参数个数为1),因此需占用4+1×4=8字节空间,远小于36字节。根据发明人的统计,一般程序的一条log信息平均包含100字节左右,并且通常情况下不带参数或者参数不超过4个,因此,根据本申请实施例的第一预设数据结构通常只需要4+4×n个字节,这里n为参数个数,一般不超过4。由此,在调试日志信息生成后存储至便携式设备中特定用于调试日志信息的存储区域的情况下,采用第一预设数据结构的第一日志信息可以降低对该存储区域的容量的要求。在另一些实施例中,调试日志信息还可能通过诸如UART(Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置)串口等调试接口实时输出,在这种情况下,由于需要输出的数据量显著降低,因此可以避免发生由数据量过大,调试接口无法及时处理而导致的调试日志信息丢失的状况。接下来,在步骤S103中,可以由所述便携式设备将所述第一日志信息传输到调试终端。仅作为示例,例如可以通过UART等调试接口将第一日志信息实时地传输到调试终端,如上所述,在数据量大大减小的情况下,不易造成数据堆积,因此也不易发生调试接口数据丢失。在另一些实施例中,还可以通过便携式设备中的WiFi、蓝牙等无线通信手段,或者以其他的无线或有线的方式来将第一日志信息传输到调试终端,其中,调试终端例如可以是具有显示部的电脑,Pad等,本申请对此不做限制。
然后,在步骤S104中,可以由所述调试终端获取并利用所述字符串字典对从便携式设备获取的所述第一日志信息进行解析并打印输出第三日志信息。在此,第三日志信息即为向进行设备调试的用户呈现的完整的包含字符串的完整的调试日志信息。
在本申请实施例中,由于在进行出厂后调试时,仅输出第一日志信息而不输出日志信息字符串,因此,无需由便携式设备实时地对字符串进行解析,而是在步骤S104中,由算力更强大的调试终端在从诸如云端服务器获取字符串字典的基础上,对从便携式设备获取的第一日志信息进行快捷地解析,包括根据对字符串中的关于各个参数的数据格式的定义来对调试过程所生成的参数数据进行相应的格式转换之后,再嵌入日志信息字符串中的恰当位置,从而生成完整的包含字符串的调试日志信息,然后打印输出并向执行设备调试的用户呈现。仅以便携式设备为耳机为例,如果由耳机实时地解析字符串并生成完整的包含字符串和参数数据的调试日志信息,由于解析过程将会消耗大量处理器带宽,因此,很可能导致耳机声音出现卡顿等。因此,根据本申请实施例的方法通过避免由便携式设备对字符串进行实时解析,还能够缓解在出厂后调试时过度占用处理器带宽而导致其他程序运行时序受影响的问题。此外,上述方法还能够降低调试过程中便携式设备的功率消耗。
图3示出根据本申请实施例的用于便携式设备的出厂后调试的方法中生成并存储字符串字典的流程图。
如图3所示,在步骤S301中,在所述便携式设备出厂前调试的过程中,将所生成的第四日志信息中的字符串进行标识。在出厂前,对便携式设备进行调试,调试的过程中会生成丰富的log信息,即,第四日志信息,这些log信息可以用于设备出厂后的调试,比如,追踪便携式设备出现特定故障现象的原因。在出厂前调试的过程中,将生成的第四日志信息中的字符串进行标识,以便于在编译时使得链接器能够识别出所有的第四日志信息中的字符串,并进行相应的处理。本申请对于标识第四日志信息中的字符串的方式不做限定,只要是编译器能够识别的标识即可。例如可以将所有的第四日志信息中的字符串加上特定的section属性,以便于链接器识别。示例性地,图4示出对第四日志信息中的字符串进行标识的示意图。比如,可以如图4所示,在编译器编译的过程中,通过图4中语句401所示的宏转换,将第四日志信息中的字符串str进行标识处理,以便为每条第四日志信息中的字符串添加如图中语句402所示的独立section属性,在具有该section属性的字符串均以.trc_str开头,以此实现对第四日志信息中的字符串的标识。
接下来,在步骤S302中,由链接器基于所述标识将所述第四日志信息中的字符串集中存储于基于第一起始地址计算得到的存储空间。图5示出根据本申请实施例的将第四日志信息集中存储的示意图。如图5所示,在链接器的link脚本中例如可以将第一起始地址RODDATA_ADDRESS设定为0Xfffc0000,实际上,上述第一起始地址是便携式设备的存储空间中并不存在的假地址,因此,链接器在将标识后的第四日志信息中的字符串,即,所有以.trc_str开头的section基于link脚本,以第一起始地址0Xfffc0000开始进行集中存储后,其并不会被实际烧录到便携式设备的存储空间中。在此基础上,在生成Trace_info_t.addr(日志信息字符串偏移地址)时,只需由第一日志信息中字符串在存储位置中的实际地址减去所述第一起始地址即可得到。因此,通过将第一起始地址设置为便携式设备中并不存在的地址,可以使得大量的第四日志信息中的字符串不烧入便携式设备,同时能够支持对字符串的快速精准寻址。
在步骤S303中,将集中存储的第四日志信息中的字符串从所述便携式设备的可执行文件中剥离并生成bin文件。仅作为示例,如图6所示,在生成bin文件的过程中,例如可以利用OBJCOPY工具将带有.trc_str标记并集中存储的第四日志信息中的字符串从链接器生成的可执行文件中剥离,并将基于可执行文件的其余部分生成的bin文件烧录到便携式设备用于存储程序的诸如flash的存储器中。其中,可执行文件对于不同的操作系统可以采用不同的格式,例如对于Linux系统,可以是ELF文件等,本申请对此不做限制。具体地,如图6中的语句601所示,-R.trc_str表示将具有.trc_str标记并集中存储的第四日志信息中的字符串从链接器生成的ELF文件中移除,-O binary表示将ELF文件转成bin文件。如此,所生成的bin文件中不含有日志信息字符串,bin文件规模被大大压缩,根据本申请发明人的统计,通过将被标识的第四日志信息的字符串从便携式设备的可执行文件中剥离,可以将最终烧入设备的bin文件大小缩小至约70%-85%,因此可以大幅降低对便携式设备flash容量的要求,有利于设备的小型化和成本的降低。
与步骤S303不限定执行顺序地,在步骤S304中,基于集中存储的第四日志信息中的字符串,生成并存储用于对所述第一日志信息进行解析的所述字符串字典。如图6中的语句602所示,例如可以利用OBJCOPY工具从ELF文件中将.trc_str及其他用于trc解析的section抽离出独立的.str文件作为trace解析数据库,以生成并存储字符串字典,由于该字符串字典包含便携式设备调试过程中生成的全部log信息,因此其可以用于对出厂后调试过程中生成的第一日志信息进行解析。
在现有技术中,通常将出厂前调试所生成的log信息与其他可执行程序一起打包到可执行文件中,并由可执行文件生成包含烧录到便携式设备中的bin文件,这样,便携式设备在出厂后的使用过程中log功能打开的状态下,或在进行调试的过程中,将会基于bin文件中的log信息中的字符串对所生成的log数据进行解析,并生成完整的log信息,通常这些log信息会存储在便携式设备中的存储器中。正因如此,在log功能打开时,特别是经过长时间累积,所生成的日志文件将大量占用设备存储空间,严重时可能导致设备性能下降,因此有时用户可能将log功能关闭,这种情况下则完全不生成log信息,也就不能记录设备运行过程中随时出现的问题,因此,也就无法通过log信息发现设备的漏洞,或者,当设备故障时,也就无法根据之前记录的log信息进行故障排查和检测维修。而在根据本申请实施例的方法中,由于大量占用存储的第四日志信息中的字符串并不烧入便携式设备,因此,无需对log信息进行任何精简,在从可执行文件中剥离后可以尽可能完整地保留,并且可以据此生成丰富的字符串字典,用于对设备出厂后生成的调试日志信息进行解析,有利于发现设备漏洞或进行故障定位和检修。
在本申请的一些实施例中,如图2所示,所述第一预设数据结构还可以包含调试线程ID,在进行出厂后调试处理时,程序可能多线程运行,每个线程都有可能去打印输出对应的log信息,因此,基于所述调试线程ID,可以使得用户在调试时知晓正在处理的log信息是哪个线程打印输出的。在另一种实施例中,如图2中的语句21所示,所述信息头还可以包含所述第一日志信息的时间戳信息timestamp,和/或校验信息crc,其中,所述校验信息crc例如可以用于验证所述第一日志信息的正确性,比如,在解析时,按照LOG_DATA_T结构体取出数据,判断trace_head_t.crc和trace_info_t.crc和是否正确。在另一些实施例中,如果希望具有更快的解析速度,可以不对信息头中的数据位进行处理,例如可以将时间戳信息timestamp和校验信息crc分别设置为固定的值,例如0xBE和0x2A,如此,不需要负责的运算,通过简单的比对,即可在判断trace_head_t.crc和trace_info_t.crc是否正确,在正确的情况下,可以认为该信息为采用了第一预设数据结构的第一日志信息,可以执行与本申请的第一预设数据结构对应的解析方法来进行后续的处理。
图7示出根据本申请实施例的对第一日志信息进行解析的流程示意图。如图7所示,在基于预先存储的字符串字典对所述第一日志信息进行解析时,首先可以在步骤S701中,基于所述第一日志信息中的所述日志信息字符串偏移地址,从所述字符串字典中取出对应的日志信息字符串。仅作为示例,假设在前序步骤中生成并存储的字符串字典为out.str,通过调试接口输出或从便携式设备存储空间传输至调试终端的第一日志信息为raw格式的数据,即,需要依据字符串字典out.str对第一日志信息log.raw进行解析。在log.raw包含校验位等信息的情况下,可以首先对log.raw进行校验在校验结果正确的情况下,将log.raw中的日志信息字符串偏移地址trace_info_t.addr作为offset,从字符串字典out.str中的offset位置取出对应的日志信息字符串,该字符串即为实际要输出的完整的log信息中的字符串。
在步骤S702中,进一步地,可以结合所述参数个数,将所述参数数据按照所述日志信息字符串所指示的数据格式依序填入,以生成第三日志信息并打印输出。具体地,例如可以从trace_info_t.count中取出该第一日志信息的参数个数count,并从trace_info_t的尾部取出count个字符(word),作为该第一日志信息中实际参数数据,基于在步骤S701中取出的对应的日志信息字符串,例如按照该字符串中所指示的各个参数的数据格式,依序填入各个参数数据,并将按上述方式装配后生成的包含字符串信息的完整的第三日志信息通过printf等方式打印输出,以向进行设备调试的用户呈现。
通过如上所述的对第一日志信息进行解析的流程,可以在调试终端利用便于获取的包含丰富设备调试信息的字符串字典,来对从便携式设备获取的第一日志信息进行解析,并且由于第一日志信息采用第一预设数据结构,数据量很小,传输时间很短,并且调试终端的算力资源很强,因此,能够在不过度占用便携式设备的接口和处理器资源的情况下,便捷地完成完整的调试日志信息的输出和呈现。
在本申请的一些实施例中,所述字符串字典可以存储于云端。具体地,字符串字典在生成时可以直接通过诸如串口等输出到电脑端,然后可以存储到特定位置或文件系统,也可以通过网络来传输并存储于云端,以便于用户在进行便携式设备出厂后的调试时便利地将字符串字典下载到本地,并用于对第一日志信息进行解析。如此,将原本需要在设备/产品端(可穿戴设备或其他产品)解析、存储/传输的日志信息,转移到PC端/云端(具有丰富的算力资源)进行存储及解析,如此可以大大降低便携式设备的存储和处理器资源的占用。
在本申请的一些实施例中,所述方法进一步包括在所述便携式设备出厂后调试并输出日志信息时,按照第二预设数据结构输出第二日志信息,其中,所述第二预设数据结构为常规log信息数据结构,并包含日志信息字符串以及符合所述日志信息字符串所指示的数据格式的调试所生成的参数数据。如此,在需要的情况下,可以将特定的调试日志信息预先在打包到bin文件中并烧入便携式设备,以支持在设备出厂后能够按照第二预设数据结构输出第二日志信息。仅作为示例,可以将“process_echo_res rxdata:rxlen=%d”字符串包含在bin文件中,那么在出厂后调试时即可按照常规log信息数据结构输出第二日志信息REL_LOG(0,"process_echo_res rxdata:
rxlen=%d\n",rxlen)。,如此,可以使得特定的调试日志信息能够按照传统的调试方式进行打印输出。
在本申请的一些实施例中,所述方法进一步包括:在所述便携式设备出厂后调试并输出日志信息时,由标识位指示按照第一预设数据结构输出第一日志信息,或按照第二预设数据结构输出第二日志信息。其中,所述标识位用于表示是以第一预设数据结构输出第一日志信息还是以第二预设数据结构输出第二日志信息,比如,以0xBE作为标识位用于标识trace_head_t.crc,以0x2A标识trace_info_t.crc,在校验的过程中,通过标识出0xBE和0x2A即可判断是按照第一预设数据结构输出第一日志信息,从而按照第一预设数据结构进行解析即可。
在本申请的一些实施例中,所述方法还包括:所述第一日志信息经由所述便携式设备的调试接口输出,或输出到所述便携式设备的预设存储区。具体地,所述调试接口有可能是UART等串口,也可能是其他接口,本申请对此不做限制。此外,有些便携式设备由于体积等限制条件而不具有调试接口,此时,可以直接将第一日志信息输出到便携式设备的预设存储区。比如,在便携式设备中专门设置一个区域作为预设存储区用于存储第一日志信息。由于本申请实施例提供的第一日志信息是以第一预设数据结构的形式存储的,不包含日志信息字符串,因此,即使在较长时间段内在便携式设备的预设存储区存储第一日志信息,也不会出现日志信息字符串数量量过快增长,从而导致log数据溢出而丢失的问题,也避免了由此产生的功耗过大的问题等。
在本申请的一些实施例中,还提供一种便携式设备,在用户对所述便携式设备进行出厂后调试的情况下,按照本申请各个实施例所述的用于便携式设备的出厂后调试的方法生成并打印输出日志信息。在用户进行设备出厂后的调试过程中,按照预设的数据结构生成并输出调试日志信息,其中,预设的数据结构包含信息头、参数个数、日志信息字符串偏移地址和调试所生成的参数数据,而不包含日志信息字符串,在需要向用户呈现调试日志字符串时,可以由便携式设备将按照预设的数据结构生成的调试日志信息传输到调试终端,并由调试终端从所存储的位置获取字符串字典,并利用字符串字典对该调试日志信息进行解析并打印输出完整格式的调试日志信息。在进行调试日志信息输出时无需过多占用处理器资源,同时还减少了需要传输和/或存储的调试日志信息的数据量,因此能够降低对存储资源的占用,避免调试日志信息丢失,同时可以降低设备调试时的功耗。
此外,尽管已经在本文中描述了示例性实施例,其范围包括任何和所有基于本申请的具有等同元件、修改、省略、组合(例如,各种实施例交叉的方案)、改编或改变的实施例。权利要求书中的元件将被基于权利要求中采用的语言宽泛地解释,并不限于在本说明书中或本申请的实施期间所描述的示例,其示例将被解释为非排他性的。因此,本说明书和示例旨在仅被认为是示例,真正的范围和精神由以下权利要求以及其等同物的全部范围所指示。
以上描述旨在是说明性的而不是限制性的。例如,上述示例(或其一个或更多方案)可以彼此组合使用。例如本领域普通技术人员在阅读上述描述时可以使用其它实施例。另外,在上述具体实施方式中,各种特征可以被分组在一起以简单化本申请。这不应解释为一种不要求保护的公开的特征对于任一权利要求是必要的意图。相反,本申请的主题可以少于特定的公开的实施例的全部特征。从而,权利要求书作为示例或实施例在此并入具体实施方式中,其中每个权利要求独立地作为单独的实施例,并且考虑这些实施例可以以各种组合或排列彼此组合。本申请的范围应参照所附权利要求以及这些权利要求赋权的等同形式的全部范围来确定。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。

Claims (10)

1.一种用于便携式设备的出厂后调试的方法,其特征在于,
在所述便携式设备以外的存储位置预先存储用于对第一预设数据结构的第一日志信息进行解析的字符串字典,其中,所述第一预设数据结构包含信息头、参数个数、日志信息字符串偏移地址和调试所生成的参数数据,而不包含日志信息字符串;
在用户对所述便携式设备进行出厂后调试的情况下:
由所述便携式设备按照第一预设数据结构生成并输出第一日志信息,而不输出日志信息字符串;
由所述便携式设备将所述第一日志信息传输到调试终端;
由所述调试终端,获取并利用所述字符串字典对所述第一日志信息进行解析并打印输出第三日志信息。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
在所述便携式设备出厂前调试的过程中,将所生成的第四日志信息中的字符串进行标识;
由链接器基于所述标识将所述第四日志信息中的字符串集中存储于基于第一起始地址计算得到的存储空间;
将集中存储的第四日志信息中的字符串从所述便携式设备的可执行文件中剥离并生成bin文件;
基于集中存储的第四日志信息中的字符串,生成并存储用于对所述第一日志信息进行解析的所述字符串字典。
3.根据权利要求2所述的方法,其特征在于,所述日志信息字符串偏移地址由第一日志信息中字符串的实际地址减去所述第一起始地址而得到。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一预设数据结构还包含调试线程ID;
所述信息头包含所述第一日志信息的时间戳信息,和/或校验信息,其中,所述校验信息用于验证所述第一日志信息的正确性。
5.根据权利要求1-3中任一项所述的方法,其特征在于,基于预先存储的字符串字典对所述第一日志信息进行解析具体包括:
基于所述第一日志信息中的所述日志信息字符串偏移地址,从所述字符串字典中取出对应的日志信息字符串;
结合所述参数个数,将所述参数数据按照所述日志信息字符串所指示的数据格式依序填入,以生成第三日志信息并打印输出。
6.根据权利要求1-3中任一项所述的方法,其特征在于,所述字符串字典存储于云端。
7.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法进一步包括:
在所述便携式设备出厂后调试并输出日志信息时,按照第二预设数据结构输出第二日志信息,其中,所述第二预设数据结构为常规log信息数据结构,并包含日志信息字符串以及符合所述日志信息字符串所指示的数据格式的调试所生成的参数数据。
8.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法进一步包括:
在所述便携式设备出厂后调试并输出日志信息时,由标识位指示按照第一预设数据结构输出第一日志信息,或按照第二预设数据结构输出第二日志信息。
9.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
所述第一日志信息经由所述便携式设备的调试接口输出,或输出到所述便携式设备的预设存储区。
10.一种便携式设备,其特征在于,在用户对所述便携式设备进行出厂后调试的情况下,按照如权利要求1-9中任一项所述的用于便携式设备的出厂后调试的方法生成并打印输出日志信息。
CN202211434488.XA 2022-11-16 2022-11-16 一种用于便携式设备的出厂后调试的方法及便携式设备 Pending CN115809175A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211434488.XA CN115809175A (zh) 2022-11-16 2022-11-16 一种用于便携式设备的出厂后调试的方法及便携式设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211434488.XA CN115809175A (zh) 2022-11-16 2022-11-16 一种用于便携式设备的出厂后调试的方法及便携式设备

Publications (1)

Publication Number Publication Date
CN115809175A true CN115809175A (zh) 2023-03-17

Family

ID=85483271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211434488.XA Pending CN115809175A (zh) 2022-11-16 2022-11-16 一种用于便携式设备的出厂后调试的方法及便携式设备

Country Status (1)

Country Link
CN (1) CN115809175A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561060A (zh) * 2023-05-09 2023-08-08 深圳市中科蓝讯科技股份有限公司 一种日志生成方法、调试方法、蓝牙播放设备及存储介质
CN116910000A (zh) * 2023-06-30 2023-10-20 荣耀终端有限公司 一种日志处理方法、日志存储方法及嵌入式设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08171501A (ja) * 1994-12-19 1996-07-02 Fujitsu Ltd ファームウェアデバッグ方法
CN104281672A (zh) * 2014-09-28 2015-01-14 网神信息技术(北京)股份有限公司 日志数据的处理方法和装置
CN105700992A (zh) * 2016-02-26 2016-06-22 湖南国科微电子股份有限公司 一种嵌入式系统日志记录方法及日志记录系统
CN107133151A (zh) * 2017-05-24 2017-09-05 努比亚技术有限公司 一种日志数据处理方法、设备以及计算机可读存储介质
CN113656277A (zh) * 2020-05-12 2021-11-16 阿里巴巴集团控股有限公司 一种日志存储方法及装置和智能音箱及云端服务器
CN114116367A (zh) * 2020-08-25 2022-03-01 荣耀终端有限公司 一种生成日志的方法及电子设备
CN115269532A (zh) * 2022-03-14 2022-11-01 西安歌尔泰克电子科技有限公司 日志文件、日志存储方法、装置、可穿戴设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08171501A (ja) * 1994-12-19 1996-07-02 Fujitsu Ltd ファームウェアデバッグ方法
CN104281672A (zh) * 2014-09-28 2015-01-14 网神信息技术(北京)股份有限公司 日志数据的处理方法和装置
CN105700992A (zh) * 2016-02-26 2016-06-22 湖南国科微电子股份有限公司 一种嵌入式系统日志记录方法及日志记录系统
CN107133151A (zh) * 2017-05-24 2017-09-05 努比亚技术有限公司 一种日志数据处理方法、设备以及计算机可读存储介质
CN113656277A (zh) * 2020-05-12 2021-11-16 阿里巴巴集团控股有限公司 一种日志存储方法及装置和智能音箱及云端服务器
CN114116367A (zh) * 2020-08-25 2022-03-01 荣耀终端有限公司 一种生成日志的方法及电子设备
CN115269532A (zh) * 2022-03-14 2022-11-01 西安歌尔泰克电子科技有限公司 日志文件、日志存储方法、装置、可穿戴设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561060A (zh) * 2023-05-09 2023-08-08 深圳市中科蓝讯科技股份有限公司 一种日志生成方法、调试方法、蓝牙播放设备及存储介质
CN116910000A (zh) * 2023-06-30 2023-10-20 荣耀终端有限公司 一种日志处理方法、日志存储方法及嵌入式设备

Similar Documents

Publication Publication Date Title
CN115543755B (zh) 一种性能监管方法、装置、系统、设备和介质
CN101651683B (zh) 一种信令消息解析源代码生成方法
CN101262304B (zh) 一种基于通用通讯数据格式的数据流解析方法
CN104765709B (zh) 多路总线数据仿真系统
CN115809175A (zh) 一种用于便携式设备的出厂后调试的方法及便携式设备
CN115480976A (zh) 一种软硬件协同片上系统诊断方法
CN103246587B (zh) android平台上利用SD卡进行ADB调试的方法
CN113722340A (zh) 基于配电装置的远程自动点表更新的处理方法及系统
WO2026016349A1 (zh) 基于序列化协议的pcap数据解析方法、装置及设备
CN114968689B (zh) Fpga器件、基于fpga器件的mipi协议层测试装置和方法
CN118642886A (zh) 数据格式的校验方法和装置、存储介质及电子设备
CN107517094B (zh) 基于fpga的s模式二次雷达情报服务器及其工作方法
CN109474707A (zh) 基于串口协议的二层协议设计及数据传输方法及系统
CN117687889A (zh) 一种内存扩展设备的性能测试装置及方法
CN116996490A (zh) 一种图像数据传输方法、装置、设备及介质
CN114915548A (zh) 一种基于单片机can协议可视化配置和自动解析方法
CN116820867B (zh) 一种芯片调试方法、装置及芯片
CN103685545B (zh) 一种基于lan的分布式lan-pxi服务系统
CN102968286A (zh) 一种数据传输跟踪方法、装置和系统
CN115203482A (zh) 应用程序数据解析的方法、电子设备及存储介质
CN109327284B (zh) 数据传输方法、装置及电子设备
CN111930582A (zh) 系统管理总线检测平台、处理器及系统管理总线检测方法
CN111538688B (zh) 数据处理方法、装置、模组及芯片
CN118353972A (zh) 机载设备网卡以及机载设备通信系统
CN118733521A (zh) 应用于soc芯片的数据处理方法、系统、设备及存储介质

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