Changes between Version 2 and Version 3 of MjpegCourse/Station
- Timestamp:
- Feb 10, 2008, 7:16:07 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MjpegCourse/Station
v2 v3 61 61 $ chmod +x fichier_de_description 62 62 }}} 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 64 67 {{{ 65 68 $ ./fichier_de_description 66 69 }}} 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 73 71 * Lancez le programme multitâche généré qui porte le nom "exe.posix". 74 72 Vous pourrez interrompre l'exécution à tout moment en pressant Ctrl-c. … … 91 89 Dans les applications décrites dans ce TP, chaque modèle de tâche ne sera utilisé qu'une fois. 92 90 93 La description DSX de l'application SplitMsg est en troisparties.91 La description DSX de l'application SplitMsg est en deux parties. 94 92 95 93 [[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 96 97 97 98 = 2. Application MJPEG = … … 109 110 Comme une compression JPEG découpe l'image en blocs de 8x8 pixels, chacune des 110 111 dimensions de l'image sera multiple de 8 (on ne gère qu'un nombre entier de blocs). 112 111 113 Nous allons utiliser les constantes suivantes: 112 114 * WIDTH largeur de l'image en pixels … … 140 142 * Pour chacun des modèles de tâches: 141 143 * 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`) 143 145 Iqzz, et Libu ont une déclaration particulière à ne pas prendre en compte pour l'instant, 144 146 car ces modèles tâches sont fournis sans les sources: vous les écrirez aux prochaines questions 145 147 * Pour chaque canal de communication: 146 148 * Choisissez un nom et instanciez le canal 147 (Nous avons 8 fifosMwmr, 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) 148 150 * Dimensionnez (profondeur et largeur) les canaux en fonction des contraintes imposées par le code des tâches. 149 151 * Créez un Tcg … … 153 155 == 2.2. Exécution de l'application == 154 156 155 * Exécutez la description 157 * Exécutez la description, qui fait la compilation 156 158 {{{ 157 159 $ ./mjpeg.py 158 }}}159 * Lancez la compilation de l'application160 {{{161 $ make162 160 }}} 163 161 * Lancez l'exécution de l'application … … 228 226 (si vous ne faites pas de transtypages hasardeux sur les pointeurs, ça devrait bien se passer) 229 227 * 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) 231 229 232 230 Instructions: … … 282 280 283 281 Vous 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` 297 284 * Votre rapport (une page maximum) en format PDF (et aucun autre) dans `tp1/rapport.pdf`. 298 285 … … 308 295 $ tar tzf nombinome0_nombinome1.tar.gz 309 296 tp1/ 310 tp1/__init__.py311 297 tp1/src/ 312 tp1/src/iqzz.c 313 tp1/src/libu.c 298 tp1/src/iqzz/iqzz.c 299 tp1/src/iqzz/iqzz.task 300 tp1/src/libu/libu.c 301 tp1/src/libu/libu.task 314 302 tp1/rapport.pdf 315 tp1/rendu.py316 303 $ 317 304 }}} 318 305 319 Envoyez cette archive avant le 1 3/02/2007, 18h00 à [MailAsim:nipo Nicolas Pouillon].306 Envoyez cette archive avant le 19/02/2007, 18h00 à [MailAsim:nipo Nicolas Pouillon]. 320 307 321 308 = Suite =