当前位置:首页 > 工作总结 > 嵌入式系统 单片机_BDI3000在嵌入式系统调试中的应用
 

嵌入式系统 单片机_BDI3000在嵌入式系统调试中的应用

发布时间:2019-02-16 04:37:17 影响了:

  摘要:本文使用先进的嵌入式调试工具BDI3000在GDB下实现嵌入式系统的调试,分别详细介绍了BDI3000与GDB的使用配置及注意事项,并结合PXA270和PowerPC405处理器进行具体分析和实现,为处理器的进一步开发奠定了良好基础。
  关键词:BDI3000;GDB;PXA270;PPC
  
  BDI3000 application in embedded-in System Debugging
  
  LIAN Li-hong
  (Department of Electronic Engineering, Xiamen UniversityTan Kah Kee College,
  Zhangzhou Campus of Xiamen University, 363105, China)
  
  Abstract: In this paper, BDI3000, which is a Debug Tool for embedded-in system, is applied with GDB to realize debugging. The configurations for BDI3000 are explained in detail, andsuccessfully implemented in PXA270 and PPC. It establishes a good foundation for further development on PXA270 and PowerPC405.
  Key words: BDI3000; GDB; PXA270; PPC
  
  1引言
  
  嵌入式系统开发中,ICE(In-Circuit Emulator)应用十分普遍。ICE嵌入到处理器内部的方法有两种:边界扫描技术(JTAG)和后台调试模式(BDM)。JTAG仿真器凭借着其软件实现方式灵活、硬件简单、成本低廉的优势,成为小批量数据传输开发中比较理想的一种方法[1]。为了实现各种不同的功能需求,JTAG技术在软硬件方面实现了许多突破:在提高调试速度方面有专门针对减少扫描链中扫描时间和关键路径时延的串并转换电路设计[1]和使用USB-JTAG转换器实现[2]等方法;更多的则是针对特定的处理器对JTAG协议进行软硬件的设计与实现,如浙江大学自行研制的DSP处理器 [3]、针对ARM系列微处理器[4]等等。但大部分的ICE都是针对某一种或一系列的处理器的,缺乏通用性。BDI3000是瑞士著名的仿真器研发生产公司(Abatron)继BDI2000后推出的新型ICE,它同主机间可以实现10/100 MHz的以太网连接,程序下载最高速度可达 1.5 MB/s,并具备了通用性和强大的调试功能等优点。本文就BDI3000及其在PXA270和PowerPC405处理器上的应用进行简要的介绍。
  
  2BDI3000的调试环境
  
  图1是基于BDI3000嵌入式调试实现的总体框架。在使用BDI3000进行调试时,BDI3000一边通过网线与主机相连,另一边通过JTAG接口与目标板相连。其中BDI3000支持的CPU包括:ColdFire的PPC4xx,Xilinx Virtex-II Pro,XScale的PXA270等。同时BDI3000提供了与不同目标板相匹配的JTAG接口线。
  
  3BDI3000配置
  
  在使用BDI3000进行调试前必须对硬件做相应的配置,主要包括初始化配置和连接配置。
  
   3.1 初始化配置
   BDI3000提供了在Windows和LINUX系统下的初始化配置。在Windows下主要完成如下配置:
   (1)选择连接端口(一般是COM1)和波特率,运行连接。
   (2)更新固件,在初次使用或者更换平台时都要更新固件。BDI3000为每一款处理器提供相应的固件,如XSCALE的b30xscgd.111。
  (3)设置BDI3000的IP、子网掩码、主机IP及配置文件的名字,同样BDI3000对每一款处理器提供了相应的配置文件,后面具体介绍。其框架如图2所示。
   在LINUX系统下主要完成如下列配置:
  (1)编译bdisetup.zip中的bdisetup.c、bdicnf.c、bdidll.c生成bdisetup.o。
  (2)检查连接,正常时将显示目前固件和网络信息。
  #./bdisetupv p/dev/ttys0 b115
  (3)下载/升级BDI3000固件。
  #./bdisetup -u b57 -p/dev/ttyS0aGDB tXSCALE (-u:更新固件;�b57:波特率57600;-p/dev/ttyS0:串口1(缺省);tXSCALE:XSCALE平台)
  (4)设置IP及其配置文件。
  #./bdisetup c p/dev/ttyS0 i59.77.17.118(此处是bdi ip) -h59.77.17.251(装linux 系统电脑的ip) -fxxx.cfg(xxx为配置文件名,放在tftp目录下载目录下不用写具体的地址)
  (5)检测是否配置成功。
   3.2 配置文件
   BDI3000配置中最难的一部分就是创建正确的配置文件(*.cfg)。通常cfg文件要初始化板子的RAM、FLASH、串口、网口等,主要包括以下几个部分:
  Init部分是板子每次启动时运行的初始化命令,是cfg文件中最难的一部分,通常需要用户自己改动。要正确地填写就需要对板子硬件例如片选情况、CPU情况等非常了解。但如果板子上有正确的BOOT程序,那可以把INIT空着不写。
  target部分主要定义板子内核信息,主要由CPUTYPE和STARTUP组成,其中COUTYPE指明BDI要通讯的内核,STARTUP是启动方式,如果板子有boot loader,使用STARTUP STOP xxxx,就是让BOOT程序运行xxxx毫秒再接管CPU;如果没有boot loader,使用默认的设置STARTUP RESET,具体步骤可以参照BDI3000手册。
  Host部分主要告诉BDI3000从哪里load 程序及其文件格式。需要自行配置的主要有IP和FILE,其中IP是TFTP Server所在计算机的IP,FILE则是load到SDRAM的文件。
  FLASH部分用来设置板子上面的Flash,它并非是与BDI3000通讯所必须的部分,但是如果要进行Flash操作,烧写Flash,那么必须正确设置才能够进行。
  REGS部分主要填写寄存器定义文件*.def,该文件需要放在TFTP Server目录下。
  下面是分别针对开发板情况对pxa270.cfg(表1)和v2p.cfg(表2)进行修改的部分代码。
  
   3.3 TFTP Server 与Telnet
  BDI3000通过以太网与主机进行通讯,主机需要先运行TFTP Server,而后再Telnet到BDI3000。Windows下BDI3000提供了现成的TFTP Server,直接运行即可。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文   LINUX下用户可以首先到网上下载相应的RPM包进行安装;接着在RedHat 8/9 下到etc/xinetd.d/tftp,修改配置文件service tftp中的server_args = -s /tftpboot,默认使用“/tftpboot”目录存放传输文件,我们的机子上使用/opt/armland/xscale;然后可用“/etc/init.d/xinetd start”命令启动TFTP服务,或者“/etc/init.d/xinetd restart”重新启动TFTP服务;最后在命令行输入telnet:,如果运行正常则输出一系列命令行等待用户输入相应指令。其中,常用的指令如:MD []用于读具体地址的值;RD []用于显示通用寄存器或者用户定义的寄存器数值;BOOT用于修改cfg文件后用boot命令重新引导;LOAD [] [ []] 用于load代码到RAM;ERASE [ []]用于FLASH擦除,要烧些FLASH需要先用此命令来擦除等。
  在指令执行中常见的几种异常及原因如下:
  1)waiting for VCC
  (1) 板子没有上电。
  (2) JTAG 数据线的JTAG VCC引脚断路或者电压过低(BDI要求1.2v-5.0v)。
  2)Syntax error:固件没有更新。
  3)Target reset failed:PPC的配置文件的双核配置同FPGA的单核配置冲突。
  4)Flash烧写异常:workspaces的地址必须是SDRAM中没有被使用到的地址。
  
  4GDB调试
  
   4.1 GDB安装与调试
  在https://www.省略/中提供了ARM、PPC、MIPS等处理器相应的GNU-TOOLS安装包,用户可直接下载安装,接下来可运行如下指令启动相应的GDB:
  XSCALE:arm-elf-gdb
  PPC:powerpc-elf-gdb
  其次通过target remote 59.77.17.118:2001建立连接。其中,59.77.17.118为BDI3000的IP,2001为端口号,对于多核情况:2001对应了#0,2002对应着#1,2003对应着#2,2004对应着#3。再次下载文件并读取符号表信息。
  load blob-elf32
  file blob-elf32
  最后并可输入相应的指令进行调试,如:b(断点),c(继续运行),n(单步)等。
  
   4.2 DEBUG Port端口硬件配置
  对XScale来说,DEBUG Port的硬件配置是硬连接,不需要用户进行配置。而Xilinx Virtex-II Pro PPC405 DEBUG Port开发板上并未连接,因此需要用户进行配置,具体如下:
  首先使用EDK9.1的Base System Builder wizard工程向导建立硬件工程,需要注意的是,在选择PPC Debug I/F时,应选择CPU debug user pins only。
  接着进行PowerPC405的Debug port与外部端口的连接配置,如图3所示。
   最后对管脚进行约束,生成并下载bit流文件进行配置。
  
  5总结
  
  本文在使用BDI3000对PXA270和PowerPC405两款处理器进行调试过程中,从BDI3000的初始化、连接配置,到GDB的安装、连接、调试端口配置以及调试等,都进行详细的阐述,系统地验证了BDI3000在嵌入式系统调试中对多CPU的支持能力和强大的调试功能。
  
  参考文献
  [1]许建荣,姚国良,胡晨.并口JTAG仿真器的设计与实现[J] .电子器件,2007,2,30(1): 314-317
  [2]郑德春,姚庆栋,刘鹏,余巧燕.嵌入式模拟器中的JTAG应用[J].浙江大学学报,2006.1,40(1):20-24
  [3]杨连国,史小军,朱为,堵国梁.基于JTAG标准的高速板上编程器设计[J].电子器件,2006.3,29(1):220-222
  [4]吴皓,刘鹏.基于JTAG的DSP处理器嵌入式调试接口设计[J].计算机工程2005,31(1):228-230
  [5] Abatron AG,bdi GDB JTAG interface for GNU Debugger,BDI3000(XScale).
  
  作者简介
  连丽红,助教,厦门大学嘉庚学院电子工程系,主研方向:嵌入式系统及应用。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3