以文本方式查看主題 - 曙海教育集團論壇 (http://www.xinguifushi.cn/bbs/index.asp) -- VxWorks 應用開發 (http://www.xinguifushi.cn/bbs/list.asp?boardid=38) ---- VxWorks WTX C API函數庫應用簡介 (http://www.xinguifushi.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應用程序部分,用戶可以根據需要調用相應函數來完成自己想要實現的功能。如查看內存、查看任務、下裝程序、運行任務等等。 |