WTX概況
Tornado 公開了應用程序接口和協(xié)議。對 Tornado 工具而言 ,有兩個重要的協(xié)議 WTX (Wind River Tool eXchange)和 WDB (Wind DeBug) ,它們是聯(lián)系 Tornado 工具和目標機的媒介。
WTX協(xié)議負責目標服務器和駐留主機的開發(fā)工具之間的通信。該協(xié)議是可擴展的 ,允許添加新工具設計中需要的新的服務。
WDB 協(xié)議負責目標服務器和目標機代理器之間的通信。
WTX語言支持
WTX協(xié)議通常是通過TCL命令與C函數來進行訪問的。分別提供了TCL接口函數庫與C語言的函數庫。
WTX協(xié)議的通信機制
WTX協(xié)議提供了Tool 與Target Server之間的接口。他們之間的通信機制如下,一個Tool向Tareget Sever請求信息或執(zhí)行動作,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協(xié)議應用范圍
Sessions交互時域與日志的管理;
系統(tǒng)級與任務級的調試;
Tool與Target Sever的綁定
目標機內存的訪問
Tool與Target Server的斷開
管理目標模塊
管理符號表
管理上下文
支持虛擬輸入輸出
管理事件
支持Gopher
WTX協(xié)議的C語言API
WTX C API是專為ANSI C而設計的,其將允許C應用程序可以享受Target Sever 的服務。任何的WTX應用都可以通過WTX C API來實現(xiàn)。
每一個WTX 的請求都被配備了相應的C語言子函數。例如,WTX_MEM_READ被配備了C函數wtxMemRead( ),所有的WTX C API 函數名都是從WTX的協(xié)議請求而來的。所欲的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應用程序部分,用戶可以根據需要調用相應函數來完成自己想要實現(xiàn)的功能。如查看內存、查看任務、下裝程序、運行任務等等。