Systèmes embarqués et firmware

Sur un petit microcontrôleur sans MMU, quelle précaution concernant la surconsommation de pile est correcte ?

  1. ALa pile s'agrandit automatiquement sans limite ; inutile de s'en soucier
  2. BUn débordement de pile affiche toujours un écran d'erreur
  3. CUn débordement de pile n'est pas détecté immédiatement et peut corrompre silencieusement les données voisines ; il faut éviter les récursions profondes et les grands tableaux locaux et estimer la consommation
Afficher la réponse et l'explication

Réponse : C. Un débordement de pile n'est pas détecté immédiatement et peut corrompre silencieusement les données voisines ; il faut éviter les récursions profondes et les grands tableaux locaux et estimer la consommation

Sur PC, le système d'exploitation place une page interdite au-delà de la pile pour détecter son débordement, mais les microcontrôleurs sans MMU n'ont souvent pas ce mécanisme : un débordement écrase silencieusement les variables situées au-delà. Les symptômes apparaissent ailleurs, ce qui rend la cause difficile à identifier. On évite les récursions profondes et les grands tableaux locaux, on estime la consommation maximale avec des outils, ou l'on écrit un motif témoin en bout de pile pour vérifier qu'il n'est pas corrompu.

S'entraîner sur ce thème Retour au thème

Autres questions sur Systèmes embarqués et firmware

  1. Un convertisseur analogique-numérique 12 bits de tension de référence 3.3 V renvoie la valeur 2048. Quelle valeur est la plus proche de la tension d'entrée ?
  2. Lorsqu'un microcontrôleur acquiert à intervalle régulier un grand nombre de résultats de conversion analogique-numérique, quel est l'avantage d'utiliser le DMA ?
  3. Lorsqu'on représente les registres d'un périphérique par une structure C à champs de bits, à quoi faut-il prendre garde ?
  4. Sur de nombreux microcontrôleurs, quel est l'avantage de déclarer avec const les grandes tables non modifiées (données de police, etc.) ?
  5. Que permettent les interfaces de débogage comme JTAG ou SWD ?

Comparatifs sur ce thème