亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VXWORKS跨平臺(tái)異常處理模塊的研究與實(shí)現(xiàn)

        2014-11-15 02:50:14郭繼寧于恩祥
        電子測試 2014年5期
        關(guān)鍵詞:分析

        郭繼寧,于恩祥

        (渤海大學(xué),遼寧錦州,121000)

        0 引言

        在VxWorks下,使用系統(tǒng)本身提供的接口函數(shù)ExcConnect()來進(jìn)行異常處理只對(duì)PowerPC系列處理器有效,對(duì)目前使用同樣廣泛的Intel80x86系列處理器和ARM系列處理器無法提供有效支持。本文主要針對(duì)目前VxWorks異常機(jī)制可移植性差的問題,提出一種及時(shí)準(zhǔn)確并且與具體處理器類型無關(guān)的捕捉異常的方法。

        1 VxWorks下異常分析與處理

        在VxWorks下如果使用默認(rèn)的異常處理機(jī)制,處理結(jié)束后:產(chǎn)生異常的任務(wù)將被懸掛,且該消息將被傳送到控制臺(tái)??梢钥闯?,如果不對(duì)異常進(jìn)行處理,使用默認(rèn)的異常處理方法,對(duì)于一個(gè)系統(tǒng)來說往往是致命的。所以我們必須對(duì)系統(tǒng)默認(rèn)的異常處理方法進(jìn)行修改和完善。

        可以將異常處理流程分為以下5個(gè)階段:

        1)一個(gè)軟件錯(cuò)誤發(fā)生。

        2)錯(cuò)誤的原因和性質(zhì)被一個(gè)異常對(duì)象攜帶。

        3)程序檢測這個(gè)異常對(duì)象,或者允許它的存在,或者由其主動(dòng)上報(bào)。

        4)檢測代碼決定如何處理異常。

        5)異常處理完畢,恢復(fù)程序并繼續(xù)執(zhí)行。

        2 跨平臺(tái)異常處理模塊的實(shí)現(xiàn)

        2.1 整體實(shí)現(xiàn)方案

        本文設(shè)計(jì)的異常處理模塊采用鉤子函數(shù)的方式接收操作系統(tǒng)傳入的異?,F(xiàn)場;在內(nèi)存的保留區(qū)保存?zhèn)魅雲(yún)?shù),并釋放信號(hào)量以激活守護(hù)任務(wù);守護(hù)任務(wù)保存未解析的現(xiàn)場信息;采用堆棧回溯和匹配函數(shù)序言的方式進(jìn)行函數(shù)調(diào)用鏈分析,將結(jié)果保存到內(nèi)存保留區(qū);若存在外部存儲(chǔ)介質(zhì),則將解析后的現(xiàn)場和函數(shù)調(diào)用鏈分析結(jié)果寫入文件;對(duì)應(yīng)用層提供鉤子函數(shù)以實(shí)現(xiàn)恢復(fù)策略支持。

        異常處理模塊的整個(gè)流程主要由兩部分組成:異常處理初始化流程和異常鉤子函數(shù)流程。初始化流程主要包括初始化全局變量和掛接異常處理鉤子函數(shù)。異常處理的處理過程設(shè)計(jì)如圖2所示:

        2.2 “堆棧分析”

        異常處理過程中的關(guān)鍵是“堆棧分析”,即使用堆?;厮莸姆椒▽?shí)現(xiàn)現(xiàn)場分析,該功能的實(shí)現(xiàn)也是異常處理的難點(diǎn)?,F(xiàn)場分析與處理器類型密切相關(guān),需針對(duì)不同系列處理器分別分析異常類型、現(xiàn)場信息、運(yùn)行棧結(jié)構(gòu)、函數(shù)的序言和尾聲等內(nèi)容。下面以x86處理器為例進(jìn)行說明。

        2.2.1 運(yùn)行時(shí)堆棧結(jié)構(gòu)

        Intel80x86手冊(cè)中把指令執(zhí)行時(shí)由CPU控制器產(chǎn)生的同步中斷稱為異常。異常是由程序的錯(cuò)誤產(chǎn)生,或者由操作系統(tǒng)內(nèi)核必須處理的異常條件所產(chǎn)生。通常,編譯器產(chǎn)生的代碼中對(duì)堆棧的結(jié)構(gòu)和使用存在一個(gè)約定,其中一個(gè)重要的概念是堆棧幀(Stack Frame)或稱為活動(dòng)記錄(Active Record)。一個(gè)堆棧幀就是運(yùn)行棧中的一個(gè)存儲(chǔ)塊,它按照一定的規(guī)則描述了當(dāng)前函數(shù)的調(diào)用信息,一個(gè)棧框架對(duì)應(yīng)一次函數(shù)調(diào)用。Intel80x86的運(yùn)行棧結(jié)構(gòu)如圖2所示:

        圖2 x86運(yùn)行棧

        2.2.2 函數(shù)序言與尾聲的匹配

        代碼段中,特征十分明顯的函數(shù)序言恰好位于函數(shù)入口處,所以只要在機(jī)器碼代碼段找到函數(shù)序言就獲得了其入口地址。對(duì)一個(gè)幀的分析需要一個(gè)搜索指針,初始值為現(xiàn)場PC或被調(diào)函數(shù)幀的返回地址ret[i],指針沿代碼段向后(低地址)移動(dòng),直到匹配函數(shù)序言的第一條語句為止。這時(shí)該指針的值即為該函數(shù)的入口地址。因此,匹配到函數(shù)序言,就找到了函數(shù)的入口地址。函數(shù)的入口地址得到以后,通過VxWorks提供的函數(shù)symFindByValue()獲得函數(shù)名。前提是生成的系統(tǒng)映像中包括了系統(tǒng)符號(hào)表。

        序言匹配的方法是:選擇一個(gè)位于代碼段中待分析的函數(shù)體內(nèi)起點(diǎn)指針,向低地址方向移動(dòng)該指針,直至找到函數(shù)序言為止。

        2.3 異常拋出機(jī)制

        異常拋出機(jī)制指的是:當(dāng)用戶管理的數(shù)據(jù)結(jié)構(gòu)出現(xiàn)嚴(yán)重錯(cuò)誤時(shí)或用戶定義的全局變量失去一致時(shí),用戶進(jìn)程主動(dòng)觸發(fā)一個(gè)事先給定的異常,然后由自定義的異常處理任務(wù)對(duì)該異常進(jìn)行處理,并確定這個(gè)問題發(fā)生的進(jìn)程位置。這種方案實(shí)現(xiàn)簡單,拋出的異常和硬件定義的異常采用同一套處理流程。異常拋出接口定義為:

        其中,參數(shù)wEosExcNo為支撐統(tǒng)一定義的異常類型;dwFunc為拋出異常的處理函數(shù)。

        3 結(jié)論

        本文采用鉤子函數(shù)的方式接收操作系統(tǒng)傳入的異?,F(xiàn)場,避免了對(duì)寄存器進(jìn)行直接操作,從而實(shí)現(xiàn)了跨平臺(tái)獲取異?,F(xiàn)場信息,使軟件異常處理的可移植性和健壯性大大增強(qiáng)。這種異常處理的設(shè)計(jì)具有很高的推廣和實(shí)用價(jià)值,目前已應(yīng)用在航行數(shù)據(jù)記錄儀、列車運(yùn)行監(jiān)控記錄裝置的實(shí)時(shí)數(shù)據(jù)庫中。

        圖1 異常處理的處理過程設(shè)計(jì)圖

        [1]李玉深,周祖洋,萬楊.實(shí)時(shí)操作系統(tǒng)Vxworks下的異常處理[J].應(yīng)用科技,2005,32(5):30-32.LI Yushen,ZHOU Zuyang,WAN Yang.Excep-tion handling under realtime system Vxworks[J].Applied Science and Technology,2005,32 (5):30-32.

        [2]王運(yùn)盛,王堅(jiān).VxWorks實(shí)時(shí)操作系統(tǒng)中的中斷處理機(jī)制分析[J].電訊技術(shù),2007,47(4):178-181.WANG Yunsheng,WANG jian.Analysis of the Interrupt Handling Mechanism in Embeded Re-al-Time Operating System VxWorks[J].Teleco-mmunication Engineering,2007,47(4):178-181.

        [3]王澤民,蘆東昕,謝鑫.基于VxWorks的異常處理的研究和實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31 (13):90-92.WANG Zemin,LU Dongxin, XIE xin.Study and Implementation of Exception Handling Bas-ed on VxWorks[J].Computer Engineering,200-5,31(13):90-92.

        [4]孔祥營,柏桂枝.嵌入式實(shí)時(shí)操作系統(tǒng)VxWor-ks及其開發(fā)環(huán)境Tornado[M].北京:中國電力出版社,2001.KONG Xiangying,BAI Guizhi.Embedded real-time operating system VxWorks and Tornado development environment[M].Beijing:China El-ectric Power Press,2001.

        [5]陳智育,溫彥軍,陳琪.VxWorks程序開發(fā)實(shí)踐[M].北京:人民郵電出版社,2004.CHEN Zhiyu,WEN Yanjun,CHEN Qi.VxWor-ks development practice[M].Beijing:Posts & Telecom Press, 2004.

        [6]張曉鷗,毛玉明.VxWorks異常問題調(diào)試方法分析[C].中國西部青年通信學(xué)術(shù)會(huì)議論文集,成都:四川省電子學(xué)會(huì),2006.ZHANG Xiaoou,MAO Yuming.VxWorks deb-ug exception analysis[C].The collection of the Chinese western youths’ communication acade-mic conference,Chengdu: Sichuan Institute of Electronics,2006.

        猜你喜歡
        分析
        禽大腸桿菌病的分析、診斷和防治
        隱蔽失效適航要求符合性驗(yàn)證分析
        電力系統(tǒng)不平衡分析
        電子制作(2018年18期)2018-11-14 01:48:24
        電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢分析
        經(jīng)濟(jì)危機(jī)下的均衡與非均衡分析
        對(duì)計(jì)劃生育必要性以及其貫徹實(shí)施的分析
        GB/T 7714-2015 與GB/T 7714-2005對(duì)比分析
        出版與印刷(2016年3期)2016-02-02 01:20:11
        網(wǎng)購中不良現(xiàn)象分析與應(yīng)對(duì)
        中西醫(yī)結(jié)合治療抑郁癥100例分析
        偽造有價(jià)證券罪立法比較分析
        成人a在线观看| 蜜桃日本免费观看mv| 精品淑女少妇av久久免费| 国产精品一区二区电影| 人妻少妇精品一区二区三区| 精品国产亚洲一区二区三区四区| 亚洲精品无码专区在线在线播放 | 妇女bbbb插插插视频| 国产乱沈阳女人高潮乱叫老| 欧美日韩国产在线人成dvd| 最新在线观看免费的a站国产| 日产精品久久久一区二区| 欧美极品美女| 厕所极品偷拍一区二区三区视频| 国产成人自拍视频播放| 国产熟妇另类久久久久| 欧美日韩电影一区| 久久综合激激的五月天| 日韩av一区二区网址| 大桥未久亚洲无av码在线| 国产精品女同一区二区久久| 国产人妖直男在线视频| 国产精品乱码人妻一区二区三区 | 白色橄榄树在线阅读免费| 国产一区二区三区毛片| 国产成人亚洲精品无码mp4| 高清国产美女一级a毛片在线| 亚洲av成人波多野一区二区 | 日韩一区二区超清视频| 九九久久精品一区二区三区av | 四虎国产精品视频免费看| 天堂av一区二区在线| 亚洲欧洲日产国码av系列天堂| 国产成人精品av| 4hu44四虎www在线影院麻豆| 国产情侣亚洲自拍第一页| 99视频30精品视频在线观看| 亚洲精品综合第一国产综合| 国产午夜三级精品久久久| 亚洲av无码电影在线播放| 中国年轻丰满女人毛茸茸|