什么是嵌入式C编程语言中的“超级循环”?

嵌入式C编程语言中的Super Loop是什么?

这指的是通常位于“裸机”系统(无OS)的main()中的永久循环,因为这样的系统永远不会从主系统返回。 典型的裸机嵌入式系统如下所示:

 void main (void) { // various initializations for(;;) // "super loop" or "main loop" { // do stuff } } 

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! } 

超级循环是一个无限循环,它只适用于嵌入式c编程,因为你必须运行你的代码非常长时间,并希望在你的机器人或其他什么行为发生变化时明确终止。 Superloop就像

 while(1){ // Your code // exit condition } for(;;) { }