This course+practical shows how to implement a real-time application (written in Lustre) on a tiny specific hardware platform (based on arduino). The main goal is to illustrate the notion of bare-metal implementation of embedded systems, without and with the help of a real-time OS embedded library (FreeRTOS).
For MOSIG students, support for the course is available at Ensimag gitlab:
gitlab.ensimag.fr/raymondp/esimp
and installed on the ensimag PC’s, see README.md in the folder:
This course was given at MOSIG (Master of Science in Informatics at Grenoble) from 2013 to 2017.
Goal 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.
dernière modif le 11/10/2017
Introduction Ce document détaille les aspects techniques, pour des informations plus générales, voir les notes de cours :
Cours 1, Implantation sûre de systèmes contrôle/commande temps-réel
Cours 2, Mdl vers Lustre vers Osek
Environnement de travail Développement Tout les outils nécessaires sont disponibles sur les PC/linux, dans
/user/5/raymondp/mdl2lus2osek et /user/5/raymondp/lustre Pour accéder simplement aux outils, ajouter la ligne suivante à votre .bashrc
source /user/5/raymondp/mdl2lus2osek/SETENV.sh source /user/5/raymondp/lustre/setenv.sh Chargement des programmes sur la brique La méthode nxt-OSEK produit 3 types de binaires (ram.