前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tool之Target Server(vx6)

Tool之Target Server(vx6)

作者头像
Taishan3721
发布2019-07-10 15:28:31
1.6K0
发布2019-07-10 15:28:31
举报
文章被收录于专栏:这里只有VxWorks

在开发Embedded RTOS时,多是采用交叉式的开发方式,VxWorks就是一个典型代表。运行VxWorks的远程设备,称之为Target;运行IDE(例如Workbench、Tornado)的本地设备,称之为Host。貌似也有人跟它们叫下位机和上位机。

Target端,即VxWorks系统里,需要启动一个服务,WDB Agent。Host端,例如Windows里,启动一个工具,Target Server,通过底层的物理通道(例如Network)连接Target。然后Host的其它工具,例如Debugger,就可以访问Target的VxWorks了。VxWorks的售价这么高,一个很重要的原因,是它提供了很多故障定位工具。而这些工具很多都是通过Target Server,工作在run-time模式的

可以看到,IDE里很多工具还依赖于一个注册到Host的系统服务: Wind River Registry (wtxregd)。这个服务如果启动不了,Target Server是没法工作的

看看Target Server怎么用吧

首先,VxWorks Image里需要包含WDB组件INCLUDE_WDB

如果是6.9,还要包含INCLUDE_WDB_ALWAYS_ENABLED。或者在创建VIP时,就选中Enable WDB Target Agent

包含了INCLUDE_WDB后,VIP默认还会包含INCLUDE_WDB_COMM_END,也就是用END方式来连接WDB

如果参数WDB_END_DEVICE_NAME使用默认的NULL,则VxWorks使用Bootrom中的参数来设置WDB的device

VxWorks启动后,会提示WDB的方式和状态

而这个WDB agent是以任务形式提供的

这个优先级是由参数WDB_TASK_PRIORITY提供的

如果Target端没有END或者没有网卡驱动,可以使用串口来连接WDB

在《Component之SIO》里提到过,没有PC Console时,一般用串口0来做CONSOLE_TTY,因此WDB_TTY_CANNEL默认使用串口1

当Target端准备好之后,接下来看Host端了

在WorkBench的Remote Systems窗口里,新建一个Target Server Connection

通常只需要设置三个参数就可以连接WDB了

  • Backend - 如果WDB用的END,这里就选wdbrpc
  • Target address - VxWorks的IP地址
  • Kernel image File - Target使用Bootrom加载的VxWorks镜像文件

如果WDB用的串口,Backend就选wdbserial,波特率要与Target的WDB_TTY_BAUD一致

其它参数可以先用默认值。在最后一个页面里,默认选中了Immediately connect to target if possible

点击Finish后,这个connection就会自动连接。以后再次连接时,可以手动点击Connect

Target Server连上之后

Remote Systems里就能看到(并控制)Target端的任务与进程的状态了

其它很多工具也可以用了,例如Host Shell、Debugger、System Viewer、ScopeTools等等

等不用Target Server的时候,最好点击Disconnect,而不是直接关闭Target Server窗口

这正是:

交叉工具在线调(run-time),千军万马独木桥(WDB)。

可用网卡或串口(END/Serial),双方一致配合好。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档