|
|
|
|
|
|
|
ac6 >> ac6-training >> Systèmes d'Exploitation >> Linux >> Drivers Linux |
Ecritures de drivers Linux |
Objectifs
|
Exercise : | Ecrire le module "hello world" | |
Exercise : | Ajouter un module aux sources du noyau et au menu de configuration | |
Exercise : | Utiliser les paramètres d'un module | |
Exercise : | Ecrire des modules interdépendants, utilisant l'allocation mémoire, le comptage de référence et les listes chaînées |
Exercise : | Affichage de traces dynamiques sur un noyau en fonctionnementDebug a module using kgdb | |
Exercise : | Debug de la fonction d'initialisation d'un module avec kgdb |
Exercise : | Corriger des "race conditions" de l'exercice précédent avec des mutex |
Exercise : | Implémentation étape par étape d'un driver caractère: | |
• | enregistrement du driver (réservation de major/minor) et création du fichier spécial (/dev) |
Exercise : | Implémentation étape par étape d'un driver caractère: | |
• | Implémenter open et release | |
• | Implémenter read et write | |
• | Implémenter ioctl | |
• | Implémenter mmap |
Exercise : | Ecriture des fonctions de lecture/écriture synchrones |
Exercise : | Ajout des fonctions de gestion des E/S asynchrones |
Exercise : | Driver GPIO accédant directement aux registres, en mode polling |
Exercise : | Driver GPIO accédant directement aux registres, sur interruptions |
Exercise : | Driver GPIO utilisant la gpiolib |
Exercise : | Implémentation d'un driver platform et customisation du device tree pour l'associer à son périphérique (un port série) |
Exercise : | Implémentation de la mise en veille et du réveil du système dans le driver précédent, et réveil du système par le périphérique |
Exercise : | Ecrire un driver qui crée sa propre classe. Le driver se charge automatiquement au boot et le fichier spcial est automatiquement créé dans /dev | |
Exercise : | Utiliser la classe misc |
Exercise : | Implémentation d'un driver pour un port série utilisant le DMA esclave |
Exercise : | Examen d'un pilote USB host |