[发明专利]一种优化嵌入式系统诊断打印的方法有效
申请号: | 201910236045.1 | 申请日: | 2019-03-26 |
公开(公告)号: | CN109960590B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 曾令辉 | 申请(专利权)人: | 北京简约纳电子有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F3/12 |
代理公司: | 南京正联知识产权代理有限公司 32243 | 代理人: | 郭俊玲 |
地址: | 100086 北京市海淀区知春*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 优化 嵌入式 系统 诊断 打印 方法 | ||
本发明涉及计算机程序领域,具体地说,是一种优化嵌入式系统诊断打印的方法,包括以下步骤:步骤一:定义诊断函数宏A和函数B;步骤二:定义函数宏A与函数B的引用关系;步骤三:使能编译器在汇编C代码之前生成*.i文件;步骤四:编译规则对步骤三步骤中的每个编译单位进行诊断函数调用代码串进行模式匹配提取,修改,替换,并同时更新诊断数据库文件;步骤五:函数B运行时,获取“格式化字符串哈希值”参数;步骤六:得到格式化串,最后把格式化串输出到终端显示器上。
技术领域
本发明涉及计算机程序领域,具体地说,是一种优化嵌入式系统诊断打印的方法。
背景技术
随着嵌入式系统的发展,系统越来越庞大,诊断打印的需求量也越来越大,但嵌入式系统的CPU计算力资源很宝贵,如果用传统的printf的方式来格式化输出,耗费了大量的计算力资源和大量的外设输出带宽。从而造成系统的overhead过大,如何改善现有的诊断打印输出方式,降低诊断功能的系统开销变得非常迫切。
现有的嵌入式系统软件通过printf函数格式化应用程序的诊断字符串,再通过嵌入式硬件的外设接口把格式化的字符串输出到windows工具软件,上位机工具软件接收到后,显示在屏幕上,便于软件开发人员定位,跟踪嵌入式程序运行情况。
在嵌入式系统软件输出的诊断字符串量非常多(比如该嵌入式由多个高速CPU内核组成,诊断的输出量就变得非常庞大),并且嵌入式系统外设的接口吞带宽又是有限且宝贵时,使用传统的诊断输出方法会出现两个明显的弊端,如下:
其一:大量的诊断信息字符串需要格式化,会消耗大量的,本就宝贵的嵌入式CPU计算力资源(格式化函数对格式化串进行逐个字符解析,识别格式符后,对参数进行格式化转换),从而造成该系统上的功能模块的计算力不足;
其二:嵌入式系统硬件的外设接口的吞吐量是有限且固定的,若诊断信息输出带宽超过了外设接口的硬件带宽能力,会出现诊断信息丢失,不利于程序调试。
发明内容
为了解决上述技术问题,解决诊断打印的系统开销与嵌入式系统的计算力资源的冲突,本发明披露了一种优化嵌入式系统诊断打印的方法,可以极大改善诊断打印的系统开销,并且可以降低诊断输出对外设接口带宽需求量。
本发明采用的具体技术方案如下:
步骤一:定义诊断函数宏A
A(程序模块ID,过滤类型,格式化字符串,…),参数说明如下
“程序模块ID”:整形,指示这个诊断信息的所有者,
“过滤类型”:整形,用比特域指示该模块的诊断信息分类,用于过滤诊断信息,
“格式化字符串”:字符串中以‘%’来表示格式说明符,说明符类型同C99中C语言库函数printf的格式化符相同。并简化了支持的格式符类型,当前为提高打印效率,只支持32bit整形,单精度浮点数,双精度浮点数的格式化,不支持%s。
…:C语言的变参列表
函数B
函数B(格式化字符串哈希值,参数内存尺寸,程序模块ID,过滤类型,格式化字符串,…),参数说明如下:
“格式化字符串哈希值”:把“格式化字符串”转化成一个32bit的整形哈希值。
“参数内存尺寸”:指示变参的参数内存大小,计量单位为字(word)。
其他参数类型同函数宏A。
步骤二:定义函数宏A与函数B的引用关系
#define A(程序模块ID,过滤类型,格式化字符串,…)\
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京简约纳电子有限公司,未经北京简约纳电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910236045.1/2.html,转载请声明来源钻瓜专利网。