System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 嵌入式系统的日志信息生成方法及电子设备、存储介质技术方案_技高网

嵌入式系统的日志信息生成方法及电子设备、存储介质技术方案

技术编号:41148825 阅读:5 留言:0更新日期:2024-04-30 18:15
本申请提供一种嵌入式系统的日志信息生成方法及电子设备、存储介质,包括:目标设备基于预设参数名列表和参数名列表对应的类型位图,通过自身嵌入式系统的日志输出函数输出二进制流日志数据;其中,二进制流日志数据包括字符串索引和参数名列表对应的参数列表,类型位图指示参数列表中各个参数的参数类型,参数类型包括动态数据和非动态数据;解析设备从二进制流日志数据中提取出字符串索引,并基于字符串索引在本地字典中查找对应的字符串;解析设备基于字符串和参数列表,生成日志信息。本申请方案,能够精确区分动态数据和非动态数据,有效控制日志数据的数据量,节省格式描述字符串在嵌入式系统的内存开销。

【技术实现步骤摘要】

本申请涉及计算机,特别涉及一种嵌入式系统的日志信息生成方法及电子设备、计算机可读存储介质。


技术介绍

1、目前很多嵌入式系统的内存资源都很紧张,对于一个总代码量数百kb(千字节)的系统而言,其调试(debug)所用的format string(格式描述字符串)可以占用10%以上的内存资源,这对于一个资源受限的系统来说是一笔不小的开销。对于一个非量产的有调试需求的嵌入式系统而言,有时候format string是必不可少的部分,但是相对而言上位机所拥有的资源比嵌入式系统要多得多,无论从功耗还是从内存的角度来看,将这部分formatstring数据放到上位机来处理都是一个可行的方案。

2、相关方案提出对format string进行压缩处理,比如通过地址偏移的转换或者通过哈希表的转换,尝试将压缩之后的format string索引进行传输或者存储,然后将地址偏移表或哈希表通过不占用嵌入式系统内存资源的方式存储或发放。在嵌入式系统输出日志信息时,可以将嵌入式系统输出format string索引在地址偏移表或哈希表中查找formatstring,并将查到的format string与动态数据结合,从而获得嵌入式系统的完整日志信息。

3、然而,相关方法并未公开如何处理动态数据的问题,如果动态数据不做特殊处理,会导致动态数据无法正常解析;如果对动态数据做特殊处理,则难以与现有的压缩技术共存。


技术实现思路

1、本申请实施例的目的在于提供一种嵌入式系统的日志信息生成方法及电子设备、存储介质,用于对包含动态数据的日志和不包含动态数据的日志以统一方式进行处理,且能够精确区分动态数据和非动态数据,有效控制日志数据的数据量,节省格式描述字符串在嵌入式系统的内存开销。

2、一方面,本申请提供了一种嵌入式系统的日志信息生成方法,包括:

3、目标设备基于预设参数名列表和所述参数名列表对应的类型位图,通过自身嵌入式系统的日志输出函数输出二进制流日志数据;其中,所述二进制流日志数据包括字符串索引和所述参数名列表对应的参数列表,所述类型位图指示所述参数列表中各个参数的参数类型,所述参数类型包括动态数据和非动态数据;

4、解析设备从所述二进制流日志数据中提取出所述字符串索引,并基于所述字符串索引在本地字典中查找对应的字符串;

5、所述解析设备基于所述字符串和所述参数列表,生成日志信息。

6、在一实施例中,所述目标设备基于预设参数名列表和所述参数名列表对应的类型位图,通过自身嵌入式系统的日志输出函数输出二进制流日志数据,包括:

7、在输出二进制流日志数据时,逐个读取所述参数名列表中的各个参数名,并在所述类型位图中确定该参数名对应参数的参数类型;

8、如果所述参数类型为动态数据,依据所述参数名对应的栈数据,将所述参数名对应参数依次进行动态输出,直至输出完毕;

9、如果所述参数类型为非动态数据,依据所述参数名对应的栈数据,将所述参数名对应参数以指定长度输出;

10、其中,所述参数名列表中所有参数名对应的输出结果构成所述二进制流日志数据的参数列表。

