基于嵌入式操作系統(tǒng)的通用定時(shí)器及其工作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于嵌入式操作系統(tǒng)的通用定時(shí)器及其工作方法,其裝置包括普通定時(shí)器管理任務(wù)模塊、普通定時(shí)器列表、精確定時(shí)器中斷處理模塊、精確定時(shí)器列表、定時(shí)器計(jì)數(shù)信號(hào)量通知模塊以及硬件定時(shí)器;其方法包括根據(jù)普通定時(shí)器和精確定時(shí)器中的不同設(shè)定值接合硬件定時(shí)器控制應(yīng)用程序的執(zhí)行頻率。本發(fā)明的有益效果是,利用嵌入式操作系統(tǒng)的通用技術(shù),完成通用定時(shí)器功能,實(shí)現(xiàn)了跨操作系統(tǒng)的應(yīng)用;可以根據(jù)應(yīng)用要求,實(shí)現(xiàn)基于tick單位的普通定時(shí)和基于1ms單位的精確定時(shí)功能,在保證系統(tǒng)功能的前提下,提高了CPU效率和性能,優(yōu)化了系統(tǒng),保證了系統(tǒng)實(shí)時(shí)性要求。
【專(zhuān)利說(shuō)明】基于嵌入式操作系統(tǒng)的通用定時(shí)器及其工作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于一種嵌入式操作系統(tǒng)定時(shí)器,具體涉及一種基于嵌入式操作系統(tǒng)的通用定時(shí)器及其工作方法。
【背景技術(shù)】
[0002]在嵌入式產(chǎn)品開(kāi)發(fā)與應(yīng)用領(lǐng)域,嵌入式操作系統(tǒng)是整個(gè)軟件產(chǎn)品的技術(shù)基礎(chǔ)。而嵌入式產(chǎn)品的功能一般都是周期循環(huán)執(zhí)行的,任務(wù)設(shè)計(jì)也都以此為原則。因此每種嵌入式操作系統(tǒng)都提供了靈活多樣的軟件定時(shí)器功能模塊,以便于用戶(hù)的使用。但是每種嵌入式操作系統(tǒng)的設(shè)計(jì)思想及標(biāo)準(zhǔn)存在差異,導(dǎo)致各自的定時(shí)器功能方法及接口函數(shù)都不相同。導(dǎo)致由于操作系統(tǒng)升級(jí)或變化,用戶(hù)應(yīng)用程序需要不斷變化,以適應(yīng)定時(shí)器接口的變化,從而增加了產(chǎn)品升級(jí)維護(hù)的費(fèi)用,同時(shí)影響了產(chǎn)品的穩(wěn)定性和可靠性。
[0003]另外對(duì)于嵌入式操作系統(tǒng),一般都是采用基于tick的調(diào)度機(jī)制,tick是嵌入式操作系統(tǒng)的最小時(shí)間單位;根據(jù)系統(tǒng)設(shè)計(jì)特點(diǎn)和要求,tick的時(shí)間單位一般在5miT20mS范圍;tick值過(guò)小,任務(wù)調(diào)度過(guò)于頻繁,任務(wù)上下文切換所導(dǎo)致的CPU系統(tǒng)開(kāi)銷(xiāo)較大,整個(gè)系統(tǒng)的效率大大降低;而tick過(guò)大,系統(tǒng)的實(shí)時(shí)性會(huì)有所降低。在一些強(qiáng)實(shí)時(shí)系統(tǒng)中,對(duì)于要求精度較高的定時(shí)功能,如Ims的軟件定時(shí)功能,一般的嵌入式操作系統(tǒng)定時(shí)器都無(wú)法滿(mǎn)足。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問(wèn)題是利用嵌入式操作系統(tǒng)的通用資源和方法,提供一種跨嵌入式操作系統(tǒng)的通用定時(shí)器及其工作方法,并可以實(shí)現(xiàn)普通定時(shí)和精確定時(shí)功能,其中普通定時(shí)的定時(shí)單位為tick,精確定時(shí)的時(shí)間單位為1ms。
[0005]本發(fā)明為解決這一問(wèn)題所采取的技術(shù)方案是:
一種基于嵌入式操作系統(tǒng)的通用定時(shí)器,包括普通定時(shí)器管理任務(wù)模塊、普通定時(shí)器列表、精確定時(shí)器中斷處理模塊、精確定時(shí)器列表、定時(shí)器計(jì)數(shù)信號(hào)量通知模塊以及硬件定時(shí)器,而所述的硬件定時(shí)器連接定時(shí)器計(jì)數(shù)信號(hào)量通知模塊和精確定時(shí)器中斷處理模塊,所述的定時(shí)器計(jì)數(shù)信號(hào)量通知模塊在操作系統(tǒng)tick定時(shí)中斷處理模塊中,所述的定時(shí)器計(jì)數(shù)信號(hào)量通知模塊連接普通定時(shí)器管理任務(wù)模塊,所述的所述的普通定時(shí)器管理任務(wù)模塊連接普通定時(shí)器列表,所述的精確定時(shí)器中斷處理模塊連接精確定時(shí)器列表,所述的括普通定時(shí)器管理任務(wù)模塊、精確定時(shí)器中斷處理模塊連接應(yīng)用任務(wù);所述的普通定時(shí)管理任務(wù)模塊對(duì)普通定時(shí)器進(jìn)行定時(shí)管理,每次收到定時(shí)器計(jì)數(shù)信號(hào)量通知模塊發(fā)送的通知后,掃描普通定時(shí)器列表,通過(guò)消息方式通知定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù);所述的普通定時(shí)器列表記錄通用定時(shí)器信息,并通過(guò)通用定時(shí)器創(chuàng)建、刪除接口實(shí)現(xiàn)增加和刪除,普通定時(shí)器任務(wù)定時(shí)修改每個(gè)普通定時(shí)器中的當(dāng)前計(jì)數(shù);所述的精確定時(shí)器中斷處理模塊對(duì)所有精確定時(shí)器進(jìn)行定時(shí)管理,通過(guò)消息方式通知該定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù);所述的精確定時(shí)器列表記錄精確定時(shí)器信息,并通過(guò)精確定時(shí)器創(chuàng)建、刪除接口實(shí)現(xiàn)增加和刪除,精確定時(shí)器中斷處理模塊定時(shí)修改每個(gè)普通定時(shí)器中的當(dāng)前計(jì)數(shù);所述的定時(shí)器計(jì)數(shù)信號(hào)量通知模塊在操作系統(tǒng)tick定時(shí)中斷處理模塊中執(zhí)行,每個(gè)tick時(shí)間間隔通過(guò)計(jì)數(shù)信號(hào)量方式通知普通定時(shí)管理任務(wù)模塊;所述的硬件定時(shí)器由CPU提供,為定時(shí)器計(jì)數(shù)信號(hào)量通知模塊、普通定時(shí)管理任務(wù)模塊提供時(shí)鐘信號(hào)。
[0006]一種基于嵌入式操作系統(tǒng)的通用定時(shí)器工作方法,包括以下步驟:
(i )根據(jù)嵌入式操作系統(tǒng)接口創(chuàng)建普通定時(shí)管理任務(wù),并啟動(dòng)此任務(wù),創(chuàng)建普通定時(shí)器計(jì)數(shù)信號(hào)量;
(ii)根據(jù)CPU硬件定時(shí)器資源特點(diǎn),初始化精確定時(shí)硬件定時(shí)器,啟動(dòng)硬件定時(shí)器功倉(cāng)泛;
(iii)在操作系統(tǒng)tick定時(shí)中斷函數(shù)中,每次tick定時(shí)到來(lái)后,執(zhí)行一次定時(shí)器計(jì)數(shù)信號(hào)量通知模塊,以信號(hào)量方式通知普通定時(shí)管理任務(wù),開(kāi)始處理普通定時(shí)器列表;
(iv)根據(jù)需要為應(yīng)用任務(wù)創(chuàng)建所需要的普通定時(shí)器或精確定時(shí)器,設(shè)定定時(shí)時(shí)間間隔,記錄此定時(shí)器與應(yīng)用任務(wù)的對(duì)應(yīng)關(guān)系;
(V)普通定時(shí)管理任務(wù)以阻塞方式等待普通定時(shí)器計(jì)數(shù)信號(hào)量,一旦信號(hào)量有效后,檢查普通定時(shí)器列表中的每一個(gè)定時(shí)器,對(duì)于定時(shí)時(shí)間間隔滿(mǎn)足條件的定時(shí)器,以消息方式通知此定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù),應(yīng)用任務(wù)收到消息后,執(zhí)行對(duì)應(yīng)的普通定時(shí)處理內(nèi)容;
(vi)每次硬件定時(shí)中斷發(fā)生時(shí),精確定時(shí)器中斷處理模塊執(zhí)行一遍所有精確定時(shí)器的掃描處理,對(duì)于定時(shí)時(shí)間間隔滿(mǎn)足條件的精確定時(shí)器,以消息方式通知此定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù),應(yīng)用任務(wù)收到消息后,執(zhí)行對(duì)應(yīng)的精確定時(shí)處理內(nèi)容。
[0007]本發(fā)明具有的積極效果是:
本發(fā)明的基于嵌入式操作系統(tǒng)的通用定時(shí)器及其工作方法中,利用嵌入式操作系統(tǒng)的通用技術(shù),完成通用定時(shí)器功能,實(shí)現(xiàn)了跨操作系統(tǒng)的應(yīng)用;可以根據(jù)應(yīng)用要求,實(shí)現(xiàn)基于tick單位的普通定時(shí)和基于Ims單位的精確定時(shí)功能,在保證系統(tǒng)功能的前提下,提高了CPU效率和性能,優(yōu)化了系統(tǒng),保證了系統(tǒng)實(shí)時(shí)性要求;通用定時(shí)器的實(shí)現(xiàn),沒(méi)有增加過(guò)多的軟硬件資源開(kāi)銷(xiāo)和占用,普通定時(shí)器和精確定時(shí)器可以靈活組合應(yīng)用,而且可以根據(jù)實(shí)際應(yīng)用需求,分別進(jìn)行功能裁剪,避免了不必要的資源浪費(fèi);采用了跨操作系統(tǒng)平臺(tái)的設(shè)計(jì)思想,消除了由于操作系統(tǒng)變化而對(duì)應(yīng)用層軟件的影響,減少了應(yīng)用軟件對(duì)具體操作系統(tǒng)的依賴(lài),便于軟件的層次化和模塊化設(shè)計(jì),提高了應(yīng)用軟件的復(fù)用性。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0008]圖1是本發(fā)明的總體結(jié)構(gòu)示意圖;
圖2是本發(fā)明的程序執(zhí)行流程圖。
【具體實(shí)施方式】
[0009]以下參照附圖及實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0010]如圖1所示,一種基于嵌入式操作系統(tǒng)的通用定時(shí)器,包括普通定時(shí)器管理任務(wù)模塊1、普通定時(shí)器列表2、精確定時(shí)器中斷處理模塊3、精確定時(shí)器列表4、定時(shí)器計(jì)數(shù)信號(hào)量通知模塊5以及硬件定時(shí)器6 ;
①所述的普通定時(shí)管理任務(wù)模塊I負(fù)責(zé)對(duì)所有普通定時(shí)器的定時(shí)管理,每次收到定時(shí)器計(jì)數(shù)信號(hào)量通知模塊發(fā)送的通知后,開(kāi)始掃描一遍整個(gè)普通定時(shí)器列表,一旦發(fā)現(xiàn)某個(gè)定時(shí)器時(shí)間到,則通過(guò)消息方式通知該定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù)。
[0011]②所述的普通定時(shí)器列表2記錄所有通用定時(shí)器信息,包括:定時(shí)器計(jì)數(shù)閥值、定時(shí)器計(jì)數(shù)當(dāng)前值、關(guān)聯(lián)的任務(wù)號(hào)、定時(shí)器狀態(tài)。通過(guò)通用定時(shí)器創(chuàng)建、刪除接口實(shí)現(xiàn)對(duì)此定時(shí)器列表的增加和刪除;普通定時(shí)器任務(wù)定時(shí)修改每個(gè)普通定時(shí)器中的當(dāng)前計(jì)數(shù)。
[0012]③所述的精確定時(shí)器中斷處理模塊3負(fù)責(zé)對(duì)所有精確定時(shí)器的定時(shí)管理,一旦發(fā)現(xiàn)某個(gè)精確定時(shí)器時(shí)間到,則通過(guò)消息方式通知該定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù)。為了實(shí)現(xiàn)本功能,CPU需要提供一個(gè)硬件定時(shí)器資源,此硬件定時(shí)器為普通定時(shí)管理任務(wù)模塊、普通定時(shí)管理任務(wù)模塊提供時(shí)鐘信號(hào),并根據(jù)需要設(shè)置定中斷時(shí)間隔為lms??紤]到消息通知及任務(wù)上下文切換時(shí)間,精確定時(shí)器建議最小時(shí)間單位為不小于Ims,對(duì)于更快速的定時(shí)功能,建議采用直接的硬件定時(shí)中斷處理方式。
[0013]④所述的精確定時(shí)器列表4記錄所有通用定時(shí)器信息,包括:定時(shí)器計(jì)數(shù)閥值、定時(shí)器計(jì)數(shù)當(dāng)前值、關(guān)聯(lián)的任務(wù)號(hào)、定時(shí)器狀態(tài)。通過(guò)通用定時(shí)器創(chuàng)建、刪除接口實(shí)現(xiàn)對(duì)此定時(shí)器列表的增加和刪除;精確定時(shí)器中斷處理模塊定時(shí)修改每個(gè)普通定時(shí)器中的當(dāng)前計(jì)數(shù)。
[0014]⑤所述的定時(shí)器計(jì)數(shù)信號(hào)量通知模塊5在操作系統(tǒng)tick定時(shí)中斷中執(zhí)行,每個(gè)tick時(shí)間間隔通過(guò)計(jì)數(shù)信號(hào)量方式通知普通定時(shí)管理任務(wù)。
[0015]為了滿(mǎn)足應(yīng)用軟件實(shí)時(shí)性的不同要求,本發(fā)明設(shè)計(jì)了兩種定時(shí)器,即普通定時(shí)器和精確定時(shí)器。普通定時(shí)器的定時(shí)單位為tick,用來(lái)完成定時(shí)周期較長(zhǎng)以或定時(shí)精度較低的功能。精確定時(shí)器的定時(shí)單位為1ms,在滿(mǎn)足系統(tǒng)實(shí)時(shí)性的前提下也可以進(jìn)行適當(dāng)調(diào)整,精確定時(shí)器用來(lái)完成定時(shí)周期較短或定時(shí)精度較高的功能。兩種定時(shí)器通過(guò)各自的接口函數(shù)創(chuàng)建完成后,分別保存在普通定時(shí)列表和精確定時(shí)器列表中。普通定時(shí)管理任務(wù)完成所有普通定時(shí)器的統(tǒng)一管理,此任務(wù)的優(yōu)先級(jí)一般要高于所有的應(yīng)用層任務(wù),以盡量保證定時(shí)精度,普通定時(shí)管理任務(wù)的執(zhí)行頻率由定時(shí)器計(jì)數(shù)信號(hào)量通知模塊控制,即每一個(gè)tick的時(shí)間間隔執(zhí)行一次。精確定時(shí)器中斷處理模塊完成所有精確定時(shí)的統(tǒng)一管理,執(zhí)行周期為硬件定時(shí)器的lms。兩種定時(shí)器結(jié)合使用,可以滿(mǎn)足應(yīng)用任務(wù)的功能需求,系統(tǒng)執(zhí)行效率和實(shí)時(shí)性得到充分保證。
[0016]一種基于嵌入式操作系統(tǒng)的通用定時(shí)器工作方法,包括以下步驟:
步驟1、根據(jù)嵌入式操作系統(tǒng)接口,創(chuàng)建普通定時(shí)器計(jì)數(shù)信號(hào)量和普通定時(shí)管理任務(wù);為保證定時(shí)執(zhí)行精度,任務(wù)優(yōu)先級(jí)一般高于所有的應(yīng)用層任務(wù);啟動(dòng)此任務(wù);
步驟i1、根據(jù)CPU硬件定時(shí)器資源特點(diǎn),初始化硬件精確定時(shí)定時(shí)器,設(shè)定定時(shí)中斷間隔為lrns,啟動(dòng)硬件定時(shí)器功能;也可以根據(jù)需要調(diào)整硬件定時(shí)器的中斷間隔,考慮到中斷響應(yīng)延時(shí)以及消息發(fā)送延時(shí),建議不小于1ms,以避免增加CPU的負(fù)荷;
步驟ii1、在操作系統(tǒng)tick定時(shí)中斷函數(shù)中,每次tick定時(shí)到來(lái)后,執(zhí)行一次通用定時(shí)器計(jì)數(shù)信號(hào)量通知模塊,以信號(hào)量方式通知普通定時(shí)管理任務(wù),開(kāi)始處理普通定時(shí)器列表;
步驟iv、根據(jù)需要為應(yīng)用任務(wù)創(chuàng)建所需要的普通定時(shí)器或精確定時(shí)器,設(shè)定定時(shí)器閥值、定時(shí)器運(yùn)行狀態(tài),記錄本定時(shí)器與應(yīng)用任務(wù)的對(duì)應(yīng)關(guān)系;
步驟V、普通定時(shí)管理任務(wù)以阻塞方式等待普通定時(shí)器計(jì)數(shù)信號(hào)量,一旦信號(hào)量有效后,檢查普通定時(shí)器列表中的每一個(gè)定時(shí)器,對(duì)于定時(shí)時(shí)間間隔滿(mǎn)足條件的定時(shí)器,以消息方式通知此定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù),應(yīng)用任務(wù)收到消息后,則執(zhí)行對(duì)應(yīng)的普通定時(shí)處理內(nèi)容;為了保證定時(shí)精度,防止被其它任務(wù)打斷,對(duì)于定時(shí)器循環(huán)掃描處理過(guò)程,需要進(jìn)行防止任務(wù)搶占的保護(hù)處理;
步驟V1、每次硬件定時(shí)中斷發(fā)生時(shí),精確定時(shí)器中斷處理模塊執(zhí)行一遍所有精確定時(shí)器的掃描處理,對(duì)于定時(shí)時(shí)間間隔滿(mǎn)足條件的精確定時(shí)器,以消息方式通知此定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù),應(yīng)用任務(wù)收到消息后,則執(zhí)行對(duì)應(yīng)的精確定時(shí)處理內(nèi)容。
[0017]所述的普通定時(shí)器和精確定時(shí)器各自都有唯一的標(biāo)示,并記錄其所屬的應(yīng)用任務(wù)標(biāo)示。每個(gè)任務(wù)根據(jù)需要,可以創(chuàng)建一個(gè)或多個(gè)定時(shí)器,并將所需的功能分配到不同的定時(shí)功能中,在不需了解具體操作系統(tǒng)接口函數(shù)的前提下,便于用戶(hù)的靈活應(yīng)用。
[0018]在CPU負(fù)荷不超過(guò)40%的前提下,普通定時(shí)器精度誤差不超過(guò)± lms,精確定時(shí)器定時(shí)精度誤差不超過(guò)±0.lms。
[0019]采用獨(dú)立的普通定時(shí)器管理任務(wù)完成普通定時(shí)器的管理,而不是在tick定時(shí)中斷中直接處理的優(yōu)點(diǎn)是,保證嵌入式操作系統(tǒng)任務(wù)調(diào)度的時(shí)效性,不會(huì)影響操作系統(tǒng)的實(shí)時(shí)性。
[0020]如圖2所示,本發(fā)明的基于嵌入式操作系統(tǒng)的通用定時(shí)器工作方法應(yīng)用于計(jì)算機(jī)編程時(shí)包括以下處理流程步驟:
(i)開(kāi)始(SI);
(ii)創(chuàng)建普通定時(shí)器信號(hào)量、普通定時(shí)器任務(wù)(S2);
(iii)初始化硬件精確定時(shí)器及終端(S3);
(iv)操作系統(tǒng)tick定時(shí)中斷函數(shù)中增加定時(shí)器計(jì)數(shù)信號(hào)量通知模塊(S4);
(V)創(chuàng)建需要的精確定時(shí)器和普通定時(shí)器(S5);
(vi)以阻塞方式等待普通定時(shí)器信號(hào)量(S6);
(vii)禁止任務(wù)搶占(S7);
(viii)獲取普通定時(shí)器列表頭(S8);
(ix)本有效定時(shí)器當(dāng)前計(jì)數(shù)值是否為O(S9);
(X)消息通知定時(shí)器對(duì)應(yīng)的任務(wù)(SlO);
(xi)定時(shí)器當(dāng)前計(jì)數(shù)減I(SlO);
(xii)定時(shí)器全部處理完成(S12);
(xiii)恢復(fù)任務(wù)搶占(S13);
(xiv)切換到下一個(gè)有效定時(shí)器(S14)。
[0021]本發(fā)明具有的積極效果是:
本發(fā)明的基于嵌入式操作系統(tǒng)的通用定時(shí)器及其工作方法,利用嵌入式操作系統(tǒng)的通用技術(shù),完成通用定時(shí)器功能,實(shí)現(xiàn)了跨操作系統(tǒng)的應(yīng)用;可以根據(jù)應(yīng)用要求,實(shí)現(xiàn)基于tick單位的普通定時(shí)和基于Ims單位的精確定時(shí)功能,在保證系統(tǒng)功能的前提下,提高了CPU效率和性能,優(yōu)化了系統(tǒng),保證了系統(tǒng)實(shí)時(shí)性要求;通用定時(shí)器的實(shí)現(xiàn),沒(méi)有增加過(guò)多的軟硬件資源開(kāi)銷(xiāo)和占用,普通定時(shí)器和精確定時(shí)器可以靈活組合應(yīng)用,而且可以根據(jù)實(shí)際應(yīng)用需求,分別進(jìn)行功能裁剪,避免了不必要的資源浪費(fèi);采用了跨操作系統(tǒng)平臺(tái)的設(shè)計(jì)思想,消除了由于操作系統(tǒng)變化而對(duì)應(yīng)用層軟件的影響,減少了應(yīng)用軟件對(duì)具體操作系統(tǒng)的依賴(lài),消除二者的直接耦合,便于軟件的層次化和模塊化設(shè)計(jì),提高了應(yīng)用軟件的復(fù)用性。
【權(quán)利要求】
1.一種基于嵌入式操作系統(tǒng)的通用定時(shí)器,包括普通定時(shí)器管理任務(wù)模塊(1)、普通定時(shí)器列表(2)、精確定時(shí)器中斷處理模塊(3)、精確定時(shí)器列表(4)、定時(shí)器計(jì)數(shù)信號(hào)量通知模塊(5)以及硬件定時(shí)器(6),其特征在于:所述的硬件定時(shí)器連接定時(shí)器計(jì)數(shù)信號(hào)量通知模塊(5)和精確定時(shí)器中斷處理模塊(3),所述的定時(shí)器計(jì)數(shù)信號(hào)量通知模塊(5)在操作系統(tǒng)tick定時(shí)中斷處理模塊中,所述的定時(shí)器計(jì)數(shù)信號(hào)量通知模塊(5)連接普通定時(shí)器管理任務(wù)模塊(1),所述的所述的普通定時(shí)器管理任務(wù)模塊(1)連接普通定時(shí)器列表(2),所述的精確定時(shí)器中斷處理模塊(3)連接精確定時(shí)器列表(4),所述的括普通定時(shí)器管理任務(wù)模塊(1)、精確定時(shí)器中斷處理模塊(3)連接應(yīng)用任務(wù); 所述的普通定時(shí)管理任務(wù)模塊(1)對(duì)普通定時(shí)器進(jìn)行定時(shí)管理,每次收到定時(shí)器計(jì)數(shù)信號(hào)量通知模塊(5)發(fā)送的通知后,掃描普通定時(shí)器列表(2),通過(guò)消息方式通知定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù); 所述的普通定時(shí)器列表(2)記錄通用定時(shí)器信息,并通過(guò)通用定時(shí)器創(chuàng)建、刪除接口實(shí)現(xiàn)增加和刪除,普通定時(shí)器任務(wù)定時(shí)修改每個(gè)普通定時(shí)器中的當(dāng)前計(jì)數(shù); 所述的精確定時(shí)器中斷處理模塊(3)對(duì)所有精確定時(shí)器進(jìn)行定時(shí)管理,通過(guò)消息方式通知該定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù); 所述的精確定時(shí)器列表(4)記錄精確定時(shí)器信息,并通過(guò)精確定時(shí)器創(chuàng)建、刪除接口實(shí)現(xiàn)增加和刪除,精確定時(shí)器中斷處理模塊(3)定時(shí)修改每個(gè)普通定時(shí)器中的當(dāng)前計(jì)數(shù); 所述的定時(shí)器計(jì)數(shù)信號(hào)量通知模塊(5)在操作系統(tǒng)tick定時(shí)中斷處理模塊中執(zhí)行,每個(gè)tick時(shí)間間隔通過(guò)計(jì)數(shù)信號(hào)量方式通知普通定時(shí)管理任務(wù)模塊(1); 所述的硬件定時(shí)器(6)由CPU提供,為定時(shí)器計(jì)數(shù)信號(hào)量通知模塊(5)、普通定時(shí)管理任務(wù)模塊(1)提供時(shí)鐘信號(hào)。
2.根據(jù)權(quán)利要求1所述的基于嵌入式操作系統(tǒng)的通用定時(shí)器,其特征在于:所述的通用定時(shí)器信息或所述的精確定時(shí)器信息包括定時(shí)器計(jì)數(shù)閥值、定時(shí)器計(jì)數(shù)當(dāng)前值、關(guān)聯(lián)的任務(wù)號(hào)、定時(shí)器狀態(tài)。
3.根據(jù)權(quán)利要求1所述的基于嵌入式操作系統(tǒng)的通用定時(shí)器,其特征在于:所述的普通精度定時(shí)器中斷時(shí)間隔為ltick,精確定時(shí)器中斷時(shí)間間隔為1ms。
4.一種基于嵌入式操作系統(tǒng)的通用定時(shí)器工作方法,其特征在于:包括以下步驟: (i )根據(jù)嵌入式操作系統(tǒng)接口創(chuàng)建普通定時(shí)管理任務(wù),并啟動(dòng)此任務(wù),創(chuàng)建普通定時(shí)器計(jì)數(shù)信號(hào)量; (ii)根據(jù)CPU硬件定時(shí)器資源特點(diǎn),初始化精確定時(shí)硬件定時(shí)器,啟動(dòng)硬件定時(shí)器功倉(cāng)泛; (iii)在操作系統(tǒng)tick定時(shí)中斷函數(shù)中,每次tick定時(shí)到來(lái)后,執(zhí)行一次定時(shí)器計(jì)數(shù)信號(hào)量通知模塊,以信號(hào)量方式通知普通定時(shí)管理任務(wù),開(kāi)始處理普通定時(shí)器列表; (iv)根據(jù)需要為應(yīng)用任務(wù)創(chuàng)建所需要的普通定時(shí)器或精確定時(shí)器,設(shè)定定時(shí)時(shí)間間隔,記錄此定時(shí)器與應(yīng)用任務(wù)的對(duì)應(yīng)關(guān)系; (v)普通定時(shí)管理任務(wù)以阻塞方式等待普通定時(shí)器計(jì)數(shù)信號(hào)量,一旦信號(hào)量有效后,檢查普通定時(shí)器列表中的每一個(gè)定時(shí)器,對(duì)于定時(shí)時(shí)間間隔滿(mǎn)足條件的定時(shí)器,以消息方式通知此定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù),應(yīng)用任務(wù)收到消息后,執(zhí)行對(duì)應(yīng)的普通定時(shí)處理內(nèi)容; (vi)每次硬件定時(shí)中斷發(fā)生時(shí),精確定時(shí)器中斷處理模塊執(zhí)行一遍所有精確定時(shí)器的掃描處理,對(duì)于定時(shí)時(shí)間間隔滿(mǎn)足條件的精確定時(shí)器,以消息方式通知此定時(shí)器關(guān)聯(lián)的應(yīng)用任務(wù),應(yīng)用任務(wù)收到消息后,執(zhí)行對(duì)應(yīng)的精確定時(shí)處理內(nèi)容。
5.根據(jù)權(quán)利要求4所述的基于嵌入式操作系統(tǒng)的通用定時(shí)器工作方法,其特征在于:所述的步驟(i)中所述的普通定時(shí)器管理任務(wù)優(yōu)先級(jí)高于應(yīng)用任務(wù)優(yōu)先級(jí)。
6.根據(jù)權(quán)利要求4所述的基于嵌入式操作系統(tǒng)的通用定時(shí)器工作方法,其特征在于:所述的步驟(i)中所述的設(shè)定定時(shí)中斷間隔為1ms。
7.根據(jù)權(quán)利要求4所述的基于嵌入式操作系統(tǒng)的通用定時(shí)器工作方法,其特征在于:所述的工作方法應(yīng)用于計(jì)算機(jī)時(shí)采用以下流程步驟: (i)開(kāi)始(S1); (ii)創(chuàng)建普通定時(shí)器信號(hào)量、普通定時(shí)器任務(wù)(S2); (iii)初始化硬件精確定時(shí)器及終端(S3); (iv)操作系統(tǒng)tick定時(shí)中斷函數(shù)中增加定時(shí)器計(jì)數(shù)信號(hào)量通知模塊(S4); (v)創(chuàng)建需要的精確定時(shí)器和普通定時(shí)器(S5); (vi)以阻塞方式等待普通定時(shí)器信號(hào)量(S6); (vii)禁止任務(wù)搶占(S7); (viii)獲取普通定時(shí)器列表頭(S8); (ix)本有效定時(shí)器當(dāng)前計(jì)數(shù)值是否為0(S9); (X)消息通知定時(shí)器對(duì)應(yīng)的任務(wù)(S10); (xi)定時(shí)器當(dāng)前計(jì)數(shù)減1(S10); (xii)定時(shí)器全部處理完成(S12); (xiii)恢復(fù)任務(wù)搶占(S13); (xiv)切換到下一個(gè)有效定時(shí)器(S14)。
【文檔編號(hào)】G06F9/48GK104268020SQ201410504029
【公開(kāi)日】2015年1月7日 申請(qǐng)日期:2014年9月28日 優(yōu)先權(quán)日:2014年9月28日
【發(fā)明者】曾慶釗, 李政, 吳蘇卓 申請(qǐng)人:天津凱發(fā)電氣股份有限公司