rt-thread的定時器的基本工作原理在RT-Thread定時器模塊維護(hù)兩個重要的全局變量,一個是當(dāng)前系統(tǒng)的時間rt_tick(當(dāng)硬件定時器中斷來臨時,它將加1),另一個是定時器鏈表rt_timer_list,系統(tǒng)中新創(chuàng)建的定時期都會被以排序的方式插入到rt_timer_list(硬件定時器模式下使用)鏈表中,rt_timer_list的每個節(jié)點(diǎn)保留了一個定時器的信息,并且在這個節(jié)點(diǎn)加入鏈表時就計(jì)算好了產(chǎn)生時間到達(dá)時的時間點(diǎn),即tick,在rt-thread系統(tǒng)中如果采用軟件定時器模式,則存在一定時器線程rt_thread_timer_entry,不斷獲取當(dāng)前TICK值并與定時器鏈表rt_timer_list上的定時器對比判斷是否時間已到,一旦發(fā)現(xiàn)就調(diào)用對應(yīng)的回調(diào)函數(shù),即事件處理函數(shù)進(jìn)行處理,而如果采用硬件定時器管理模式的話,則該檢查過程放到系統(tǒng)時鐘中斷例程中進(jìn)行處理,此時,是不存在定時器線程的。如下圖:注:如果采用軟件定時器軟件定時器,則該定時器鏈表為rt soft_timer_list。
標(biāo)簽:
rtthread
定時器
上傳時間:
2022-06-25
上傳用戶:jason_vip1