專利名稱:一種嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式操作系統(tǒng),尤指一種嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處
理方法。
背景技術(shù):
在現(xiàn)有實(shí)時(shí)數(shù)據(jù)采集設(shè)備中,限于有限的CPU等硬件資源條件,嵌入式操作系統(tǒng)如果在驅(qū)動(dòng)程序中沒有經(jīng)過多級(jí)緩存處理的情況下,嵌入式操作系統(tǒng)的多并發(fā)任務(wù)處理及實(shí)時(shí)完整的數(shù)據(jù)采集可能會(huì)導(dǎo)致CPU頻繁的進(jìn)入高優(yōu)先級(jí)的數(shù)據(jù)中斷采集程序,導(dǎo)致優(yōu)先級(jí)較低的采集程序中斷產(chǎn)生數(shù)據(jù)貽漏,且會(huì)造成已采集數(shù)據(jù)在還沒有來(lái)得及處理時(shí)就被新的數(shù)據(jù)所覆蓋等弊端,大大影響了運(yùn)行效率。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法,該處理方法可利用有限的硬件資源來(lái)設(shè)置多級(jí)緩存,提高運(yùn)行效率。為此,本發(fā)明提供了一種嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法,利用CPU的外設(shè)寄存器作為第一級(jí)硬件緩存;利用CPU的DMA存儲(chǔ)空間來(lái)做第二級(jí)硬件緩存;當(dāng)?shù)谝患?jí)硬件緩存被寫滿之后,產(chǎn)生DMA中斷以將第一級(jí)硬件緩存中的數(shù)據(jù)讀入第二級(jí)硬件緩存中;利用部分RAM空間作為第一級(jí)軟件緩存,當(dāng)?shù)诙?jí)硬件緩存被寫滿之后產(chǎn)生一個(gè)CPU中斷將第二級(jí)硬件緩存中的數(shù)據(jù)讀入第一級(jí)軟件緩存中等待處理;利用部分RAM空間作為第二級(jí)軟件緩存,啟動(dòng)相應(yīng)的數(shù)據(jù)處理任務(wù)進(jìn)程將第一級(jí)軟件緩存中的無(wú)效數(shù)據(jù)剝除并將有效數(shù)據(jù)存入第二級(jí)軟件緩存中。所述第一級(jí)硬件緩存為A/D采樣CPU的外設(shè)16個(gè)字的緩存空間。所述第二級(jí)硬件緩存的DMA存儲(chǔ)空間為K級(jí)。所述數(shù)據(jù)處理任務(wù)進(jìn)程是在CPU不忙時(shí)啟動(dòng)的。所述第二級(jí)軟件緩存可以避免CPU不能及時(shí)處理第一級(jí)軟件緩存中的數(shù)據(jù)而導(dǎo)致第一級(jí)軟件緩存中的有效數(shù)據(jù)被覆蓋的問題。相對(duì)于現(xiàn)有技術(shù),本發(fā)明嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法能在有限的CPU及硬件資源的條件下,減少CPU響應(yīng)中斷的次數(shù),防止在響應(yīng)等級(jí)非最高優(yōu)先級(jí)的CPU中斷,在采集數(shù)據(jù)時(shí)出現(xiàn)數(shù)據(jù)采集不完整的現(xiàn)象發(fā)生;以及因?yàn)槿蝿?wù)優(yōu)先級(jí)不夠高,采集的數(shù)據(jù)還沒有來(lái)得及處理就會(huì)被新采集數(shù)據(jù)覆蓋的情況,可提高嵌入式系統(tǒng)的運(yùn)行效率和穩(wěn)定性,節(jié)約硬件資源的投入。
圖1為本發(fā)明嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法的示意圖。
具體實(shí)施方式
請(qǐng)參閱圖1所示,本發(fā)明嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法能夠通過軟件設(shè)置充分利用現(xiàn)有硬件外設(shè)資源的存儲(chǔ)單元來(lái)提高嵌入式系統(tǒng)的運(yùn)行效率。本發(fā)明的嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理辦法如下首先,利用CPU的外設(shè)寄存器作為第一級(jí)硬件緩存,比如A/D采樣CPU會(huì)有16個(gè)字的緩存空間;其次,利用CPU的DMA存儲(chǔ)空間來(lái)做第二級(jí)硬件緩存,它的存儲(chǔ)空間一般為K級(jí);當(dāng)?shù)谝患?jí)硬件緩存被寫滿之后,產(chǎn)生DMA中斷以將第一級(jí)硬件緩存中的數(shù)據(jù)讀入第二級(jí)硬件緩存中;隨后,利用部分RAM空間作為第一級(jí)軟件緩存,因?yàn)镈MA的存儲(chǔ)空間較小,且需要分給多種外設(shè)來(lái)使用有限的空間,所以用部分RAM空間作為第一級(jí)軟件緩存可以增加緩存數(shù)據(jù)的數(shù)量,當(dāng)?shù)诙?jí)硬件緩存被寫滿之后產(chǎn)生一個(gè)CPU中斷將第二級(jí)硬件緩存中的數(shù)據(jù)讀入第一級(jí)軟件緩存中等待處理,同時(shí)我們還需要建立相應(yīng)的數(shù)據(jù)處理任務(wù)進(jìn)程來(lái)處理第一級(jí)軟件緩存中的數(shù)據(jù),以保證第一級(jí)軟件緩存有足夠多的有效空間;所以,最后利用部分RAM空間作為第二級(jí)軟件緩存,在CPU不忙時(shí),啟動(dòng)相應(yīng)的數(shù)據(jù)處理任務(wù)進(jìn)程將第一級(jí)軟件緩存中的無(wú)效數(shù)據(jù)剝除并將有效數(shù)據(jù)存入第二級(jí)軟件緩存中,以保證第一級(jí)軟件緩存中的有效數(shù)據(jù)不被覆蓋。所述第二級(jí)軟件緩存的主要作用是避免CPU不能及時(shí)處理第一級(jí)軟件緩存中的數(shù)據(jù)而導(dǎo)致第一級(jí)軟件緩存中的有效數(shù)據(jù)被覆蓋的問題。相較于現(xiàn)有技術(shù),本發(fā)明嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法能在有限的CPU及硬件資源的條件下,減少CPU響應(yīng)中斷的次數(shù),防止在響應(yīng)等級(jí)非最高優(yōu)先級(jí)的CPU中斷,在采集數(shù)據(jù)時(shí)出現(xiàn)數(shù)據(jù)采集不完整的現(xiàn)象發(fā)生;以及因?yàn)槿蝿?wù)優(yōu)先級(jí)不夠高,采集的數(shù)據(jù)還沒有來(lái)得及處理就會(huì)被新采集數(shù)據(jù)覆蓋的情況,可提高嵌入式系統(tǒng)的運(yùn)行效率和穩(wěn)定性,節(jié)約硬件資源的投入。
權(quán)利要求
1.一種嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法,其特征在于利用CPU的外設(shè)寄存器作為第一級(jí)硬件緩存;利用CPU的DMA存儲(chǔ)空間來(lái)做第二級(jí)硬件緩存;當(dāng)?shù)谝患?jí)硬件緩存被寫滿之后,產(chǎn)生DMA中斷以將第一級(jí)硬件緩存中的數(shù)據(jù)讀入第二級(jí)硬件緩存中;利用部分RAM空間作為第一級(jí)軟件緩存,當(dāng)?shù)诙?jí)硬件緩存被寫滿之后產(chǎn)生一個(gè)CPU中斷將第二級(jí)硬件緩存中的數(shù)據(jù)讀入第一級(jí)軟件緩存中等待處理;利用部分RAM空間作為第二級(jí)軟件緩存,啟動(dòng)相應(yīng)的數(shù)據(jù)處理任務(wù)進(jìn)程將第一級(jí)軟件緩存中的無(wú)效數(shù)據(jù)剝除并將有效數(shù)據(jù)存入第二級(jí)軟件緩存中。
2.如權(quán)利要求1所述的嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法,其特征在于所述第一級(jí)硬件緩存 >為A/D采樣CPU的外設(shè)16個(gè)字的緩存空間。
3.如權(quán)利要求1所述的嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法,其特征在于所述第二級(jí)硬件緩存的DMA存儲(chǔ)空間為K級(jí)。
4.如權(quán)利要求1所述的嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法,其特征在于所述數(shù)據(jù)處理任務(wù)進(jìn)程是在CPU不忙時(shí)啟動(dòng)的。
5.如權(quán)利要求1所述的嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法,其特征在于所述第二級(jí)軟件緩存可以避免CPU不能及時(shí)處理第一級(jí)軟件緩存中的數(shù)據(jù)而導(dǎo)致第一級(jí)軟件緩存中的有效數(shù)據(jù)被覆蓋的問題。
全文摘要
一種嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法,利用CPU的外設(shè)寄存器作為第一級(jí)硬件緩存;利用CPU的DMA存儲(chǔ)空間來(lái)做第二級(jí)硬件緩存;當(dāng)?shù)谝患?jí)硬件緩存被寫滿之后,產(chǎn)生DMA中斷以將第一級(jí)硬件緩存中的數(shù)據(jù)讀入第二級(jí)硬件緩存中;利用部分RAM空間作為第一級(jí)軟件緩存,當(dāng)?shù)诙?jí)硬件緩存被寫滿之后產(chǎn)生一個(gè)CPU中斷將第二級(jí)硬件緩存中的數(shù)據(jù)讀入第一級(jí)軟件緩存中等待處理;利用部分RAM空間作為第二級(jí)軟件緩存,啟動(dòng)相應(yīng)的數(shù)據(jù)處理任務(wù)進(jìn)程將第一級(jí)軟件緩存中的無(wú)效數(shù)據(jù)剝除并將有效數(shù)據(jù)存入第二級(jí)軟件緩存中;本發(fā)明的嵌入式操作系統(tǒng)中驅(qū)動(dòng)程序的多級(jí)緩存處理方法可有效提高嵌入式系統(tǒng)運(yùn)行效率。
文檔編號(hào)G06F9/48GK103034538SQ20121056527
公開日2013年4月10日 申請(qǐng)日期2012年12月24日 優(yōu)先權(quán)日2012年12月24日
發(fā)明者秦宇, 李安兵, 李正恒 申請(qǐng)人:珠海拓普智能電氣股份有限公司