Embedded Systems and the Synchronous Approach
The objective of the course is to present a general approach for the realization of safe embedded (critical) systems. This approach, called “synchronous”, aims at reconciling concurrent programming with determinism.
The key idea is to separate the design level where time is a purely logical notion, and the implementation where time means “real” quantitative time.
Here is a summary of the topics addressed:
- General presentation of embedded systems, and their almost synonyms
(reactive, real-time, cyber-physical systems etc.)
- Principle of synchronous approach.
- Two “styles” of synchronous programming languages:
data-flow (Lustre) and control-flow (Esterel).
- Compilation: from data-flow programs to sequential code.
- Formal verification: observers, abstractions and finite state machines exploration.
- Quantitative Real-time aspects: synchronous programs and worst-case execution time estimation.
Courses are scheduled on Wednesday, 14-17h.
- Oct. 5
- Oct. 19
- The Lustre Language (cntd)
- The Esterel Language (slides)
- Oct. 26
- Compilation of Lustre (slides)
- Nov. 9
- Formal verification(slides)
- Nov. 23
- Formal verification (cntd)
- Synchronous approach and Worst Case Execution Estimation(slides)
- Dec. 14
We propose a set of exercises for practicing the languages and methods seen during the lectures. This is mainly a homework, however we will have from time to time a review of progress during the courses.
, and additional data (streetcar.lus)
- Use the EnsiPc machines (boot on CentOs) available in the practice rooms at Ensimag (if you have an account). In this case you have to execute the following command (hint: copy this line in the file .bashrc in your homedir):
- Install the lustre distribution on your own laptop
- Download the distribution here
- The linux distribution is recommended (more complete)
- Alternative distribs are available for MacOS and Windows (via Cygwin)
- However: if you are familiar with virtualization, consider the solution of installing the tools on a virtual Linux machine (see VirtualBox for instance).
Editing and Syntax Highlight:
- This page explains how to use syntax highlight in common text editors
www-verimag.imag.fr/~raymond/index.php/lus-vim (vim and emacs).