需要注意:
由于hrtimer本身沒有interval周期的概念,
如果要實(shí)現(xiàn)hrtimer的周期調(diào)用,
方法1) 超時(shí)函數(shù),調(diào)用hrtimer_start(, tim,HRTIMER_MODE_REL);即把timer根據(jù)此tim超時(shí)時(shí)間插入到timer_base的隊(duì)列中, 并返回HRTIMER_NORESTART
方法2) 超時(shí)函數(shù),調(diào)用hrtimer_forward()或者h(yuǎn)rtimer_forward_now(), 把hrtimer的_softexpires和timerqueue_node.expires往后退一個(gè)interval的時(shí)間,然后函數(shù)返回HRTIMER_RESTART。 此后由__run_hrtimer()調(diào)用enqueue_hrtimer()來自動(dòng)重新插入到timer_base的隊(duì)列中。
如果方法2)中,如果不調(diào)用hrtimer_forward()或者h(yuǎn)rtimer_forward_now(), 而直接返回HRTIMER_RESTART,那么定時(shí)函數(shù)的超時(shí)周期就變成timer_base的resolution分辨率的周期來運(yùn)行了,這樣的resolution,頻率太高。
具體參見我的《如何編寫linux設(shè)備驅(qū)動(dòng)》視頻課程:
https://edu.51cto.com/course/17132.html
另外我的相關(guān)培訓(xùn)視頻請(qǐng)看:
歡迎觀看我發(fā)布的各個(gè)課程: https://edu.51cto.com/lecturer/8896847.html
我的新的更多優(yōu)惠的打包課程鏈接如下:
https://edu.51cto.com/sd/0a9d4
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。