新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于VxWorks操作系統的通用定時器設計

        基于VxWorks操作系統的通用定時器設計

        作者: 時間:2014-05-13 來源:網絡 收藏

         

        本文引用地址:http://www.104case.com/article/246739.htm

        中斷處理任務TimerSvrTask()主要用來處理已經到時的節點。該任務生成后等待同步信號量,如果獲得該信號量,則從傳遞來的第一個節點開始遍歷所有timeLeft為0的節點,然后執行節點對應的函數或者釋放節點對應的信號量,最后再根據到時節點的timerType判斷:若該定時節點為單次則把該節點設為不可用;若該定時節點為周期性的,則先將該節點從鏈表中取出,重新初始化剩余時間后再次插入鏈表中的恰當位置。

        需要說明的是,基于輔助時鐘的通用需要CPU的一個時鐘資源,且輔助時鐘的使用會和調試工具SpyChart沖突,使用時應特別注意。

        3 數據訪問的防沖突考慮

        由于定時節點鏈表以及程序中用到的其它全局變量相對所有的任務都是共享數據,因此為保持數據使用的一致性,需要加以保護,以防止多個任務對共享數據的使用沖突。對于有輔助時鐘中斷服務程序參與的數據,例如鏈表,其他任務在對鏈表操作前需要先禁止中斷,操作完畢后再允許中斷,以防出現中斷與任務的不一致問題;對于輔助時鐘中斷服務程序不參與的數據,各任務對它的訪問采用互斥信號量方式即可。

        4 結束語

        當前,基于輔助時鐘的通用已在某無人機發射裝置中的強實時命令傳遞、通訊數據幀收發以及目標系統狀態監控方面得到了應用,滿足了毫秒級的單次和周期交叉定時要求,效果良好。該機制對所用接口進行了封裝,使其具有了較好的繼承性和擴展性,為今后此類系統中的精確定時需求提供了方便。


        上一頁 1 2 下一頁

        關鍵詞: VxWorks 定時器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安福县| 双柏县| 乡宁县| 安陆市| 林西县| 台北县| 湘阴县| 呼伦贝尔市| 伊春市| 洛阳市| 德江县| 乐至县| 若羌县| 聂荣县| 昭觉县| 贺州市| 和田市| 石家庄市| 碌曲县| 富蕴县| 万州区| 绩溪县| 肃宁县| 阳西县| 宜阳县| 盖州市| 内乡县| 磐安县| 常熟市| 惠州市| 二手房| 社旗县| 泸西县| 阿克苏市| 寿光市| 荥经县| 大荔县| 平塘县| 酉阳| 高雄市| 玉屏|