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

?

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

?

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

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

?

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

?


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

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

?

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