2017-04-13 1 views
0

Ma question est liée aux connaissances sur Linux embarqué.Verrou système ou boucle infinie est capable de provoquer le redémarrage?

Je viens d'observer un redémarrage étrange sur mon projet embarqué, qui est très facile à reproduire.

Lorsque certaines conditions sont déclenchées, le système aimera «geler». Je veux dire, c'est comme rencontrer une boucle infinie ou être verrouillé. Dernière pour quelques secondes, le système redémarrera tranquillement. Pas même le vidage du noyau !!

Je n'ai aucune idée de la cause. Généralement un verrou ou une boucle infinie peut-il vraiment déclencher le redémarrage de Linux? Ou y a-t-il des choses qui peuvent geler le système et provoquer le redémarrage sans qu'il y ait un vidage de base?

Répondre

4

Il est courant sur les systèmes embarqués d'avoir un hardware watchdog; un temporisateur implémenté dans le matériel qui réinitialise le processeur s'il est autorisé à expirer.

Généralement certains software monitoring task vérifient en permanence l'intégrité du système et redémarre le temporisateur de surveillance matérielle. Si la tâche de surveillance ne s'exécute pas et que le délai du chien de garde expire, le chien de garde déclenche la réinitialisation directe du processeur.

+0

Probablement la vraie raison +1 – LPs

+0

Assez raisonnable. Je vais vérifier quel genre d'action peut laisser regarder le chien redémarrer mon système .. Merci !! –

1

Votre question est un peu difficile à comprendre mais oui, une "boucle infinie" (le terme approprié est) dans n'importe quelle application sur n'importe quelle plate-forme (y compris Linux) peut bloquer un système. Cela arrive évidemment parce qu'une boucle infinie peut constamment prendre de la mémoire et des ressources jusqu'à ce qu'il n'en reste plus. Vous avez mentionné que vous faites du développement intégré (ce qui peut signifier beaucoup de choses différentes), mais cela signifie généralement que vous développez des applications de bas niveau intégrées à Linux même; ceux-ci sont plus enclins à planter un système d'exploitation que votre entreprise de programmation moyenne.

+0

Merci! Je vais modifier ... désolé l'anglais n'est pas ma langue maternelle. Que diriez-vous de l'interblocage Peut-il également provoquer le redémarrage du système? –