无限循环没有语句

时间:2015-03-10 07:26:34

标签: c loops while-loop embedded

它的意思是什么?我在下面看到了嵌入式c程序中代码的一部分。我知道这是一个无限循环,但出于什么目的,这部分代码在嵌入式c中使用。

while(1)
{       
}

谢谢..

3 个答案:

答案 0 :(得分:10)

此构造用于两个不同的目的。

  1. 当您检测到错误情况或任务终止时,您必须将微控制器置于确定状态。 while(1) { }构造停止进一步执行,直到(看门狗)复位重新启动微控制器。
    krambo 在他的注释中提到这可以用来连接JTAG调试器来检查微控制器的状态,变量,寄存器等。
  2. 您可以在中断处理程序中实现所有逻辑。主函数执行初始化并进入休眠状态。虽然主要功能可以“睡眠”CPU不能。它只是永远循环。一些微控制器支持低能量模式。这将是另一种选择。

答案 1 :(得分:2)

所有嵌入式系统都需要无限循环,因为只要电源打开,它们就必须继续执行。嵌入式程序只执行然后返回没有任何意义,因为这会使处理器死机和空闲。这可能是该循环的唯一目的。

我猜您的代码来自裸机微控制器应用程序,因此您可以放心地忽略所有PC程序员关于睡眠和多线程的评论;对于微控制器应用而言,没有任何意义不消耗100%的CPU,因为除了你之外没有其他人在使用它。

如果您在嵌入式系统上睡觉,您可以将实际的微控制器硬件置于睡眠状态(如果它支持)。这样做是为了节省电力,而不是为了节省CPU周期。

答案 2 :(得分:0)

某些操作系统(如uC / OS)在没有其他任务正在运行时需要执行空闲任务。这将是最低优先级,如果它有机会运行,它将被计时器(调度程序)打勾抢占。您描述的案例可能是一项任务。