Changes between Version 12 and Version 13 of SplitMsg


Ignore:
Timestamp:
Feb 27, 2008, 7:05:36 PM (16 years ago)
Author:
Nicolas Pouillon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SplitMsg

    v12 v13  
    33Allez dans un nouveau répertoire pour y créer des fichiers.
    44
     5== Description des deux tâches ==
     6
     7Dans le nouveau répertoire, créez un répertoire `'src'` et allez dedans.
     8
     9Créez un fichier `producer.task` contenant:
     10{{{
     11TaskModel(
     12        'producer',
     13        ports = { 'output' : MwmrOutput(32) },
     14        impl = [
     15                SwTask('prod_func',
     16                           stack_size = 2048,
     17                           sources = ['producer.c'])
     18        ] )
     19}}}
     20
     21Créez un fichier `consumer.task` contenant:
     22{{{
     23TaskModel(
     24        'consumer',
     25        ports = { 'input' : MwmrInput(32) },
     26        impl = [
     27                SwTask('cons_func',
     28                           stack_size = 2048,
     29                           sources = ['consumer.c'])
     30        ] )
     31}}}
     32
     33== Implémentation des deux tâches ==
     34
     35Toujours dans `'src'`,
     36
     37dans {{{producer.c}}}, mettez:
     38
     39{{{
     40#include <srl.h>
     41#include "producer_proto.h"
     42
     43FUNC(prod_func)
     44{
     45        srl_mwmr_t output = GET_ARG(output);
     46        char buf[32] = "...World";
     47        srl_log_printf(NONE, "Producer : Hello...\n");
     48        srl_mwmr_write(output, buf, 32);
     49}
     50}}}
     51
     52dans {{{consumer.c}}}, mettez:
     53
     54{{{
     55#include <srl.h>
     56#include "consumer_proto.h"
     57
     58FUNC(cons_func)
     59{
     60        srl_mwmr_t input = GET_ARG(input);
     61        char buf[32];
     62        srl_mwmr_read(input, buf, 32);
     63        srl_log_printf(NONE, "Consumer : %s\n\n", buf);
     64}
     65}}}
     66
     67On vient de créer deux modèles de tâches (décris dans les fichiers `.task`, et leurs implémentations.
     68
    569== Fichier de description DSX ==
    670
    7 Pour celui-ci, choisissez vous-même un nom explicite.
     71Revenez dans le répertoire le l'application (donc le parent de `src`).
     72
     73Créez un fichier de description pour DSX, pour celui-ci, choisissez vous-même un nom explicite.
     74
    875Ce fichier est le '''fichier de description DSX''' et sera nommé comme tel par la suite.
    976
     
    1683
    1784# Partie 1
    18 producer_model = TaskModel(
    19         'producer',
    20         outfifos = ['output'],
    21         impl = [
    22                 SwTask('prod_func',
    23                            stack_size = 2048,
    24                            sources = ['producer.c'])
    25         ] )
    2685
    27 consumer_model = TaskModel(
    28         'consumer',
    29         infifos = ['input'],
    30         impl = [
    31                 SwTask('cons_func',
    32                            stack_size = 2048,
    33                            sources = ['consumer.c'])
    34         ] )
    35 
    36 # Partie 2
    37 fifo0 = Mwmr('fifo0', 4, 4)
     86fifo0 = Mwmr('fifo0', 32, 4)
    3887
    3988tcg = Tcg(
    40         Task('prod0', producer_model,
     89        Task('prod0', 'producer',
    4190                 {'output':fifo0} ),
    42         Task('cons0', consumer_model,
     91        Task('cons0', 'consumer',
    4392                 {'input':fifo0} ),
    4493        )
    4594
    46 # Partie 3
     95# Partie 2
     96
    4797posix = Posix()
    4898tcg.generate(posix)
    49 TopMakefile(posix)
    5099}}}
    51100
     
    57106}}}
    58107
    59 == Fichier producer.c ==
    60 
    61 Dans {{{producer.c}}}, mettez:
    62 
    63 {{{
    64 #include <srl.h>
    65 #include "producer_proto.h"
    66 
    67 FUNC(prod_func)
    68 {
    69         srl_mwmr_t output = GET_ARG(output);
    70         char buf[32] = "...World";
    71         srl_log_printf(NONE, "Producer : Hello...\n");
    72         srl_mwmr_write(output, buf, 8);
    73 }
    74 }}}
    75 
    76 == Fichier consumer.c ==
    77 
    78 Dans {{{consumer.c}}}, mettez:
    79 
    80 {{{
    81 #include <srl.h>
    82 #include "consumer_proto.h"
    83 
    84 FUNC(cons_func)
    85 {
    86         srl_mwmr_t input = GET_ARG(input);
    87         char buf[32];
    88         srl_mwmr_read(input, buf, 8);
    89         srl_log_printf(NONE, "Consumer : %s\n\n", buf);
    90 }
    91 }}}
    92 
    93