本发明专利技术公开了一种嵌入式系统日志记录方法及日志记录系统,修改link配置文件,在bin文件中设置虚拟的地址段,即str的地址段,将日志中的字符串信息放到str的地址段中,将日志中的除字符串信息以外的指令放入iram的地址段,将日志中的数据放入dram的地址段;输出上述字符串信息的虚拟地址和日志中的变量值。本发明专利技术将字符串信息放入str的地址段中,而不占用嵌入式系统的ram空间,大大节约了成本;本发明专利技术只输出字符串信息的虚拟地址和日志中的变量值,减少了接口数据量,减轻了系统CPU及外设接口的负荷,提高了整个系统的业务执行效率。
【技术实现步骤摘要】
一种嵌入式系统日志记录方法及日志记录系统
本专利技术涉及一种嵌入式系统日志记录方法及日志记录系统。
技术介绍
在嵌入式系统中,日志记录是必不可少的,当前已有的日志记录方案如图1所示。在嵌入式系统中,当需要输出日志时,CPU将通过Iram和Dram中的数据内容组合成一条完整日志信息,比如“InvalidPowerState:0xFF”,然后通过日志输出接口(串口、网口等接口)传输到日志显示终端,在日志显示终端上最终显示出对应日志。现有技术是将完整的日志信息通过接口输出,那么以上面的日志信息为例,在嵌入式系统中的ram当中就要存储“InvalidPowerState:0x”这些固定不变的字符串信息,同时存储输出的变量值FF,变量的存储只需要1个字节,而对应的字符串信息就要占到22个字节,固定不变的字符串占用了大量的空间,而在嵌入式系统中内部的存储空间是珍贵且有限的,尤其ASIC芯片中的内部ram大小和芯片成本紧密相关,所以一般在ASIC芯片中的内部Ram十分有限,一般情况下,这些字符串信息占用的空间占了程序总空间的20%左右,利用十分有限的ram来存储这些固定不变而且占用大量空间的字符串信息,从成本的角度讲,非常不合理;同时通过外部接口进行传出的时候,这些字符串同样也会被传输,会占用相当的外设接口资源和CPU运算资源,当外设接口较慢时,比如串口,大量的日志信息将有可能影响嵌入式系统的正常业务,降低整个系统的业务执行效率,因为日志系统的功能影响了整个系统的正常业务,这也是不可接受的。这些字符串信息只是一些固定的信息,日志中真正的信息量包含在打印出来的变量的值当中。
技术实现思路
本专利技术所要解决的技术问题是,针对现有技术不足,提供一种嵌入式系统日志记录方法及日志记录系统。为解决上述技术问题,本专利技术所采用的技术方案是:一种嵌入式系统日志记录方法,包括以下步骤:1)修改link配置文件,在嵌入式系统软件的目标文件bin文件中设置虚拟的地址段,即str的地址段,将日志中的字符串信息放到str的地址段中,将日志中的除字符串信息以外的指令放入iram的地址段,将日志中的数据放入dram的地址段;2)输出上述字符串信息的虚拟地址和日志中的变量值。还包括以下步骤:根据步骤2)的字符串信息的虚拟地址和日志中的变量值,从所述str的地址段中提取对应的字符串信息,并将变量值和字符串信息组合起来,完成日志显示。该日志的显示结果同现有的日志记录机制的显示结果完全一致,方便对日志进行分析。相应地,本专利技术提供了一种日志记录系统,包括:嵌入式系统:用于存储日志中字符串信息之外的指令和数据;日志输出接口:用于输出字符串信息的虚拟地址和日志中的变量值;str的地址段:用于存储日志中的字符串信息。所述嵌入式系统包括:iram的地址段:用于存储日志中的除字符串信息以外的指令;dram的地址段:用于存储日志中的数据。str的地址段是个虚拟的地址段,在嵌入式系统当中并没有与之对应的实际ram,每一条日志中的字符串信息都会有一个一一对应的虚拟地址,而此时在iram地址段和dram地址段中的指令和数据都不会包含打印日志中的字符串信息,有效地缩减的对iram和dram的空间要求。该日志记录系统还包括日志显示终端:用于根据字符串信息的虚拟地址和日志中的变量值,从所述str的地址段中提取对应的字符串信息,并将变量值和字符串信息组合起来,完成日志显示。日志的显示结果同现有的日志记录机制的显示结果完全一致,方便对日志进行分析。与现有技术相比,本专利技术所具有的有益效果为:本专利技术将字符串信息放入str的地址段中,而不占用嵌入式系统的ram空间,大大节约了成本;本专利技术只输出字符串信息的虚拟地址和日志中的变量值,减少了接口数据量,减轻了系统CPU及外设接口的负荷,提高了整个系统的业务执行效率。附图说明图1为现有的日志记录方案原理图;图2为本专利技术实施例编译目标文件生成阶段原理图;图3为日志显示终端结构示意图。具体实施方式本专利技术分以下三个阶段实现:1)嵌入式软件编译目标文件生成设置在生成嵌入式软件的目标bin文件时,一般的模式是将指令放入iram(指令Ram)的地址段,将数据放入dram(数据Ram)的地址段,iram的地址段和dram地址段都实际对应了嵌入式系统当中的ram(随机存取存储器)地址。在本专利技术中,需要修改link配置文件(可以参考:《编译原理》,作者:AlfredV.Aho、RaviSethi、JeffreyD.Ullman),将日志中的字符串信息专门放到一个str的地址段当中,str的地址段是个虚拟的地址段,在嵌入式系统当中并没有与之对应的实际ram,每一条日志中的字符串信息都会有一个一一对应的虚拟地址,而此时在iram地址段和dram地址段中的指令和数据都不会包含打印日志中的字符串信息,有效地缩减的对iram和dram的空间要求。2)嵌入式系统的日志输出机制本专利技术在进行日志输出时,只输出该条日志对应的字符串的虚拟地址和日志中的变量值,比如前面的日志“InvalidPowerState:0xFF”,如果日志字符串的虚拟地址为0x213451d0,那么在这种情况下这条日志只需要通过日志输出接口输出5个字节:0x210x340x510xd00xff,即完成该条日志输出,而原有的日志需要完成24个字节的输出,大大减少了接口数据量,减少了系统CPU及外设接口负荷。3)日志显示终端显示机制在日志显示终端接收到嵌入式系统发来的日志后,需要对日志进行解析,以上条日志为例,日志显示终端接收到的数据为0x210x340x510xd00xff,从该消息中获取字符串的地址0x213451d0,获取到地址后,从嵌入式系统软件的目标bin文件的str段中提取对应的字符串信息:“InvalidPowerState:0x”,同时将变量值0xff和字符串信息组合起来,最终在终端上显示日志:“InvalidPowerState:0xFF”,完成最终的日志显示,该日志的显示结果同现有的日志机制的显示结果完全一致,方便对日志进行分析。如图3,本专利技术的日志显示终端包括:硬件接口子模块:负责获取日志输出接口发送的日志信息,并将该日志信息传送给解析组装子模块;解析组装子模块:用于解析硬件接口子模块发送过来的日志信息,并将解析出的字符串虚拟地址发送给字符提取子模块,并接收从字符提取子模块获取的字符串信息,组装完成完整的日志信息发送给日志输出子模块;字符提取子模块:用于接收解析组装子模块发送的字符串虚拟地址,根据该虚拟地址从嵌入式系统软件的目标文件bin文件中获取字符串信息后,将字符串信息发送给解析组装子模块;日志输出子模块:用于将解析组装子模块发送的完整的日志信息输出到显示终端。日志显示终端可以是PC、手机等支持日志接口和日志输出的硬件系统,可以使用VC、QT等软件开发工具开发实现。本文档来自技高网...
【技术保护点】
一种嵌入式系统日志记录方法,其特征在于,包括以下步骤:1)修改link配置文件,在嵌入式系统软件的目标文件bin文件中设置虚拟的地址段,即str的地址段,将日志中的字符串信息放到str的地址段中,将日志中的除字符串信息以外的指令放入iram的地址段,将日志中的数据放入dram的地址段;2)输出上述字符串信息的虚拟地址和日志中的变量值。
【技术特征摘要】
1.一种嵌入式系统日志记录方法,其特征在于,包括以下步骤:1)修改link配置文件,在嵌入式系统软件的目标文件bin文件中设置虚拟的地址段,即str的地址段,将日志中的字符串信息放到str的地址段中,将日志中的除字符串信息以外的指令放入iram的地址段,将日志中的数据放入dram的地址段;2)输出上述字符串信息的虚拟地址和日志中的变量值;3)根据步骤2)的字符串信息的虚拟地址和日志中的变量值,从所述str的地址段中提取对应的字符串信息,并将变量值和字符串信息组合起来,完成日志显示。2.一种日志记录系统,其特征在于,包括:嵌入式系统:用于在目标文件bin文件中设置虚拟的地址段,即str的地址段,将日志中的字符串信息放到str的地址段中,将日志中的除字符串信息以外的指令放入iram的地址段,将日志中的数据放入dram的地址段;日志输出接口:用于输出字符串信息...
【专利技术属性】
技术研发人员:游毓,杨万云,马翼,田达海,彭鹏,向平,周士兵,
申请(专利权)人:湖南国科微电子股份有限公司,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。