專利名稱:一種消息及時(shí)處理方法和嵌入式多任務(wù)操作系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式多任務(wù)操作系統(tǒng),尤其涉及在嵌入式多任務(wù)操作系統(tǒng)中對(duì)任務(wù)接收的消息進(jìn)行及時(shí)處理的方法。
背景技術(shù):
在很多嵌入式操作系統(tǒng)中,系統(tǒng)都是多任務(wù)(或叫多進(jìn)程)系統(tǒng),而且采用的調(diào)度方式是搶占式的。每個(gè)任務(wù)之間的切換和執(zhí)行操作都是基于消息機(jī)制。也就是說,當(dāng)一個(gè)任務(wù)A接收到一條消息以后,解析該消息內(nèi)容,并開始執(zhí)行該消息相應(yīng)的具體操作;當(dāng)本條消息執(zhí)行完成后,任務(wù)A等待接收下一條消息,并按照接收的下一條消息的指令內(nèi)容執(zhí)行相應(yīng)的操作,直到任務(wù)A接收并處理完全部消息后結(jié)束任務(wù)。但是在任務(wù)A執(zhí)行消息的具體操作過程中,可能會(huì)被優(yōu)先級(jí)更高的任務(wù)B或者中斷程序所打斷,這時(shí),任務(wù)A將被停止執(zhí)行當(dāng)前消息,任務(wù)A被系統(tǒng)掛起;這樣,就很難保證任務(wù)A在一定的時(shí)間內(nèi)被執(zhí)行完成。特別是當(dāng)任務(wù)A接收到比較重要的消息時(shí),往往需要及時(shí)處理,以保證該消息的完成時(shí)間,如果在重要消息執(zhí)行過程中,任務(wù)A被優(yōu)先級(jí)更高的任務(wù)或者中斷處理程序所打斷,則任務(wù)A的該條重要消息將被中斷執(zhí)行,只能等待優(yōu)先級(jí)高的其他的任務(wù)或者中斷處理程序執(zhí)行完成后才能夠繼續(xù)執(zhí)行,所以,重要消息很難保證在一定的時(shí)間內(nèi)執(zhí)行完成。
現(xiàn)有技術(shù)中,在一些嵌入式系統(tǒng)中為了保證某一任務(wù)的執(zhí)行時(shí)間,直接使用定時(shí)器,把該任務(wù)的每一條消息要完成的操作直接放在了定時(shí)器中斷處理程序中執(zhí)行,定時(shí)器啟動(dòng)后就會(huì)每隔一段時(shí)間產(chǎn)生一次中斷,定時(shí)器中斷處理程序會(huì)每隔一段時(shí)間被執(zhí)行一次。采用這種方式,當(dāng)任務(wù)已完成,沒有任何消息需要處理時(shí),定時(shí)器還將繼續(xù)周期產(chǎn)生中斷,但實(shí)際上在這種情況下定時(shí)器中斷處理程序并沒有執(zhí)行任何具體的操作,這些中斷是沒有意義的,會(huì)造成系統(tǒng)資源的浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明提供一種消息及時(shí)處理方法,用以解決現(xiàn)有技術(shù)中存在的不能保證消息或任務(wù)的執(zhí)行時(shí)間以及浪費(fèi)系統(tǒng)資源的問題。
本發(fā)明方法包括應(yīng)用于嵌入式多任務(wù)操作系統(tǒng),包括當(dāng)任務(wù)接收到消息后,判斷當(dāng)前接收的消息是否需要及時(shí)處理,如果需要及時(shí)處理,則啟動(dòng)定時(shí)器;當(dāng)定時(shí)器中斷產(chǎn)生后,在定時(shí)器中斷處理程序中執(zhí)行與該消息對(duì)應(yīng)的具體工作。
根據(jù)本發(fā)明的上述方法,在系統(tǒng)中預(yù)先設(shè)定需要及時(shí)處理的消息對(duì)應(yīng)的消息類型;當(dāng)任務(wù)接收到消息后,根據(jù)消息類型來判斷當(dāng)前接收的消息是否需要及時(shí)處理。
根據(jù)本發(fā)明的上述方法,預(yù)先將不同類型消息需要執(zhí)行的相關(guān)工作封裝成對(duì)應(yīng)函數(shù),存儲(chǔ)在系統(tǒng)中;如果判斷出當(dāng)前接收的消息需要及時(shí)處理,執(zhí)行下列步驟匹配出當(dāng)前消息的對(duì)應(yīng)函數(shù),將對(duì)應(yīng)函數(shù)的地址信息傳遞給所述定時(shí)器中斷處理程序;啟動(dòng)所述定時(shí)器,當(dāng)定時(shí)器中斷產(chǎn)生后,由定時(shí)器中斷處理程序根據(jù)所述函數(shù)地址信息執(zhí)行所述對(duì)應(yīng)函數(shù),完成與當(dāng)前消息相關(guān)的具體工作。
根據(jù)本發(fā)明的上述方法,當(dāng)與當(dāng)前消息相關(guān)的具體工作完成后,所述定時(shí)器中斷處理程序自動(dòng)關(guān)閉所述定時(shí)器。
所述定時(shí)器的時(shí)間間隔可設(shè)置。
根據(jù)本發(fā)明的上述方法,預(yù)先設(shè)定需要及時(shí)處理的不同類型消息的優(yōu)先級(jí),并設(shè)定與不同優(yōu)先級(jí)對(duì)應(yīng)的定時(shí)器的時(shí)間間隔;
當(dāng)判斷出當(dāng)前接收的消息需要及時(shí)處理時(shí),根據(jù)消息類型確定其對(duì)應(yīng)的優(yōu)先級(jí),將所述定時(shí)器的時(shí)間間隔設(shè)置為與確定出的優(yōu)先級(jí)對(duì)應(yīng)的時(shí)間間隔后啟動(dòng)所述定時(shí)器。
根據(jù)本發(fā)明的上述方法,如果判斷出當(dāng)前接收的消息不需要及時(shí)處理,則執(zhí)行常規(guī)的消息處理流程。
根據(jù)本發(fā)明的上述方法,當(dāng)前消息處理完畢后,所述任務(wù)等待接收下一個(gè)消息進(jìn)行處理,直到任務(wù)完成。
本發(fā)明另提供一種嵌入式多任務(wù)操作系統(tǒng),包括若干個(gè)任務(wù)執(zhí)行單元、定時(shí)器以及存儲(chǔ)單元,每一個(gè)任務(wù)執(zhí)行單元包括消息接收模塊,接收發(fā)送到該任務(wù)的消息,并轉(zhuǎn)發(fā)給消息判斷模塊;消息判斷模塊,用于判斷當(dāng)前接收的消息是否需要及時(shí)處理,如果需要及時(shí)處理,則發(fā)送消息給中斷處理模塊;否則,將消息發(fā)送到普通消息處理模塊;中斷處理模塊,用于啟動(dòng)定時(shí)器,并當(dāng)定時(shí)器中斷產(chǎn)生后,啟動(dòng)存儲(chǔ)在所述存儲(chǔ)單元中的定時(shí)器中斷處理程序,在定時(shí)器中斷處理程序中執(zhí)行與該消息相關(guān)的具體工作;普通消息處理模塊,執(zhí)行常規(guī)的消息處理流程。
所述存儲(chǔ)單元中還存儲(chǔ)與不同類型消息對(duì)應(yīng)的函數(shù),每一函數(shù)中封裝對(duì)應(yīng)消息需要執(zhí)行的相關(guān)工作,所述中斷處理模塊包括匹配子模塊,匹配出當(dāng)前消息的對(duì)應(yīng)函數(shù);傳遞子模塊,將對(duì)應(yīng)函數(shù)的地址信息傳遞給所述存儲(chǔ)單元中存儲(chǔ)的定時(shí)器中斷處理程序;中斷子模塊,啟動(dòng)定時(shí)器,當(dāng)定時(shí)器中斷產(chǎn)生后,執(zhí)行定時(shí)器中斷處理程序,根據(jù)所述函數(shù)地址信息執(zhí)行對(duì)應(yīng)函數(shù),完成消息相關(guān)具體工作。
本發(fā)明有益效果如下采用本發(fā)明,當(dāng)任務(wù)接收到消息后,判斷當(dāng)前接收的消息是否需要及時(shí)處理,如果需要及時(shí)處理,則啟動(dòng)定時(shí)器,當(dāng)定時(shí)器中斷產(chǎn)生后,啟動(dòng)定時(shí)器執(zhí)行中斷處理程序,在定時(shí)器中斷處理程序中執(zhí)行與該消息對(duì)應(yīng)的具體工作,當(dāng)與消息對(duì)應(yīng)的具體工作完成后,定時(shí)器中斷處理程序自動(dòng)關(guān)閉定時(shí)器。由于定時(shí)器中斷處理程序一旦被執(zhí)行,就會(huì)執(zhí)行完畢,中間不會(huì)被任何任務(wù)或中斷處理程序所打斷,因此能夠保證消息的執(zhí)行時(shí)間。當(dāng)一個(gè)任務(wù)包含多個(gè)消息時(shí),如果每個(gè)消息都采用本發(fā)明的方法進(jìn)行及時(shí)處理,則就可以保證整個(gè)任務(wù)的執(zhí)行時(shí)間。換句話說,當(dāng)需要保證一個(gè)任務(wù)的執(zhí)行時(shí)間時(shí),可以預(yù)先將該任務(wù)所包含的各種消息類型都設(shè)定為需要及時(shí)處理,當(dāng)任務(wù)接收到消息后,就會(huì)啟動(dòng)定時(shí)器,產(chǎn)生中斷,由定時(shí)器的中斷處理程序執(zhí)行消息對(duì)應(yīng)的具體操作。如果任務(wù)中僅有一部分消息需要保證其執(zhí)行時(shí)間,則將該種類型消息設(shè)定為需要及時(shí)處理,由定時(shí)器的中斷處理程序執(zhí)行該種類型消息對(duì)應(yīng)的具體操作即可。這樣,采用本發(fā)明方法,使得任務(wù)本身具備了一定的中斷程序的特性,不但可以保證整個(gè)任務(wù)或任務(wù)中某一段工作的執(zhí)行時(shí)間,而且任務(wù)或相應(yīng)操行執(zhí)行完成后,中斷程序自動(dòng)關(guān)閉定時(shí)器,避免了定時(shí)器由于周期性啟動(dòng)產(chǎn)生無用中斷造成系統(tǒng)資源浪費(fèi)的問題。
圖1為本發(fā)明提供的方法實(shí)施例流程圖;圖2為本發(fā)明提供的嵌入式多任務(wù)系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明提供一種消息及時(shí)處理方法,應(yīng)用于嵌入式多任務(wù)操作系統(tǒng),包括當(dāng)任務(wù)接收到消息后,判斷當(dāng)前接收的消息是否需要及時(shí)處理,如果需要及時(shí)處理,則啟動(dòng)定時(shí)器,當(dāng)定時(shí)器中斷產(chǎn)生后,執(zhí)行定時(shí)器中斷處理程序,在定時(shí)器中斷處理程序中執(zhí)行與該消息對(duì)應(yīng)的具體工作。
下面結(jié)合附圖,對(duì)本發(fā)明方法加以詳細(xì)描述。
參見圖1,為本發(fā)明方法實(shí)施例流程圖,包括如下具體步驟
步驟S101、系統(tǒng)啟動(dòng)后,在系統(tǒng)中創(chuàng)建一個(gè)任務(wù),系統(tǒng)中存儲(chǔ)有預(yù)先將任務(wù)的不同類型消息相關(guān)的工作內(nèi)容封裝成的對(duì)應(yīng)函數(shù);步驟S102、被創(chuàng)建的任務(wù)開始啟動(dòng);步驟S103、被創(chuàng)建的任務(wù)啟動(dòng)以后,等待用戶發(fā)送消息;步驟S104、判斷是否接收到發(fā)送給任務(wù)的消息,如果沒有接收到消息,則轉(zhuǎn)至步驟S103,繼續(xù)等待消息;如果已接收到消息,則執(zhí)行步驟S105;步驟S105、判斷當(dāng)前接收的消息是否為需要及時(shí)處理的消息,如果是,則執(zhí)行步驟S106;否則,執(zhí)行步驟S108;判斷當(dāng)前接收的消息是否為需要及時(shí)處理的消息時(shí),具體判斷方法例如在系統(tǒng)中預(yù)先設(shè)定需要及時(shí)處理的消息對(duì)應(yīng)的消息類型;當(dāng)任務(wù)接收到消息后,根據(jù)消息類型來判斷當(dāng)前接收的消息是否需要及時(shí)處理;步驟S106、匹配出當(dāng)前消息的對(duì)應(yīng)函數(shù),將對(duì)應(yīng)函數(shù)地址信息傳遞給定時(shí)器中斷處理程序;并啟動(dòng)定時(shí)器;繼續(xù)步驟S107;步驟S107、當(dāng)定時(shí)器設(shè)定的時(shí)間間隔到達(dá)時(shí)(例如,設(shè)定定時(shí)器的時(shí)間間隔為1毫秒),產(chǎn)生定時(shí)器中斷;啟動(dòng)定時(shí)器中斷處理程序,根據(jù)傳遞的函數(shù)地址信息執(zhí)行對(duì)應(yīng)函數(shù),完成該消息對(duì)應(yīng)的具體工作,當(dāng)與消息對(duì)應(yīng)的具體工作完成后,定時(shí)器中斷處理程序自動(dòng)關(guān)閉定時(shí)器;繼續(xù)步驟S109;步驟S108、執(zhí)行常規(guī)的消息處理流程,繼續(xù)步驟S109;所述常規(guī)的消息處理流程,即當(dāng)前任務(wù)沒有被中斷時(shí),直接執(zhí)行該消息對(duì)應(yīng)的具體操作;在消息執(zhí)行過程中,可以被優(yōu)先級(jí)更高的任務(wù)所中斷;步驟S109、判斷當(dāng)前任務(wù)是否完成,如果已處理完當(dāng)前任務(wù)的最后一條消息,則判斷當(dāng)前任務(wù)完成,結(jié)束當(dāng)前任務(wù);否則,轉(zhuǎn)至步驟S103、繼續(xù)等待用戶發(fā)送消息,重復(fù)以上流程。
在具體應(yīng)用中,可以針對(duì)不同的任務(wù)分別設(shè)置需要及時(shí)處理的消息類型,當(dāng)需要保證一個(gè)重要任務(wù)的執(zhí)行時(shí)間時(shí),可以預(yù)先將該任務(wù)所包含的各種消息類型都設(shè)定為需要及時(shí)處理,當(dāng)任務(wù)接收到每一個(gè)消息后,按照本發(fā)明實(shí)施例的上述流程都會(huì)啟動(dòng)定時(shí)器產(chǎn)生中斷,由定時(shí)器的中斷處理程序執(zhí)行消息對(duì)應(yīng)的具體操作;如果當(dāng)前任務(wù)中僅有一部分消息需要保證其執(zhí)行時(shí)間,則將該種需要保證執(zhí)行時(shí)間的消息對(duì)應(yīng)的消息類型設(shè)定為需要及時(shí)處理,當(dāng)任務(wù)接收到該種類型的消息后,由定時(shí)器的中斷處理程序執(zhí)行該種類型消息對(duì)應(yīng)的具體操作,從而實(shí)現(xiàn)保證任務(wù)中某一段工作的執(zhí)行時(shí)間。
根據(jù)本發(fā)實(shí)施例提供的上述方法,定時(shí)器的時(shí)間間隔可設(shè)置。
例如預(yù)先設(shè)定需要及時(shí)處理的不同類型消息的優(yōu)先級(jí),并設(shè)定與不同優(yōu)先級(jí)對(duì)應(yīng)的定時(shí)器的時(shí)間間隔;當(dāng)判斷出當(dāng)前接收的消息需要及時(shí)處理時(shí),根據(jù)消息類型確定其對(duì)應(yīng)的優(yōu)先級(jí),將定時(shí)器的時(shí)間間隔設(shè)置為與確定出的優(yōu)先級(jí)對(duì)應(yīng)的時(shí)間間隔后再啟動(dòng)定時(shí)器。
如下表1所示表1
由表1可知,類型A的消息優(yōu)先級(jí)最高,在定時(shí)器啟動(dòng)1毫秒后定時(shí)器產(chǎn)生中斷,執(zhí)行定時(shí)器中斷處理程序,在中斷處理程序中執(zhí)行該消息對(duì)應(yīng)的具體操作。同理,對(duì)于接收的類型B和類型C的消息,也需要啟動(dòng)定時(shí)器產(chǎn)生中斷,只不過定時(shí)器時(shí)間間隔稍長些,分別在2毫秒后和3毫秒后產(chǎn)生中斷。
根據(jù)本發(fā)明提供的上述方法,本發(fā)明提供一種具備相應(yīng)功能的嵌入式多任務(wù)操作系統(tǒng)10,其結(jié)構(gòu)示意圖如圖2所示,包括若干個(gè)任務(wù)執(zhí)行單元101、定時(shí)器102以及存儲(chǔ)單元103,每一個(gè)任務(wù)執(zhí)行單元101包括消息接收模塊1011,接收發(fā)送到該任務(wù)的消息,并轉(zhuǎn)發(fā)給消息判斷模塊1012;
消息判斷模塊1012,用于判斷當(dāng)前接收的消息是否需要及時(shí)處理,如果需要及時(shí)處理,則發(fā)送消息給中斷處理模塊1013;否則,將消息發(fā)送到普通消息處理模塊1014;中斷處理模塊1013,啟動(dòng)定時(shí)器,當(dāng)設(shè)置的定時(shí)器時(shí)間間隔到達(dá)時(shí),啟動(dòng)存儲(chǔ)單元103中存儲(chǔ)的定時(shí)器中斷處理程序,在定時(shí)器中斷處理程序中執(zhí)行與該消息對(duì)應(yīng)的具體工作;普通消息處理模塊1014,直接執(zhí)行該消息對(duì)應(yīng)的具體工作。
存儲(chǔ)單元103中還可以存儲(chǔ)有與不同類型消息對(duì)應(yīng)的函數(shù),每一函數(shù)中封裝對(duì)應(yīng)消息的相關(guān)工作內(nèi)容;中斷處理模塊1013還可以包括匹配子模塊10131,匹配出當(dāng)前消息的對(duì)應(yīng)函數(shù);傳遞子模塊10132,將對(duì)應(yīng)函數(shù)地址信息傳遞給存儲(chǔ)單元103中存儲(chǔ)的定時(shí)器中斷處理程序;中斷子模塊10133,啟動(dòng)定時(shí)器,當(dāng)定時(shí)器中斷產(chǎn)生后,執(zhí)行定時(shí)器中斷處理程序,根據(jù)函數(shù)地址信息執(zhí)行對(duì)應(yīng)函數(shù),完成消息對(duì)應(yīng)的具體工作。
綜上所述,采用本發(fā)明,當(dāng)任務(wù)接收到消息后,判斷當(dāng)前接收的消息是否需要及時(shí)處理,如果需要及時(shí)處理,則啟動(dòng)定時(shí)器,當(dāng)定時(shí)器中斷產(chǎn)生后執(zhí)行定時(shí)器中斷處理程序,在定時(shí)器中斷處理程序中執(zhí)行與該消息對(duì)應(yīng)的具體工作,當(dāng)與消息對(duì)應(yīng)的具體工作完成后,定時(shí)器中斷處理程序自動(dòng)關(guān)閉定時(shí)器。由于定時(shí)器中斷處理程序一旦被執(zhí)行,就會(huì)執(zhí)行完畢,中間不會(huì)被打斷,因此中斷處理程序能夠保證消息的執(zhí)行時(shí)間。當(dāng)一個(gè)任務(wù)包含多個(gè)消息時(shí),如果每個(gè)消息都采用本發(fā)明的方法進(jìn)行及時(shí)處理,則就可以保證整個(gè)任務(wù)的執(zhí)行時(shí)間。如果任務(wù)中僅有一部分消息需要保證其執(zhí)行時(shí)間,則將該種類型消息設(shè)定為需要及時(shí)處理,由定時(shí)器的中斷處理程序執(zhí)行該種類型消息對(duì)應(yīng)的具體操作即可。這樣,采用本發(fā)明方法,使得任務(wù)本身具備了一定的中斷程序的特性,不但可以保證整個(gè)任務(wù)或任務(wù)中某一段工作的執(zhí)行時(shí)間,而且任務(wù)或相應(yīng)操行執(zhí)行完成后,中斷程序自動(dòng)關(guān)閉定時(shí)器,避免了定時(shí)器由于周期性啟動(dòng)產(chǎn)生無用中斷造成系統(tǒng)資源浪費(fèi)的問題。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種消息及時(shí)處理方法,應(yīng)用于嵌入式多任務(wù)操作系統(tǒng),其特征在于,包括當(dāng)任務(wù)接收到消息后,判斷當(dāng)前接收的消息是否需要及時(shí)處理,如果需要及時(shí)處理,則啟動(dòng)定時(shí)器;當(dāng)定時(shí)器中斷產(chǎn)生后,在定時(shí)器中斷處理程序中執(zhí)行與該消息對(duì)應(yīng)的具體工作。
2.如權(quán)利要求1所述的方法,其特征在于,在系統(tǒng)中預(yù)先設(shè)定需要及時(shí)處理的消息對(duì)應(yīng)的消息類型;當(dāng)任務(wù)接收到消息后,根據(jù)消息類型來判斷當(dāng)前接收的消息是否需要及時(shí)處理。
3.如權(quán)利要求2所述的方法,其特征在于,預(yù)先將不同類型消息需要執(zhí)行的相關(guān)工作封裝成對(duì)應(yīng)函數(shù),存儲(chǔ)在系統(tǒng)中;如果判斷出當(dāng)前接收的消息需要及時(shí)處理,執(zhí)行下列步驟匹配出當(dāng)前消息的對(duì)應(yīng)函數(shù),將對(duì)應(yīng)函數(shù)的地址信息傳遞給所述定時(shí)器中斷處理程序;啟動(dòng)所述定時(shí)器,當(dāng)定時(shí)器中斷產(chǎn)生后,由定時(shí)器中斷處理程序根據(jù)所述函數(shù)地址信息執(zhí)行所述對(duì)應(yīng)函數(shù),完成與當(dāng)前消息相關(guān)的具體工作。
4.如權(quán)利要求3所述的方法,其特征在于,當(dāng)與當(dāng)前消息相關(guān)的具體工作完成后,所述定時(shí)器中斷處理程序自動(dòng)關(guān)閉所述定時(shí)器。
5.如權(quán)利要求3所述的方法,其特征在于,所述定時(shí)器的時(shí)間間隔可設(shè)置。
6.如權(quán)利要求5所述的方法,其特征在于,預(yù)先設(shè)定需要及時(shí)處理的不同類型消息的優(yōu)先級(jí),并設(shè)定與不同優(yōu)先級(jí)對(duì)應(yīng)的定時(shí)器的時(shí)間間隔;當(dāng)判斷出當(dāng)前接收的消息需要及時(shí)處理時(shí),根據(jù)消息類型確定其對(duì)應(yīng)的優(yōu)先級(jí),將所述定時(shí)器的時(shí)間間隔設(shè)置為與確定出的優(yōu)先級(jí)對(duì)應(yīng)的時(shí)間間隔后啟動(dòng)所述定時(shí)器。
7.如權(quán)利要求1所述的方法,其特征在于,如果判斷出當(dāng)前接收的消息不需要及時(shí)處理,則執(zhí)行常規(guī)的消息處理流程。
8.如權(quán)利要求7所述的方法,其特征在于,當(dāng)前消息處理完畢后,所述任務(wù)等待接收下一個(gè)消息進(jìn)行處理,直到任務(wù)完成。
9.一種嵌入式多任務(wù)操作系統(tǒng),包括若干個(gè)任務(wù)執(zhí)行單元、定時(shí)器以及存儲(chǔ)單元,其特征在于,每一個(gè)任務(wù)執(zhí)行單元包括消息接收模塊,接收發(fā)送到該任務(wù)的消息,并轉(zhuǎn)發(fā)給消息判斷模塊;消息判斷模塊,用于判斷當(dāng)前接收的消息是否需要及時(shí)處理,如果需要及時(shí)處理,則發(fā)送消息給中斷處理模塊;否則,將消息發(fā)送到普通消息處理模塊;中斷處理模塊,用于啟動(dòng)定時(shí)器,并當(dāng)定時(shí)器中斷產(chǎn)生后,啟動(dòng)存儲(chǔ)在所述存儲(chǔ)單元中的定時(shí)器中斷處理程序,在定時(shí)器中斷處理程序中執(zhí)行與該消息相關(guān)的具體工作;普通消息處理模塊,執(zhí)行常規(guī)的消息處理流程。
10.如權(quán)利要求9所述的嵌入式多任務(wù)操作系統(tǒng),其特征在于,所述存儲(chǔ)單元中還存儲(chǔ)與不同類型消息對(duì)應(yīng)的函數(shù),每一函數(shù)中封裝對(duì)應(yīng)消息需要執(zhí)行的相關(guān)工作,所述中斷處理模塊包括匹配子模塊,匹配出當(dāng)前消息的對(duì)應(yīng)函數(shù);傳遞子模塊,將對(duì)應(yīng)函數(shù)的地址信息傳遞給所述存儲(chǔ)單元中存儲(chǔ)的定時(shí)器中斷處理程序;中斷子模塊,啟動(dòng)定時(shí)器,當(dāng)定時(shí)器中斷產(chǎn)生后,執(zhí)行定時(shí)器中斷處理程序,根據(jù)所述函數(shù)地址信息執(zhí)行對(duì)應(yīng)函數(shù),完成消息相關(guān)具體工作。
全文摘要
本發(fā)明公開了一種消息及時(shí)處理方法,應(yīng)用于嵌入式多任務(wù)操作系統(tǒng),包括當(dāng)任務(wù)接收到消息后,判斷當(dāng)前接收的消息是否需要及時(shí)處理,如果需要及時(shí)處理,則啟動(dòng)定時(shí)器,當(dāng)定時(shí)器中斷產(chǎn)生后,啟動(dòng)定時(shí)器中斷處理程序,在定時(shí)器中斷處理程序中執(zhí)行與該消息對(duì)應(yīng)的具體工作。本發(fā)明還公開了能實(shí)現(xiàn)本發(fā)明方法的一種嵌入式多任務(wù)操作系統(tǒng)結(jié)構(gòu)。采用本發(fā)明不但可以保證整個(gè)任務(wù)或任務(wù)中某一段工作的執(zhí)行時(shí)間,而且任務(wù)或相應(yīng)操行執(zhí)行完成后,中斷程序自動(dòng)關(guān)閉定時(shí)器,避免了定時(shí)器由于周期性啟動(dòng)產(chǎn)生無用中斷造成系統(tǒng)資源浪費(fèi)的問題。
文檔編號(hào)G06F9/48GK1952899SQ20061011475
公開日2007年4月25日 申請(qǐng)日期2006年11月22日 優(yōu)先權(quán)日2006年11月22日
發(fā)明者唐勉 申請(qǐng)人:北京中星微電子有限公司