微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > GDB RSP协议与USB通信在嵌入式调试系统中的应用

GDB RSP协议与USB通信在嵌入式调试系统中的应用

时间:11-14 来源:互联网 点击:

  1 引言

  调试嵌入式程序通常采用一种称为交叉调试的调试技术来调试已下载到嵌入式开发板中的程序。该技术可以允许用户通过PC机端的调试器以某种方式远程控制目标开发板上被调试程序的运行方式,并具有查看与修改目标开发板上内存单元、寄存器以及被调试程序中变量值等功能。采用硬件仿真器来调试嵌入式程序是常用的一种开发方式。

  一般嵌入式CPU都设计有JTAG口来进行硬件仿真调试。硬件仿真器通过JTAG口输入该CPU型号专有的JTAG时序来控制CPU的运行,并通过JTAG指令来观察CPU以及开发板上硬件设备的运行情况,主要是各种寄存器以及相关内存地址空间的实时数据。

  同时将嵌入式软件的运行结果通过JTAG口按照特定的JTAG时序输出反馈给硬件仿真器,硬件仿真器再通过USB或者串口、并口等总线返回给PC机端的调试软件。

  硬件仿真器通常采用USB总线与PC机端的调试软件通信,因此硬件仿真器需要采用相关的USB芯片来支持USB通信功能,同时PC端的调试软件也需要开发针对该款USB芯片的驱动功能以支持与硬件仿真器USB芯片的数据交互。此外,PC端的调试系统还包括调试器(比如GDB调试器)、协议转换器以及位于它们之间的远程调试协议(通常是GDB RSP协议),这些都是针对特定型号CPU定制的。

  本文通过对GDB RSP协议与USB通信技术的研究与应用,针对一款具有自主知识产权的ZW100DSP处理器成功开发了一套调试系统,从而为该款DSP的应用提供了极大的便利。该调试系统的框架如图1所示。

  

  2 GDB RSP协议与EZ-USB FX2芯片概述

  2.1 GDB RSP协议

  GDB 远程串行通信协议RSP(GDB RemoteSerial Protocol)是基于消息的 ASCⅡ码字符流协议,规定有服务器端(RSP Server)与客户端(RSP Client)之分,通常在GDB中实现客户端功能,而服务器端通常另起一个进程实现与GDB的RSP协议通信,两者之间的数据交互一般采用进程间的通信方式来实现,常用的有网络socket通信等。

  调试系统的RSP Server和RSP Client双方通过RSP协议进行数据的接收和发送。RSP 数据包包含了调试信息和校验两个部分。调试信息是以“$”作为开始、以“#”作为结尾的ASCⅡ码字符流,后面跟两个字节的校验码,该校验码的值是调试信息中所有字符的 ASCⅡ码相加后取256的模,该值用两个十六进制字符表示,数据包格式如图2所示。

  

  接收方接收到数据包后进行解析,如果接收到的数据包正确,会返回响应信息“+”字符,如果接收到的数据包出错,需要重新传送数据包,则返回响应信息“-”字符。发送方通过接收方发回的响应信息判断数据是否发送成功。

  RSP协议的调试命令是通过第一个ASCⅡ码字符进行区别的。以下是比较常用的调试命令及其功能:

  ● C:报告目标CPU挂起的原因;

  ● c、C、s和S:恢复运行或者单步调试目标CPU;

  ● D:与目标板断开连接;

  ● g和G:读写通用寄存器;

  ● m和M:读写内存地址空间;

  ● p和P:读写指定寄存器;

  ● X:加载二进制数据;

  ● z和Z:清除或者设置断点。

  2.2 Cypress EZ-USB FX2功能

  硬件仿真器采用Cypress的EZ-USB FX2芯片与PC端的调试进程(RSP Server)进行通信。Cypress公司的EZ-USB FX2系列芯片是世界第一个集成USB 2.0协议的微处理器,它支持12 Mb/s的全速传输和480 Mb/s的高速传输,可使用4种USB传输方式:控制传输、中断传输、批量传输和同步传输;完全使用USB 2.0,并向下兼容USB1.1.

EZ-USB FX2的前身是EZ-USB,其芯片固件也是存储在主机上而不是芯片内部,显着特点是代码容易升级。芯片结构也与EZ-USB类似,主要包括USB2.0收发器、串行接口引擎、增强型8051、16 KB的RAM、4 KB的FIFO存储器、I/O口、数据总线、地址总线和通用可编程接口GPIF.

  采用Cypress EZ-USB FX2芯片进行USB通信传输性能稳定,其硬件性能可以进行灵活配置。该芯片的特点在于:

  (1)USB2.0单芯片解决方案,包括USB2.0收发器,串行接口引擎(SIE)和增强型51内核。可“软配置”RAM,大小为16 K,可取代传统51的RAM和ROM,程序可以通过USB口下载或者通过外部EEPROM装载,同时也支持外界存储设备。

  (2)通用可编程接口GPIF.GPIF是FX2一个重要技术,可设置为主从模式,主从模式下可对外部FIFO、存储器、ATA接口设备进行高速读写操作,从模式下外部主控器(如DSP,MCU)可把GPIF端口当做FIFO进行高速读写操作;支持与外设通过并行8位或者16位总线传输;支持通过GPIF编程工具编程,灵活产生各种波形。支持多CTL输出和RDY输入。

(3)增强工业级8051内核:支持48 MHz时钟;4个时钟指令周期,在时钟为48 MHz时,单指令执行时间为83.3 ns;两个UART;三个TIMER;多中

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top