以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- VxWorks 應(yīng)用開發(fā) (http://www.hufushizhe.com/bbs/list.asp?boardid=38) ---- VxWorks WTX C API函數(shù)庫應(yīng)用簡介 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=38&id=1964) |
-- 作者:wangxinxin -- 發(fā)布時間:2010-12-1 14:04:59 -- VxWorks WTX C API函數(shù)庫應(yīng)用簡介 WTX概況
Tornado 公開了應(yīng)用程序接口和協(xié)議。對 Tornado 工具而言 ,有兩個重要的協(xié)議 WTX (Wind River Tool eXchange)和 WDB (Wind DeBug) ,它們是聯(lián)系 Tornado 工具和目標機的媒介。 WTX協(xié)議負責(zé)目標服務(wù)器和駐留主機的開發(fā)工具之間的通信。該協(xié)議是可擴展的 ,允許添加新工具設(shè)計中需要的新的服務(wù)。 WDB 協(xié)議負責(zé)目標服務(wù)器和目標機代理器之間的通信。 WTX語言支持 WTX協(xié)議通常是通過TCL命令與C函數(shù)來進行訪問的。分別提供了TCL接口函數(shù)庫與C語言的函數(shù)庫。 WTX協(xié)議的通信機制 WTX協(xié)議提供了Tool 與Target Server之間的接口。他們之間的通信機制如下,一個Tool向Tareget Sever請求信息或執(zhí)行動作,WTX將這些請求傳達給Target Server,而后Target Server 將作出適當(dāng)?shù)捻憫?yīng)。 WTX 消息格式 所有的WTX消息都在installDir/host/include/wtxmsg.h中被詳細定義了,這些消息都有一個同樣的前綴“WTX_MSG_”。這些消息的定義中都包括一個WTX_CORE結(jié)構(gòu)(如下所示),該結(jié)構(gòu)中包括了這個消息的標識符與相應(yīng)的錯誤代碼errCode。當(dāng)消息被正確的調(diào)用則返回OK,errCode錯誤代碼為0,否則如果調(diào)用失敗則返回相應(yīng)的errCode錯誤代碼(非零值)。可根據(jù)錯誤的返回值errCode到installDir/host/include/wtxerr.h中找到相應(yīng)的錯誤信息。 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é)議應(yīng)用范圍 Sessions交互時域與日志的管理; 系統(tǒng)級與任務(wù)級的調(diào)試; Tool與Target Sever的綁定 目標機內(nèi)存的訪問 Tool與Target Server的斷開 管理目標模塊 管理符號表 管理上下文 支持虛擬輸入輸出 管理事件 支持Gopher WTX協(xié)議的C語言API WTX C API是專為ANSI C而設(shè)計的,其將允許C應(yīng)用程序可以享受Target Sever 的服務(wù)。任何的WTX應(yīng)用都可以通過WTX C API來實現(xiàn)。 每一個WTX 的請求都被配備了相應(yīng)的C語言子函數(shù)。例如,WTX_MEM_READ被配備了C函數(shù)wtxMemRead( ),所有的WTX C API 函數(shù)名都是從WTX的協(xié)議請求而來的。所欲的WTX C API都被保存在installDir/host/hostType/lib/libwtxapi中。 WTX C API調(diào)用框架 Tornado提供了wtx庫wtxapi.dll,其函數(shù)聲明在\\host\\include\\wtx.h中,下面闡述了如何調(diào)用這些函數(shù)。 ①包含庫文件說明: #include “wtx.h” ②定義句柄結(jié)構(gòu): HWTX hwtx; /* HWTX是句柄結(jié)構(gòu) */ ③初始化WIX句柄: /*initialize WTX session handle */ if(wtxInitialize(&hWtx)!=WTX_OK) return (WTX_ERROR); ④連接到名字為“xulifeng”的目標機服務(wù)器: /* 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應(yīng)用程序部分 . . . . ⑦ 斷開連接 wtxToolDetach(hWtx); ⑧ 結(jié)束任務(wù) wtxTerminate(hWtx); 在wtx應(yīng)用程序部分,用戶可以根據(jù)需要調(diào)用相應(yīng)函數(shù)來完成自己想要實現(xiàn)的功能。如查看內(nèi)存、查看任務(wù)、下裝程序、運行任務(wù)等等。 |