位置:51电子网 » 技术资料 » 嵌入式系统

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

发布时间:2008/5/27 0:00:00 访问次数:387

摘要 设计实现一个适用于基于emjtag的arm嵌入式系统调试工具。它首先定义了一个轻量级的远程调试协议emrdi,用于pc机与基于emjtag的arm目标板之间的交互过程;然后描述了用意法半导体公司(st)的st72651芯片实现一个协议转换器emjtag的技术细节。emjtag的功能就是将pc机的调试命令转换成目标板的jtag时序信号,以达到控制pc机和调试目标板的目的。关键词emrdiemjtag边界扫描远程调试协议转换器

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

(2字节)主命令号

(1字节)次命令号

(1字节)地址字段或者保留

字段(12字节)0xaaaaemrdi协议响应格式(8字节)如下:响应前导字节

(2字节)主命令号

(1字节)次命令号

(1字节)保留位

(2字节)错误码

(2字节) 0x1111arm核的芯片基本上都遵循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直接供电。图2emjtag原理框图与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由

摘要 设计实现一个适用于基于emjtag的arm嵌入式系统调试工具。它首先定义了一个轻量级的远程调试协议emrdi,用于pc机与基于emjtag的arm目标板之间的交互过程;然后描述了用意法半导体公司(st)的st72651芯片实现一个协议转换器emjtag的技术细节。emjtag的功能就是将pc机的调试命令转换成目标板的jtag时序信号,以达到控制pc机和调试目标板的目的。关键词emrdiemjtag边界扫描远程调试协议转换器

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

(2字节)主命令号

(1字节)次命令号

(1字节)地址字段或者保留

字段(12字节)0xaaaaemrdi协议响应格式(8字节)如下:响应前导字节

(2字节)主命令号

(1字节)次命令号

(1字节)保留位

(2字节)错误码

(2字节) 0x1111arm核的芯片基本上都遵循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直接供电。图2emjtag原理框图与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由

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!