[发明专利]一种嵌入式软件动态缺陷检测方法有效

专利信息
申请号: 201010265899.1 申请日: 2010-08-27
公开(公告)号: CN101937392A 公开(公告)日: 2011-01-05
发明(设计)人: 刘发贵;侯明明;刘佳欣;李胜文 申请(专利权)人: 华南理工大学
主分类号: G06F11/36 分类号: G06F11/36;G06F15/16
代理公司: 广州粤高专利商标代理有限公司 44102 代理人: 何淑珍
地址: 510640 广*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 嵌入式 软件 动态 缺陷 检测 方法
【说明书】:

技术领域

发明属于嵌入式软件测试领域,具体涉及一种基于嵌入式软件动态缺陷检测的方法。

技术背景

在数字家电领域,嵌入式系统需要支持大量的高清视频和音频的播放,提供高清视听娱乐和信息服务。那么嵌入式软件势必存在大量编码、解码等CPU运算,成为CPU消耗型软件,因此运行时的效率成为提高嵌入式软件性能的关键问题之一。

在嵌入式系统中,各种资源相对非常有限,嵌入式软件跟硬件结合紧密,编写高效的嵌入式软件,需要考虑很多跟硬件相关的问题,例如,如何高效地利用RAM、如何合理地使用I/O端口等。然而,许多问题跟目标系统的硬件环境紧密相关,开发人员很难或者根本无法凭借静态编码来解决,如由数据的非局部性而造成的数据缓存频繁缺失、由于编译器和处理器流水线等因素造成的分支预测失效等等,这些事件的产生却能够影响嵌入式软件的运行效率。分支预测失效将造成流水线的冲洗,浪费大量的时钟周期,无法发挥微处理器乱序执行的效能;由于处理器频率和存储器访问速度之间的差异,数据缓存缺失将造成对相对慢速的存储器的大量访问,降低运行效率;等等。

这些影响指令执行效率的缺陷问题通过静态地对代码进行检查是无法消除的,它们可能不是由代码本身引起的,而是由于编译或硬件特性的改变而产生,对于不同的硬件平台、不同的编译器工具链,问题都会有所区别,没有一个统一的、静态的方法来解决,只能通过动态的方式,在软件运行的过程中去统计和定位出现缺陷的关键之处,从而使开发人员能够针对检测的结果去优化代码的实现,减少或消除缺陷所带来的影响,提高嵌入式软件的运行效率。

目前,对于动态缺陷检测技术的研究并不多见。有使用I/O-EFA对软硬件平台本身的故障的一种检测,对于与硬件相关的软件缺陷问题,并不能很好地解决;有源代码插桩技术,能够发现软件中的异常行为,但是对于不可预见的异常行为,以及与硬件相关问题的检测,有很大的局限性;有开源软件OProfile,但是它需要Linux内核的支持,在编译内核的过程中需要指定OProfile选项,并且它需要等到被测程序运行完毕以后,才能得到测试结果,无法进行实时的在线测试。

发明内容

本发明的目的在于克服目前相关工具无法进行动态实时缺陷检测,测试结果精度不高的不足,提出了一种精确的嵌入式软件动态缺陷检测方法。

为了实现发明目的,采用的技术方案如下:

一种嵌入式软件动态缺陷检测方法,分为客户端和测试代理端两部分,所述客户端设置在开发机中,测试代理端设置在linux目标机中,客户端和测试代理端通过网络进行通信,使得测试代理端所采集的样本数据通过网络实时发送给客户端进行分析并实时更新显示。

上述技术方案中,所述测试代理端运行于目标机端的嵌入式操作系统或目标板中。其包括用于采集和统计样本数据的采样模块和进行样本数据传送的测试代理模块。

所述采样模块运行于嵌入式Linux的内核空间中,是测试代理端的核心部分,负责缺陷样本数据的采集,并提供接口供测试代理模块进行配置和读取,分为PMU配置模块、中断处理模块,控制模块,proc文件系统接口,配置表以及样本缓存。

所述PMU配置模块是基于微处理支持的PMU硬件单元,封装PMU硬件单元的操作细节,提供抽象访问接口供上层调用;

所述中断处理模块是对系统运行时发生的多种硬件事件中断进行捕获处理,对引起这些事件的指令地址进行采样,组织为样本并存入样本缓存;

所述控制模块通过proc文件系统与测试代理模块进行交互,接收事件配置信息,经过配置表映射为PMU事件码,通过PMU配置模块写入PMU事件选择单元,通过proc文件系统接口,返回样本缓存中的样本数据信息;

所述proc文件系统接口是内核空间和用户空间进行交互常用的接口,也是测试代理模块和采样模块进行交互的接口。采样模块通过它向测试代理模块提供样本数据访问接口,同时,测试代理模块把它作为采样模块的配置接口;

所述配置表属于内核的共享结构,是一个便于查找的哈希表结构,维护事件配置信息和PMU硬件单元事件码的对应关系;

所述样本缓存采用循环队列来表示,用于存放中断处理模块生成的样本数据信息,供测试代理模块通过proc文件系统接口读取并发送给开发机的客户端。

所述测试代理模块运行于嵌入式Linux的用户空间中,负责监听特定端口,提供嵌入式缺陷检测测试服务,与发起连接的客户端进行交互,读取采样模块采集的样本数据,通过网络实时发送给客户端。测试代理模块包括Slave pool,连接分配器,工作线程与服务进程。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010265899.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top