• Aucun résultat trouvé

MI41 finalDurée 1h30. Les fonctions écrites en assembleur ARM doivent respecter la convention d’appel AAPCS, les accès mémoire doivent être minimisés (sauvegardes/restaurations des registres).

N/A
N/A
Protected

Academic year: 2022

Partager "MI41 finalDurée 1h30. Les fonctions écrites en assembleur ARM doivent respecter la convention d’appel AAPCS, les accès mémoire doivent être minimisés (sauvegardes/restaurations des registres)."

Copied!
1
0
0

Texte intégral

(1)

MI41

MI41 final

Durée 1h30. Les fonctions écrites en assembleur ARM doivent respecter la convention d’appel AAPCS, les accès mémoire doivent être minimisés (sauvegardes/restaurations des registres).

1. Exercice ASM

1. Une case mémoire 32 bits (registre d’interface mappé en mémoire) contient une donnée 8 bits B, fragmentée tel que B1 B0 sont respectivement sur les bits 1 et 0 de la case mémoire 32 bits, B3 B2 sur les bits 10 et 9, B7 B6 B5 B4 sur les bits 19 18 17 16 : contenu case mémoire

x x x x x x x x x x x x B7 B6 B5 B4 x x x x x B3 B2 x x x x x x x B1 B0.

Donnez le code d’une fonction prenant en paramètre l’adresse de la case mémoire et renvoyant l’octet B : char receivebyte (unsigned int * A) ;

2. Convention d’appel : donnez le code assembleur correspondant au code C suivant : extern int fonction_externe (int a) ;

int fonction (int a, int b) {

int i ;

for (i=0 ; i < b ; i++)

a = fonction_externe (a) ; return a ;

} 2. Interface

Une interface de périphérique permet d’envoyer des données 32 bits via une ligne de transmission. D’un point de vue utilisateur, lorsque l’interface est configurée (on considérera l’interface configurée dans cette exercice), l’envoi des données consiste à placer les données les unes après les autres dans un registre mappé en mémoire. L’interface dispose d’un tampon mémoire interne pour stocker temporairement les données avant et pendant leur transmission. Sachant que la transmission des données sur la ligne étant bien plus lente que le système et que le tampon de l’interface est limité, un bit d’un registre d’état de l’interface permet de savoir s’il reste au moins une place dans le tampon de l’interface pour pouvoir y placer une nouvelle donnée. Ce registre d’état est également un registre mappé en mémoire.

Il s’agit ici d’écrire une fonction en C puis en assembleur ARM permettant de transmettre N données via l’interface. Le prototype de la fonction en C est :

unsigned int transmit (unsigned int * data, unsigned int len) ; avec :

• data : adresse où se trouvent les données à transmettre.

• len : nombre de donnée 32 bits à transmettre

l’adresse du registre de donnée de l’interface est 0xFF004000, c’est un registre 32 bits appelé data_reg l’adresse du registre d’état de l’interface est 0xFF004004, c’est un registre 32 bits appelé state_reg

Les bits du registres d’état ont différents rôle. Ici, seul nous intéresse le bit N° 3 qui lorsqu’il est à 1 indique que le tampon de l’interface est plein, lorsqu’il est à 0, l’interface peut accepter une nouvelle donnée, une nouvelle donnée peut alors être placée dans le registre de donnée de l’interface.

Le principe de la fonction est alors :

• tant que le bit N° 3 du registre d’état de l’interface est à 1, attendre qu’il passe à 0

• lorsqu’il est est à 0, placer une nouvelle donnée dans le registre de données de l’interface

• lorsque toutes les données ont été transmises, la fonction revient en retournant le nombre de données envoyées.

1. Donnez le code C de la fonction, en définissant bien les adresses des registres de l’interface 2. Donnez le code ASM correspondant

3. Que pourrait-on faire pour que lorsque le bit du registre d’état reste trop longtemps à 1, la fonction ne reste pas bloquée et retourne tout de même (‘time out’).

1 NL

Références

Documents relatifs

il s'agit d'une anomalie positionnelle de l'angle colique droit qui vient se positionner entre l'hémi coupole droite et la face antéro-supérieure du lobe droit du foie .Cela

Ainsi pour chaque bit i du registre DATA il est possible en fonction de la direction choisie pour la broche associée :.. • de lire si la broche i est à la tension haute ou

Le Tribunal fédéral a confirmé l’exis- tence d’une mise en danger de soi- même, mais a indiqué que le PAFA n’était pas pensé comme une mesure à caractère durable et ne

Bon

vincialismes dont nous ne saisissons pas tout le sens, Et nous habituons nos enfants et nous invitons tous les correspondants à toujours met- tre entre

Donner la structure électronique du cation et de l'anion entrant dans la composition du chlorure d'aluminium?. Donner la composition, en anions et cations, du chlorure d'alumini um

Le système optique centré ainsi formé est placé dans l’air d’indice 1 (Figure 2 )?. Les conditions de l’approximation de Gauss

a L'outil QinetiQ DEM a été utilisé pour calculer la visibilité LoS des turbines proposées par rapport au TACAN de Florennes et au PSR de Beauvechain.. Les calculs tiennent compte