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

        ?

        一種VxWorks平臺(tái)下的軟件看門狗設(shè)計(jì)缺陷及改進(jìn)方法

        2016-10-18 07:48:11蹇彪李佳
        現(xiàn)代計(jì)算機(jī) 2016年16期
        關(guān)鍵詞:信號(hào)量看門狗嵌入式軟件

        蹇彪,李佳

        (工業(yè)和信息化部電子第五研究所,廣州510610)

        一種VxWorks平臺(tái)下的軟件看門狗設(shè)計(jì)缺陷及改進(jìn)方法

        蹇彪,李佳

        (工業(yè)和信息化部電子第五研究所,廣州510610)

        介紹VxWorks平臺(tái)下基于定時(shí)器實(shí)現(xiàn)的軟件看門狗的一種設(shè)計(jì)缺陷,提供一種利用VxWorks中的信號(hào)量同步和任務(wù)優(yōu)先級(jí)實(shí)現(xiàn)的改進(jìn)方法。測試結(jié)果表明改進(jìn)后的看門狗能夠有效地提高系統(tǒng)運(yùn)行的可靠性。

        VxWorks;看門狗;定時(shí)器;設(shè)計(jì)缺陷

        0 引言

        國防工業(yè)系統(tǒng)中,尤其是航空航天領(lǐng)域中的一些利用嵌入式計(jì)算機(jī)軟件作為控制核心的系統(tǒng),如飛控系統(tǒng)、發(fā)動(dòng)機(jī)控制系統(tǒng)等,通常需要工作在惡劣環(huán)境中,因此對系統(tǒng)可靠性的要求都比較高。這些系統(tǒng)的嵌入式軟件在運(yùn)行過程中,可能由于硬件電路的干擾,造成軟件的異常跳轉(zhuǎn),從而形成非設(shè)計(jì)的死循環(huán),導(dǎo)致軟件“跑飛”、功能失效等異常情況,這時(shí)候軟件若不能及時(shí)復(fù)位重新恢復(fù)正常運(yùn)行,可能導(dǎo)致整個(gè)系統(tǒng)任務(wù)失敗的嚴(yán)重后果。為了提高系統(tǒng)可靠性,這些系統(tǒng)通常都需要設(shè)計(jì)看門狗,在系統(tǒng)發(fā)生錯(cuò)誤“跑飛”時(shí),能夠及時(shí)地對系統(tǒng)進(jìn)行復(fù)位,使系統(tǒng)從故障狀態(tài)下恢復(fù)正常運(yùn)行。

        1 看門狗

        看門狗是指在系統(tǒng)中通過軟件或硬件方式在一定的時(shí)間周期內(nèi)監(jiān)控系統(tǒng)的運(yùn)行狀況,如果在規(guī)定的時(shí)間內(nèi)沒有收到來自系統(tǒng)的觸發(fā)信號(hào),則將系統(tǒng)強(qiáng)制復(fù)位,以保證系統(tǒng)在受到干擾或故障時(shí)仍然能夠維持正常的工作狀態(tài)[1]。

        單片機(jī)等無操作系統(tǒng)的嵌入式軟件屬于單任務(wù)應(yīng)用,看門狗一般由寄存器、定時(shí)器和看門狗電路等部件構(gòu)成,其原理如圖1所示。CPU正常工作過程中,寄存器計(jì)數(shù)值需要在一定的延時(shí)周期內(nèi)被清零,如果沒有清零動(dòng)作,看門狗電路將產(chǎn)生一個(gè)復(fù)位信號(hào)使系統(tǒng)重新啟動(dòng)或者通過一個(gè)非屏蔽中斷執(zhí)行故障恢復(fù)子程序。軟件設(shè)計(jì)邏輯如圖2所示,清看門狗計(jì)數(shù)器的命令必須在主程序內(nèi),如果看門狗沒有被清零,復(fù)位后軟件將從啟動(dòng)程序(地址0x0000)開始運(yùn)行[2]。因此設(shè)計(jì)看門狗時(shí)需要計(jì)算主程序的運(yùn)行時(shí)間,通常選擇看門狗延時(shí)周期遠(yuǎn)遠(yuǎn)高于計(jì)算出的循環(huán)時(shí)間,或者在測試到的循環(huán)時(shí)間基礎(chǔ)上預(yù)留較大余量。

        圖1 微處理器通過計(jì)數(shù)清除看門狗定時(shí)器

        VxWorks、uC/OS、Linux等嵌入式操作系統(tǒng)都能夠支持多任務(wù)環(huán)境,因此這些平臺(tái)下嵌入式軟件的軟件結(jié)構(gòu)也不再由單一的主循環(huán)和中斷服務(wù)函數(shù)構(gòu)成,而是由若干個(gè)不同優(yōu)先級(jí)的任務(wù)和中斷服務(wù)函數(shù)構(gòu)成。由于操作系統(tǒng)在一定程度上降低了應(yīng)用系統(tǒng)中軟件設(shè)計(jì)的工作量,所以這些平臺(tái)下嵌入式軟件的看門狗設(shè)計(jì)一般通過軟件方式實(shí)現(xiàn)。設(shè)計(jì)方式根據(jù)實(shí)際使用需求的不同可以分為以下兩種。一種是僅需要提供應(yīng)用軟件的基本運(yùn)行保護(hù),通過設(shè)計(jì)一個(gè)看門狗定時(shí)中斷,在中斷服務(wù)程序中執(zhí)行“喂狗”操作即可。當(dāng)中斷服務(wù)程序異常,即系統(tǒng)已無法提供最基本的服務(wù)時(shí)執(zhí)行復(fù)位重啟。另一種是需要保護(hù)特定的核心任務(wù),通過設(shè)置一個(gè)更低級(jí)別的看門狗任務(wù)來守護(hù)核心任務(wù),在看門狗任務(wù)中執(zhí)行“喂狗”操作,當(dāng)核心任務(wù)失敗時(shí)執(zhí)行復(fù)位重啟[3]。

        圖2 應(yīng)用看門狗的程序設(shè)計(jì)基本流程

        2 設(shè)計(jì)缺陷介紹

        某機(jī)載系統(tǒng)的嵌入式軟件運(yùn)行在VxWorks平臺(tái)下,該軟件作為整個(gè)系統(tǒng)的控制中樞,使用VxWorks的看門狗定時(shí)器設(shè)計(jì)了軟件看門狗,用于提高系統(tǒng)的運(yùn)行可靠性。軟件結(jié)構(gòu)如圖3所示??撮T狗定時(shí)器設(shè)計(jì)在看門狗任務(wù)中,當(dāng)軟件運(yùn)行異常,看門狗任務(wù)無法輪詢分配到CPU運(yùn)行時(shí)間時(shí),看門狗定時(shí)器計(jì)數(shù)無法被及時(shí)清零,觸發(fā)看門狗“狗叫”,VxWorks系統(tǒng)復(fù)位,軟件重新啟動(dòng)運(yùn)行。

        圖3 軟件結(jié)構(gòu)圖

        為了驗(yàn)證看門狗對系統(tǒng)安全保護(hù)措施的有效性,在軟件測試過程中通過故障注入方式分別在各工作任務(wù)和通信任務(wù)中插樁注入包含延時(shí)語句的故障代碼,模擬軟件“跑飛”的異常運(yùn)行情況。注入的故障代碼的觸發(fā)條件由與被測軟件通信的上位機(jī)下發(fā)的通信指令決定,以保證故障的觸發(fā)條件和觸發(fā)時(shí)機(jī)可控。測試結(jié)果如表1所示。

        表1 看門狗測試結(jié)果

        測試結(jié)果表明,該軟件看門狗僅能夠保護(hù)比看門狗任務(wù)優(yōu)先級(jí)高的工作任務(wù),無法保護(hù)低優(yōu)先級(jí)任務(wù)。并且在高優(yōu)先級(jí)的通信任務(wù)異常時(shí),看門狗不但未成功復(fù)位,系統(tǒng)還出現(xiàn)了“假死機(jī)”現(xiàn)象。通過對問題現(xiàn)象的隔離分析,發(fā)現(xiàn)系統(tǒng)失去響應(yīng)是因?yàn)榭撮T狗定時(shí)器中斷執(zhí)行復(fù)位失敗。當(dāng)通信任務(wù)“跑飛”觸發(fā)看門狗定時(shí)器回調(diào)函數(shù)執(zhí)行REBOOT進(jìn)行復(fù)位時(shí),系統(tǒng)需要先保存中斷現(xiàn)場,并將程序指針重新指向程序入口地址。但是由于此時(shí)通信任務(wù)正在轉(zhuǎn)發(fā)處理通信數(shù)據(jù),堆棧數(shù)據(jù)量較大,導(dǎo)致中斷現(xiàn)場保存時(shí)間過長,定時(shí)器中斷被其他外部中斷打斷了處理過程而未能及時(shí)返回。軟件復(fù)位最終未能完成,程序指針未能成功指向程序入口地址,引起了VxWorks操作系統(tǒng)的任務(wù)調(diào)度紊亂、喪失實(shí)時(shí)性。

        通過以上分析,定位了該軟件導(dǎo)致看門狗保護(hù)策略失效的設(shè)計(jì)缺陷為:①僅能保護(hù)比看門狗任務(wù)優(yōu)先級(jí)高的任務(wù);②在定時(shí)器中斷回調(diào)函數(shù)中執(zhí)行了會(huì)導(dǎo)致中斷阻塞的REBOOT操作。

        3 設(shè)計(jì)改進(jìn)方法

        VxWorks提供了二進(jìn)制、互斥和計(jì)數(shù)等三種信號(hào)量用于實(shí)現(xiàn)任務(wù)間的通信、同步和互斥。由于互斥信號(hào)量不可以在中斷服務(wù)程序中釋放,計(jì)數(shù)信號(hào)量只是在二進(jìn)制信號(hào)量基礎(chǔ)上增加了對信號(hào)量釋放次數(shù)的計(jì)數(shù),而二進(jìn)制信號(hào)量在經(jīng)過高度優(yōu)化后,是所有任務(wù)間通信機(jī)制中,速度最快、最常用的手段[4-5]。因此,針對上述軟件設(shè)計(jì)缺陷,利用二進(jìn)制信號(hào)量對看門狗功能進(jìn)行了設(shè)計(jì)改進(jìn)。改進(jìn)后的軟件結(jié)構(gòu)如圖4所示。

        主要改進(jìn)措施為:①更改了看門狗喂狗操作所在任務(wù)和需要保護(hù)的工作任務(wù)的任務(wù)優(yōu)先級(jí),將看門狗喂狗操作放到低優(yōu)先級(jí)任務(wù)中,比所有需要保護(hù)的工作任務(wù)的優(yōu)先級(jí)低;②新建一個(gè)具有最高優(yōu)先級(jí)的看門狗復(fù)位執(zhí)行任務(wù),以確保REBOOT復(fù)位動(dòng)作能夠立即被執(zhí)行;③刪除看門狗定時(shí)器中斷回調(diào)函數(shù)中的REBOOT操作語句,改為釋放復(fù)位信號(hào)量的方式通知具有最高優(yōu)先級(jí)的看門狗復(fù)位任務(wù)執(zhí)行REBOOT操作。

        圖4 改進(jìn)后的軟件結(jié)構(gòu)圖

        對改進(jìn)后的軟件看門狗按照表1執(zhí)行了回歸測試,所有測試結(jié)果均為通過。測試結(jié)果表明,任意工作任務(wù)、通信任務(wù)等出現(xiàn)異?!芭茱w”情況下,系統(tǒng)均能夠觸發(fā)看門狗成功地執(zhí)行復(fù)位重啟。

        4 結(jié)語

        本文介紹了VxWorks平臺(tái)下某機(jī)載系統(tǒng)嵌入式軟件中存在的一種看門狗設(shè)計(jì)缺陷,通過對軟件缺陷原因進(jìn)行分析,提出了利用信號(hào)量同步和任務(wù)優(yōu)先級(jí)實(shí)現(xiàn)的改進(jìn)方法。通過回歸測試驗(yàn)證表明,改進(jìn)后的看門狗設(shè)計(jì)方法能夠有效地提高嵌入式系統(tǒng)運(yùn)行的可靠性,具有較強(qiáng)的工程應(yīng)用價(jià)值。

        [1]李觀文,衣平,鄧英華.看門狗技術(shù)在改善系統(tǒng)可靠性中的應(yīng)用.機(jī)床電氣[J],2005,1:26-27.

        [2]王彬,李文新,李得天,劉禮.通過看門狗軟件設(shè)計(jì)提高抗干擾能力的方法.計(jì)算機(jī)技術(shù)與發(fā)展[J],2012,22(10):188-189.

        [3]Kovacs G,Kiss B,Eric N.Watchdog–A Practical Approach of Fault Detection[C].Information Control Problems in Manufacturing.[s.l.]: [s.n.],2006:124-126.

        [4]王才善,陳光武.基于VxWorks的實(shí)時(shí)多任務(wù)程序設(shè)計(jì)機(jī)制分析.鐵路計(jì)算機(jī)應(yīng)用[J],2009,18(5):12-15.

        [5]武華,劉軍偉.基于VxWorks的多任務(wù)程序設(shè)計(jì).計(jì)算機(jī)技術(shù)與發(fā)展[J],2011,21(9):163-165.

        JIAN Biao,LI Jia
        (Research Center of Software Quality Engineering,CEPREI,Guangzhou 510610)

        Introduces the design detect of software watchdog,which is implemented based on timer of VxWorks,provides an improvement method, which uses synchronized semaphore and task priority.Test results show that this method improves the reliability effectively of the system.

        VxWorks;Watchdog;Timer;Design Detect

        1007-1423(2016)16-0047-04DOI:10.3969/j.issn.1007-1423.2016.16.014

        蹇彪(1987-),男,湖南常寧人,碩士,研究方向?yàn)榍度胧杰浖y試

        2016-05-04

        2016-05-25Design Defect of Software Watchdog and Its Improvement Method Based on VxWorks

        李佳(1988-),女,湖南長沙人,本科,研究方向?yàn)檐浖煽啃?/p>

        猜你喜歡
        信號(hào)量看門狗嵌入式軟件
        基于STM32的mbedOS信號(hào)量調(diào)度機(jī)制剖析
        把他叫醒
        Nucleus PLUS操作系統(tǒng)信號(hào)量機(jī)制的研究與測試
        實(shí)時(shí)嵌入式軟件的測試技術(shù)
        電子測試(2018年10期)2018-06-26 05:54:08
        全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
        電子制作(2017年17期)2017-12-18 06:40:56
        一種采用FPGA實(shí)現(xiàn)的通用看門狗電路
        大眾科技(2015年11期)2015-11-24 01:57:16
        把它叫醒
        基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設(shè)計(jì)與實(shí)現(xiàn)
        航天嵌入式軟件浮點(diǎn)運(yùn)算誤差分析與控制
        把它叫醒
        在线女同免费观看网站| 精品久久无码中文字幕| 中文字幕精品久久天堂一区| 一区二区中文字幕蜜桃| 免费亚洲一区二区三区av| 曰本人做爰又黄又粗视频| 欧美激情αv一区二区三区| 一亚洲一区二区中文字幕| 亚洲一区二区三区精品| 成人性生交大片免费| 激情五月婷婷综合| 韩国日本在线观看一区二区| 高清中文字幕一区二区| a级毛片免费观看在线| 中文亚洲爆乳av无码专区| 搞黄色很刺激的网站二区| 国产免费观看黄av片| 国产欧美日韩精品a在线观看| 婷婷五月亚洲综合图区| 在线国产丝袜自拍观看| 亚洲欧美牲交| 国产区精品| 亚洲精品国产精品系列| 中国一级特黄真人片久久| 久久精品国产www456c0m| 亚洲av成人在线网站| 日本av不卡一区二区三区| 黄桃av无码免费一区二区三区| 老熟女毛茸茸浓毛| 成人精品国产亚洲av久久| 视频在线观看一区二区三区| 精品无码中文字幕在线| 国产一区二区欧美丝袜| 亚洲国产区中文在线观看| 国产福利视频在线观看| 午夜高清福利| 日韩亚洲国产中文字幕| 免费网站内射红桃视频| 偷窥村妇洗澡毛毛多| 极品视频一区二区三区在线观看| 人妻少妇哀求别拔出来|