Skip to content
Snippets Groups Projects
Commit e2f0549d authored by Forget Julien's avatar Forget Julien
Browse files

Summary: Misc.

git-svn-id: https://svn.onera.fr/Prelude/Prelude/trunk@874 49f62630-d767-4ccd-930e-b3f5589f52e1
parent c4258eb3
Branches
Tags
No related merge requests found
...@@ -37,7 +37,7 @@ start experimenting with Prelude programs. ...@@ -37,7 +37,7 @@ start experimenting with Prelude programs.
References References
========== ==========
[forgetPHD] http://www.lifl.fr/~forget/docs/jforget-thesis.pdf [forgetPHD] http://www.cristal.univ-lille.fr/~forget/docs/jforget-thesis.pdf
-------------------------------------------------------------------------- --------------------------------------------------------------------------
Contact Address: Home site: Contact Address: Home site:
......
...@@ -49,6 +49,17 @@ The compiler generates two C files, named by default ...@@ -49,6 +49,17 @@ The compiler generates two C files, named by default
As of version 1.2, there are two possible code generation modes: As of version 1.2, there are two possible code generation modes:
1) preludec -node <main_node> <program.plu> 1) preludec -node <main_node> <program.plu>
In this mode, precedences are not encoded and must be ensured by the
scheduler at run-time. This mode is suited for multicore architectures.
The function "get_task_set" returns the number of tasks in the set and
the task set itself. The structure of a task is defined in
"lib/nonencoded_task_params.h". In addition, the function
"get_precedence_set" returns the number of precedence constraints and
the set of constraints. The constraints structure is defined in
"lib/multirate_precedence.h".
2) preludec -with_encoding -node <main_node> <program.plu>
In this mode, precedences are encoded in task attributes. The resulting In this mode, precedences are encoded in task attributes. The resulting
task set will execute without synchronization mechanisms task set will execute without synchronization mechanisms
(e.g. semaphores). This mode is suited for monocore architectures. (e.g. semaphores). This mode is suited for monocore architectures.
...@@ -60,24 +71,13 @@ attributes of the task and in a function pointer, which corresponds to ...@@ -60,24 +71,13 @@ attributes of the task and in a function pointer, which corresponds to
the execution of one instance of the task. the execution of one instance of the task.
2) preludec -no_encoding -node <main_node> <program.plu>
In this mode, precedences are not encoded and must be ensured by the
scheduler at run-time. This mode is suited for multicore architectures.
The function "get_task_set" returns the number of tasks in the set and
the task set itself. The structure of a task is defined in
"lib/nonencoded_task_params.h". In addition, the function
"get_precedence_set" returns the number of precedence constraints and
the set of constraints. The constraints structure is defined in
"lib/multirate_precedence.h".
In both cases, the code is completely independent from the target RTOS. In both cases, the code is completely independent from the target RTOS.
Compiling and executing code generated by preludec Compiling and executing code generated by preludec
================================================== ==================================================
The code generated by preludec is not the complete final program. An The code generated by preludec is not the complete final program. An
"integration code" is required, to build threads from the task set "integration code" is required, to build threads/tasks from the task set
defined in the generated code. This part is OS-dependent. From there, defined in the generated code. This part is OS-dependent. From there,
you have two choices: you have two choices:
...@@ -93,7 +93,7 @@ this example to your own program. ...@@ -93,7 +93,7 @@ this example to your own program.
B- Using your favorite RTOS: B- Using your favorite RTOS:
1) You need to implement the EDF policy modified to support deadline 1) You need to implement the EDF policy modified to support deadline
words, ie the equivalent of the "sched/sched_pluedf.c" included in words, i.e. the equivalent of the "sched/sched_pluedf.c" included in
SchedMCore source distribution. SchedMCore source distribution.
2) You need to implement the "integration code" that builds threads from 2) You need to implement the "integration code" that builds threads from
the code generated by Prelude. This can be partly inspired from the code generated by Prelude. This can be partly inspired from
...@@ -122,7 +122,7 @@ http://sites.onera.fr/schedmcore/sites/sites.onera.fr.schedmcore/files/2011-Prel ...@@ -122,7 +122,7 @@ http://sites.onera.fr/schedmcore/sites/sites.onera.fr.schedmcore/files/2011-Prel
-------------------------------------------------------------------------- --------------------------------------------------------------------------
Contact Address: Home site: Contact Address: Home site:
julien.forget@lifl.fr http://www.lifl.fr/~forget/ julien.forget@univ-lille1.fr http://www.cristal.univ-lille.fr/~forget/
https://svn.onera.fr/Prelude https://svn.onera.fr/Prelude
https://forge.onera.fr/projects/prelude https://forge.onera.fr/projects/prelude
-------------------------------------------------------------------------- --------------------------------------------------------------------------
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment