[發(fā)明專利]一種嵌入式軟件定時器管理方法及系統(tǒng)在審
| 申請?zhí)枺?/td> | 201810629342.8 | 申請日: | 2018-06-19 |
| 公開(公告)號: | CN109032772A | 公開(公告)日: | 2018-12-18 |
| 發(fā)明(設(shè)計)人: | 馬建輝;于良杰;李研強(qiáng);車曉波 | 申請(專利權(quán))人: | 山東省科學(xué)院自動化研究所 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 濟(jì)南圣達(dá)知識產(chǎn)權(quán)代理有限公司 37221 | 代理人: | 董雪 |
| 地址: | 250014 山*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 定時器節(jié)點 軟件定時器 硬件定時器 定時器 定時器管理 嵌入式軟件 中斷觸發(fā) 定時器超時 觸發(fā)中斷 定時基準(zhǔn) 靜態(tài)數(shù)組 累積誤差 時間恒定 用戶提供 固定的 數(shù)組 溢出 空閑 存儲 發(fā)送 保存 更新 申請 管理 | ||
本發(fā)明公開了一種嵌入式軟件定時器管理方法及系統(tǒng),軟件定時器管理的設(shè)計基于靜態(tài)數(shù)組法,使用一個定時器節(jié)點數(shù)組來保存所有的定時請求,每一個定時器節(jié)點都有一個狀態(tài)項,表示該定時器正處于空閑、使用或溢出狀態(tài)。定時器的定時值和定時器超時后要發(fā)送的消息也存儲在定時器節(jié)點中,從而實現(xiàn)用一個硬件定時器為用戶提供多個軟件定時器,本申請以單個硬件定時器作為所有軟件定時器的定時基準(zhǔn),硬件定時器以固定的時間間隔觸發(fā)中斷,中斷觸發(fā)時間恒定不變,不會因更新中斷觸發(fā)時間造成累積誤差。
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式技術(shù)領(lǐng)域,具體的說,是涉及一種嵌入式軟件定時器管理方法及系統(tǒng)。
背景技術(shù)
在嵌入式軟件的設(shè)計中,時間是一個很重要的參數(shù),很多控制邏輯和協(xié)議都有時間約束,定時是實現(xiàn)這些控制邏輯和協(xié)議的關(guān)鍵手段。在嵌入式系統(tǒng)中,一般而言,硬件定時器的數(shù)量少于定時應(yīng)用的數(shù)量,不可能為每一個定時應(yīng)用單獨分配一個硬件定時器。在這種情況下,設(shè)計一種軟件定時器,使用單個硬件定時器模擬多個軟件定時器,來滿足應(yīng)用中的定時需要,成為一種比較通用的做法。
中國發(fā)明專利:一種硬件定時器的管理方法(申請?zhí)枺?01410058072.1),提出了一種基于單個硬件定時器實現(xiàn)多個定時應(yīng)用的方法,根據(jù)定時值從小到大的順序維護(hù)定時項鏈表,每次加入一個新的定時項,都需要更新鏈表,而且需要在硬件定時器中斷處理程序中不斷更新硬件定時周期設(shè)置,這種方式不僅需要考慮中斷處理程序執(zhí)行時間對各個定時項的影響,而且很難處理加入一個定時值小于硬件定時器當(dāng)前定時周期的定時項的情形。
中國發(fā)明專利:嵌入式系統(tǒng)軟件擴(kuò)展定時器的方法(申請?zhí)枺?01410645245.X),定義了全局軟件定時器數(shù)組,當(dāng)任務(wù)需要開啟軟件定時器時,根據(jù)任務(wù)定時時間、硬件定時器精度計算定時值,在硬件定時器中斷處理函數(shù)中對定時值減一,定時值為零時執(zhí)行定時應(yīng)用。這種方法不僅沒有描述軟件定時器的數(shù)據(jù)結(jié)構(gòu),而且只是針對單次定時,沒有考慮多次定時和循環(huán)定時,而且,在硬件定時器中斷處理函數(shù)中對全局軟件定時器數(shù)組進(jìn)行操作容易引起中斷處理程序執(zhí)行時間過長,導(dǎo)致中斷嵌套,引發(fā)堆棧溢出等問題。
中國發(fā)明專利:用于操作系統(tǒng)中的定時器管理裝置和管理方法(申請?zhí)枺?01010177499.5),提出了一種采用單個定時器管理進(jìn)程取代多個定時任務(wù)進(jìn)程的方式,解決了多個定時進(jìn)程消耗內(nèi)存資源的問題。該專利根據(jù)定時觸發(fā)的次序和定時時間的大小維護(hù)激活定時器鏈表和暫停定時器鏈表,管理方法復(fù)雜,鏈表以指針形式動態(tài)分配軟件定時器節(jié)點的內(nèi)存,在功能安全上不如靜態(tài)分配。每次加入一個新的定時器時,需要更新硬件定時器的中斷觸發(fā)時間,會造成激活定時器的計時時間誤差,多次更新會造成相當(dāng)可觀的累積誤差,同時,該專利也沒有考慮多次定時。
發(fā)明內(nèi)容
本發(fā)明為了解決上述問題,提出了一種嵌入式軟件定時器管理方法及系統(tǒng),根據(jù)定時應(yīng)用的特點及分類,以結(jié)構(gòu)體的形式設(shè)計一種涵蓋單次定時、多次定時和循環(huán)定時三種類型定時的軟件定時器節(jié)點的數(shù)據(jù)結(jié)構(gòu),使用一個靜態(tài)分配的軟件定時器節(jié)點數(shù)組來定義所有的定時任務(wù)。以單個硬件定時器作為所有軟件定時器節(jié)點的定時基準(zhǔn),硬件定時器以固定的時間間隔觸發(fā)中斷,觸發(fā)MCU執(zhí)行硬件定時器中斷服務(wù)程序。軟件定時器管理程序在主循環(huán)體中運(yùn)行,完成對各個軟件定時器節(jié)點的處理。同時,提供了一系列API,通過調(diào)用這些API,可以啟動、停止或重啟單次定時、多次定時和循環(huán)定時。
硬件定時器中斷服務(wù)程序以固定的時間間隔周期執(zhí)行,軟件定時器管理程序在主循環(huán)體中循環(huán)執(zhí)行,API可以在系統(tǒng)的任何位置自由調(diào)用。軟件定時器管理程序處理系統(tǒng)中所有軟件定時器節(jié)點,軟件定時器節(jié)點處理程序是使單個軟件定時器完成定時任務(wù)的方法。
為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種嵌入式軟件定時器管理方法,包括如下步驟:
以靜態(tài)分配方法為系統(tǒng)所有軟件定時器節(jié)點分配相應(yīng)的存儲區(qū)域,定義軟件定時器的被處理順序;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于山東省科學(xué)院自動化研究所,未經(jīng)山東省科學(xué)院自動化研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810629342.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





