Systèmes embarqués et firmware

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.) ?

  1. AElles sont placées en mémoire flash et n'occupent pas la RAM, peu abondante
  2. BLe contenu de la table est compressé automatiquement
  3. CLe contenu de la table devient librement modifiable à l'exécution
Afficher la réponse et l'explication

Réponse : A. Elles sont placées en mémoire flash et n'occupent pas la RAM, peu abondante

Sur microcontrôleur, il est fréquent de disposer de plusieurs centaines de KB de flash pour le programme mais de seulement quelques dizaines de KB de RAM. Un tableau initialisé sans const est placé en .data et copié de la flash vers la RAM au démarrage, ce qui consomme de la RAM. Avec const, il reste en flash comme donnée en lecture seule et y est lu directement. Certains microcontrôleurs exigent une directive particulière pour placer des données en flash.

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

Autres questions sur Systèmes embarqués et firmware

  1. Que permettent les interfaces de débogage comme JTAG ou SWD ?
  2. On veut effectuer un calcul de commande toutes les 1 ms. Quelle implémentation est la plus appropriée sur un microcontrôleur sans système d'exploitation ?
  3. Quel est le rôle de la détection de baisse de tension (BOD, réinitialisation sur baisse de tension) d'un microcontrôleur ?
  4. Sur un microcontrôleur à interruptions hiérarchisées, une interruption de haute priorité survient pendant l'exécution du gestionnaire d'une interruption de faible priorité. Que se passe-t-il généralement (imbrication des interruptions autorisée) ?
  5. En langage C, quelle écriture met à 1 uniquement le bit 3 du registre reg sans modifier les autres bits ?

Comparatifs sur ce thème