| ... | ... | @@ -8,3 +8,70 @@ provide a higher layer of abstraction, on top of classic synchronous |
|
|
|
languages. It can be considered as a real-time software architecture
|
|
|
|
language that enables to assemble locally mono-periodic synchronous
|
|
|
|
systems into a globally multi-periodic synchronous system. <br><br>
|
|
|
|
|
|
|
|
The <i>preludec</i> compiler generates synchronized multi-task C
|
|
|
|
code, that is independent of the target OS. Communication is achieved by
|
|
|
|
a tailor-made buffering communication protocol. The compilation was
|
|
|
|
defined formally and produces completely deterministic code, which
|
|
|
|
respects the real-time semantics of the original program (period,
|
|
|
|
deadlines, release dates and precedences) as well as its functional
|
|
|
|
semantics (respect of variables consumption). The Prelude compiler produces
|
|
|
|
code for either monocore or multicore architectures.<br>
|
|
|
|
|
|
|
|
<h3>Documentation</h3>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li> Master course <a href="http://www.cristal.univ-lille.fr/%7Eforget/prelude/Prelude-course.pdf">here</a>;
|
|
|
|
</li><li> Practical session, the <a href="http://www.cristal.univ-lille.fr/%7Eforget/prelude/prelude_lab.pdf">exercises</a>
|
|
|
|
and <a href="http://www.cristal.univ-lille.fr/%7Eforget/prelude/fcs.tgz">resources</a> for the FCS example;
|
|
|
|
</li><li> Complete definition of the language in my
|
|
|
|
PhD <a href="http://www.cristal.univ-lille.fr/%7Eforget/docs/jforget-thesis.pdf">manuscript</a> (see Chapter 4
|
|
|
|
mainly);
|
|
|
|
</li><li> Shorter presentation <a href="http://www.cristal.univ-lille.fr/%7Eforget/docs/jforget-SAC10.pdf">here</a> or <a href="http://hal.inria.fr/inria-00638936">here</a>;
|
|
|
|
</li><li> Further references available <a href="http://www.cristal.univ-lille.fr/%7Eforget/research.html">here</a>;
|
|
|
|
</li><li> For installation, check the INSTALL file of the distribution.
|
|
|
|
</li></ul>
|
|
|
|
|
|
|
|
<h3>Download</h3>
|
|
|
|
|
|
|
|
You can download Prelude from
|
|
|
|
its <a href="https://forge.onera.fr/projects/prelude/files">forge</a>
|
|
|
|
(the user 'guest' (passwd: 'oneraguest') can be used to file a bug report or access read-only sections of the Forge).
|
|
|
|
<br><br>
|
|
|
|
You will need OCaml installed to compile the source distribution, which
|
|
|
|
should be packaged for most Linux distributions, otherwise you can get
|
|
|
|
it from <a href="http://caml.inria.fr/">here</a>.
|
|
|
|
To compile the code generated by <tt>preludec</tt>, the simplest way is to
|
|
|
|
install <a href="http://sites.onera.fr/schedmcore/">SchedMCore</a>.
|
|
|
|
You can however use your favorite RTOS instead, following the
|
|
|
|
instructions in the README.<br><br>
|
|
|
|
|
|
|
|
<b>Feedback</b> is welcome and encouraged: <i><tt> Email:julien dot forget at univ-lille1 dot fr</tt></i><br>
|
|
|
|
|
|
|
|
<h3>Supported features</h3>
|
|
|
|
The following features are supported by the current distribution:
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li> Language features:
|
|
|
|
<ul>
|
|
|
|
<li> Synchronous semantics;
|
|
|
|
</li><li> Periodicity constraints (through strictly periodic clocks);
|
|
|
|
</li><li> Deadline constraints;
|
|
|
|
</li><li> Strictly periodic clocks and associated transformations: periodic
|
|
|
|
over-sampling (<tt>*^</tt>), periodic under-sampling (<tt>/^</tt>), phase offset (<tt>~></tt>), clock tail
|
|
|
|
(<tt>tail</tt>) and clock concatenation (<tt>::</tt>);
|
|
|
|
</li><li> Classic synchronous operators: delay (<tt>fby</tt>), Boolean
|
|
|
|
under-sampling (<tt>when</tt>) and Boolean over-sampling (<tt>merge</tt>);
|
|
|
|
</li><li> Clocks polymorphism;
|
|
|
|
</li><li> Types polymorphism (à la ML).
|
|
|
|
</li></ul>
|
|
|
|
</li><li> Static analyses:
|
|
|
|
<ul>
|
|
|
|
<li> Typing;
|
|
|
|
</li><li> Clock calculus;
|
|
|
|
</li><li> Causality analysis;
|
|
|
|
</li><li> Deadline calculus.
|
|
|
|
</li></ul>
|
|
|
|
</li><li> Muli-threaded C code generation (independent from the target OS);
|
|
|
|
</li><li> Code suited for either monocore or multicore artchitectures.
|
|
|
|
</li></ul> |