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應用程序部分,用戶可以根據需要調用相應函數來完成自己想要實現的功能。如查看內存、查看任務、下裝程序、運行任務等等。