0

根據FreeRTOS任務調度文檔,內核可以交換任務,即使任務當前正在執行並且沒有調用任何阻塞函數。所以一旦內核得到時鐘滴答中斷並執行其ISR,它就可以安排另一個任務在此之後執行。FreeSTOS任務永遠不會交換

在我使用FreeRTOS的系統上,我啓動了5個任務,每個任務都被編程爲在某個時間點自動延遲,因此我可以看到所有任務正在進入和退出,並且每個任務都在某個點執行。但是如果我在任務中輸入一個無限循環,那麼這個任務就不會被換出。

這怎麼可能?

回答

2

首先,您需要確保已設置configUSE_TIME_SLICING。這使循環調度程序,它允許調度程序執行您所期望的。

此外,它只會切換到其他任務,如果它是相同或更高的優先級。

+0

我在哪裏可以配置'configUSE_TIME_SLICING'? – user2162550

+0

如果你還沒有定義它,我想它會自動在FreeRTOS.h中設置。如果你自己定義它,它需要是1.嘗試搜索源! –