[發明專利]一種嵌入式系統中實現睡眠功能的方法有效
| 申請號: | 200810099716.6 | 申請日: | 2008-05-21 |
| 公開(公告)號: | CN101281480A | 公開(公告)日: | 2008-10-08 |
| 發明(設計)人: | 劉亮 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F1/32 |
| 代理公司: | 北京安信方達知識產權代理有限公司 | 代理人: | 龍洪;霍育棟 |
| 地址: | 518057廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 嵌入式 系統 實現 睡眠 功能 方法 | ||
技術領域
本發明涉及嵌入式系統中利用現有條件進行功能的實現方法,更具體的說,涉及一種嵌入式系統中實現睡眠功能的方法。
背景技術
目前很多嵌入式設備,比如手機等終端上,使用的操作系統很精干,很小巧,同時也很簡單。有的嵌入式操作系統,整個核心的映像才幾十K或幾百K,這么小的操作系統,肯定不是萬能的,它必然欠缺很多功能。比如,其最大的缺點,就是只有操作系統核心,卻沒有應用框架和UI(用戶界面)框架。因此如圖1所示,很多嵌入式系統方案里,除了有一個操作系統核心外,還要在這個核心上發展出一個應用框架和UI框架。同時,為了適應這個應用框架和UI框架,還要對操作系統核心做適當的修改,裁減。系統經過這樣的修改后,對使用應用框架和UI框架來開發應用程序可能會很方便,但是,對一些協議棧等的移植,可能會產生不必要的麻煩。
比如:有這樣一種系統,從應用框架看,系統提供了Timer(定時器)、Task(任務)、Task間有消息機制,也有Sleep(睡眠)機制;從操作系統來看,系統提供了Task另一種完全不同的消息機制,其中包含Wait(等待)機制,Resume(喚醒)機制,但是沒有Sleep機制(有可能是操作系統本身就不提供此機制,也有可能是被裁剪掉了)。這給一些協議棧的移植帶來了麻煩,如一些協議棧經常需要Sleep功能。我們這里說的Sleep,指一個Task睡眠一段時間,在這段時間,這個Task應該讓出CPU的執行權,不占用CPU的執行時間。雖然應用框架有這種機制,但是,應用框架基于其特定的消息機制實現這個功能,這個消息機制不可能也不適合集成到協議棧內。
發明內容
本發明要解決的技術問題是提供一種嵌入式系統中實現睡眠功能的方法,能夠使用系統原有的資源,實現Sleep機制,解決了協議棧移植中的沖突。
為了解決上述問題,本發明提供了一種嵌入式系統中實現睡眠功能的方法,包括以下內容:
(1)為協議棧設置一個定時器任務;
(2)待睡眠任務調用睡眠函數,所述睡眠函數將帶有所述待睡眠任務信息的消息發給所述定時器任務,并調用操作系統的等待函數將所述待睡眠任務掛起;
(3)所述定時器任務根據收到的所述消息,啟動定時器,并指定所述定時器到時后的響應函數,同時把所述定時器函數和待睡眠任務函數建立配對關系;
(4)所述定時器到時,所述指定的響應函數被調用,根據所述配對關系調用操作系統的喚醒函數,喚醒被掛起的所述待睡眠任務。
進一步地,步驟(2)進一步包括:所述待睡眠任務攜帶自己的信息調用睡眠函數,該睡眠函數將帶有所述待睡眠任務信息的消息發送給定時器任務;所述睡眠函數調用操作系統的等待函數,將待睡眠任務掛起,讓出中央處理器。
進一步地,所述待睡眠任務信息包括帶睡眠任務的身份標識號碼和需要睡眠的時間。
進一步地,步驟(3)進一步包括,定時器任務收到睡眠函數發來的消息后,記錄所述消息中攜帶的所述待睡眠任務的身份標識號碼和需要睡眠的時間,然后根據所述需要睡眠的時間,啟動定時器(這個定時器使用應用框架已有的定時器機制);所述定時器任務并指定所述定時器到時后的響應函數;同時,把所述定時器和所述待睡眠任務建立配對關系。
進一步地,步驟(3)中,所述定時器和所述待睡眠任務建立的配對關系的目的在于,當所述定時器到時后,根據所述配對關系找到所述待睡眠任務。
進一步地,步驟(4)之后包括步驟(5),所述被喚醒的待睡眠任務,從所述睡眠函數下一條語句開始執行,從而使這個待睡眠任務實現了睡眠一段時間的功能。
本發明的有益效果:
采用本發明所述方法,能夠利用嵌入式系統中原有的條件,實現Sleep功能,避免了在協議棧的移植過程中產生不必要的麻煩,同時減輕了CPU的負荷,大大減小了CPU的占有率。
附圖說明
圖1為本發明所述嵌入式系統的框架結構示意圖;
圖2為本發明所述方法中Sleep函數的流程圖;
圖3為本發明所述方法實施例中Sleep功能實現的時序圖。
具體實施方式
下面結合附圖對本發明的實施例作進一步的詳細描述:
如圖3所示,本發明提供的一種嵌入式系統中實現睡眠功能的方法,包括以下內容:
為協議棧專門增加一個特殊的Task(任務),稱為TimerTask(定時器任務);
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810099716.6/2.html,轉載請聲明來源鉆瓜專利網。





