1、通用低功耗模式
如果使用通用低功耗模式的話每個滴答定時器中斷都會將處理器從低功耗模式中喚醒,以(1)為例,再 T2 時刻處理器從低功耗模式中喚醒,但是接下來由于沒有就緒的其他任務所以處理器又再一次進入低功耗模式。T2、T3 和 T4 這三個時刻都一樣,反復的進入低功耗、退出低功耗,最理想的情況應該是從 T1 時刻就進入低功耗,然后在 T5 時刻退出。
在(2)中空閑任務只工作了兩個時鐘節拍,但是也執行了低功耗模式的進入和退出,顯然這個意義不大,因為進出低功耗也是需要時間的。
(3)中空閑任務在 T12 時刻被某個外部中斷喚醒,中斷的具體處理過程在任務 2(使用信號量實現中斷與任務之間的同步)。
2、低功耗 Tickless 模式
在(1)中的 T1 時刻處理器進入低功耗模式,在 T5 時刻退出低功耗模式。相比通用低功耗模式少了 3 次進出低功耗模式的操作。
在(2)中由于空閑任務只運行了兩個時鐘節拍,所以就沒必要進入低功耗模式。說明在Tickless 模式中只有空閑任務要運行時間的超過某個最小閾值的時候才會進入低功耗模式,此閾值通過 configEXPECTED_IDLE_TIME_BEFORE_SLEEP 來設置。
(3)中的情況和通用低功耗模式一樣。
可以看出相對與通用低功耗模式,FreeRTOS 自帶的 Tickless 模式更加合理有效,所以如果有低功耗設計需求的話大家盡量使用 FreeRTOS 再帶的 Tickless 模式。當然了,如果對于功耗要求不嚴格的話通用低功耗模式也可以使用。
-
嵌入式
+關注
關注
5072文章
19026瀏覽量
303518 -
低功耗
+關注
關注
10文章
2362瀏覽量
103607 -
FreeRTOS
+關注
關注
12文章
483瀏覽量
62018
發布評論請先 登錄
相關推薦
評論