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