Introduction
Introduction
Introduction
Master
systèmes embarqués et mobiles sûrs
Introduction
tion d’emplois et de génération de valeur ajoutée ŢQS¨QBSFSMFT¨M§WFTMBDPODFQUJPOFUBVE¨WF-
pour les entreprises. loppement de systèmes embarqués : présenta-
tion de l’ensemble des plateformes utilisées dans
DOMAINES D’APPLICATION DES SYSTÈMES EMBARQUÉS : ces domaines et pratique du développement sur
ŢTZTU§NFTUFNQTS¨FMDSJUJRVFTMJ¨TBVYBQQMJDB- certaines d’entre elles ;
tions du transport et/ou du contrôle commande ; ŢQS¨QBSFSMFT¨M§WFTBVYDPOUSBJOUFTFUBTQFDUT
ŢMFTDBSUFTQVDF
MBU¨M¨QIPOJFNPCJMF spécifiques du monde embarqué : le temps réel,
ŢMFTJNNFVCMFTJOUFMMJHFOUT la criticité, la sécurité, la sûreté, le coût des solu-
ŢMBHFTUJPOEFT¨OFSHJFT
MśJOUFMMJHFODFBNCJBOUF tions, la taille des programmes, les performances
ŢMFTBQQMJDBUJPOTUPVSO¨FTWFSTMBQFSTPOOF des solutions, l’optimisation de la consommation.
Jean-Ferdinand Susini
Deux parcours permettent aux élèves d’appro-
PUBLIC CONCERNÉ fondir leurs compétences et d’atteindre un haut
niveau d’expertise :
Étudiants de niveau bac+4, master 1 en informa- ŢMFQBSDPVSTIntelligence ambiante forme aux
tique ou en dernière année d’école d’ingénieur réseaux de capteurs et à la spécificité de la
Le cours
2
http://jeanferdysusini.free.fr/Cours/SEMS
Organisation
~18h : Virtualisation des systèmes embarqués
~24h : Ordonnancement et systèmes temps réels
~6h : Tool chain, cross compilation, techniques de
programmation spécifiques...
~3h : Examen final (QCM)
J.-F. Susini 5 Oct. 2012
Systèmes d’exploitation
3
Système d’exploitation
4
Application
Machine physique
J.-F. Susini 5 Oct. 2012
Système d’exploitation
4
Application
Machine physique
J.-F. Susini 5 Oct. 2012
Système d’exploitation
4
Application
Machine physique
J.-F. Susini 5 Oct. 2012
Système d’exploitation
4
Application
Machine physique
J.-F. Susini 5 Oct. 2012
Système d’exploitation
4
Application
Machine physique
J.-F. Susini 5 Oct. 2012
Systèmes d’exploitation
5
Compilation Croisée
6
UE : SMB204
Systèmes Embarqués et Enfouis
Master
systèmes embarqués et mobiles sûrs
logiciel embarqué
8
L’informatique omniprésente :
hardware ou software
J.-F. Susini 5 Oct. 2012
logiciel embarqué
11
logiciel embarqué
12
logiciel embarqué
13
Un système embarqué :
Est un système numérique
Utilise généralement un processeur
Exécute un logiciel dédié pour réaliser une
fonctionnalité précise
Remplace souvent des composants
électromécaniques
N’a pas réellement de clavier standard, l’affichage
est limité (écran LCD…) ou n’existe pas du tout
N’est pas un PC traditionnel
J.-F. Susini 5 Oct. 2012
logiciel embarqué
15
logiciel embarqué
16
logiciel embarqué
17
Un système embarqué
doit être de faible coût
de faible consommation pour maximiser la durée de vie des batteries
de faible encombrement et faible poids (pour les équipements portables)
J.-F. Susini 5 Oct. 2012
logiciel embarqué
18
logiciel embarqué
19
logiciel embarqué
20
logiciel embarqué
21
Langages utilisés
Assembleur pour des fonctions spécifiques (drivers)
Langages C/C++ : programmation proche du
matériel donc adapté à l’embarqué
Langage Java : Java Card (cartes à puce, JavaME ou
Java Android pour les téléphones)
J.-F. Susini 5 Oct. 2012
Un exemple : la MMU
Composant matériel qui permet (i) la conversion des adresses virtuelles en
adresses physiques, (ii) le contrôle l’accès mémoire des applications
(SIGSEGV si accès à l’espace noyau)
uClinux: noyau Linux utilisable pour des processeurs avec et sans MMU
(www.uclinux.org), utilise uClibc. Inconvénient: pas de protection mémoire si
pas de MMU, d’où une application erronée peut planter le système
J.-F. Susini 5 Oct. 2012
Domaine de l’avionique
24
Exemple de l’iPhone 4
Master
systèmes embarqués et mobiles sûrs
Le temps réel
29
Le temps réel
30
Application de contrôle
multitâches avec concurrence
communication
Commandes contraintes de précédence
Fonction de
pilotage
Mesures
Evénements
Fonction de suivi
Contraintes de temps
J.-F. Susini 5 Oct. 2012
Domaine d’application
31
Importance de la contrainte TR
33
Caractéristiques
34
Contraintes temporelles
comportement correct “dans le pire des cas”
expression des contraintes temporelles : quand ?
que faire si impossible ? réaction à la faute temporelle
modification dynamique des contraintes
requête échéance
t
Contrôle de concurrence
parallélisme : caractéristique du monde réel
programme = ensemble d’activités indépendantes ou non (ressources,
précédence)
outils d’expression
performance, distribution
J.-F. Susini 5 Oct. 2012
Caractéristiques
35
Caractéristiques
36
taille et complexité
variété des besoins et des activités issue du monde réel
évolution permanente : extensibilité
modularité : découpage en composants indépendants
implantation efficace
restriction dans l’utilisation du langage
prise en compte du passage à l’échelle
certification
garantir un fonctionnement conforme aux spécifications
simulation prototypage
vérification a priori de la conception
vérification a posteriori avec une plate-forme d’essais
J.-F. Susini 5 Oct. 2012
Observations
Système informatique mesures
de contrôle Capteurs
passifs ou actifs
interface d’E/S
événements
numériques ou
analogiques
physique
Calculateur
contrôlé
Procédé
commandes
Actionneurs
interface de passifs ou actifs
communications Actions
(série, parallèle, ...)
s a at d
l’é
uv u
consignes
affichage
t
eg pr
ar oc
de éd
de é
Le calculateur :
monoprocesseur
multiprocesseurs
réparti
Logiciel du système de contrôle :
exécutif temps réel (gestion du partage des
ressources de calcul, accès concurrent aux autres
ressources, synchronisation et communication)
tâches utilisateur
J.-F. Susini 5 Oct. 2012
Système multitâche
39
Opérateur
affichage Directives
Interruptions
Gestion des
Procédé
Séquenceur Primitives
interruptions
Activation
Requête
Tâche 1 Tâche n
Programme
utilisateur
Ressources
commandes
Périphériques Mémoire services OS
Mesures
J.-F. Susini 5 Oct. 2012
Les tâches
40
apériodiques Période
J.-F. Susini 5 Oct. 2012
ordonnancement ;
communication ;
synchronisation ;
gestion mémoire ;
IT, ES, fichiers ;
traitement des erreurs ; Noyau : liaison matériel
J.-F. Susini 5 Oct. 2012
Déterminisme
43
Application Système
Sauvegarde
du contexte
Latence
IT de réveil
e
Traitement de l’IT
Réordonnancement :
Restitution du contexte commutation des
tâches
J.-F. Susini 5 Oct. 2012
Ordonnancement
44
Algorithmes :
préemptif/ non préemptif
Hors ligne/ en ligne (statique/dynamique)
Conduits par la notion de priorité (fixe ou
dynamique)
J.-F. Susini 5 Oct. 2012
Exemples d’OS TR
45
Exemples d’OS TR
46
Nucleus: noyau temps réel (open source) inclut une couche TCP/IP,
un navigateur Web, une interface graphique et un serveur http.
Souvent utilisé dans les terminaux de paiement bancaires (TPE)
développé par Mentor Graphics (www.mentor.com)
VRTX: connu pour avoir équipé le télescope spatial Hubble noyau
temps réel développé aussi par Mentor Graphics
(www.mentor.com)
eCos : développé par Red Hat, noyau temps réel (open source),
faible empreinte mémoire (www.ecos.sourceware.org)
J.-F. Susini 5 Oct. 2012
Références :
Introduction aux systèmes temps réel, Ch.
Bonnet, I. Demeure, Edition HERMES
Le temps réel en milieu industriel, Dorseuil A. et
Pillot P., édition Dunod, collection informatique
industrielle, 1991
supports de cours sur l’informatique industrielle-
systèmes temps réel, Jean-François Peyre,
CNAM(Paris)
Linux embarqué, Pierre Ficheux, Ed. Eyrolles,
2005
J.-F. Susini 5 Oct. 2012
Références :
supports de cours sur le temps réel, Frank
Singhoff, département informatique, université de
Bretagne Occidentale (http://beru.univ-brest.fr/
~singhoff/supports.html)
Linux embarqué, Pierre Ficheux, Ed. Eyrolles,
2010
Embedded Linux kernel and driver development,
M. Opdenacker, http://free-electrons.com/,
traduction française par Julien Boibessot
J.-F. Susini 5 Oct. 2012
Références :
LES SYSTEMES D'EXPLOITATION: COURS ET
EXERCICES CORRIGES UNIX, LINUX et
WINDOWS XP avec C et JAVA, Samia
Bouzefrane, Ed. Dunod, 2003
Support de cours de Kadionik, http://
uuu.enseirb.fr/~kadionik/enseirb/e3/IT3 31/
embeddedsystem_enseirb.pdf
UE : SMB204
Systèmes Embarqués et Enfouis
Master
systèmes embarqués et mobiles sûrs
control models
modèle d’une(block-diagrams)
loi de contrôle
formal software
=
specification
= spécification d’un logiciel
Aérospatiale :
Spécification assisté par Assis
“Spécification
automatic code generation Ordinateur
par(SAO - A320)
Ordinateur”(SAO)
génération automatique “Computer Aided Spe
Software
de code cation”
J.-F. Susini 5 Oct. 2012
GRAFCET
62
transition ? réceptivité
n
n n n
qualified code generator5 Oct.
J.-F. Susini
for2012s
plications
Prise en compte du temps continu
63
Simulink/Stateflow Le plus gros vendeur de
continuous/discrete
licence d’outils de
développement pour les
toolbox
systèmes embarqués :
theMathWorks
defacto avec standard
la suite
Matlab/Simulink/Stateflow
elling
Formal
Le methods:
spécification automatic
sous forme graphique mathematical
correspond bien à la
dynamic
culture systems
des ingénieurs (souvent des automaticiens), des autorités
de certification, ...
J.-F. Susini 5 Oct. 2012
Entrées Sorties
e1, e2, ..., en s1, s2, …, sn
Réaction du système
(calcul élémentaire)
Entrées Sorties
e1, e2, ..., en s1, s2, …, sn
Réaction du système
(calcul élémentaire)
Environnement
f 0 : S × T1 ⎯
⎯→ T2 / sn = f o (M n−1,en )
€
J.-F. Susini 5 Oct. 2012
L’expression du temps
67
L’expression du temps
68
L’expression du temps
68
Pb
B ? signal
pas de diffusion
: éliminer lesdans au moins 2 secondes s’il l’écoute
bugs temporels
B ? signal
C ? signal
B et C reçoivent-ils le signal au même
moment ?
Modèle inadapté
69
L’Approche Réactive/Synchrone
71
Environnement Environnement
J.-F. Susini 5 Oct. 2012
Notion de contrôle/commande
72
Approche de l’automaticien :
Commande : lois qui régissent l’évolution
dynamique du système. Asservissement des
actionneurs en fonction des capteurs : lois en temps
continu -> (discrétisation du temps, échantillonnage)
Contrôle : lois qui gèrent le comportement global du
système : surveillance de la mission et de
l’enchaînement des lois de commandes, choix des
lois de commandes en fonction de l’environnement,
traitement des erreurs : en temps discret (système
événementiel)
J.-F. Susini 5 Oct. 2012
X
Y0 = bX 0 , ∀n Yn +1 = aYn + bX n +1
b
Y
Z +
a €
J.-F. Susini 5 Oct. 2012
X
Y0 = bX 0 , ∀n Yn +1 = aYn + bX n +1
b
Y
Z + En 84 : Lustre :
a € • écrire directement des équations de suites
• fournir un compilateur et des outils d’analyse
J.-F. Susini 5 Oct. 2012
L’Approche Réactive/Synchrone
74
Les caractéristiques :
exécution découpée en instants logiques successifs
instant de durée nulle (réactivité : borne
temporelle, vérifier la rapidité de la machine)
parallélisme synchrone (horloge globale)
déterminisme (mêmes entrées => mêmes sorties)
exécution en mémoire bornée
analyse statique et vérification de propriétés
J.-F. Susini 5 Oct. 2012
activation
J.-F. Susini 5 Oct. 2012
Inputs
activation
J.-F. Susini 5 Oct. 2012
Inputs
activation
Outputs
J.-F. Susini 5 Oct. 2012
Inputs Inputs
activation activation
Outputs Outputs
J.-F. Susini 5 Oct. 2012
A1
A2
A3
J.-F. Susini 5 Oct. 2012
A1
A2
A3
J.-F. Susini 5 Oct. 2012
A1
A2
A3
J.-F. Susini 5 Oct. 2012
A1
A2
A3
J.-F. Susini 5 Oct. 2012
Représentation en circuits
77
L’Approche Réactive/Synchrone
80
Points forts :
• grande puissance expressive et sémantique
formalisée
• couplage avec outils de preuves et de validation
• production de circuits ou automates => efficacité
• compilation vers hardware ou software d’un même
code
Points faibles :
• causalité : obstacle à la modularité
• pas d'objets (sauf solutions particulières comme
Esterel ++)
• pas de création dynamique (analyse statique)
J.-F. Susini 5 Oct. 2012
Esterel
81
Esterel
82
Esterel
83
nop : nothing
Séquence : P ; Q
Parallélisme : P || Q
fin d’instant explicite : pause, halt
boucles : loop P end, repeat exp times P end
affectation X:= 1
appel de procédure : call P (X1,X2)(s1,s2)
emission : emit S
attente : await S , await immediate S
test : present S then P else Q end
déclaration locale : signal S in P end
préemption : abort P when S, weak abort P when S
J.-F. Susini 5 Oct. 2012
Un exemple : ABRO 23
Exemple ABRO
Spec : Emettre le signal de sortie O dès l’occurrence des deux signaux
84
d’entrée A et B. Recommencer à chaque occurrence du signal
On émet O dès que A et B sont reçus et on recommence
d’entrée R.
each R
end
Lustre
85
Lustre
86
Lustre
87
Calculs d’horloge
88
89
The Dataflow Style
node Control (U : float)
returns (X : float);
var S : float;
Xt+1 = Ut+1 ⇥ sin(Xt + St+1 St )
let St+1 = cos(St + Ut+1 )
X = 0. -> (U * sin(pre(X) + S - pre(S)));
S = 1. -> cos(pre(S) + U);
In a tel
graphical representation:
J.-F. Susini 5 Oct. 2012
Signal
90
Signal
91
Signal
92
Formalismes graphiques
93
Programmation synchrone graphique
Statecharts, Argos, SyncCharts
TopReq
Top/Question Req/Ok
#/Received #/Alarm Question/
Received
Req/Oqp
<2> <2>
Question, Received
15 / 22
J.-F. Susini 5 Oct. 2012
L’Approche Réactive/Synchrone
95
Références:
• On the Development of Reactive Systems, D.
Harel, A. Pnueli, Proc. NATO ASI Series F, Vol.
13 477-498, Springer-Verlag, 1985
• StateCharts: A visual Approach to Complex
Systems, D. Harel, Science of Computer
Programming, vol. 8-3 p.231-275, 1987
• Synchronous Programming of Reactive Systems,
Nicolas Halbwachs, Kluwer Academic
Publications, Amsterdam, 1993
J.-F. Susini 5 Oct. 2012
L’Approche Réactive/Synchrone
96
L’Approche Réactive/Synchrone
97
• http://www.inrialpes.fr/synalp/