時(shí)間,不管在任何生活場(chǎng)合,都是一個(gè)非常重要概念。試想一下,假如沒(méi)有了時(shí)間,這個(gè)世界幾乎所有的事物都會(huì)亂套,但同時(shí)很多科學(xué)家也會(huì)提出疑問(wèn),在客觀世界里面,時(shí)間是真實(shí)存在的嗎?(扯得有點(diǎn)遠(yuǎn)~哈哈)

?

回到正題,任何操作系統(tǒng)的運(yùn)行,都離不開(kāi)時(shí)間。因?yàn)椴僮飨到y(tǒng)需要有一個(gè)界定標(biāo)準(zhǔn),去規(guī)劃各種進(jìn)程或線程的運(yùn)行,時(shí)間就是這個(gè)統(tǒng)一的標(biāo)準(zhǔn)。操作系統(tǒng)通過(guò)時(shí)間的流逝,定期去檢查線程是否已經(jīng)達(dá)到調(diào)度標(biāo)準(zhǔn),定期去檢查是否有一些定時(shí)任務(wù)需要執(zhí)行,等等。

?

關(guān)于RT-Thread時(shí)鐘管理相關(guān)的內(nèi)容,官方提供了比較豐富的文檔作為參考,具體可以查看以下鏈接:

https://www.rt-thread.org/document/site/programming-manual/timer/timer/

?

本文嘗試從以下幾個(gè)方面總結(jié)一下RT-Thread時(shí)鐘管理的學(xué)習(xí)過(guò)程。

?


時(shí)鐘相關(guān)的概念描述

什么是時(shí)鐘節(jié)拍?任何操作系統(tǒng)都需要人為地提供一個(gè)時(shí)鐘節(jié)拍,通常這個(gè)時(shí)鐘節(jié)拍被稱為系統(tǒng)心跳,而且這個(gè)系統(tǒng)心跳是通過(guò)一個(gè)硬件定時(shí)器來(lái)周期性提供的。這個(gè)時(shí)鐘節(jié)拍就好像我們生活里面的鐘表的秒針一樣,每過(guò)一秒,秒針活動(dòng)一格。

?

在操作系統(tǒng)里面,硬件定時(shí)器中斷一次,用來(lái)記錄時(shí)鐘節(jié)拍的全局變量(rt_tick)就會(huì)累加,這個(gè)變量只會(huì)增加而不會(huì)減少,因?yàn)闀r(shí)間總是往前流逝的。比如我們初始化硬件定時(shí)器為1毫秒中斷一次,那這個(gè) rt_tick 每過(guò)1毫秒就會(huì)加1