2017-04-13 28 views
0

我的问题涉及到嵌入式Linux的知识。系统锁定或无限循环能够导致重启?

我刚刚观察到我的嵌入式项目有一个奇怪的重启,这很容易重现。

当某些情况被触发时,系统会喜欢“冻结”。我的意思是,它就像遇到一些无限循环或被锁定。最后几秒钟,系统将悄悄地重新启动。甚至没有核心转储!

我对原因没有多少线索。一般来说,锁定或无限循环能够真正触发Linux重启?还是有什么东西可以冻结系统并导致重新启动而不发生核心转储?

回答

4

在嵌入式系统上有一个hardware watchdog;一个以硬件实现的计时器,如果它允许到期,则重置处理器。

通常一些software monitoring task会不断验证系统的完整性并重新启动硬件看门狗定时器。如果监视任务未能运行并且看门狗定时器到期,则看门狗会直接触发处理器复位。

+0

最有可能的真正原因+1 – LPs

+0

合理。我会检查什么样的动作可以让看门狗重新启动我的系统..谢谢! –

1

你的问题有点难以理解,但是,任何平台(包括Linux)上的任何应用程序中的“无限循环”(正确术语)都可能导致系统崩溃。这很明显是因为无限循环可以不断占用内存和资源,直到没有剩余的内存和资源。你提到你正在进行嵌入式开发(这可能意味着很多不同的事情),但通常意味着你正在开发嵌入到Linux本身的低级应用程序;这些比平均编程风险更容易导致操作系统崩溃。

+0

谢谢!我会修改..英语不是我的第一语言。死锁怎么样?它是否也会导致系统重启? –