Outils pour utilisateurs

Outils du site


cours:informatique:iot:developpement_c_embarque:245_quiz_p2_principes_execution

:TODO_DOCUPDATE:

Quiz partie 2 : Les grands principes de l’exécution

Notes et transcriptions du cours Développez en C pour l'embarqué disponible sur la plateforme Openclassrooms.

Question 1

À quoi sert l'unité arithmétique et logique (ALU) d'un processeur ?

  1. À stocker les résultats des opérations numériques
  2. À contrôler les accès à la mémoire
  3. À réaliser des opérations élémentaires de calcul
  4. À réaliser des mesures sur des valeurs logiques

Réponse

Question 2

Cochez toutes les propositions vraies. (Plusieurs réponses sont possibles).

  1. Les registres d'un processeur permettent un accès rapide aux données manipulées par l'ALU.
  2. Un des registres du processeur contient l'adresse courante du programme en cours.
  3. Un des registres du processeur indique l'adresse courante de la pile système.
  4. Un des registres du processeur est dédié pour sauver l'état du processeur quand le système n'est plus alimenté.

Réponse

Question 3

Laquelle des affirmations suivantes est-elle fausse ?

  1. Un FPGA est un circuit qui, une fois conçu et déployé sur la carte, ne peut pas être reprogrammé.
  2. Un DSP est principalement dédié aux calculs de traitement de signaux.
  3. Un microprocesseur est peu adapté aux systèmes embarqués à cause de sa trop grande consommation d'énergie.
  4. Un microcontrôleur offre une grande variété d'unités périphériques pour interagir avec son environnement.

Réponse

Question 4

Regardez la capture d’écran ci-dessous. L'instruction ADDS Rd,Rn,#Const affecte au registre Rd la valeur Rn + Const.

Après avoir réalisé les trois instructions stockées aux adresses 0x08000376 à 0x0800037C, quelle est la proposition vraie ?

1.

  R1 = 0xC
  R2 = 0xC
  R3 = 0x8 

2.

  R1 = 0x0E
  R2 = 0x04
  R3 = 0x12

3.

  R1 = 0x2
  R2 = 0xA
  R3 = 0x8

4.

  R1 = 0xE
  R2 = 0x4
  R3 = 0xF

Réponse

Question 5

Correcte

Sachant que :

  • l'instruction MOV Rd,Rn copie le registre Rn dans Rd,
  • l'instruction ADDS Rd,Rn,#Const affecte au registre Rd la valeur Rn + Const,
  • l'instruction LDR Rt,[Rn,#Const] charge dans le registre Rt la valeur stockée à l'adresse de Rn décalée de #Const,
  • l'instruction STR Rt,[Rn,#Const] enregistre à l'adresse Rn décalée de #Const la valeur courante du registre Rt,
  • l'instruction CMP Rn,#Const compare la valeur de Rn avec #Const et met à jour les fanions,
  • l'instruction BGE #Const effectue un saut à l'adresse #Const si les fanions indiquent une valeur plus grande ou égale.

Regardez à présent la capture d'écran ci-dessous.

Quelle est la proposition vraie lorsque le programme arrive à l'adresse 0x080003A6 (on n'exécute pas cette ligne) ?

1.

  R0 = 0x0000ACC0
  R1 = 0x20000000
  R2 = 0x02
  R3 = 0x04
  R4 = 0x00 

2.

  R0 = 0xC0AC0000
  R1 = 0x20000000
  R2 = 0x02
  R3 = 0x04
  R4 = 0x00

3.

  R0 = 0xC0AC0002
  R1 = 0x20000000
  R2 = 0x02
  R3 = 0x04
  R4 = 0x20000000

4.

  R0 = 0x0000ACC2
  R1 = 0x20000000
  R2 = 0x02
  R3 = 0x04
  R4 = 0x20000000

Réponse

Question 6

Supposons que vous avez les valeurs suivantes dans les registres R0 = 0x01, R1 = 0x00000002, R2 = 0x00000005 et R3 = 0x00000007 et que la pile contient la liste suivante (le pointeur de pile est sur l'élément le plus bas) :

En réalisant la suite d'instructions suivante :

PUSH {r0}

POP {r1}

POP {r2}

PUSH {r3}

POP {r2}

POP {r3}

Quelles valeurs y a-t-il dans les registres ?

1.

  r0 = 0x10000000
  r1 = 0x00000001
  r2 = 0x00000005
  r3=0x20000000

2.

  r0 = 0x00000001
  r1 = 0x00000002
  r2 = 0x10000000
  r3=0x20000000

3.

  r0 = 0x00000001
  r1 = 0x00000001
  r2 = 0x00000007
  r3=0x20000000

4.

  r0 = 0x10000000
  r1 = 0x00000002
  r2 = 0x20000000
  r3=0x30000000

Réponse

Question 7

Incorrecte

Parmi les affirmations suivantes, laquelle est-elle fausse ?

  1. Le passage des paramètres lors de l'appel d'une fonction peut se faire par les registres du processeur.
  2. Le passage des paramètres lors de l'appel d'une fonction peut se faire par la pile système.
  3. La pile système ne doit pas être modifiée au cours de l'exécution d'une fonction.
  4. Le registre LR est utilisé pour stocker l'adresse de retour d'une fonction.

Réponse

Question 8

Parmi les propositions suivantes, laquelle est-elle vraie ?

  1. Quand une interruption survient, tous les registres sont sauvés sur la pile système.
  2. Il existe un handler par défaut pour chaque interruption.
  3. Les priorités des interruptions sont fixées par le matériel et ne peuvent pas être configurées.
  4. Si une interruption survient en même temps qu'une autre, elle attend la fin de la première pour être traitée.

Réponse

Question 9

Je vous rappelle qu'en C, l'opérateur % réalise un modulo sur la valeur. Ainsi, x%2 permet de tester si x est paire ou impaire.

La capture d'écran ci-après décrit un code avec une interruption.

En supposant que l'interruption :

  • peut survenir plusieurs fois,
  • peut arriver n'importe quand,
  • est plus prioritaire que le main,

quelles valeurs peut prendre la variable globale n ?

  1. N'importe quelle valeur positive
  2. Les valeurs 0 et 1
  3. Les valeurs –1, 0 et 1
  4. Les valeurs 0, 1 et 2

Réponse

cours/informatique/iot/developpement_c_embarque/245_quiz_p2_principes_execution.txt · Dernière modification : 2025/05/18 17:20 de yoann