Changes between Version 2 and Version 3 of MjpegCourse/Station


Ignore:
Timestamp:
Feb 10, 2008, 7:16:07 PM (17 years ago)
Author:
Nicolas Pouillon
Comment:

API update

Legend:

Unmodified
Added
Removed
Modified
  • MjpegCourse/Station

    v2 v3  
    6161$ chmod +x fichier_de_description
    6262}}}
    63  * Exécutez la description DSX
     63
     64 * [[Image(MjpegCourse:q.gif)]] Q1: '''''Quels fichiers ou répertoires ont été créés?'''''
     65
     66 * Exécutez la description DSX qui réalise la compilation l'application logicielle générée par DSX
    6467{{{
    6568$ ./fichier_de_description
    6669}}}
    67  * [[Image(MjpegCourse:q.gif)]] Q1: '''''Quels fichiers ou répertoires ont été créés?'''''
    68  * Lancez la compilation l'application logicielle générée par DSX, en utilisant le makefile également généré
    69    par DSX.
    70 {{{
    71 $ make
    72 }}}
     70
    7371 * Lancez le programme multitâche généré qui porte le nom "exe.posix".
    7472   Vous pourrez interrompre l'exécution à tout moment en pressant Ctrl-c.
     
    9189Dans les applications décrites dans ce TP, chaque modèle de tâche ne sera utilisé qu'une fois.
    9290
    93 La description DSX de l'application SplitMsg est en trois parties.
     91La description DSX de l'application SplitMsg est en deux parties.
    9492
    9593[[Image(MjpegCourse:q.gif)]] Q3: '''''A quoi sert chacune des parties ?'''''
     94
     95[[Image(MjpegCourse:q.gif)]] Q4: '''''Qu'est-ce qui n'est pas dans la description de l'application, mais qui est quand même indispensable à sa réalisation ?'''''
     96
    9697
    9798= 2. Application MJPEG =
     
    109110Comme une compression JPEG découpe l'image en blocs de 8x8 pixels, chacune des
    110111dimensions de l'image sera multiple de 8 (on ne gère qu'un nombre entier de blocs).
     112
    111113Nous allons utiliser les constantes suivantes:
    112114 * WIDTH largeur de l'image en pixels
     
    140142 * Pour chacun des modèles de tâches:
    141143   * Reportez des noms pour chacun des ports d'entrée/sortie (cf DsxTasks).
    142    * Complétez la description des modèles de tâches
     144   * Complétez la description des modèles de tâches (voir dans `src/*/*.task`)
    143145     Iqzz, et Libu ont une déclaration particulière à ne pas prendre en compte pour l'instant,
    144146     car ces modèles tâches sont fournis sans les sources: vous les écrirez aux prochaines questions
    145147 * Pour chaque canal de communication:
    146148   * Choisissez un nom et instanciez le canal
    147      (Nous avons 8 fifos Mwmr, utiliser l'API décrite dans DsxResource, `tg_demux` est fournie en exemple)
     149     (Nous avons 7 canaux Mwmr, utiliser l'API décrite dans DsxResource, `tg_demux` est fournie en exemple)
    148150   * Dimensionnez (profondeur et largeur) les canaux en fonction des contraintes imposées par le code des tâches.
    149151 * Créez un Tcg
     
    153155== 2.2. Exécution de l'application ==
    154156
    155  * Exécutez la description
     157 * Exécutez la description, qui fait la compilation
    156158{{{
    157159$ ./mjpeg.py
    158 }}}
    159  * Lancez la compilation de l'application
    160 {{{
    161 $ make
    162160}}}
    163161 * Lancez l'exécution de l'application
     
    228226   (si vous ne faites pas de transtypages hasardeux sur les pointeurs, ça devrait bien se passer)
    229227 * Votre code '''doit''' gérer toutes les tailles d'images (tant qu'elles sont multiples de 8x8).
    230    Toutes les boucles doivent utiliser les tailles issues des defines (WIDTH, HEIGHT, BLOCKS_W, BLOCKS_H)
     228   Toutes les boucles doivent utiliser les tailles issues des constantes (WIDTH, HEIGHT, BLOCKS_W, BLOCKS_H)
    231229
    232230Instructions:
     
    282280
    283281Vous devrez créer une archive `tar.gz`, contenant un seul répertoire nommé `tp1`. Dans ce répertoire vous devrez mettre:
    284  * Un fichier `__init__.py` vide
    285  * Un fichier `rendu.py` contenant:
    286 {{{
    287 
    288 from dsx import *
    289 
    290 iqzz = TaskModel( # le reste de la définition de votre modèle iqzz
    291                      )
    292 libu = TaskModel( # le reste de la définition de votre modèle libu
    293                      )
    294 }}}
    295    Et rien d'autre, en particulier rien à propos des autres tâches ou du TCG.
    296  * Le code des tâches iqzz et libu que vous avez écrites dans un sous-répertoire `src/`.
     282
     283 * Les répertoires des tâches iqzz et libu, contenant uniquement les fichier `.task` et `.c`
    297284 * Votre rapport (une page maximum) en format PDF (et aucun autre) dans `tp1/rapport.pdf`.
    298285
     
    308295$ tar tzf nombinome0_nombinome1.tar.gz
    309296tp1/
    310 tp1/__init__.py
    311297tp1/src/
    312 tp1/src/iqzz.c
    313 tp1/src/libu.c
     298tp1/src/iqzz/iqzz.c
     299tp1/src/iqzz/iqzz.task
     300tp1/src/libu/libu.c
     301tp1/src/libu/libu.task
    314302tp1/rapport.pdf
    315 tp1/rendu.py
    316303$
    317304}}}
    318305
    319 Envoyez cette archive avant le 13/02/2007, 18h00 à [MailAsim:nipo Nicolas Pouillon].
     306Envoyez cette archive avant le 19/02/2007, 18h00 à [MailAsim:nipo Nicolas Pouillon].
    320307
    321308= Suite =