VxWorks操作系統(tǒng)RTP介紹和使用方法_第1頁
VxWorks操作系統(tǒng)RTP介紹和使用方法_第2頁
VxWorks操作系統(tǒng)RTP介紹和使用方法_第3頁
VxWorks操作系統(tǒng)RTP介紹和使用方法_第4頁
VxWorks操作系統(tǒng)RTP介紹和使用方法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、RTP介紹和使用方法VxWorks操作系統(tǒng)RTP介紹和使用方法從VxWorks 6.x開始引入 RTP(VxWorks real time process project)模式編程,這種模式的優(yōu)點(diǎn)是應(yīng)用程序相互獨(dú)立,互不影響,而且增加了內(nèi)核的穩(wěn)定性,缺點(diǎn)是由于“內(nèi)核態(tài)”與“用戶態(tài)”的內(nèi)存拷貝,其執(zhí)行效率有所降低,隨著CPU速度越來越快,這點(diǎn)效率的犧牲已經(jīng)越來越不重要。相比較于傳統(tǒng)的DKM(downloadable kernel module project),RTP適合多個(gè)團(tuán)隊(duì)獨(dú)立運(yùn)作,然后匯總聯(lián)試,這種模式除了全局函數(shù)不能再shell里直接調(diào)用外,其對應(yīng)用程序幾乎不做任何約束,原有的DKM工

2、程代碼稍作修改即可正常運(yùn)行。內(nèi)核變化較大,需要添加較多的組件,內(nèi)存需要較好的劃分,為保持應(yīng)用程序直接調(diào)用函數(shù)調(diào)試的習(xí)慣,需要封裝接口供用戶使用?,F(xiàn)簡單的介紹RTP使用方法,并給出demo代碼供參考。1新建并編譯工程:(1)File->new-> VxWorks real time process project,如圖【1】圖【1】(2)一路next后,選擇如圖【2】所示的編譯器圖【2】(3)選擇Finish后,工程新建完畢。(4)導(dǎo)入源文件:這里的源文件名稱是fooRtpApp.c,一種較快捷的方式是選中新建的工程,按下F5,源文件會出現(xiàn)在工程中.(5)右鍵選擇編譯,出現(xiàn)如圖【3】

3、,選擇Continue繼續(xù)。圖【3】編譯完成后,會生成vxe格式的可執(zhí)行文件,此處為usrAppA.vxe。2. 下載可執(zhí)行性文件待板子啟動后,使用ftp將vxe文件下載到板子中。步驟如下:(1)運(yùn)行->cmd,打開對話窗口,如圖【4】所示:圖【4】依次執(zhí)行如下命令:(a) ftp (該ip可在vxWorks啟動后,輸入命令ifconfig查看)(b) bi(c) cd /tffs0(d) put filename (完整的文件路徑)(e) by執(zhí)行完上述命令后,即可把可執(zhí)行程序下載到目標(biāo)板上,如下圖【5】:圖【5】在串口終端中,輸入ifconfig命令查看ip地

4、址;依次輸入如下命令查看剛下載到目標(biāo)板的文件:(a) cd “/tffs0”(b) ls上述操作結(jié)果如下圖【6】所示:圖【6】3運(yùn)行可執(zhí)行文件下載完成后,可以斷電重啟或者在調(diào)試串口中輸入命令ctrl+x軟重啟電路板,待系統(tǒng)啟動后應(yīng)用程序自動運(yùn)行。4. 調(diào)試方法(1)原有的DKM工程,.out文件被加載后其全局函數(shù)可以在shell里直接調(diào)用,對調(diào)試方便的很,但是RTP的實(shí)現(xiàn)機(jī)制決定了其中的函數(shù)不能被調(diào)用, 所以需要找到一種方法來實(shí)現(xiàn),以達(dá)到安全、團(tuán)隊(duì)合作,而又方便調(diào)試。函數(shù)原型:n “file_name”,”fun_name”,arg1, arg2,arg3, arg4, arg5, arg6假

5、如usrAppA.vxe里有如下兩全局函數(shù):void process_hello(int a,int b,int c);void processB(void);執(zhí)行方法如下:n "usrAppA.vxe","process_hello",1,2,3n "usrAppA.vxe","processB"這種方式在UP(單核)、多核(SMP)模式下都是安全可用的。(2)如果應(yīng)用程序存在BUG而導(dǎo)致RTP程序被殺掉,如何能快速定位是哪出了問題?請注意,RTP模式優(yōu)勢來了,此時(shí)vxWorks還是活著的,可以輸入命令edrSh

6、ow查看所有的異常,能快速定位是哪一個(gè)任務(wù)出了問題。(3)內(nèi)核啟動后,輸入命令:aff_lrtp,即可手動執(zhí)行應(yīng)用程序。這種方式可以把RTP及其任務(wù)親和到某一個(gè)核上,當(dāng)然只是多核跑在SMP時(shí)有效,單核模式無所謂,因?yàn)橹挥幸粋€(gè)核。(4)查看任務(wù)輸入命令ri “filename”可查看該應(yīng)用程序中任務(wù)狀態(tài),比如:ri “usrAppA.vxe”這種方式只查看針對本RTP的任務(wù)狀態(tài)。(5)殺掉RTP進(jìn)程delk “filename”*Demo*(6)Demo 代碼如下:#include <vxWorks.h>#include <stdio.h>/*#include <b

7、arLib.h>*/*user function*/void process_hello(int a,int b,int c)int t1=a,t2=b,t3=c;while(1) printf ("hello world,0x%x,0x%x,0x%xn",t1,t2,t3); taskDelay(30);void processB(void) printf ("hello worldn");int main ( int argc, /* number of arguments */ char * argv, /* array of arguments */ char * envp, /* array of environment strings */ void * auxp /* implementation-specific auxiliary vector */ ) taskSpawn("hello",

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論