法律状态公告日
法律状态信息
法律状态
2018-12-25
专利实施许可合同备案的生效 IPC(主分类):G06F11/30 合同备案号:2018430000021 让与人:湖南国科微电子股份有限公司 受让人:江苏芯盛智能科技有限公司 发明名称:一种嵌入式系统日志记录方法及日志记录系统 申请公布日:20160622 授权公告日:20171121 许可种类:普通许可 备案日期:20181203 申请日:20160226
专利实施许可合同备案的生效、变更及注销
2017-11-21
授权
授权
2016-07-20
实质审查的生效 IPC(主分类):G06F11/30 申请日:20160226
实质审查的生效
2016-06-22
公开
公开
技术领域
本发明涉及一种嵌入式系统日志记录方法及日志记录系统。
背景技术
在嵌入式系统中,日志记录是必不可少的,当前已有的日志记录方案如图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个字节:0x21 0x340x510xd00xff,即完成该条日志输出,而原有的日志需要完成24个字节的输出,大 大减少了接口数据量,减少了系统CPU及外设接口负荷。
3)日志显示终端显示机制
在日志显示终端接收到嵌入式系统发来的日志后,需要对日志进行解析,以上条日志 为例,日志显示终端接收到的数据为0x210x340x510xd00xff,从该消息中获取字符串 的地址0x213451d0,获取到地址后,从嵌入式系统软件的目标bin文件的str段中提取对应 的字符串信息:“InvalidPowerState:0x”,同时将变量值0xff和字符串信息组合起来,最 终在终端上显示日志:“InvalidPowerState:0xFF”,完成最终的日志显示,该日志的显示 结果同现有的日志机制的显示结果完全一致,方便对日志进行分析。
如图3,本发明的日志显示终端包括:
硬件接口子模块:负责获取日志输出接口发送的日志信息,并将该日志信息传送给解 析组装子模块;
解析组装子模块:用于解析硬件接口子模块发送过来的日志信息,并将解析出的字符 串虚拟地址发送给字符提取子模块,并接收从字符提取子模块获取的字符串信息,组装完 成完整的日志信息发送给日志输出子模块;
字符提取子模块:用于接收解析组装子模块发送的字符串虚拟地址,根据该虚拟地址 从嵌入式系统软件的目标文件bin文件中获取字符串信息后,将字符串信息发送给解析组 装子模块;
日志输出子模块:用于将解析组装子模块发送的完整的日志信息输出到显示终端。
日志显示终端可以是PC、手机等支持日志接口和日志输出的硬件系统,可以使用 VC、QT等软件开发工具开发实现。
机译: 系统日志记录装置,系统日志记录方法和记录介质
机译: 时间同步系统和使用底板管理控制器的服务器获取时间信号以记录系统日志的发生时间比主机系统早
机译: 用于记录系统日志和存储介质的设备和方法