[发明专利]内嵌调试器的嵌入式系统及嵌入式系统调试方法无效
申请号: | 200710121864.9 | 申请日: | 2007-09-17 |
公开(公告)号: | CN101122880A | 公开(公告)日: | 2008-02-13 |
发明(设计)人: | 王龙顺 | 申请(专利权)人: | 福建星网锐捷网络有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同立钧成知识产权代理有限公司 | 代理人: | 刘芳 |
地址: | 350015福建省福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 调试 嵌入式 系统 方法 | ||
技术领域
本发明涉及嵌入式系统软件和/或硬件的调试系统及方法,尤其是涉及一种内嵌调试器的嵌入式系统及嵌入式系统调试方法。
背景技术
调试是嵌入式系统软件开发过程中必不可少的环节,通用的桌面操作系统与嵌入式操作系统在调试环境上存在明显的差别。前者,调试器与被调试的程序往往是运行在同一台机器、相同的操作系统上的两个进程,调试器进程通过操作系统专门提供的接口控制、访问被调试进程(比如微软开发的visual C++,它集开发环境、编译和调试于一身,程序的开发、编译和调试都由Visual C++完成,Visual C++调试和被调试程序都运行在同一台机器下)。
嵌入式开发和调试有别于通用的桌面软件的开发,嵌入式开发采用交叉开发的模式(Cross Developping):开发系统是建立在软硬件资源丰富的PC机(或者工作站)上,我们称之为宿主机(HOST),嵌入式程序的编辑,编译,链接过程都在host端完成,而程序最终运行的却是和host有很大区别的嵌入式设备,我们称之为目标机(Target),目标机和宿主机的差别主要指:
硬件环境差别:通常CPU类型不同,例如HOST的CPU为intel X86,而Target为freescale公司的powerpc。
软件环境的差异:在host上都有成熟的操作系统的应用软件支持,比如windows,以及freescale公司的codewarrior IDE集成开发和调试器。而Target一般都是裸机,或者需要调试的嵌入式操作系统。
嵌入式系统的调试和故障诊断一般有以下几种方法:
(1)添加打印调试信息和调试命令:这种方法是程序开发人员在程序开发阶段在需要调试的程序中插入打印信息的代码(比如在C语言中使用printf语句输出调试信息),可以打印程序变量的值、内存地址或者寄存器的内容、收/发数据包的内容等;程序运行时,当指定位置的打印程序被执行后,它就会打印出指定的信息(打印信息的输出位置可以多种多样,可以是串口,也可以把输出信息保存到文件中,或者从通信端口输出等);开发人员通过分析输出的打印信息,来分析程序执行的过程,观察程序变量的值、或者收发包的内容等是否和期望的一致来进行调试。和打印调试信息类似,开发人员通过添加一些调试命令来显示程序的运行状态(打印变量的值,寄存器的值,统计信息等),程序运行后,开发人员通过输入调试命令让程序输出调试信息,通过对比输出信息来进行调试。此种调试方法存在以下缺陷:
(11)不够灵活:程序开发人员需要预先在期望的位置添加代码,或者预先添加调试命令,打印的位置以及打印的内容在开发阶段就已经固定,程序运行后不能修改;因为在调试阶段开发人员对于需要在何处打印信息?打印什么信息?不是非常的清楚,这会导致打印的信息不充分,无法进行故障定位,或者打印的信息很多都没用,无助于故障分析和调试;这导致的结果是程序开发人员需要不断修改添加打印信息,然后重新编译运行,重新分析打印信息,这样不断循环直至故障解决。
(12)无法支持指令级的调试:很显然这种调试方法无法进行设置断点和单步跟踪;断点:指的是用户可以指定程序执行到什么位置先停下来,停下来后用户可以查看机器的当前状态(内存的值,或者寄存器的值),可以让程序从断点的位置继续执行,单步跟踪指的是目标机,每执行一条指令,会停下来,让用户观察机器状态。
(13)调试信息不能应用在实际运行系统中,当程序开发和调试完毕,程序作为最终程序被实际用户使用前,原来添加的打印调试信息要被删除,否则最终用户会看到一堆看不懂的调试信息,影响用户的使用,而且这会大大影响实际运行系统的性能(打印信息会很大耗费CPU的资源),因此在程序发布前需要删除这些调试信息的程序。这就导致调试信息无法在实际运行系统中使用。如果最终程序出问题,就无法使用原来的调试信息进行调试。
(2)系统中附带故障诊断和分析模块:该模块属于系统软件的一部分,正常情况下该模块没有工作,在发现问题后,用户使用该模块诊断系统的故障(主要指的是硬件故障)进行分析和诊断,例如:Dell PC的BIOS上就附带有故障诊断模块,用户如果发现PC工作不正常,就可以进入BIOS的故障诊断模块进行测试,看看是哪个硬件可能有问题;该模式可以在正式系统中附带该功能,非常方便产品维护和维修人员使用,有这个模块产品客户支持人员就能快速定位产品是否有问题;但是该模式也有自己的弊端:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网锐捷网络有限公司,未经福建星网锐捷网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710121864.9/2.html,转载请声明来源钻瓜专利网。