Changes between Version 2 and Version 3 of SujetTP2-2016


Ignore:
Timestamp:
Feb 3, 2016, 4:48:11 AM (9 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SujetTP2-2016

    v2 v3  
    33== Objectif ==
    44
    5 L'objectif de la séance est de commander les LEDS et les boutons poussoir en passant par un pilote.
    6 Lors de la dernière séance pour commander les LEDS et accéder aux boutons, vous aviez dû mapper dans l'espace virtuel de l'utilisateur la zone de mémoire permettant l'accès aux GPIO. Il vous fallait avoir les droits du root pour cela. Désormais, les LED et boutons seront accessibles en mode utilisateur.
    7 
    8 Nous allons donc créer un pilote pour le périphérique LED+!BoutonsPoussoir.
    9 Ce pilote sera accessible dans par le pseudo-fichier `/dev/ledbtn` (noter que vous serez peut-être obligé de changer un peu le nom pour éviter les conflits avec vos camarades).
    10 
    11 Par exemple vous pourrez écrire cela dans un fichier `test.c` ci-dessous. Ce que fait ce programme importe peu. Ce qui est important c'est que ce programme s'exécute entièrement en mode utilisateur.
     5L'objectif de la séance est de commander les LEDS et le bouton poussoir (BP) en passant par un pilote installé dans le noyau.
     6Lors de la dernière séance pour commander les LEDS et accéder au BP, vous avez dû mapper dans l'espace virtuel du processus utilisateur la zone de mémoire permettant l'accès aux GPIO. Pour cela, il vous fallait avoir les droits du root. Désormais, les LED et BP seront accessibles en mode utilisateur normal.
     7
     8{{{#!td
     9  Nous allons donc créer un pilote pour le périphérique LED+BP.\\
     10  Ce pilote sera accessible dans par le pseudo-fichier `/dev/ledbpXY`\\
     11  '''XY''' correspond aux initiales de votre binôme pour éviter les conflits avec vos camarades\\
     12  Par exemple pour '''A'''lmada et '''F'''omentin, il faudrait créer /dev/ledbp'''AF'''
     13}}}
     14
     15Par exemple, vous pourrez écrire un programme test (cf fichier `test.c` ci-dessous) qui accède aux LED et BP en s'exécutant entièrement en mode utilisateur.
     16
     17{{{#!td
    1218Le comportement proposé ici du pilote est le suivant.
    13 * Pour les LEDS, on envoie un tableau de caractères. La case `'i'` définit l'état de la LED `'i'` (`'0'` LED éteinte sinon LED allumée).
    14 * Pour les boutons, on propose un tableau de caractères. Le pilote lit l'état des boutons et met dans la case `'i'` l'état du bouton `'i'`. Quand le bouton est relâché, le pilote met le caractère `'0'`, quand le bouton est enfoncé, le pilote met une valeur différente de `'0'`.
     19  * Pour les LEDS, on envoie un tableau de caractères. La case `'i'` définit l'état de la LED `'i'` (`'0'` LED éteinte sinon
     20    LED allumée).
     21  * Pour les boutons, on propose un tableau de caractères. Le pilote lit l'état des boutons et met dans la case `'i'` l'état
     22    du bouton `'i'`. Quand le bouton est relâché, le pilote met le caractère `'0'`, quand le bouton est enfoncé, le pilote
     23    met une valeur différente de `'0'`.
     24}}}
    1525
    1626C'est une proposition, vous pouvez faire comme bon vous semble. Ce programme (non testé) est censé faire clignoter la led `'0'` jusqu'à ce qu'on appuie sur le bouton.