Changes between Version 1 and Version 2 of IOC_T01
- Timestamp:
- Feb 12, 2021, 7:17:43 AM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IOC_T01
v1 v2 1 {{{#!protected2 1 = 1. Préambule 3 2 … … 15 14 Vous écrirez un **compte-rendu au format markdown** (CR), dans lequel vous répondrez aux quelques questions du TME, vous mettrez les étapes de réalisation du TP, ainsi vous conserverez une trace et vous ajouterez tout ou partie de vos codes commentés (succinctement, mais proprement). Les comptes-rendus de TP doivent être suffisamment explicites pour que vous puissiez les réutiliser plus tard. Par exemple, vous allez devoir lire des documents externes et vous devrez référencer ces documents (mettre les liens) pour les retrouver. En fonction de vos connaissances de départ, vous pourrez être plus ou moins explicite sur tel ou tel point. 16 15 17 * Le document doit impérativement être nommé `ioc2 0_X_nom1_nom2.md` (où X est le numéro du TP: 1 pour le TP1, 2 pour le TP2, etc.)16 * Le document doit impérativement être nommé `ioc21_X_nom1_nom2.md` (où X est le numéro du TP: 1 pour le TP1, 2 pour le TP2, etc.) 18 17 * vos noms doivent figurer dans le document. 19 * Vous devez déposer votre CR sur un [https://docs.google.com/forms/d/e/1FAIpQLScZIBRnMg70TbUyXhWSYWOYBtOLdMlQFjM-rimTLEdrvvjKbA/viewform?usp=pp_url formulaire Google] 20 21 '''Attention : je n'irai pas à la pêche, le non-respect des consignes pour les comptes-rendus sera noté 0 ! (vous êtes trop nombreux).''' 18 * Vous devez déposer votre CR sur Moodle. 22 19 23 20 … … 243 240 244 241 245 = TP3 : Pilotage d'un écran LCD en mode utilisateur et par un driver = 246 247 248 Objectifs: 249 * Fonctionnement d'un écran LCD et fonctions de base 250 * Ecriture d'un driver d'affichage 251 * Usage de IOCTL 252 * Affichage du monitoring système 253 254 Pré-requis (Raspberry Pi): 255 * Outils de compilation croisée 256 * Configuration et utilisation des GPIO 242 = Pilotage d'un écran LCD en mode utilisateur et par un driver = 243 244 245 L'objectifs est de comprendre le fonctionnement d'un écran LCD et ses fonctions de base 257 246 258 247 Ressources: … … 267 256 * [[http://web.alfredstate.edu/faculty/weimandn/lcd/lcd_addressing/lcd_addressing_index.html | Adressage de la mémoire interne de l'afficheur]] 268 257 269 Prenez le temps de parcourir les documents sur les afficheurs avant de commencer le TP.258 Prenez le temps de parcourir les documents sur les afficheurs avant de commencer à programmer. 270 259 271 260 Le code à modifier se trouve en pièces jointes de cette page [htdocs:docs/lcd/lcd_user.c lcd_user.c] et [htdocs:docs/lcd/Makefile Makefile]. Vous pourrez les copier dans un répertoire `TP4/lcd_user/` … … 385 374 386 375 || **Questions:**\\1. Répondez aux questions qui se trouve dans le code [attachment:lcd_user.c lcd_user.c] \\2. Ecrire une fonction lcd_set_cursor qui positionne le curseur aux coordonnées (x,y) avec x la colonne, y la ligne.\\3. Ecrire un programme qui affiche la chaine passée en paramètre sur chacune des lignes de l'afficheur. 387 388 == 4. Driver pour le LCD == 389 390 * Reprenez le pilote que vous aviez écrit pour les leds et modifiez la commande `write` de telle sorte que si vous appelez votre device /dev/lcd_xy (où xy sont les initiales de votre binôme), vous puissiez écrire. 391 {{{#!bash 392 $ echo "Bonjour" > /dev/lcd_xy 393 }}} 394 Vous allez devoir remplacer usleep() par udelay() et ajouter un `#include <asm/delay.h>` au début du code de votre module (merci Arthur). 395 Vous devez (en principe) allouer de la mémoire noyau pour ce driver et utiliser la fonction `copy_from_user(unsigned long dest, unsigned long src, unsigned long len);` pour le message à écrire. 396 397 * ajouter la gestion de quelques caractères de contrôle [https://theasciicode.com.ar/ascii-control-characters/backspace-ascii-code-8.html ASCII], tels que LF ('\n') ou BS. 398 399 * Ajoutez la gestion de l'appel système unlocked_ioctl() pour 400 * effacer l'écran : LCDIOCT_CLEAR 401 * position le curseur : LCDIOCT_SETXY (vous pouvez coder les coordonnées dans l'argument). 402 403 = 8. Compte rendu 404 405 406 407 Vous devez rendre un compte-rendu ioc20_X_nom1_nom2.zip avec 376 [[BR]] 377 378 379 380 = Compte rendu 381 382 383 384 Vous devez rendre un compte-rendu ioc21_X_nom1_nom2.zip avec 408 385 * ioc21_X_nom1_nom2.md contenant la description des expériences et les réponses aux questions 409 386 * 2 répertoires avec vos sources ''correctement'' commentées (juste le nécessaire). 410 387 * `helloword` avec `helloworld.c` et `Makefile`` 411 388 * `lab1`avec `Makefile`, `blink0.c`, `blink0_pt.c`, `blink01_pt.c`, `read_bp.c`, et `blink01_bp_pt.c`. 412 413 389 * `lcd`avec vos codes 390 391