11、在一实施例中,所述非动态数据包括多种子类型,每一子类型对应一个指定长度;

12、所述如果所述参数类型为非动态数据,依据所述参数名对应的栈数据,将所述参数名对应参数以指定长度输出,包括:

13、如果所述参数类型为非动态数据,依据所述参数名对应的栈数据,将所述参数名对应参数以其对应的子类型的指定长度进行输出。

14、在一实施例中,所述动态数据包括多种子类型;

15、所述解析设备基于所述字符串和所述参数列表,生成日志信息,包括:

16、所述解析设备基于所述字符串确定所述参数列表中各项参数的子类型,并分别依据各项参数的子类型对应解析方式,从所述参数列表中解析出各项参数;

17、所述解析设备依据所述字符串和解析出的各项参数,生成日志信息。

18、在一实施例中,所述方法还包括:

19、所述目标设备的嵌入式系统,在运行过程中动态加载所述参数名列表对应的类型位图。

20、在一实施例中,所述方法还包括:

21、在编译所述嵌入式系统的固件文件时,扫描与多种日志数据相关的字符串,并基于扫描结果生成与每一种日志数据对应的类型位图,将生成的类型位图写入至所述嵌入式系统的固件文件。

22、在一实施例中,所述方法还包括:

23、扫描本地字典中的所有字符串,并基于扫描结果生成与每一字符串对应的类型位图;

24、所述目标设备获取所述类型位图,并写入至所述嵌入式系统。

25、在一实施例中,所述方法还包括:

26、响应于位图编辑指令,对所述位图编辑指令指示的类型位图进行调整,以更新所述类型位图内至少一个参数的参数类型。

27、在一实施例中,所述方法还包括:

28、在编译所述嵌入式系统的固件文件时,为多种日志数据相关的字符串生成字符串索引,并基于所述字符串以及对应于所述字符串的字符串索引,生成字典;其中,所述固件文件内相同字符串对应唯一字符串索引;

29、将所述字典传递至所述解析设备。

30、另一方面,本申请提供了一种电子设备,所述电子设备包括:

31、处理器;

32、用于存储处理器可执行指令的存储器;

33、其中,所述处理器被配置为执行上述应用于目标设备或解析设备的嵌入式系统的日志信息生成方法。

34、进一步的,本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述应用于目标设备或解析设备的嵌入式系统的日志信息生成方法。

35、本申请方案,能够通过类型位图指示日志数据中各个参数的参数类型,可以精确区分动态数据和非动态数据,从而可以有效控制二进制流日志数据的数据量,并通过字符串索引替代字符串而节省格式描述字符串在嵌入式系统的内存开销,减少动态非动态混合日志的存储开销以及传输开销;此外,本方案可以通过嵌入式系统的日志输出函数输出二进制流日志数据,且包含动态数据的日志和不包含动态数据的日志可以通过同一函数处理,有效减少了嵌入式系统的学习成本。

本文档来自技高网...

【技术保护点】

1.一种嵌入式系统的日志信息生成方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述目标设备基于预设参数名列表和所述参数名列表对应的类型位图,通过自身嵌入式系统的日志输出函数输出二进制流日志数据,包括:

3.根据权利要求2所述的方法,其特征在于,所述非动态数据包括多种子类型,每一子类型对应一个指定长度;

4.根据权利要求1所述的方法,其特征在于,所述动态数据包括多种子类型;

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:

9.根据权利要求1或7所述的方法,其特征在于,所述方法还包括:

10.一种电子设备,其特征在于,所述电子设备包括:

11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-9任意一项所述的应用于目标设备或解析设备的嵌入式系统的日志信息生成方法。

...

【技术特征摘要】

1.一种嵌入式系统的日志信息生成方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述目标设备基于预设参数名列表和所述参数名列表对应的类型位图,通过自身嵌入式系统的日志输出函数输出二进制流日志数据,包括:

3.根据权利要求2所述的方法,其特征在于,所述非动态数据包括多种子类型,每一子类型对应一个指定长度;

4.根据权利要求1所述的方法,其特征在于,所述动态数据包括多种子类型;

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1...

【专利技术属性】
技术研发人员:吴限
申请(专利权)人:上海物骐微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1