Vous êtes sur la page 1sur 10

République Tunisienne

Ministère de l’Enseignement Supérieur


et de la Recherche Scientifique

EXAMEN SESSION JANVIER 2022


Section Epreuve Pages Durée Date

IE5 Programmation Embarquée 10 1H30 7 Janvier 2022

Documents autorisés : Oui Non Calculatrice autorisée : Oui Non

Le sujet comporte 3 exercices dont l’exercice 1 inclut deux parties A et B

Exercice 1 (7 pts) :

• Partie A : Implémentation (5,5pts)

Supposons que nous souhaitons exécuter l’instruction suivante dans le chemin de données à cycle
unique:

LW $6,4($5)

1/(3,5 pts) Le diagramme de chemin de données à cycle unique ci-dessoussous montre l'exécution de ces
deux instructions. Dans la feuille d’examen,
d’examen recopier le tableau ci-dessous
dessous en fournissant des valeurs
des signaux de B à O dans le diagramme en décimal, qui sont marqués par le symbole « ? »

Vous devriez savoir :


• ionner les valeurs décimales.
mentionner
• Supposons que le registre $i contient initialement la valeur i+100 à l’exception de $0 qui
contient toujours 0
• Toutes les cases mémoires contiennent les valeurs 99 en décimale
• Si une valeur ne peut pas être déterminée, marquez-la
marque comme «X».
• Le format d’instruction de LW est

Avec base =rs et dest = rt


• Rappelons aussi quelque soit le format : rs =Ins[25..21], rt=Ins[20..16], rd=Ins[15..11]
• Le signal PCSrc est seulement à 1 lorsque la condition de comparaison est vraie pour
l’instruction Beq sinon à 0

Dr Dhafer MEZGHANI Page 1


instruction A B C D E F G H I J K L M N O
LW $6,4($5) 6

2/ (2 pts) Sachant que les valeurs ALUCtr pour chaque opération de l'ALU sont:

Recopier ce tableau dans votre feuille d’examen et compléter les valeurs des signaux de commande
seulement pour l’instruction LW $6,4($5)

RegDst RegWrite ALUSrc ALUCtr MemWrite MemRead MemToReg PCSrc

• Partie B : Conception (1.5 pts) :

Nous envisageons ajouter l’instruction suivante à MIPS :

Instruction RTL
movnz rd, rs, rt Si (R[rs] ! = 0) alors R[rd] <= R[rt]

L’opérateur != veut dire différent

Le chemin de données monocycle ci-dessous manque les bonnes implémentations pour les
blocs pointillés (a), (b),et (c) afin d’implémenter movnz

Dr Dhafer MEZGHANI Page 2


Pour implémenter movz, vous n'avez pas besoin d'utiliser tous les signaux fournis à chaque
boîtier, et le signal de contrôle MOVZ vaut 0 si et seulement si l'instruction est movnz.

Pour bloc (a), donner le numéro de la bonne implémentation

Pour bloc (b),donner le numéro de la bonne implémentation

Pour bloc (c), donner le numéro de la bonne implémentation

Dr Dhafer MEZGHANI Page 3


Exercice 2 (3 pts) :

1/ (1 pt) Déterminer, si possible, l’adresse du bit n° 4 ayant comme adresse 0x400001AF dans la
région d’Aléas correspondante (écrire la formule complète).

2/ (2 pts) Dans la feuille d’examen donner le schéma de traitement des interruptions offert par
CORTEX M3 pour le cas de figure ci-dessous. Il faut indiquer à chaque fois le type de traitement
utilisé.

NB. Le début du repère est le temps de début de traitement des interruptions et que 20 cycles
correspond à 2 cm lors de traçage

Dr Dhafer MEZGHANI Page 4


Exercice 3 (10 pts):

Nous nous proposons de réaliser un chenillard à 8 leds. Il s’agit d’un ensemble de leds dont une (ou
plus) défilent dans un sens. Dans la figure 1, un exemple de défilement de deux leds dans un chenillard
à 8 Leds est donné.

Figure 1 : Défilement de 2 leds dans un chenillard à 8 leds


Pour ceci, le branchement de la 2 est réalisé. Les pins PA0 jusqu’à PA7 sont chacune reliée à une led.

a/ (1,5pts) Pour configurer La fonction de l’horloge RCC_APB2PeriphClockCmd(), la fonction de


remise à zéro GPIO_DeInit(), et la structure des données GPIO_InitStructure pour la
configuration de registre GPIO, quels fichiers doit on les consulter ? Donner vos réponses dans la
feuille d’examen

fichiers
stm32f10x.h
stm32f10x_rcc.c
stm32f10x_gpio.c
stm32f10x_gpio.h
stm32f10x_it.c
misc.h

b/ (1,5 pts) dans la feuille d’examen compléter que les 3 champs manquants dans les deux
fonctions RCC_APB2PeriphClockCmd() et GPIO_DeInit()

Dr Dhafer MEZGHANI Page 5


c/ (0,5 pt) Quel intérêt de déclarer la variable J ?

d/ ( 2,5 pts) Dans la feuille d’examen compléter la structure GPIO_InitStructure par les 5
paramètres correspondants manquants

e/ (2 pts) Compléter le programme suivant permettant d’initialiser le compteur j et lancer le chenillard.


Récrire le While(1) complet dans votre feuille d’examen

f/ (2 pts) L’état des segments pour chaque séquence de la partie unité est donné par la fonction
chenillard (uint16_t chiffre). Sachant que les LEDs sont déjà définis

Dr Dhafer MEZGHANI Page 6


Dans la feuille d’examen, compléter que la configuration de la première séquence et la
dernière séquence de la fonction chenillard (uint16_t chiffre)

Dr Dhafer MEZGHANI Page 7


ANNEXE de STM32F1

Dr Dhafer MEZGHANI Page 8


Dr Dhafer MEZGHANI Page 9
Dr Dhafer MEZGHANI Page 10

Vous aimerez peut-être aussi