新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于EmJTAG的ARM嵌入式系统调试工具

基于EmJTAG的ARM嵌入式系统调试工具

作者:时间:2012-11-10来源:网络收藏
引言
  嵌入式系统的大致开发流程是:先在PC机上编写程序源代码;由的交叉编译器编译、链接生成一个目标文件;然后将目标文件转化成可以下载到目标机运行的二进制代码,在目标机上调试运行;最终将调试成功的二进制文件固化在目标机中。这一系列过程中,最关键的步骤就是在PC机上调试在目标机上运行的程序。这就需要采用远程调试的方式,即在PC机上运行调试器软件,被调试程序在目标机上运行。
  本文描述了这样一个远程调试系统:利用USB批量传输的可靠性,将远程调试协议EmRDI的报文封装在USB数据包中;协议转换器再根据接收到的USB数据包中的协议信息,转换成适当的JTAG信号来控制和调试核。协议转换器由ST公司的ST72651芯片外加一片接口驱动芯片74LVC244来实现。ST72651内部集成了USB模块和数据传输协处理器部件(DTC),通过对DTC的编程来产生控制ARM核的边界扫描序列,以产生相应的JTAG信号。
  文章最终实现了PC机对ARM核的目标机的调试功能:PC机的调试器软件可以下载程序至目标机,实时控制目标机上代码的单步/全速运行或停止,以及设置断点和观察点、读写寄存器/存储器等。
1 系统组成及原理
  如图1所示,整个调试系统包括三部分: PC机(调试器)、协议转换器()以及目标板(基于ARM核)。调试的目的是实现在PC机上控制目标板单步或全速运行,并可以实时地察看或修改寄存器及存储器的值。
  系统设计实现了一个远程调试协议EmRDI,它采用点对点的连接方式,以请求响应的方式进行交互。调试请求由PC机上的调试器软件发出,经由USB总线传输至协议转换器EmJTAG;EmJTAG解读该协议请求,在执行相应的操作之后,以USB数据包的形式发送回PC机(即响应过程)。
  EmRDI协议定义了如下一些调试请求:读/写核寄存器、读/写存储器、设置/清除硬件断点、设置/清除软件断点、设置/清除数据观察点、复位、停止运行、全速/单步运行和返回处理器状态/设备标识符。经验证,这些请求的组合,可以实现PC机对目标机上ARM核的调试和控制功能。
  EmRDI协议请求格式(16字节)如下:

  EmRDI协议响应格式(8字节)如下:

  ARM核的芯片基本上都遵循JTAG规范,并带有边界扫描功能,此类芯片内集成了一个JTAG电路结构。JTAG电路由TAP(测试访问端口)、TAP控制器、指令寄存器、测试数据寄存器组成。另外,ARM7TDMI核还包含了一个提供在线调试支持的EmbeddedICE宏单元。

图1 系统框图
  EmJTAG和PC机通过USB总线连接,与目标板则遵循JTAG调试接口标准。JTAG规范中,使用称为“边界扫描单元”的基本结构。边界扫描单元将JTAG电路与处理器逻辑电路联系起来,通过它可以将一个输入信号加载到处理器逻辑中而不影响逻辑的其他电路,也可以将处理器逻辑的输出信号采样到边界扫描单元中。若干个边界扫描单元构成边界扫描寄存器(BSR),也称为“边界扫描链”。边界扫描寄存器的数据通过JTAG接口的TDI引脚和TDO引脚串行移进移出。
  PC机上需要实现:EmJTAG的USB驱动程序和调试器软件。
  EmJTAG上需要实现:USB固件程序和用于产生JTAG信号的边界扫描程序。
2 硬件设计和实现
  系统的硬件部分主要是指协议转换器EmJTAG的实现。协议转换器的功能,就是接收PC机上调试器软件发送的远程调试协议信息,将它转换成JTAG时序信号发送到目标板,然后把目标板的反馈信息或者数据返回给PC机的调试器软件。
  EmJTAG使用意法半导体(ST)公司的ST72651芯片,原理框图如图2所示。它集成了1个全速(12 Mbps)USB接口模块,1个时钟频率为24 MHz的数据传输协处理器(DTC),32 KB程序存储空间,5 KB RAM,硬件I2C和SPI接口,多达47个可编程I/O口;工作电压为2.7~5.5 V,由USB直接供电。

图2 EmJTAG原理框图
  与PC机通信方面,USB接口部分只需要将DP脚上拉一个电阻,使PC机识别到USB设备。DTC模块产生4个时钟信号作为JTAG时钟信号(TDI、TDO、TMS和TCK),由I/O口引出,外部再加一个接口驱动芯片74LVC244,将这4个信号连接到标准的JTAG接口上。TAP控制器复位信号nTRST和系统复位信号nSRST通过I/O逻辑直接控制。
  EmJTAG采用USB供电方式,同时在TCK引脚上连接一个指示灯BUSY,显示系统是否处于忙状态。接口驱动芯片74LVC244由内部集成的电压校准器产生3.3 V来提供电压。
3 软件设计和实现
  软件部分主要包括: PC机上的调试器软件,EmJTAG协议转换器的PC端驱动程序以及EmJTAG中的固件程序。
3.1 PC机上的调试器软件
  采用VC++ 6.0 MFC。其主要功能是与EmJTAG的PC端驱动程序通信,将调试命令通过USB总线发送至EmJTAG。
3.2 EmJTAG的PC端驱动程序
  使用Driverstudio3.1开发Windows下的USB驱动程序,使EmJTAG和PC机的应用程序可以进行数据交互。
3.3 EmJTAG中的固件程序
  固件程序使用意法半导体(ST)开发工具STVD7 for InDART STX进行开发。这一部分也是调试系统最重要的部分,即如何产生JTAG时序信号控制ARM核。EmJTAG中的固件分成以下多个模块实现。
3.3.1 DTC软件插件程序模块

图3 DTC功能框图

上一页 1 2 下一页

关键词: EmJTAG ARM 调试工具

评论


相关推荐

技术专区

关闭