Changes between Version 10 and Version 11 of SplitMsg


Ignore:
Timestamp:
Feb 20, 2008, 9:18:41 AM (16 years ago)
Author:
Nicolas Pouillon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SplitMsg

    v10 v11  
    33Allez dans un nouveau répertoire pour y créer des fichiers.
    44
    5 == Description des deux tâches ==
     5== Fichier de description DSX ==
    66
    7 Dans le nouveau répertoire, créez un répertoire `'src'` et allez dedans.
     7Pour celui-ci, choisissez vous-même un nom explicite.
     8Ce fichier est le '''fichier de description DSX''' et sera nommé comme tel par la suite.
    89
    9 Créez un fichier `producer.task` contenant:
     10Collez dedans le texte suivant:
     11
    1012{{{
    11 TaskModel(
     13#!/usr/bin/env python
     14
     15from dsx import *
     16
     17# Partie 1
     18producer_model = TaskModel(
    1219        'producer',
    13         ports = { 'output' : MwmrOutput(32) },
     20        outfifos = ['output'],
    1421        impl = [
    1522                SwTask('prod_func',
    16                            stack_size = 1024,
     23                           stack_size = 256,
    1724                           sources = ['producer.c'])
    1825        ] )
     26
     27consumer_model = TaskModel(
     28        'consumer',
     29        infifos = ['input'],
     30        impl = [
     31                SwTask('cons_func',
     32                           stack_size = 256,
     33                           sources = ['consumer.c'])
     34        ] )
     35
     36# Partie 2
     37fifo0 = Mwmr('fifo0', 4, 4)
     38
     39tcg = Tcg(
     40        Task('prod0', producer_model,
     41                 {'output':fifo0} ),
     42        Task('cons0', consumer_model,
     43                 {'input':fifo0} ),
     44        )
     45
     46# Partie 3
     47posix = Posix()
     48tcg.generate(posix)
     49TopMakefile(posix)
    1950}}}
    2051
    21 Créez un fichier `consumer.task` contenant:
     52Important: La ligne {{{#!/usr/bin/env python}}} doit être la ''première ligne'' du fichier.
     53
     54Rendez ce fichier exécutable
    2255{{{
    23 TaskModel(
    24         'consumer',
    25         ports = { 'input' : MwmrInput(32) },
    26         impl = [
    27                 SwTask('cons_func',
    28                            stack_size = 1024,
    29                            sources = ['consumer.c'])
    30         ] )
     56$ chmod +x le_nom_de_fichier
    3157}}}
    3258
    33 == Implémentation des deux tâches ==
     59== Fichier producer.c ==
    3460
    35 Toujours dans `'src'`,
    36 
    37 dans {{{producer.c}}}, mettez:
     61Dans {{{producer.c}}}, mettez:
    3862
    3963{{{
     
    4670        char buf[32] = "...World";
    4771        srl_log_printf(NONE, "Producer : Hello...\n");
    48         srl_mwmr_write(output, buf, 32);
     72        srl_mwmr_write(output, buf, 8);
    4973}
    5074}}}
    5175
    52 dans {{{consumer.c}}}, mettez:
     76== Fichier consumer.c ==
     77
     78Dans {{{consumer.c}}}, mettez:
    5379
    5480{{{
     
    6086        srl_mwmr_t input = GET_ARG(input);
    6187        char buf[32];
    62         srl_mwmr_read(input, buf, 32);
     88        srl_mwmr_read(input, buf, 8);
    6389        srl_log_printf(NONE, "Consumer : %s\n\n", buf);
    6490}
    6591}}}
    6692
    67 On vient de créer deux modèles de tâches (décris dans les fichiers `.task`, et leurs implémentations.
    6893
    69 == Fichier de description DSX ==
    70 
    71 Revenez dans le répertoire le l'application (donc le parent de `src`).
    72 
    73 Créez un fichier de description pour DSX, pour celui-ci, choisissez vous-même un nom explicite.
    74 
    75 Ce fichier est le '''fichier de description DSX''' et sera nommé comme tel par la suite.
    76 
    77 Collez dedans le texte suivant:
    78 
    79 {{{
    80 #!/usr/bin/env python
    81 
    82 from dsx import *
    83 
    84 # Partie 1
    85 
    86 fifo0 = Mwmr('fifo0', 32, 4)
    87 
    88 tcg = Tcg(
    89         Task('prod0', 'producer',
    90                  {'output':fifo0} ),
    91         Task('cons0', 'consumer',
    92                  {'input':fifo0} ),
    93         )
    94 
    95 # Partie 2
    96 
    97 posix = Posix()
    98 tcg.generate(posix)
    99 }}}
    100 
    101 Important: La ligne {{{#!/usr/bin/env python}}} doit être la ''première ligne'' du fichier.
    102 
    103 Rendez ce fichier exécutable
    104 {{{
    105 $ chmod +x le_nom_de_fichier
    106 }}}