vxworks+debug

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图形化交叉调试器简介

1. 简介

CrossWind/WDB是tornado提供的基于源代码的调试工具,它支持任务级和系统级调试,支持混合代码和汇编代码显示,并且支持目标机同时调试。WindDebug(WDB)协议是一种用于调试的私有协议,目标机(target)通过WindDebug(WDB)协议与开发机(HOST)之间交互通信。

主机-目标机交互方式如下:

HOST ┆ Target

┌──────>wtxregd ┆

v ^ ┆

Tool<────┐│┆VxWorks

Tool<────┼> tgtsvr <────────------->WDB Agent

Tool<────┘┆

本地必须启动一个target server,目标机中必须有WDB agent,这样才能进行交叉调试。

target server(目标机代理)

Target server提供基于主机的目标机资源管理,以便于Tornado工具访问目标机,功能如下:

与目标机上的debug引擎进行通讯

动态模块下载和卸载

常驻主机的目标机符号表

在目标机上为主机上的工具分配内存

缓存目标机代码text段

支持虚拟IO

Target server增强了主机和目标机之间的灵活性,使得主机工具对目标机的影响最小,主机工具与主机和目标机之间的通信方式互相独立,所有的Tornado工具均使用WindRiver Tool Exchange协议(缩写为WTX)与target server通信。WTX协议具体内容参见Tornado API指南。

Target server通过下列方式响应工具的WTX请求:

操作缓存中的信息

发送请求到目标机上的WDB agent中

Wtxregd

在启动target server和工具之前要先启动wtxregd。Tornado工具、registry和target server可以运行在不同主机上,Tornado registry程序必须运行在指定的主机上。windows下为Tools=>Options...=>Tornado Registry页面中指定的主机,tornado 工具与目标机通过target server(tgtsvr)进行交互,target server提供: 网络、串口、NetROM或者用户自定义连接上的通信

常驻主机的目标机符号表

动态模块下载和卸载

缓存目标机RAM中程序的text段

在target上创建虚拟IO路径

Wind Registry程序wtxregd负责管理tornado工具与target server之间连接所需的各种信息。tornado工具首先与registry进行交互,获取target server的相关信息。

WDB代理

WDB调试代理运行在目标机上,与target server进行交互,执行命令并返回结果。WDB代理位于target server和Tornado工具之间,可以完成以下功能: 读取或修改内存

设置或清除断点

创建、启动、停止或删除任务

调用函数

收集系统目标信息

通常WDB代理作为一个任务运行在目标机上,因此获得最佳性能。但这种情况下只能进行任务级调试。也叫做task或internal模式。通常我们可以看到在任务中有twdbTask 这个任务(如图1所示)。

图 1

由于WDB代理不依赖于VxWorks,所以也能够执行系统级调试--例如:调试中断服务程序或内核运行起来之前的代码。将WDB代理与VxWorks分开运行才能进行系统调试。

也叫做external或system模式。WDB代理做为一个组件,如果要使用交叉调试,则需要在bootConfig.c中配置将其添加进来(如图所示)。默认的vxworks映像中定义了WDB 代理,并开启了WDB代理支持。所有目标机代理相关的模块均位于/development tool components/WDB agent components/.下。几乎所有目标机的默认配置为:包含系统级和任务级两种调试方式,采用END方式进行通信。在系统开始多任务切换之前进行调试,需要设置为单一系统级调试模式,要调试中断服务程序,则必须选择external agent模式。既选择任务模式又选择系统模式,vxworks将创建external和task两种WDB代理。当进入或退出系统调试时,代理会自动切换。

图 2

target server与WDB代理之间的通信遵守WindDebug(WDB)协议, WDB 代理使用目标机内存来满足上位机工具的请求,例如:下载目标代码,创建变量,生成任务或运行命令。由于代理使用单独的内存区域,使得Tornado工具对目标机的影响降到最小。主机-目标机通信方式如图3所示:

图 3

所有的工具均连接到主机上的target server,target server负责处理与WDB agent 之间的通信细节,Tornado支持TCP/IP,串口和NetROM等连接方式。

通过串口线进行调试时,请使用最高可靠性的数据传输。速率。

2. 配置:

我们在日常开发中调试最常用的任务级调试,目前用的比较多的也是通过网口连接到目标机上进行交叉调试。通过tornado提供的工具,我们可以很方便访问vxworks shell、进行单步deug、查看内存中的变量。下面具体描述通过网口通信方式的搭建步骤:

环境:tornado 2.2.1

源码文件(编译elf的源代码)

本地编译后生成的elf文件(与目标机此时加载的image是一样的,否则会提示校验和不对)

配置target server:

a)从开始菜单中选择tools->target Server->config.(图4所示)

图 4

b)出现界面如下:

Description:主要是针对该服务器的描述。

Target Server:填本地机IP地址。

Target Ip Address:目标机IP地址。

Target Server properti:

相关文档
最新文档