下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔-下載后可編輯VxWorks下的任務(wù)監(jiān)控方法及應(yīng)用-設(shè)計(jì)應(yīng)用1VxWorks交叉開發(fā)模式
在VxWorks下應(yīng)用軟件開發(fā)時(shí)采用交叉開發(fā)模式,宿主機(jī)通常是普通的PC機(jī),目標(biāo)機(jī)就是應(yīng)用程序真實(shí)的運(yùn)行的硬件平臺(tái);集成開發(fā)環(huán)境Tornado位于宿主機(jī),用戶通過Tornado開發(fā)環(huán)境完成代碼編寫、編譯、鏈接,宿主機(jī)與目標(biāo)機(jī)通過分別位于其上的TargetServer和TargetAgent實(shí)現(xiàn)信息交互,物理連接往往是串口或者網(wǎng)絡(luò),在開發(fā)調(diào)試過程中,用戶將編譯鏈接后的目標(biāo)代碼通過TargetServer加載到目標(biāo)機(jī)上運(yùn)行,可以通過Tornado下的Shell、Debugger、Browser以及Windview等工具監(jiān)控目標(biāo)機(jī)上應(yīng)用程序任務(wù)的運(yùn)行情況,應(yīng)用程序使用printf語句打印的調(diào)試信息回送到宿主機(jī),借助打印信息和Tornado提供的各種調(diào)試工具,開發(fā)者可以監(jiān)控任務(wù)的運(yùn)行情況,當(dāng)某個(gè)任務(wù)出錯(cuò)時(shí),可以通過各種輸出信息分析問題原因。
但是一旦完成開發(fā)投入實(shí)際試驗(yàn)使用,由于實(shí)際使用環(huán)境和當(dāng)初的開發(fā)調(diào)試環(huán)境有較大的區(qū)別,難免會(huì)出現(xiàn)各種異常情況,比較常見的異常就是任務(wù)掛起,在這種情況下開發(fā)者往往無法像在地面調(diào)試時(shí)那樣可以外接調(diào)試電纜捕獲異常信息,以確定發(fā)生異常的任務(wù),也無法捕獲開發(fā)者在開發(fā)過程中的輔助打印信息,這種情況在戰(zhàn)斗機(jī)機(jī)載軟件尤為常見?;赩xWorks的應(yīng)用軟件大多采用多任務(wù)方式,無法像以前沒有操作系統(tǒng)的嵌入式系統(tǒng)那樣,通過硬件看門狗電路,在軟件運(yùn)行出錯(cuò)時(shí)自動(dòng)重啟恢復(fù)軟件運(yùn)行,一個(gè)任務(wù)出錯(cuò)往往并不會(huì)引起操作系統(tǒng)重啟,用戶通過上層很難判斷應(yīng)用軟件運(yùn)行是否正常。因此需要建立軟件看門狗機(jī)制,監(jiān)控任務(wù)運(yùn)行情況,在出現(xiàn)異常時(shí)記錄必要的異常信息,自動(dòng)重啟設(shè)備。同時(shí),需像開發(fā)階段那樣記錄輸出信息,以輔助分析異常原因。
2系統(tǒng)輸出信息捕獲
在VxWorks下系統(tǒng)輸出信息包括:標(biāo)準(zhǔn)輸出(STD_OUT,文件描述為1)和標(biāo)準(zhǔn)錯(cuò)誤輸出(STD_ERR,文件描述為2)。使用printf、IogMsg語句等輸出的信息,以及用戶和操作系統(tǒng)其他的打印輸出信息均通過STD_OUT輸出,而STD_ERR則是在系統(tǒng)出錯(cuò)時(shí)使用,例如:
dataaccess
Exceptioncurrentinstructionaddress:0x00072054
MachineStatusRegister:0x0000b030
DataAccessRegister:0xeeeeeef2
ConditionRegister:0x22000040
DatastorageinterruptRegister:0x0000b030
Task:0x1c9e50"RadarProc"
上面的打印信息是任務(wù)“RadarProc”出錯(cuò)時(shí)操作系統(tǒng)輸出的錯(cuò)誤信息,通過STD_ERR文件描述符輸出的。
STD_OUT和STD_ERR可以分別輸出,但是通常情況下它們均定向到控制臺(tái)(consoleFd),即在交叉開發(fā)模式下通過目標(biāo)機(jī)TargetAgent和宿主機(jī)的TargetServer輸出到串口或者網(wǎng)絡(luò)。在VxWorks下操作系統(tǒng)提供ioGIobalStdSet接口函數(shù)支持輸出重定向,函數(shù)原型:
voidioGIobaIStdSet(intstdFd,intnewFd)
其中stdFd為STD_OUT(1)或者STD_ERR(2),newFd為重定向的文件描述符。利用這個(gè)函數(shù)就可以實(shí)現(xiàn)系統(tǒng)輸出信息的捕獲,具體方法如下:
FILE*printf_stream=fopen("/ide0/log.txt","a+"):
ioGlobalStdSet(STD_OUT,fileno(printf_stream));
ioGlobalStdSet(STD_ERR,fileno(printf_stream));
在上面的代碼中,在設(shè)備/ide0(電子盤)上打開名為log.txt的文件,打開方式為追加式,將STD_OUT和STD_ERR重定向到printf_stream指向的文件。需要注意的是,不能像平常那樣關(guān)閉printf_stream文件指針,這樣就可以將系統(tǒng)的所有輸出信息保存在文件log.txt中。
3任務(wù)監(jiān)控
3.1任務(wù)狀態(tài)
VxWorks下任務(wù)有四種基本狀態(tài):READY、PEND、DELAY、SUSPEND,在用戶不使用Shell命令人為改變?nèi)蝿?wù)狀態(tài)前提下,如果狀態(tài)中出現(xiàn)SUSPEND,就說明該任務(wù)已經(jīng)出錯(cuò)。
3.2任務(wù)監(jiān)控設(shè)計(jì)
任務(wù)監(jiān)控需要周期性的監(jiān)測(cè)操作系統(tǒng)中所有運(yùn)行的任務(wù)狀態(tài),發(fā)現(xiàn)某任務(wù)出錯(cuò)時(shí)記錄任務(wù)的相關(guān)基本信息,并自動(dòng)重啟。任務(wù)監(jiān)控必須兩個(gè)操作系統(tǒng)接口函數(shù):
inttaskIdListGet(intidList[],intmaxTasks)
STATUStaskStatusString(inttid,char*pString)
taskIdListGet函數(shù)可以獲得當(dāng)前操作系統(tǒng)中運(yùn)行的所有任務(wù),idList存放獲取的任務(wù)id的數(shù)組,maxTasks為數(shù)組大小。taskStatusString獲取任務(wù)狀態(tài)名稱,tid是任務(wù)id,pString為任務(wù)狀態(tài)名稱。
在發(fā)現(xiàn)時(shí)任務(wù)出錯(cuò)時(shí)通過回調(diào)函數(shù)告訴用戶出錯(cuò)任務(wù)情況,出錯(cuò)任務(wù)數(shù)據(jù)結(jié)構(gòu):
structTroubleTaskStruct
{
inttaskID;//出錯(cuò)任務(wù)id
chartaskName[256];//任務(wù)名稱
chartaskState[32];//任務(wù)狀態(tài)
};
回調(diào)函數(shù)原型:
typedefvoid(*TroubleTaskFuncPtr)(constTroubleTaskStructtroubleTaskVector,inttroubleTaskNum);
4結(jié)束語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB 5135.11-2025自動(dòng)噴水滅火系統(tǒng)第11部分:溝槽式管接件
- GB/T 46785-2025風(fēng)能發(fā)電系統(tǒng)沙戈荒型風(fēng)力發(fā)電機(jī)組
- GB/T 14897-2025木工刀具術(shù)語
- 2025年高職生物學(xué)(分子生物學(xué))試題及答案
- 2025年大學(xué)一年級(jí)(工藝美術(shù))中外工藝美術(shù)史試題及答案
- 2025年高職(工程造價(jià))工程成本分析階段測(cè)試題及答案
- 2025年高職連鎖經(jīng)營(yíng)管理(門店運(yùn)營(yíng))試題及答案
- 八年級(jí)生物(生態(tài)系統(tǒng))2025-2026年上學(xué)期期中試題及答案
- 2025年中職數(shù)字媒體藝術(shù)設(shè)計(jì)(數(shù)字媒體藝術(shù)設(shè)計(jì)應(yīng)用)試題及答案
- 2025年大二(旅游管理)景區(qū)運(yùn)營(yíng)管理測(cè)試卷
- 城市地下綜合管廊運(yùn)營(yíng)方案
- (完整版)2025年新版藥品管理法培訓(xùn)試卷附答案
- 2025年檢察院書記員考試題庫(kù)附答案
- 血管導(dǎo)管相關(guān)感染預(yù)防與控制指南(2025版)
- 監(jiān)理安全管理組織機(jī)構(gòu)
- 團(tuán)支書團(tuán)務(wù)知識(shí)培訓(xùn)課件
- 黑龍江省哈爾濱市第九中學(xué)校2025-2026學(xué)年高二上學(xué)期9月月考英語試卷(含答案)
- 智能手機(jī)應(yīng)用課件
- DG-TJ08-506-2025 人工砂在混凝土中的應(yīng)用技術(shù)標(biāo)準(zhǔn)
- 北京市朝陽區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末考試物理試題
- 人工智能助力醫(yī)療保障精細(xì)化管理研究報(bào)告
評(píng)論
0/150
提交評(píng)論