标题:
硬件调试方式介绍
[打印本页]
作者:
yuyang911220
时间:
2017-5-24 16:31
标题:
硬件调试方式介绍
ROM Monitor
ROM Monitor是被固化且运行在目标机上的一段程序,负责监控目标机上被调试的程序的运行,与宿主机端的调试器一起完成对应用程序的调试。
调试器与ROM Monitor之间的通信遵循远程调试协议。
宿主机
调试器
目标机
监控程序和被调试程序
在目标机上电或复位后首先执行的就是 ROM Monitor,它对目标机进行一些必要的初始化,如最基本的串口和用于
内存刷新的系统计时器芯片;
初始化用于下载映像的内存系统;初始化中断控制器和安装中断处理程序。
初始化自己的程序空间
等待宿主机端的命令
ROM Monitor能配合调试器完成:程序映像下载,对目标机系统内存的读写,对寄存器的读写,设置和清除不同类型的断点,单步执行指令,复位系统等调试功能
ROM Monitor调试过程
(1)
目标机上监控器掌握对目标机的控制,等待和调试器建立连接;
(2)
启动调试器,并和监控器建立起通信连接;
(3)
使用调试器将应用程序下载到目标机上的RAM空间中;
(4)
使用调试器进行调试,发出各种调试命令,监控器解释并执行这些命令,通过目标机上的各种异常来
获取对目标机的控制,将命令执行结果回传给调试器;
(5)
如果程序有问题,在调试器的帮助下定位错误,修改之后再重新编译链接并下载程序,开始新的调试,
如此反复直至程序正确运行为止。
ROM Monitor
优点
1) 提高调试程序的效率
,缩短开发周期,
降低成本
2) 简单、方便 3) 可扩展性强,可支持许多高级调试功能 4) 成本低廉,不需
缺点
Debug Monitor需要用Crash and Burn方法开发。
当ROM Monitor占用CPU时,应用程序不响应外部的中断,因此不便调试有时间特性的程序。
某些调试功能依赖于CPU硬件的支持(如硬件断点功能) ROM Monitor要占用目标机一定数量的资源,如CPU、 RAM、ROM和通信设备等资源。
调试环境不同于实际目标环境
ROM Emulator
ROM Emulator是一种用于替代目标机上的 ROM芯片的设备,即ROM仿真器。利用
这种设备,目标机可以没有ROM芯片,但目标机的CPU可以读取ROM Emulator设备上
ROM芯片的内容:ROM Emulator设备上的ROM芯片的地址可以实时地映射到目标机的
ROM地址空间,从而仿真(Emulation)
目标机的ROM。
ROM Emulator的调试方式是一种不完全的调试方式:ROM Emulator设备只是为目标机提供ROM芯片和在Target和Host间建立一条高速的通信通道,因此它经常和前
面两种调试方式结合起来形成一种完备的调试方式。ROM Emulator的典型应用就是和 ROM Monitor的调试方式相结合。
优点:目标机可以没有ROM芯片、可以使用ROM Emulator提供的ROM空间且不需要
用别的工具来写ROM。
缺点:目标机必须能支持外部ROM存储空间,而且由于其通常要和ROM Monitor配合使用,
因此它拥有ROM Monitor的所有缺点。
In-Circuit Emulator(ICE)
ICE是一种用于替代目标机上CPU的设备,即在线仿真器。
它比一般的CPU有更多的引出线,能够将内部的信号输出到被控制的目标机。
ICE上的Memory也可以被映射到用户的程序空间,这样即使目标机不存在的情形下也
可以进行代码的调试。
连接ICE和目标机时,一般是将目标机的CPU 取下,而将ICE的CPU引出线接到目
标机的 CPU插槽.用ICE进行调试时,在Host端运行的调试器通过ICE来控制目标机上运行的程序。
功能特点
同时支持软断点和硬件断点的设置
设置各种复杂的断点和触发器
实时跟踪目标程序的运行,并可实现选择性的跟踪支持“Time Stamp”,允许用户设置“Timer”.提供“Shadow RAM”,能在不中断被调试程序
的运行下查看内存和变量即非干扰调试查询
缺点:
价格太昂贵,不利于团队开发
所仿CPU有限.
In-Circuit Debugger(ICD)
主流的是JTAG调试,JTAG标准所采用的是主要技术是边界扫描技术。基本思想是靠近芯片的输入输出管脚上增加一个移位寄存器单元。
该接口一般由5个引脚组成:
测试数据输入(TDI)
测试数据输出(TDO)
测试时钟(TCK)
测试模式选择引脚(TMS)
异步测试复位引脚(TRST可选)
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0