Lun*_*din 11
这指的是通常位于main()"裸机"系统(无操作系统)中的永久循环,因为这样的系统永远不会从主系统返回.典型的裸机嵌入式系统如下所示:
void main (void)
{
// various initializations
for(;;) // "super loop" or "main loop"
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
MCU是连续或更好运行的设备,它在通电时执行指令(通常).
因此,虽然循环在这里迫使MCU做某事,即使循环为空,它也只是绕圈.
但它必须做一些事情,因为它与主程序return结束时的PC程序不同.
如果您没有超级循环,那么MCU可以从FLASH/RAM(无论是......)获取指令并做一些愚蠢的事情,因为MCU不知道它正在执行什么.它只是执行你提供给他的代码.
通过使用超级循环,您可以保证MCU不会无法控制执行某些指令,也可能会进入故障安全区域.当然,即使你有超级循环也会发生这种情况,但这是其他主题.
int main() {
//Init if you have something
while (1) {
//DO stuff always
}
return 0; //This should never happen!
}
Run Code Online (Sandbox Code Playgroud)