wiki:SujetTP3

Version 4 (modified by jpeeters, 11 years ago) (diff)

--

TP3 : Pilotage d'un écran LCD en mode noyau

Dans ce TP on vous demande de réaliser un pilote Linux de type caractère. Ce pilote doit permettre l'utilisation d'un afficheur LCD depuis l'espace utilisateur par simples écritures.

Par exemple on doit pouvoir écrire la commande suivante dans un terminal:

$ echo "Hello World!" > /dev/lcd0

ou /dev/lcd0 est le fichier spécial dans /dev qui représente le périphérique afficheur LCD.

1. Débuter avec les modules (i.e. pilotes Linux) et leur compilation

Commencez par récupérer les sources du TP:

$ cp -r /users/enseig/jpeeters/m1.peri/lab3 .

Ensuite réaliser d'abord un simple module qui affiche un message au chargement et un autre message au déchargement du module.

Pour compiler le module, n'oubliez pas de sourcer le fichier de configuration pour la chaine de compilation croisée:

$ source /users/enseig/jpeeters/m1.peri/export_rpi_toolchain.sh

Pour compiler votre module, tapez la commande make dans un terminal à la racine du dossier lab3.

Après avoir copier le module compilé (bcm2708_lcd.ko) sur la carte Raspberry Pi, chargez le module comme suit:

$ insmod ./bcm2708_lcd.ko

Vérifiez l'affichage de votre message de chargement en tapant la commande dmesg.

Pour décharger le module, utilisez la commande rmmod:

$ rmmod bcm2708_lcd

Vérifiez l'affichage de votre message de déchargement en tapant à nouveau la commande dmesg.

2. Initialisation du module

3. Appels systèmes (open, release, write)

4. Application utilisateur

Reprenez votre application utilisateur du TP précédent et modifiez la pour utiliser votre pilote. Pour cela, ouvrez et écrivez le fichier /dev/lcd0 au lieu de manipuler les GPIOs directement.