[發明專利]一種用于嵌入式系統的軟件定時器實現方法有效
| 申請號: | 201810642960.6 | 申請日: | 2018-06-21 |
| 公開(公告)號: | CN108845872B | 公開(公告)日: | 2021-02-02 |
| 發明(設計)人: | 陶琴;陳輝 | 申請(專利權)人: | 武漢虹信科技發展有限責任公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 武漢科皓知識產權代理事務所(特殊普通合伙) 42222 | 代理人: | 胡琦旖 |
| 地址: | 430205 湖北省武*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 嵌入式 系統 軟件 定時器 實現 方法 | ||
1.一種用于嵌入式系統的軟件定時器實現方法,其特征在于,包括:
步驟1,硬件定時器周期性地產生硬件中斷,所述硬件中斷驅動軟件定時器;
步驟2,所述軟件定時器查詢是否需要喚醒軟件定時器任務;
步驟3,若需要喚醒,則進入軟件定時器任務處理流程,所述軟件定時器任務查詢嵌入式系統的激活鏈表,并給到期的定時器線程發送消息;
步驟4,所述定時器線程接收所述消息,并執行業務;
其中,所述步驟3中的所述軟件定時器任務處理流程包括:
步驟3.1,獲取激活鏈表的互斥鎖;
步驟3.2,判斷激活鏈表中的節點數是否為零,如果為零,則執行步驟3.10;否則,執行步驟3.3;
步驟3.3,依次遍歷激活鏈表;
步驟3.4,判斷軟件定時器的到期時間是否小于嵌入式系統的當前總節拍數,若小于,則執行步驟3.5;否則,執行步驟3.8;
步驟3.5,記錄到期的定時器線程的任務號;
步驟3.6,查詢軟件定時器的類型,若為一次性定時器,則執行步驟3.7;否則,執行步驟3.4;
步驟3.7,將軟件定時器從激活鏈表中移除,將軟件定時器的狀態修改為非使能狀態,執行步驟3.4;
步驟3.8,判斷軟件定時器的到期時間是否小于嵌入式系統的最小到期時間,若小于,則執行步驟3.9;否則,執行步驟3.10;
步驟3.9,更新嵌入式系統的最小到期時間;
步驟3.10,釋放激活鏈表的互斥鎖;
步驟3.11,給到期的定時器線程發送消息;
步驟3.12,結束。
2.根據權利要求1所述的用于嵌入式系統的軟件定時器實現方法,其特征在于,所述步驟2中所述軟件定時器查詢是否需要喚醒軟件定時器任務包括:
步驟2.1,獲取嵌入式系統的當前總節拍數;
步驟2.2,獲取嵌入式系統的最小到期時間;
步驟2.3,比較所述最小到期時間與所述當前總節拍數是否相同,若相同,則判定為需要喚醒軟件定時器任務,否則,不喚醒軟件定時器任務。
3.根據權利要求1所述的用于嵌入式系統的軟件定時器實現方法,其特征在于,所述步驟1之前還包括:
步驟a,創建軟件定時器;
步驟b,激活軟件定時器。
4.根據權利要求3所述的用于嵌入式系統的軟件定時器實現方法,其特征在于,所述步驟a的所述創建軟件定時器包括:
步驟a1,申請內存;
步驟a2,創建定時器節點;
步驟a3,進行初始化操作。
5.根據權利要求3所述的用于嵌入式系統的軟件定時器實現方法,其特征在于,所述步驟b的所述激活軟件定時器包括:
步驟b1,獲取激活鏈表的互斥鎖;
步驟b2,檢查軟件定時器的狀態,若為使能狀態,則釋放激活鏈表的互斥鎖,然后執行步驟b8;否則,執行步驟b3;
步驟b3,將軟件定時器的狀態修改為使能狀態;
步驟b4,計算軟件定時器的到期時間;
步驟b5,根據到期時間將軟件定時器插入至激活鏈表中;
步驟b6,釋放激活鏈表的互斥鎖;
步驟b7,比較軟件定時器的到期時間和嵌入式系統的最小到期時間,若軟件定時器的到期時間小于嵌入式系統的最小到期時間,則更新嵌入式系統的最小到期時間;
步驟b8,結束。
6.根據權利要求1-5中任一所述的用于嵌入式系統的軟件定時器實現方法,其特征在于,還包括解除軟件定時器:
所述解除軟件定時器包括:將軟件定時器從激活鏈表中刪除,或將軟件定時器的狀態修改為非使能狀態。
7.根據權利要求1-5中任一所述的用于嵌入式系統的軟件定時器實現方法,其特征在于,還包括刪除軟件定時器:
所述刪除軟件定時器包括:刪除軟件定時器節點,釋放內存。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢虹信科技發展有限責任公司,未經武漢虹信科技發展有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810642960.6/1.html,轉載請聲明來源鉆瓜專利網。





