以文本方式查看主题

-  曙海教育集团论坛  (http://sun4.cn/bbs/index.asp)
--  VxWorks 应用开发  (http://sun4.cn/bbs/list.asp?boardid=38)
----  VxWorks WTX C API函数库应用简介  (http://sun4.cn/bbs/dispbbs.asp?boardid=38&id=1964)

--  作者:wangxinxin
--  发布时间:2010-12-1 14:04:59
--  VxWorks WTX C API函数库应用简介
WTX概况
Tornado 公开了应用程序接口和协议。对 Tornado 工具而言 ,有两个重要的协议 WTX (Wind River Tool eXchange)和 WDB (Wind DeBug) ,它们是联系 Tornado 工具和目标机的媒介。
WTX协议负责目标服务器和驻留主机的开发工具之间的通信。该协议是可扩展的 ,允许添加新工具设计中需要的新的服务。
WDB 协议负责目标服务器和目标机代理器之间的通信。


WTX语言支持
WTX协议通常是通过TCL命令与C函数来进行访问的。分别提供了TCL接口函数库与C语言的函数库。


WTX协议的通信机制
WTX协议提供了Tool 与Target Server之间的接口。他们之间的通信机制如下,一个Tool向Tareget Sever请求信息或执行动作,WTX将这些请求传达给Target Server,而后Target Server 将作出适当的响应。



WTX 消息格式
所有的WTX消息都在installDir/host/include/wtxmsg.h中被详细定义了,这些消息都有一个同样的前缀“WTX_MSG_”。这些消息的定义中都包括一个WTX_CORE结构(如下所示),该结构中包括了这个消息的标识符与相应的错误代码errCode。当消息被正确的调用则返回OK,errCode错误代码为0,否则如果调用失败则返回相应的errCode错误代码(非零值)。可根据错误的返回值errCode到installDir/host/include/wtxerr.h中找到相应的错误信息。
typedef struct wtx_core               

/* WTX message core */

{
UINT32       objId;                 /* identifier */
WTX_ERROR_T  errCode;               /* service error code */
UINT32       protVersion;           /* WTX protocol version */

} WTX_CORE;



WTX
协议应用范围
Sessions交互时域与日志的管理;
系统级与任务级的调试;
Tool与Target Sever的绑定
目标机内存的访问
Tool与Target Server的断开
管理目标模块
管理符号表
管理上下文
支持虚拟输入输出
管理事件
支持Gopher


WTX
协议的C语言API
WTX C API是专为ANSI C而设计的,其将允许C应用程序可以享受Target Sever 的服务。任何的WTX应用都可以通过WTX C API来实现。
每一个WTX 的请求都被配备了相应的C语言子函数。例如,WTX_MEM_READ被配备了C函数wtxMemRead( ),所有的WTX C API 函数名都是从WTX的协议请求而来的。所欲的WTX C API都被保存在installDir/host/hostType/lib/libwtxapi中。

WTX C API调用框架

Tornado提供了wtx库wtxapi.dll,其函数声明在\\host\\include\\wtx.h中,下面阐述了如何调用这些函数。
①包含库文件说明:
#include “wtx.h”
②定义句柄结构:
HWTX
hwtx;
/* HWTX是句柄结构 */
③初始化WIX句柄:
/*initialize WTX session handle */
if(wtxInitialize(&hWtx)!=WTX_OK)

return (WTX_ERROR);
④连接到名字为“xulifeng”的目标机服务器:
/* attach to Target Sever named “xulifeng” * /
if(wtxToolAttach(hWtx,“xulifeng”,“wtxApp”)!=WTX_OK)

return(WTX_ERROR);
⑤ 注册事件(缺省是全部的事件):
if(wtxRegisterForEvent(hwtx,".*") != WTX_OK)
{
wtxToolDetach(hWtx);
return(WTX_ERROR);
}

这里添加wtx应用程序部分
.
.
.
.

断开连接
wtxToolDetach(hWtx);

结束任务
wtxTerminate(hWtx);
在wtx应用程序部分,用户可以根据需要调用相应函数来完成自己想要实现的功能。如查看内存、查看任务、下装程序、运行任务等等。