欢迎来到天天文库
浏览记录
ID:46380125
大小:943.50 KB
页数:74页
时间:2019-11-23
《嵌入式系统开发环境和调试方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章嵌入式系统的开发环境和调试方法目录嵌入式系统的调试方法基于仿真头的传统调试方法基于JTAG的调试方法基于Angel的调试方法基于软件仿真的调试方法嵌入式Linux的开发环境和调试方法WindowsCE的开发环境和调试方法嵌入式系统的调试方法嵌入式调试系统应含调试主机、仿真器(协议转换)和目标板3个部分。调试主机即一台安装有开发工具软件的通用计算机;目标板即被调试对象,在这块目标板上应该焊接一片所使用的目标CPU。调试也有多种方法,按其原理分类叙述如下。(1)基于仿真头的传统调试方法(2)基于JTAG的调试方法(3)基
2、于Angel的调试方法(4)基于软件仿真的调试方法基于仿真头的传统调试方法在嵌入式系统的开发中,有时也使用传统的调试方法,即使用一个单片机作为仿真头,取代目标板上的CPU。这种在线仿真器和调试主机之间可以有多种连接方式。它具有下列局限性:①由于要使用一个比目标CPU更复杂的单片机做仿真器,就必须先解决这个更复杂的单片机的生产和仿真调试问题。②必须为每一种单片机研制仿真器,这不但增加产品开发成本,在实际上也是很困难的。③使用传统的调试方法必须把仿真器焊接或插接在目标板上,这对于引脚数量很大的贴片式目标CPU,也是不可能的。基于
3、JTAG的调试方法嵌入式系统最常用的调试方法。调试主机上必须安装的工具包括程序编辑和编译系统、调试器和程序所涉及的库文件。目标板必须含有JTAG接口。调试主机和目标板之间有一个协议转换模块,称为调试代理,主要作用有两个:●在调试主机和目标板之间进行协议转换;●进行接口转换,目标板一端是标准的JTAG接口,调试主机一端可能是串口、并口或是USB接口等。常见的ARM仿真器大都是基于JTAG的仿真器。基于JTAG的调试方法使用边界扫描技术可以全面地解决了传统调试方法所带来的困难。近年来生产的大多数结构复杂的单片机,都使用边界扫描技
4、术为用户提供仿真调试方法。这种调试方法具有下列特点:①需要把目标CPU焊接在目标板上。在调试过程中,执行用户指令和控制调试过程的是目标CPU本身;不需要其他单片机参与调试。使用边界扫描技术实现系统调试必须保证目标板的最小系统正常工作。基于JTAG的调试方法②仿真系统可以通用。例如,一个ARM7的仿真系统可以调试所有以ARM7为核的单片机,即使这些单片机来自不同的厂家,即使这些单片机的性能相差很大。但要注意,在对单片机内的程序存储器进行用户程序固化时,仿真系统不是通用的。③仿真器与被调试的目标CPU的复杂程度无关。这是由ARM
5、处理器的特点决定的。基于JTAG的调试方法③仿真器与被调试的目标CPU的复杂程度无关。这是由ARM处理器的特点决定的。④仿真系统开发成本比较低。因为系统能够通用,所以开发成本可以大幅度降低。虽然ARM处理器结构比较复杂,但是并没有增加仿真器的开发难度。⑤结构简单。ARM仿真器结构都比较简单,原因是调试中的大部分工作都由处理器完成。基于JTAG的调试方法—边界扫描技术每个边界扫描单元的检测对象都是一条引线,并假定一个边界,只在这个边界位置检测和控制这条引线,对边界以外的结构不予关心。引线A和B之间插入一个边界扫描单元,当扫描单
6、元不工作时,A和B引线是“透明”的;当扫描单元工作时,A和B引线也可以是“透明”的,也可以是不“透明”的。串行数据输出可以采样A端信号,也可以采样B端信号。在不“透明”的情况下,串行数据输入信号可以传送到A端,也可以传送到B端。这样就可以达到检测和控制引线A和B的目的。基于JTAG的调试方法—ARM调试原理ARM处理器内核包括调试逻辑和接口逻辑。对于不同版本的ARM处理器内核,调试逻辑和接口逻辑略有差别。ARM7的调试逻辑包括3个部分:①嵌入式ICE—RT逻辑。支持实时调试的嵌入式在线仿真逻辑。实现在线调试功能,可以通过两种
7、方式进行访问:●通过ARM处理器主核访问。ARM主核把嵌入式ICE-RT作为外部协处理器14,使用协处理器指令MCR和MRC进行访问。●通过扫描链进行访问。调试系统通过扫描链2访问嵌入式ICE-RT。②TAP控制器。调试系统通过TAP控制器控制扫描链的工作。③由多个扫描链组成的扫描逻辑。供用户使用的共有3个扫描链。基于JTAG的调试方法—ARM调试原理①嵌入式ICE—RT逻辑。支持实时调试的嵌入式在线仿真逻辑。②TAP控制器。调试系统通过TAP控制器控制扫描链的工作。③由多个扫描链组成的扫描逻辑。供用户使用的共有3个扫描链。
8、基于JTAG的调试方法—ARM调试原理在ARM处理器中,主要的扫描链共有3条:●扫描链0:允许调试系统对整个ARM处理器主核外围进行访问,扫描链0长度为105位。包括32位数据总线和32位地址总线。●扫描链1:长度是33位,是扫描链0的的前33位,包括32位数据总线和1位控制位。●扫描链2
此文档下载收益归作者所有