Changes between Version 1 and Version 2 of IOC_T01


Ignore:
Timestamp:
Feb 12, 2021, 7:17:43 AM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IOC_T01

    v1 v2  
    1 {{{#!protected
    21= 1. Préambule
    32
     
    1514Vous é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.
    1615
    17 * Le  document doit impérativement être nommé `ioc20_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.)
    1817* 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.
    2219
    2320
     
    243240
    244241
    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
     245L'objectifs est de comprendre le fonctionnement d'un écran LCD et ses fonctions de base
    257246
    258247Ressources:
     
    267256  * [[http://web.alfredstate.edu/faculty/weimandn/lcd/lcd_addressing/lcd_addressing_index.html | Adressage de la mémoire interne de l'afficheur]]
    268257
    269 Prenez le temps de parcourir les documents sur les afficheurs avant de commencer le TP.
     258Prenez le temps de parcourir les documents sur les afficheurs avant de commencer à programmer.
    270259
    271260Le 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/`
     
    385374
    386375|| **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
     384Vous devez rendre un compte-rendu ioc21_X_nom1_nom2.zip avec
    408385* ioc21_X_nom1_nom2.md contenant la description des expériences et les réponses aux questions
    409386* 2 répertoires avec vos sources ''correctement'' commentées (juste le nécessaire).
    410387  * `helloword` avec `helloworld.c` et `Makefile``
    411388  * `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