中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > VxWorks下基于看門狗的通用定時器設計

        VxWorks下基于看門狗的通用定時器設計

        作者: 時間:2013-05-31 來源:網(wǎng)絡 收藏

        摘要:隨著嵌入式電子產(chǎn)品越來越多的應用,實時性操作系統(tǒng)VxWorks得到廣泛應用,而定時器正是實時性操作系統(tǒng)中不可或缺的重要組件。文章以VxWorks實時性操作系統(tǒng)中的看門狗機制為基礎,提出了~種通用性強、效率高并且使用簡單的共享看門狗定時機制。
        關鍵詞:;共享

        0 引言
        VxWorks是目前應用最多的嵌入式實時操作系統(tǒng)之一,廣泛應用于工業(yè)控制、醫(yī)療器械、通信、航空航天以及武器裝備等領域。VxWorks是32位實時嵌入式操作系統(tǒng),自20世紀80年代由風河公司推出以來,其良好的實時性、對多任務的支持、體積精簡、可剪裁等優(yōu)點得到眾多公司、開發(fā)者及用戶的喜愛。
        在實時性要求高的應用系統(tǒng)中,定時器是經(jīng)常被用到的重要器件。而對于VxWorks操作系統(tǒng)本身來說,并未提供一個通用、高效的定時器組件。文章所提出的共享看門狗定時機制就是針對這種情況實現(xiàn)的一種通用型定時器組件。

        1 VxWorks定時的方法
        1.1 使甩taskDely函數(shù)
        函數(shù)原型為:STATUS taskDelay(intticks)該函數(shù)提供一種簡單的任務休眠機制,常用于需要不精確定時或延時的應用中,其定時的單位為tick,默認情況下60(ticks)為1s(利用sysClkRateSet函數(shù)可以修改系統(tǒng)默認的時鐘速率)。在任務中調(diào)用taskDelay函數(shù)可以在指定的ticks期間空出CPU的使用權,同時改變該任務的狀態(tài)為DELAY。由于經(jīng)常受到任務調(diào)度的影響,該定時機制并不精確。
        1.2 看門狗watchDog
        VxWorks提供了一個(watchDog timer),它由以下四個函數(shù)維護:
        wdCreate()創(chuàng)建并初始化一個看門狗定時器;
        wdDelete()終止并刪除一個看門狗定時器;
        wdStart()啟動看門狗定時器;
        wdCancel()暫停當前看門狗定時器運行。
        利用wdCreate函數(shù),在任何任務中都可以創(chuàng)建一個看門狗定時器,經(jīng)過設置的時間段后,實現(xiàn)指定的C函數(shù)。watchDog定時器作為系統(tǒng)時鐘中斷服務程序的一部分來維護。因此看門狗所定時執(zhí)行的程序工作在系統(tǒng)中斷級別具有很高的優(yōu)先級,該程序必須遵守一般ISR程序的規(guī)定,不能使用任何可能被阻塞的程序。文章所介紹的高效定時器就是在看門狗定時器的基礎上設計的。
        1.3 POSIX標準的timer
        VxWorks同時也提供IEEE的POSIX 1003.1b標準定時器接口。POSIX標準保證了應用程序與操作系統(tǒng)之間接口的簡易性,利用這些接口編程,可以使得應用程序很輕松地從一個操作系統(tǒng)移植到另外的操作系統(tǒng)。使用該定時機制,在指定時間段后,任務將向自身發(fā)送SIGNAL,該定時器是建立在時鐘和信號之上。POSIX標準的timer定時器常常用來編寫跨平臺、需要在多個操作系統(tǒng)下運行、易移植的程序。

        2 基于看門狗定的高效定時機制
        2.1 共享看門狗高效定時器
        在一些基于嵌入式實時系統(tǒng)的項目中,經(jīng)常使用定時器來實現(xiàn)某一時間段后執(zhí)行某一段程序或函數(shù),而往往計時長度都存在差異,定時器的使用也往往來自不同任務,既要求實時性,又要保證資源競爭的有序性。鑒于這些特點,經(jīng)常采用的一個定時任務使用一個看門狗定時器的模式已不再適用,如果按照這種模式構建定時器機制,在定時任務較多的情況下,由于看門狗定時器運行在中斷級別,資源消耗就會變得很大,從而對系統(tǒng)的實時性產(chǎn)生影響。
        的定時機制可以解決這種資源嚴重浪費的現(xiàn)象。共享看門狗定時機制,顧名思義,就是多個定時任務通過共享同一個看門狗定時器來實現(xiàn)定時操作,其優(yōu)點是資源消耗小、實時性好、無須產(chǎn)生額外的定時任務。
        2.2 定時算法
        共享看門狗高效定時器的基本原理是動態(tài)改變看門狗的定時任務。
        如圖1所示,系統(tǒng)中存在A、B、C三個定時任務。首先A任務提交一個500ms的定時任務,200ms后B提交一個200ms的定時任務,再100ms后C提交一個150ms的定時任務。除此之外再無其他計時,A、B、C運行情況如圖1所示。

        本文引用地址:http://www.antipu.com.cn/article/148020.htm

        a.jpg


        定時器A在時間軸50ms處向共享定時器發(fā)起定時申請,共享定時器在其維護的定時列表中加入A的時延與執(zhí)行程序的函數(shù)指針,并計算出定時器下一執(zhí)行時刻TA(系統(tǒng)運行時間加上A的定時時延),此時由于還沒有其他定時器申請定時任務,該列表中只存在A的定時信息。當時間軸到達250ms時,定時器B發(fā)起定時申請,由于定時器A的時延為500ms,B的時延為200ms,也就是說B將在時間軸450ms處執(zhí)行,比A提前了100 ms(550ms減去450ms),此時定時列表將完成兩件事情,一是修改下一執(zhí)行時刻TB為系統(tǒng)運行時間加上B的時延,二是針對執(zhí)行時刻TA、TB對列表進行從小到大的順序排序。此時列表中B為表頭,A在B之后。同樣的道理當時間軸到達350ms時,定時器C發(fā)起定時申請,定時任務C被加入到定時列表,計算得出TC為系統(tǒng)運行時刻加上C的時延,然后依據(jù)TA、TB、TC重新進行排序,此時列表順序為B、C、A。當時間軸執(zhí)行到450ms時,定時器B的ISR將被執(zhí)行,同時B定時任務將從定時列表中刪除;同理,500ms、550m時C任務與A任務將分別從列表中刪除。此時所有定時任務執(zhí)行結束,定時列表為空,進入休眠狀態(tài)。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