<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種利用實(shí)時(shí)時(shí)鐘降低嵌入式系統功耗的方法

一種利用實(shí)時(shí)時(shí)鐘降低嵌入式系統功耗的方法

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

在ECOS系統的類(lèi)中增加一個(gè)變量pre_hardware_count用于記錄上一次讀取的硬件計數器的值。當每次系統API讀取tick時(shí),當前硬件計數器的值與上一次讀取時(shí)硬件計數器的值的差值就是兩次讀取之間已經(jīng)過(guò)去的tick數。當產(chǎn)生中斷時(shí),即硬件計數器計到0,將此變量清零。這樣,就可以保證每次讀取系統tick 時(shí),能得到一個(gè)準確的系統tick值。當有任務(wù)要主動(dòng)延時(shí)一段時(shí)間,即調用系統delay API時(shí)。

ECOS的API函數會(huì )計算出該任務(wù)的delay時(shí)間點(diǎn),然后將該任務(wù)掛入系統delay隊列。然后遍歷系統delay隊列,找出隊列中的最小delay時(shí)間點(diǎn),把該delay時(shí)間點(diǎn)對應的delay時(shí)間寫(xiě)入GPT,讓GPT來(lái)控制delay時(shí)間。delay時(shí)間到后,GPT會(huì )產(chǎn)生中斷,ECOS將中斷處理程序分為兩部分,ISR和DSR。在ISR中將硬件計數器設為最大值。然后在DSR中增加系統tick,將超時(shí)的任務(wù)重新掛入就緒隊列,并且再次找出系統delay隊列上的最小delay時(shí)間點(diǎn),寫(xiě)入硬件計數器。

如果系統delay隊列為空,則不對硬件計數器再進(jìn)行操作,保持ISR 中寫(xiě)入的最大值。最后ECOS會(huì )運行調度器,如果超時(shí)的任務(wù)具有最高優(yōu)先級,那么它就會(huì )得到運行,也就是醒過(guò)來(lái)。這樣也就可以保證系統delay的準確性與及時(shí)性。下圖是修改后后系統tick, delay以及調度器相關(guān)的流程圖。

下圖是修改后實(shí)時(shí)時(shí)鐘后系統tick, delay以及調度器相關(guān)的流程圖。

流程圖

圖1. 實(shí)時(shí)時(shí)鐘修改流程圖

下面是在公司i.mx51上的實(shí)驗數據。

飛思卡爾實(shí)驗表

可以看出,修改了時(shí)間片調度和實(shí)時(shí)時(shí)鐘后,不論工作在哪個(gè)電壓點(diǎn),系統IDLE時(shí)的功耗降低了差不多10倍。因此,延長(cháng)實(shí)時(shí)時(shí)鐘中斷間隔能極大的降低系統功耗。

4.其他系統的類(lèi)似方法

當前流行的嵌入式操作系統Linux和WinCE也都在討論修改系統實(shí)時(shí)時(shí)鐘中斷方式以求降低系統功耗。對于Linux系統,有一個(gè)Less Watts項目,實(shí)現tickless idle,即無(wú)tick的idle,其實(shí)就是修改實(shí)時(shí)時(shí)鐘的中斷方式。WinCE則提供了可變系統時(shí)鐘節拍Variable Tick Scheduler,在進(jìn)入idle狀態(tài)前改變系統時(shí)鐘節拍,這樣在預期的時(shí)間段里,idle狀態(tài)不會(huì )被無(wú)謂的系統時(shí)鐘中斷喚醒。

5.結論

可以看出,通過(guò)修改實(shí)時(shí)時(shí)鐘中斷方式,可以使CPU在idle狀態(tài)下長(cháng)時(shí)間處于低功耗模式,極大的降低系統功耗。而且當前流行的嵌入式操作系統都在積極的探討此方法。相信今后這項功能會(huì )成為嵌入式操作系統必備的一個(gè)功能。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>