主机/目标板调试设置的类型

主机/目标板调试设置的类型
   
开发者用来连接目标板与主机进行调试的接口基本上有三种类型:串行线、网络接口、特殊的调试硬件。
1、串口调试
 从主机对目标板进行调试时,最简单的做法就是使用一条串行连接线,因为串行电路简单,而且它通常会以某种形式出现在嵌入式系统中。然而,使用串行连接调试,会遇到两个潜在的问题。其一,串行连接的速度受到限制。其二,如果嵌入式系统中只有一个串行端口,或者串行连接是嵌入式系统对外唯一的接口,那么就不可能在对系统进行调试的同时,以终端仿真器跟系统交互。然而,不具备终端交互能力有时并不是问题。例如:当你用远程内核调试器对内核的启动程序进行调试时,并不需要用到终端仿真器,因为在内核完成引导之前,目标板是不会执行shell的。
 
2、网络接口调试
 使用网络接口,例如Ethernet上的TCP/IP协议,与串口连接相比,可以提供高的多的带宽。此外,目标板与主机之间可以在相同的物理网络连接上使用多重网络联机。因此,当你对目标板上的应用进行调试时,还可以继续跟目标板进行交互。当你用终端仿真器通过嵌入式系统的串行端口与目标板交互时,还可以通过网络接口进行调试。然而,有网络接口可用,就代表存在网络协议堆栈。因为协议堆栈存在于Linux内核里,因此网络连接一般不进行Linux内核调试,相对而言,内核的调试通常可以通过串行连接进行
 
3、调试硬件支持
 使用串行连接和网络连接,需要最起码的软件(串口驱动和网卡驱动程序)来处理目标板上最原始的I/O硬件。在某些情况下,例如将Linux移植到新的目标板上或是对内核本身进行调试,就不是这样了。这时,需要使用可以直接用硬件控制软件的调试接口。有几个方法可以完成此事,不过价格多半比较昂贵。
 
 目前,如果要直接控制硬件来进行调试,通常会使用BDM或JTAG接口。这些接口依靠的是CPU硅芯片内嵌的BDMJTAG特殊功能。只要将一个特殊的调试器连接到CPU上的JTAG或BDM相关管脚,就可以完全控制CPU的行为。因此,当遇到新的嵌入目标板,或是对目标板上的Linux内核进行调试时,通过都会使用JTAG和BDM。
 
 就技术原理来说,尽管BDM和JTAG调试器较内部电路仿真器便宜很多,简单很多,不过仍然需要购买特殊的硬件和软件。通常,这类软件和硬件还是比较贵的,因为CPU制造商并不想与别人分享如何使用其产品内嵌的JTAG和BDM接口的详细信息。要获得这些信息,通常会涉及你与制造商的信赖关系以及必须签署严格的保密条款。
 
 让开发人员每人配备一个BDM或JTAG调试器代价或许太大了,不过整个项目至少要配备一个这样的调试器,可以用来对串行或网络调试器无法处理的棘手问题进行调试。当选用这样的调试器时,可能需要评估与GNU开发工具链的兼容性问题。例如:某些BDM和JTAG调试器,需要使用经过特别修改的GBD调试器。一个优秀的BDM和JTAG调试器应该能够完全能够处理标准的GNU开发工具链及其产生的二进制代码。
                                                                                                      -- 摘自《构建嵌入式Linux系统》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值