- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式实验报告
嵌入式调试技术综述
1.交叉调试技术概论
如今嵌入式系统的范围越来越广,从一般的手持设备(例如:手机,PDA等)到网络中的通信设备(如:路由器,交换机,卫星的转发系统等)以及在军事,医疗,保健等各个领域都有其应用。各种嵌入式设备都具有功能专一,针对性强的特点。因此其硬件资源不像PC机一样齐全,所以要在嵌入式设备上建立一套开发系统是不现实的。在开发嵌入式系统时,一般都采用交叉开发(Cross Developing)的模式,即:开发系统是建立在硬件资源丰富的PC机(或者工作站)上,通常称其为宿主机(Host),应用程序的编辑、编译、链接等过程都是在Host上完成的,而应用程序的最终运行平台却是和Host有很大差别的嵌入式设备,通常称其为目标机(Target),调试在二者间联机交互进行。这里宿主机和目标机的“差别”主要是指:
(1)硬件上差别很大,通常CUP的类型都不同。例如:Host的CUP为IntelPentium芯片,而Target为StorngARM上。
(2)软件环境的差异,在Host上都有通用操作系统的支持(如:Linux,UniX,windows等),而Target一般都是裸机,没有任何的软件资源。现在也有目标机上的操作系统,但它是用于对嵌入式应用的支撑而不是用于目标机的开发环境平台。
基于交叉开发模式的开发系统被称为交叉开发系统,它一般主要包括:交叉编译器、交叉链接器、交叉调试器、以及其它的一些交叉实用工具等。其中比较重要的是交叉编译器和交叉调试器。交叉编译器的主要功能是把在宿主机上编写的高级语言程序编译连接成可以运行在目标机的可执行代码。交叉调试器的主要功能是提供用户在宿主机上调试运行在目标机上的可执行代码的功能。借助交叉开发系统,用户可以在宿主机上使用各种高级语言开发嵌入式软件并进行源代码级调试,极大地提高嵌入式软件的开发效率。
1.1交叉调试原理
交叉调试器在功能上与普通高级语言调试器相差不多,但是两者在结构上存在着很大的差别。普通的高级语一言调试器一般与被调试的二进制代码运行在同一台计算机和同一个操作系统上,所以调试器可以直接控制二进制代码的执行过程。交叉调试器则是一种分布式的系统,交叉调试器自身运行在宿主机端,而被调试的可执行代码运行在目标机端,宿主机和目标机的体系结构和操作系统可能完全不同,调试器要直接控制代码的执行是非常困难的事。因此,宿主机和目标机必须使用某种通信协议进行通信,调试程序使用这种通信协议把调试命令从宿主机发给目标机;在目标机端必须有一个监控程序,根据宿主机的调试命令在目标机上执行相应的调试功能,并且把调试结果送回宿主机端显示出来。由此可见,交叉调试具有如下特点:
(1)调试器和被调试程序运行在不同的计算机上。调试器运行在一般的PC机或者工作站上(即Host上),而被调试程序运行在实际的某种嵌入式设备或者专业的评估板上(都被称为Target)。
(2)调试器通过某种通信方式与目标机建立联系。通信方式可以是串口、并口、网络或者专用的通信方式。
(3)一般在目标机上有调试器的某种代理(Agne)t,这种代理能与调试器配合一起完成对目标机上运行的程序的调试。这种代理可以是某种软件,也可以是某种支持调试的硬件等。
(4)目标机也可以是一种虚拟机。在这种情形下,似乎调试器和被调试程序运行在了同一台计算机。但是调试方式的本质没有变化,即被调试程序都是被下载到了目标机,对被调试程序的调试并不是直接通过Host的操作系统的调试支持来完成的,而是通过虚拟机代理的方式来完成调试。因此交叉调试可以这样定义:调试器通过某种方式能控制目标机上被调试程序的运行方式,并且通过调试器能查看和修改目标机上的内存、寄存器以及被调试程序中的变量等功能。
1.2交叉调试方法
目前,在嵌入式开发中交叉调试技术有以下几种实现方式:
(1)Rom Monitor(ROM监控)方式
(2)Rom Emulator方式
(3)ICE_Circuit Emulator(在线仿真器)方式
(4)on_Chip debugging(片上调试)方式
(5)Simulator方式
1.2.1 Rom Monitor方式
ROM Monitor是运行在目标机上的一段程序。它负责监控目标机上被调试程序的运行,通常和HOST端的程序一起完成对应用程序的调试。ROM Monitor预先被固化到目标机的ROM空间,在目标机复位后首先执行的就是ROM Monitor程序,它对目标机进行一些必要的初始化,然后初始化自己的程序空间,最后就等待HOST端的命令。ROM Monitor能完成被调试程序的下载、目标机内存和寄存器的读写、设置断点、单步执行等功能。
一些高级的ROM Monitor能完成代码分析(Code Profiling),系统分析(System Pr
文档评论(0)