簡體   English   中英

無限循環沒有語句

[英]infinite While loop without statement

它的意思是什么? 我在下面看到了嵌入式c程序中代碼的一部分。我知道這是一個無限循環,但出於什么目的,這部分代碼在嵌入式c中使用。

while(1)
{       
}

謝謝..

該構造用於兩個不同的目的。

  1. 當您檢測到錯誤情況或任務終止時,您必須將微控制器置於確定狀態。 while(1) { }構造停止進一步執行,直到(看門狗)復位重新啟動微控制器。
    正如krambo在他的評論中提到的,這可以用來附加JTAG調試器來檢查微控制器,變量,寄存器等的狀態。
  2. 您可以在中斷處理程序中實現所有邏輯。 主函數執行初始化並進入休眠狀態。 雖然主要功能可以“睡眠”CPU不能。 它只是永遠循環。 一些微控制器支持低能量模式。 這將是另一種選擇。

所有嵌入式系統都需要無限循環,因為只要電源打開,它們就必須繼續執行。 嵌入式程序只執行然后返回沒有任何意義,因為這會使處理器死機和空閑。 這可能是該循環的唯一目的。

我猜你的代碼來自裸機微控制器應用程序,所以你可以安全地忽略所有PC程序員關於睡眠和多線程的評論; 對於微控制器應用而言,沒有任何意義不消耗100%的CPU,因為除了你之外沒有其他人在使用它。

如果你在嵌入式系統上睡覺,你可以將實際的微控制器硬件置於睡眠狀態,如果它支持的話。 這樣做是為了節省電力,而不是為了節省CPU周期。

某些操作系統(如uC / OS)在沒有其他任務正在運行時需要執行空閑任務。 這將是最低優先級,如果它有機會運行,它將被計時器(調度程序)打勾搶占。 您描述的案例可能是一項任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM