| 41 | | == 2. Initialisation du module == |
| | 41 | == 2. Initialisation/déinitialisation du module == |
| | 42 | |
| | 43 | Ajouter le code nécessaire à l'initialisation de votre module. Cela comprend: |
| | 44 | 1. L'obtention dynamique d'un nombre majeur (i.e. major number) |
| | 45 | 1. L'allocation mémoire (kzalloc) de la structure de donnée du pilote (i.e. variable globale bcm2708_lcd_p). |
| | 46 | 1. Initialiser le chardev avec cdev_init |
| | 47 | 1. Enregistrer le chardev dans le noyau avec cdev_add |
| | 48 | 1. Initialiser l'afficheur LCD |
| | 49 | |
| | 50 | Ajouter également le code réciproque pour la déinitialisation. Cela comprends: |
| | 51 | 1. Déinitialiser l'afficheur LCD |
| | 52 | 1. Déenregistrer le chardev du noyau avec cdev_del |
| | 53 | 1. Libérer libérer le nombre majeur |
| | 54 | 1. Déalloué la mémoire associée à la structure de donnée du pilote (kfree). |
| | 55 | |
| | 56 | N'oubliez pas de gérer les cas d'erreurs. Une part importante de la notation sera allouée sur ce point. |
| | 57 | |
| | 58 | Proposer un moyen de tester que l'initialisation et la déinitialisation fonctionnent correctement. |