Changes between Version 6 and Version 7 of SujetTP3-2015
- Timestamp:
- Feb 28, 2015, 11:55:53 AM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SujetTP3-2015
v6 v7 134 134 == Étape 3 : création d'un driver qui ne fait rien mais dans le noyau == 135 135 136 Votre driver va être intégré dans un module. Vous allez donc créer un module nommé `ledbtn` paramètré avec les numéros de ports pour les leds et les boutons. Vous utiliserez un nouveau répertoire. Vous modifierez le Makefile en conséquence. 136 137 138 * Vous ajoutez dans le fichier `.c` du module: 139 140 {{{ 141 struct file_operations fops_ledbtn = 142 { 143 .open = open_ledbtn, 144 .read = read_ledbtn, 145 .write = write_ledbtn, 146 .release = release_ledbtn 147 }; 148 static int 149 open_ledbtn(struct inode *inode, struct file *file) { 150 printk(KERN_DEBUG "open()\n"); 151 return 0; 152 } 137 153 154 static ssize_t 155 read_ledbtn(struct file *file, char *buf, size_t count, loff_t *ppos) { 156 printk(KERN_DEBUG "read()\n"); 157 return 0; 158 } 159 160 static ssize_t 161 write_ledbtn(struct file *file, const char *buf, size_t count, loff_t *ppos) { 162 printk(KERN_DEBUG "write()\n"); 163 return 0; 164 } 165 166 static int 167 release_ledbtn(struct inode *inode, struct file *file) { 168 printk(KERN_DEBUG "close()\n"); 169 return 0; 170 } 171 }}} 172 * Vous allez enregistrer ce driver dans ce module en ajoutant dans la fonction init du module: 173 174 {{{ 175 register_chrdev(0, "ledbtn" &fops_ledbtn); // 0 est le numéro majeur qu'on laisse choisir par linux 176 }}} 177 * Vous allez décharger le driver dans ce module en ajoutant dans la fonction init du module: 178 179 {{{ 180 unregister_chrdev(0, "ledbtn"); 181 182 }}} 138 183 139 184 == Étape 4 : accès aux GPIO depuis les fonctions du pilote ==