• Aucun résultat trouvé

1.1. Envoi de données via la liaison série (5)

N/A
N/A
Protected

Academic year: 2022

Partager "1.1. Envoi de données via la liaison série (5)"

Copied!
1
0
0

Texte intégral

(1)

P2010 MI43

MI43 Final

documents autorisés : cours et documentation constructeur durée 2h

Tout code devra être clairement commenté

1.

Pilote interface Série USART

1.1. Envoi de données via la liaison série (5)

Donnez le code d'une fonction permettant d'envoyer des caractères via l'USART0 de l'AT91.

Le prototype de la fonction est : void putc(char a);

Cette fonction prend en paramètre le caractère à envoyer et le place sur la liaison série de l'USART0 On suppose ici que l'interface USART0 est déjà paramétrée.

Donnez le code expliqué de la fonction putc.

1.2. Réception de données via la liaison série (9)

Il s'agit ici d'écrire un pilote permettant la réception des données arrivant par la liaison série sur l'interface USART0 et pouvant renvoyer ces données vers les application en effectuant la demande.

Le pilote mémorisera les données entrantes dans un tampon interne appelé input_buffer de taille INPUT_BUFFER_SIZE. Le buffer sera de type circulaire de manière à ne conserver que les données les plus récentes.

L'api du pilote se limitera à une fonction de lecture permettant de récupérer les données placées dans le buffer input_buffer. Le prototype de la fonction est :

unsigned int read(char* data, unsigned int len) data correspond à l'adresse où doivent être placée les données len correspond au nombre de données demandées par l'application

Cette fonction renvoie à l'application N données. Si len : le nombre de données demandées est inférieur au nombre de données présentes dans input_buffer, la fonction copie les len données demandées vers le tampon utilisateur data et renvoie len. Si len est supérieur au nombre de données présentes dans input_buffer, la fonction copie toutes les données présentes et retourne le nombre de données effectivement copiées, ce nombre pourra être égal à zéro si aucune nouvelle données n'a été reçue.

1. Donnez une analyse fonctionnelle du pilote. Vous expliquerez comment réaliser le cahier des charges donné et le rôle des fonctions read et de la routine de traitement des interruptions (isr).

2. Donnez le code d'initialisation de pilote permettant à l'uart de fonctionner en mode asynchrone avec 8 bits de données, 1 bit de stop et pas de parité. Cette fonction lancera également le pilote.

3. Après avoir expliqué pourquoi une simple fonction C ne peut constituer une routine d'interruption vous donnerez le code expliqué de la routine de traitement des interruptions en C appelée depuis un 'handler' adapté à la prise en charge des interruptions pour un processeur arm.

4. Donnez le code expliqué de la fonction read

2. Quelques questions générales (6)

Expliquez brièvement :

1. le rôle d'un adaptateur JTAG pour programmer et déboguer un système informatique cible vierge.

2. le problème que pose une mémoire cache pour les pilotes de périphériques.

3. le rôle d'une MMU dans un système informatique

4. pourquoi l'utilisation de la mémoire virtuelle simplifie la compilation/édition de lien des programmes 5. pourquoi un processus (lourd) ne peut corrompre les données d'un autre processus.

6. comment un système d'exploitation peut reprendre la main sur un programme en cours d'exécution.

1/1 Nicolas Lacaille

Références

Documents relatifs

Ce projet a pour but de présenter l'utilisation d'un capteur de température aquatique, dans le but de l' intégrer à un système plus grand.. Le projet se décompose en 2

 Une variable f de type intitulé Feu comportant les valeurs suivantes (Vert, Rouge, Orangé).  Une variable B qui peut avoir l’une des deux valeurs True

• Lors d'un appel de la fonction us1_write, si une requête est en cours de traitement, une nouvelle requête est créée et cette dernière est placée dans le tableau ou la

La couche liaison de données transmet les flux de bits venant de la couche physique à la station de destination.. Les flux de bits venant de la couche physique peuvent comporter des

Parmi les élèves de 6ème, quel est l'effectif de ceux ayant un trajet de moins d'une

Supposons que dans le schéma en étoile de l'exercice précédent, chaque produit appartient une seule catégorie (alimentation, produits de nettoyage...) et que l’entreprise

Expliquer comment utiliser les index pour connaître le nombre de produits de la deuxième catégorie ou dont le prix est différent de 500 DA.. Quels sont les différents index de

[r]