Informatique embarquée

Transcription

Informatique embarquée
Informatique embarquée
Module M1-SIGE : UEF5
B. Miramond & P. Andry
Miramond Benoît - UCP
1
Règles du jeu
• CM
: Octobre – Novembre
• TP
: Octobre – Décembre
• Coupures : Toussaint
• Note de CC = CC ou note de TP + Projet
• Examen : Décembre
Miramond Benoît - UCP
2
Intervenants
• B. Miramond
: responsable de module
– CM (1, 6, 7, 8, 9)
• P. Andry :
– CM (2, 3, 4, 5)
– TP (1, 2, 3, 4)
• ATER
– TP (5, 6, 7, 8)
Miramond Benoît - UCP
3
Plan général des séances de CM (2h)
I.
II.
III.
IV.
V.
VI.
VII.
VIII.
IX.
Introduction à l’embarqué
Introduction au temps-réel (CM/TP)
Ordonnancement temps-réel
Mécanismes de synchronisation
Conception logicielle en environnement embarqué
Organisation générale d’un RTOS
Le processus dans la machine
Cas d’étude d’un RTOS : uC/OS-II
Exemple de plateforme embarquée : Carte Altera
Stratix1s10
Miramond Benoît - UCP
4
Planning des TDs/TPs (3h)
1.
2.
3.
4.
5.
1.
1.
2.
3.
4.
TP introduction au temps-réel : Thread Posix
TD1 Ordonnancement
TD2 Ordonnancement
TP uC-linux : chaîne de compilation croisée
TP embarqué : Application sous uC-linux
TP1 prise en main de uC/OS-II sur PC
TP1 Prise en main de la carte Altera
TP2 embarquée : Application sur carte
Projet embarqué sur carte
Projet (suite)
Miramond Benoît - UCP
5
Offres d’emploi 2006
•
ALTEN, APSIT, APTUS, SYSTRAN, MEDIANE …
•
18 septembre 2006
Nous recherchons pour un de nos partenaires un ingénieur informatique pour participer à
la réalisation d'un logiciel C embarqué sous UNIX.
Rattaché à l’équipe de développement du « Smart Module », Vous serez également en
charge de mettre à jour une application en « C » ainsi qu’un driver de composant sous
LINUX (Debian) embarqué sur une cible de processeur ARM9T. Vous participerez à
l'analyse de l'architecture du logiciel, à l'élaboration des spécifications techniques, ainsi
qu'à la conception et le développement du logiciel embarqué.
27 septembre 2006
De formation BAC+5 en informatique la maîtrise de la programmation C et assembleur sur
DSP.
Dans le cadre de notre développement sur des projets d'envergure, nous recherchons des
ingénieurs ayant des compétences en Linux embarqué.
02 octobre 2006
Au sein d'une équipe de 3 personnes et sous la responsabilité d'un Chef de projet, vous
prenez en charge l'intégration d'un OS Linux dans le cadre d'un système embarqué dans
le domaine industriel et vous intervennez dans le développement d'applications sur ce
système (spécifications, conception, test, validation).
De formation Bac+5 école d'ingénieur ou DESS en informatique industrielle, vous avez
une expérience de 2 ans et plus et justifiez d'une réelle expertise en informatique temps
réel sous Linux. Vous maîtrisez les langages C,C++.
•
•
Miramond Benoît - UCP
6
Offres d’emploi 2007
•
•
•
13 aout 2007 – ATOS ORIGIN
Atos Origin est l'un des principaux acteurs internationaux dans les services informatiques (conseil, intégration de
systèmes et infogérance). Partenaire informatique mondial des jeux olympiques, il compte parmi ses clients de grands
comptes internationaux dans tous les secteurs. Le centre GTPC réalise des systèmes en informatique temps réel,
technique et scientifique dans les secteurs de l'énergie (pétrole, gaz, électricité).Dans ce cadre, Atos Origin assure le
développement des logiciels embarqués d'un ensemble d'applications d'un grand groupe dans le secteur de
l'exploration et de la production pétrolière. Ces applications sont à la pointe des domaines scientifiques et techniques,
et combinent haute technicité et grande fiabilité.
Pour réussir ces projets novateurs et ambitieux, nous souhaitons être "accompagnés" par des collaborateurs à fort
potentiel technique et relationnel.
- Au sein d'équipes internationales et pluridisciplinaires (électroniciens, mécaniciens, physiciens, informaticiens)
vous prenez en charge le développement de logiciels embarqués, organisés autour d'architectures réparties.
- Nous recherchons un(e) candidat(e) de formation Bac +5, issu(e) d'une grande école Informatique et/ou Electronique,
débutant(e) ou première expérience de 1 à 2 ans au sein d'une équipe de développement logiciel.
- Vous maîtrisez les développements en C++ sur cible PC et vous avez une connaissance du développement en
logiciel embarqué ou temps réel.
- Vos connaissances en électronique seraient un plus très appréciable.
22 aout 2007 – ADENEO - 28/35 KE
ADENEO, groupe Adetel (450 p) développe des prestations d'études et produit des systèmes électroniques et logiciels
pour les gds comptes de l'industrie, dans les domaines de l'aéronautique, du ferroviaire, de l'automobile. Ratt au Dir
du Dépt logiciel, vous intervenez au sein de notre BE ou sur site client sur des projets variés et innovants. Vos
missions porteront sur le dévpt de drivers et de BSP, la conception et le dévpt d'appli. temps réel sur processeurs 16
et 32 bits, la mise en oeuvre de couches de comm. et de protocoles (Flexray,1553,ARINC429,MVB), l'expertise
technique auprès de nos clients. Ingénieur en info. industriel, vous êtes débutant ou avec 1ère exp. (un an stage
inclus) en dévept de log temps réel (C/C++). Connaissance des noyaux(uC/OS-II) ou Os temps réel
(QNX,eCos,VxWorks) est un +. Bon niveau d'anglais exigé. Candidature à - ADENEO [email protected] ou sur www.adeneo.adetelgroup.com
28 août 2007 - Mediane System
Pour les besoins d'un de nos clients dans le domaine de la Télévision numérique, nous recherchons activement 3
ingénieurs afin de prendre en charge le développement d’un module logiciel intégré dans des décodeurs de télévision
numérique. Vous assurez l'architecture générale, la conception détaillée et le développement de nouvelles
fonctionnalités et établissez la documentation associée. Vous prenez également en charge l'intégration et les tests
unitaires d’une librairie dans un décodeur de télévision numérique en environnement temps réel. De formation Bac+5
Ecole d'ingénieur ou Universitaire, vous justifiez d'une expérience de 2 ans minimum en développement temps réel
embarqué et maîtrisez parfaitement les langages C/C++. Vous avez également une expérience réussie en intégration
temps réel et connaissez les principes et normes de la télévision numérique (DVB, MPEG2, ISO 7816 ...). Anglais
impératif.
Miramond Benoît - UCP
7
•
•
•
•
Offres 2008
MISSION :
Vous interviendrez sur les différentes phases du projet : spécification, développement et tests d'applications, validation, documentation et mise en ?uvre.
VOTRE PROFIL :
De formation bac +4/5 (ingénieur ou universitaire) ou bac +2 expérimenté, vous êtes autonome en développement de Systèmes Embarqués et de
développement de Drivers.
Compétences techniques :
- Noyaux temps réel (VxWorks, PSOS, QNX, OSEK...)
- Microcontrôleurs : 68HCxx, 80Cxx, PIC, ...
- Langages : C, C++, Assembleur
- Réseaux : CAN, Ethernet
- Gestion de configuration
ATOS ORIGIN
Date : 04/09/2008DÉVELOPPEUR TEMPS RÉEL EMBARQUÉ C-C++ H/F - CDI Référence : SI-SUDEST-SOPH-DLEC++Sophia Antipolis
Vous travaillez en équipe projet et participez aux différentes phases du cycle de développement de logiciels embarqués pour le compte d'un de nos plus
grands clients. Pour réussir ces projets, nous souhaitons être accompagnés par des collaborateurs à fort potentiel. De formation Bac +4/5, type école
d'ingénieurs ou équivalent universitaire, vous justifiez d'une première expérience en développement temps réel et/ou embarqué. Vous maîtrisez les
langages de programmation C/C++ dans différents systèmes d'exploitation. Idéalement, vous avez des connaissances dans le domaine du traitement du
signal. Vous disposez d'une vision large des technologies et de leur utilisation, savez vous investir et comprenez les problématiques des clients. Ces
atouts vous permettront d'évoluer rapidement au sein de notre groupe. Vous êtes dynamique, avez le sens du service, et appréciez le travail en équipe,
rejoignez nous !
Sous la responsabilité du client, selon votre niveau d'expérience et vos compétences HW et/ou SW, vous pourrez être appelé à intervenir,
En SW sur :
• la rédaction de spécifications,
• la définition d’architectures logicielles,
• la conception et le développement de modules logiciels middleware et/ou applicatifs
• la conception et le développement de drivers tps réel (communication, interface réseaux, ..)
• les tests unitaires,
• l’intégration/validation en environnement temps réel des logiciels développés
En HW sur :
• la rédaction de spécifications,
• la définition d’architectures matérielles,
• la conception et le développement de cartes électroniques analogiques et/ou numériques,
• la programmation de FPGA, DSP et microcontrôleurs,
• la validation/intégration des systèmes électroniques développés
En Micro-Electronique sur :
• la rédaction de spécifications,
• la définition d’architectures,
• le développement d’IPs numériques et/ou Analogiques
• l’intégration/validation d’ASIC, de SoC
• la simulation, la synthèse, l’analyse statique de timing (STA), le P&R, le layout
• la caractérisation de chips
De formation BAC+5, Ecole d’ingénieurs ou Universitaire, vous justifiez d’une expérience de 1 à 5 ans (stage significatif accepté) :
• en conception et développement logiciel, en environnement embarqué (avec ou sans OS temps réel).
• En conception Hardware de cartes électroniques (schématique, CAO, intégration)
• En conception, simulation et validation de FPGA (VHDL, simulateurs, appareils de labo)
• En conception micro-électronique
Vous aimez prendre des responsabilités et savez être autonome dans votre travail.
La maîtrise des langages C, C++, JAVA, assembleur, la connaissance des architectures SW, HW, les microcontrôleurs/processeurs PIC, Coldfire, ARM,
PowerPC, ARC, …, les DSP, les FPGA, le langage VHDL et/ou VERILOG, la CAO électronique.
Les systèmes temps réels, les OS eCOS, Linux, Windows, pSOS, CMX, VxWorks, … sont autant d’atouts indispensables.
Miramond Benoît - UCP
8
Offres d'emploi 2009
INGENIEUR DE DEVELOPPEMENT C EMBARQUE (H/F)
Nous recherchons un ingénieur dynamique pour développer des logiciels embarqués sur nos plateformes.
Nos projets sont principalement orientés vers la monétique, ils mettent en oeuvre des technologies très
variées telles que: cartes à puce, cartes sans contact, réseaux, Linux embarqué, systèmes temps réel et
systèmes propriétaires.
Les développements s'effectuent principalement en C, une connaissance d'autres langages tels que JAVA,
PERL, PHP est appréciée.
Ingénieur développement temps réel h/f
Évry Île-de-France
Entreprise: Aketys
Salaire: Entre 30 et 45 K€
des compétences confirmées dans plusieurs des logiciels suivants: UML, C, C++, assembleur, OS temps
réel (Linux... pour participer à des projets de développement temps réel. Dans une équipe projet, vous
interviendrez... sur le développement d'un logiciel embarqué sur cible (microcontrôleur,
microprocesseur) pour des nouveaux produits
Expérience: Vous justifiez d'une expérience d'au moins 3 ans en développement d'applications temps réels
embarqués.
Conditions: Formation: Issu d'Ecole d'Ingénieur Bac + 5 ou plus
Contrat de travail: Durée indéterminée
...
Miramond Benoît - UCP
9
Objectif de la formation
1. Savoir développer une application embarquée et
temps réel
1. Comprendre les principes de l’exécutif d’un
système embarqué
1. Savoir calculer l’ordonnancabilité d’une
application temps réel
1. Comprendre les mécanismes mise en jeu dans le
matériel
Miramond Benoît - UCP
10
Plan du Chapitre I (2h)
1. Introduction à l’embarqué
1. Architecture d’un système embarqué
1. L’embarqué et le temps-réel
1. Le RTOS, une solution acquise
Miramond Benoît - UCP
11
1) Introduction à l’embarqué
Miramond Benoît - UCP
12
Définition :
qu’est ce qu’un système
embarqué
Miramond Benoît - UCP
13
Miramond Benoît - UCP
14
Marché de l’embarqué
• Augmentation de la densité de calcul des
processeurs selon la loi de Moore (perf, conso,
surface…)
=> Explosion du marché informatique
=> Baisse des prix
=> Emergence de l’informatique embarquée
Miramond Benoît - UCP
15
Systèmes embarqués
Définition :
Un système électronique est embarqué ou enfoui
lorsqu’il est un élément constitutif d’un système
plus complexe pour lequel il rend des services bien
précis (contrôle, surveillance, communication…).
Il est constitué de parties matérielles et logicielles qui
sont conçues spécifiquement pour réaliser une
fonction dédiée.
Miramond Benoît - UCP
16
Domaines d’application
• Applications utilisateur
– Jeux, bureautique, services, multimédia
– Téléphones, PDA, lecteurs MP3, set top box…
• Contrôle
– Contrôle-commande (automobile, usines, robots…)
• Traitement d’images
– Tracking, reconnaissance …
• Traitement du signal
– Radar, sonar, avionique
– Traitement de grosses quantités de données
• Network computing
– Téléphonie, routeur…
• Autres, … à venir
Miramond Benoît - UCP
17
Exemple - Netgear DG632 ADSL
hon decoupling electronics (for ADSL).
Modem/router
colour LED (displaying network status).
e colour LED (displaying USB status).
processor, a TNETD7300GDU, a member of Texas Instruments' AR7 prod
G (Joint Test Action Group) test and programming port.
, a single ESMT M12L64164A 8 MB chip.
memory, obscured by sticker.
r supply regulator.
power supply fuse.
er connector.
et button.
rtz crystal.
rnet port.
rnet transformer, Delta LF8505.
721B ethernet PHY transmitter receiver.
B port.
phone (RJ11) port.
Miramond Benoît - UCP
18
Exemple – Téléphone mobile
Miramond Benoît - UCP
19
Caractéristiques spécifiques des
systèmes embarqués
Les caractéristiques principales d’un système
électronique embarqué sont :
• Autonome. Une fois enfouis dans l’application ils ne
sont (le plus souvent) plus accessibles
• Temps réel. Les temps de réponses de ces
systèmes sont aussi importants que l’exactitude des
résultats
• Réactif. Il doivent réagir à l’arrivée d’informations
extérieures non prévues
• Contraints. Leurs ressources (calcul, batterie,
mémoire, surface…) sont souvent limitées
Miramond Benoît - UCP
20
2) Architecture d’un système
embarqué
Miramond Benoît - UCP
21
Adéquation Application-Architecture
(AAA)
• L’architecture du système dépend directement de
l’application :
– Caractéristiques du traitement à réalisé : besoins en puissance
de calcul, données à manipuler, …
– Environnement applicatif : la télévision numérique sur téléphone
est différente d’un décodeur TNT
• Il faut donc mettre en adéquation l’application et
l’architecture
– Optimisation du code (voir accélération matérielle de certaines
parties)
– Dimensionnement de l’architecture pour respecter les
contraintes non-fonctionnelles
• On se préoccupe donc beaucoup plus des aspects
architecturaux dans l’embarqué
Miramond Benoît - UCP
22
Architectures embarqués
Besoins
Enfoui
Léger
RAM
< 10 Ko
< 4Mo
ROM/Flash
~ 100 Ko
< 2Mo
Processeurs
PIC
NeC
Fujitsu
Freescale
SoC
Pas de cache
u-contrôleur
(automobile,
avionique...)
Matériel sup
Exemple
Moyen
Haut de
gamme
DragonBall
68k
ColdFire
ARM
DSP
Haute
disponib
ilité
2-8 Mo
8-32 Mo > 100
Mo
2-4 Mo
4-16 Mo > 100
Mo
MIPS
MIPS
PowerP
C
ColdFire ARM
ARM
PowerP X86
PowerPC C
x86
Pas de MMU
SoC
PDA, tel,
machine à
laver
Routeur,
Wifi,
capteurs
Video
≅ PC
controlle
r
Console Serveur
Miramond Benoît - UCP
23
Architecture représentative
d’un système embarqué
Miramond Benoît - UCP
24
Architectures distribuées
2005 : Une automobile de classe haute
contient une centaine de microprocesseurs
(de 8 à 32 bits)
…
Miramond Benoît - UCP
25
Exemple – Automobile (Laguna)
[Renault]
Miramond Benoît - UCP
26
Le microprocesseur au centre
2005 : Une automobile de classe haute contient une
centaine de microprocesseurs (de 8 à 32 bits)
• Matériel disponible sans conception
• Développement logiciel rapide
• Flexible
• Bas coût induit par les grandes quantités vendues
• Bénéficier de la dernière technologie de fabrication
• Bénéficier de l’optimisation de grandes équipes de
concepteurs
Miramond Benoît - UCP
27
Quel type de processeur?
• Processeurs généraux
– Fonctionnalités multiples
– Surdimensionnés, fréquence élevée, conso énorme
• Processeurs embarqués
– Peuvent être customisés pour une application
– Fréquence et conso réduites
• Processeurs de traitement du signal (DSP)
– Traitements intensifs (voix, image…)
– Téléphones portables
• SoC
– Microcontrôleurs, système multi composants (proc, ASIC, …)
– Systèmes multi-processeurs
Miramond Benoît - UCP
28
MMU ou pas ?
• Rôle de la MMU hérité de l'architecture Intel
386
– Protection mémoire entre espaces d'adressage
des processus
– Gestion de la mémoire virtuelle
• Encombrement important dans l'architecture
processeur
• Latence plus élevée pour l'exécution des
programmes
• OS plus gourmand en empreinte mémoire
Miramond Benoît - UCP
29
Le marché du processeur embarqué
• 6 % des processeurs vendus sont destinés au marché des PC

85 % avec un système d’exploitation (OS) windows
• 94 % des processeurs vendus sont destinés au marché de l’embarqué

95% avec un OS ouvert
Miramond Benoît - UCP
30
Roadmap semi-conducteurs
Miramond Benoît - UCP
31
Différence avec
l’informatique générale
• Dans les systèmes embarqués, les tâches
concurrentes sont définies statiquement
• Un système est conçu pour un nombre
limité de fonctionnalités
• Elles ne changent pas avec le temps
• Cela autorise de dimensionner au mieux
et d’optimiser le système en fonction de
ses besoins
Miramond Benoît - UCP
32
Différence avec
l’informatique générale
Informatique :
• Processeur standard
•
•
•
•
– Multiples unités fonctionnelles
(flottant, exécution
désynchronisée, prédiction…)
– Fréquence élevée (> GHz)
– Consommation électrique
élevée
– Chaleur
– Taille
MMU (mémoire virtuelle)
OS
Cache
Grand nombre de
périphériques
Embarqué :
• Processeur dédié (contrôleur)
–
–
–
–
–
Architecture adaptée
Vitesse faible (~200 MHz)
8-32bits : mémoire limitée
Basse consommation
Petite taille, grand volume =>
faible coût
• Processeur DSP (traitements)
– Très puissants
• Qqs Mo de mémoire
• RTOS
• Pas de cache
Miramond Benoît - UCP
33
3) Systèmes embarqués
temps réel
Miramond Benoît - UCP
34
Systèmes embarqués temps réel
Systèmes embarqués
temps réel
Systèmes embarqués
Systèmes temps réel
Miramond Benoît - UCP
35
Systèmes temps réel
Définition
 Ce sont des systèmes liés au contrôle de
procédés du monde (temps) réel.
 L’exécution de traitements dans ces systèmes
doit terminer avant une date butoir appelée
échéance définie par la vitesse d’évolution de
l’environnement réel au-delà de laquelle les
résultats ne sont plus valides.
 Exemple critique : le contrôleur de frein d’une
voiture, la sortie du train d’atterrissage…
Miramond Benoît - UCP
36
Systèmes embarqués
temps réel
 Exemples :
 Hard real time :
 Pilotage automatique de la ligne 14
 Dispositif de surveillance d’une centrale
nucléaire
 Système de guidage de missiles
 Régulateur de vitesse en automobile
 Soft real-time:
 Téléphone portable
 Lecteur DVD, électroménager
Miramond Benoît - UCP
37
Première définition … cf. Chapitre 2
• Système temps-réel dur/stricte (hard real-time)
Le non-respect des échéances peut avoir des
conséquences graves sur le fonctionnement du système ou
sur son environnement (auto-pilotage, freinage, assistance
médicalisée…).
Les échéances ne doivent jamais être dépassées.
• Système temps-réel mou (soft real-time)
Le non-respect des échéances ralentit le système sans
conséquences graves (billetterie automatique…).
Le système doit répondre au mieux, le plus rapidement
possible. Notion de QoS (Qualité de service)
Miramond Benoît - UCP
38
Systèmes multi-périodes
• La plupart des systèmes embarqués sont dit
mutlirate ou multi-période
– Les données sont capturées à un certain rythme (du
monde réel) : tour de roue de l’automobile, fps d’une
caméra, …
– Les traitements sur ces données ne sont pas
forcément de même granularité (1 pour 64)
– Différents traitements peuvent intervenir de manière
indépendante (périodique et apériodique)
– Les actionneurs fonctionnent à une fréquence
différente des capteurs
Miramond Benoît - UCP
39
Systèmes temps réel
• Il ne s’agit pas de rendre le résultat le plus
rapidement possible, mais simplement à temps.
• L’échelle de temps de l’échéance peut varier
d’une application à l’autre
– microseconde en contrôle radar
– milliseconde pour la synchronisation image/son
(mpeg)
– minute pour les distributeurs automatiques
• Tous peuvent être temps réel souples ou durs
Miramond Benoît - UCP
40
La notion/modélisation du temps
est fondamentale
Evènemen
Synchrone
t simple
Evènemen
ts
multiples
Entrées
Evènemen
t simple
Synchrone
Système
temps réel
Asynchro
ne
Asynchro
ne
Contraintes
temporelles
Miramond Benoît - UCP
Evènemen
ts
multiples
Sorties
41
Déterminisme
• Pour être en mesure de respecter les
contraintes temporelles associées aux
exécutions de programmes, le système
(architecture, application) est conçu et
dimensionné de manière à réduire tout
indéterminisme :
– Simplifier les méthodes de gestion matérielle (os)
– Ordonnancer les tâches les plus urgentes
– Développer du matériel dédié aux types de calculs
réalisés
– Supprimer les caches
• Le temps de réponse du système est garantie!!!
Miramond Benoît - UCP
42
Concevoir pour optimiser
Rendre l’exécution déterministe
• En temps d’exécution
• En taille mémoire utilisée
• En consommation d’énergie
Optimisations :
• Minimiser les communications
• Minimiser les synchronisations
• Utilisation des propriétés de la théorie des
graphes pour manipuler l’application et son
implantation logicielle et/ou matérielle
Miramond Benoît - UCP
43
Les défis de conception de
l’embarqué
• Concevoir/Produire vite le logiciel et le matériel
• À bas coût
• Répondre aux contraintes non fonctionnelles (taille,
performance, consommation, sécurité, tolérance…)
• Appréhender la complexité (matérielle, logicielle et
intergicielle)
• Prévoir la réutilisation du système pour plusieurs
générations
Un compromis difficile à respecter (problème
multicritères):
coût / performances / consommation
Miramond Benoît - UCP
44
L’embarqué – un environnement
contraint
On ne travaille donc pas en embarqué comme on
travaille (développe) su PC !!
• Performances
• Faible Consommation - autonomie
• Peu de mémoire
• Faible encombrement
• Poids réduit
• …
Il faut penser de manière beaucoup plus globale (AAA)
Miramond Benoît - UCP
45
Résumé
• Les systèmes embarqués
– Sont en plein essor commercial
– et sont donc conçus à base de processeurs
programmables,
– Ce sont des systèmes autonomes,
– le plus souvent temps réel.
• La conjonction de ces facteurs conduit à des
contraintes d’ordonnancement sévères en
terme de
– Prédictibilité
– Taille mémoire
Miramond Benoît - UCP
46
4) L’OS temps réel,
une solution acquise
Miramond Benoît - UCP
47
iveau 5Couche des langages d’application
Traduction (compilateur)
iveau 4Couche du langage d’assemblage
Traduction (assembleur)
iveau 3Couche du système d’exploitation
Interprétation partielle (OS)
Couche architecture du jeu d’instruction
iveau 2
(ISA)
Interprétation (microprogramm
ou exécution directe (cablé)
iveau 1
Couche microarchitecture
iveau 0
Matériel
Miramond
Benoît - UCP
Couche logique
numérique
48
Quels OS retrouvent-on dans
l’embarqué ?
• Windows CE-mobile
• Linux (free) et ces déclinaisons embarquées ou RT
– RTlinux
– BlueCatLinuxRT
– uC-linux
– RTAI …
• OS propriétaire (home-made)
– QNX neutrino
– VXWorks
– lynxOS
– uC/OS-II
– …
Miramond Benoît - UCP
49
La part des OS dans l'embarqué
(source : linuxdevice.com)
Miramond Benoît - UCP
50
Quelle différence entre OS et
RTOS ?
• Le système d’exploitation temps-réel
(RTOS) est :
– Déterministe : la durée de chaque service est
déterminée et ne change pas avec les
données.
– Prévisible : la durée de chaque service est
connue.
– Léger
: le code de l’OS prend peu de
mémoire (empreinte mémoire)
– Dédiée, modulable : il fournit des services
dédiées selon les besoins de l’application
Miramond Benoît - UCP
51
Le succès de Linux en embarqué
•
•
•
•
•
•
Libre (gratuit)
Open-source
Différentes distributions
Stable
Communauté importante (aide web)
Compilateur C associé gratuit (gcc)
Miramond Benoît - UCP
52
Comment rendre linux
temps réel ?
• Distributions TR
– Montavista
– LynuxWorks
– Redhat
– Ubuntu
• Patch RT (CONFIG_PREEMPT_RT) de Linux :
– Scheduler
– Interruption préemptibles (thread-IRQ)
– Horloge système plus précise (nanosec)...
– sur une certaine plate-forme, le temps de latence de réponse à une
interruption ne sera jamais supérieur à 20µs, par exemple
– http://rt.wiki.kernel.org/index.php/Main_Page
• Micro-noyau
– Xenomai
– Windriver RT Linux (RTAI)
Miramond Benoît - UCP
53
Fonctionnalités TR du patch
config_preempt_rt
Miramond Benoît - UCP
54
Exemple du micro-noyau
Xenomai
Miramond Benoît - UCP
55
Ordonnanceur 2.6
Grande nouveauté : Ordonnanceur en O(1)
2 types de process
Process non-Temps Réel : chaque process se voit attribuer une valeur, appelée nice value, qui détermine la priorité
et le temps d’exécution – ce temps d’exécution est appelé timeslice et correspond au temps maximum qu’un
process peut rester en exécution avant de « laisser la place » à un autre. La valeur de nice est comprise entre –20 et
19 inclus, 0 étant la valeur par défaut et –20 correspond à la priorité la plus haute et au timeslice le plus élevé
Process Temps Réel : chaque process se voit attribuer une priorité comprise entre 1 et 99 inclus – les process nonTemps Réel se voient attribuer également cette priorité mais avec la valeur 0. 99 étant la priorité la plus élevée, on
comprend alors pourquoi un process Temps Réel sera toujours prioritaire devant un autre non-Temps Réel.
Pour les process Temps Réel, il existe deux politiques d’ordonnancement :
SCHED_FIFO : le process Temps Réel restera en exécution tant qu’aucun autre process Temps Réel de priorité
supérieure strictement ne sera prêt ou tant qu’il ne passera pas à l’état bloqué. S’il est préempté, il reste tout de
même en tête de la liste d’exécution des process de même priorité que lui. C’est donc lui qui sera de nouveau
exécuté quand le process de priorité supérieure aura terminé son exécution. Idem s’il change de priorité, il sera
placé en tête de la liste des process exécutables ayant cette priorité. Il ne passe en fin de cette liste que par appel
explicite de sa part à une certaine fonction.
SCHED_RR : la politique est identique en tout point à la précédente, exception faite à la présence d’un timeslice
pour les process de même priorité. Ainsi, s’il n’y a pas de process de plus forte priorité pour préempter celui en
cours d’exécution, au bout d’un certain temps ce dernier sera placé en queue de la liste des process de même
priorité.
Miramond Benoît - UCP
56
Trois tests pour les linux RT
• Latence d'une tâche de forte priorité
– Cyclic_test
• Inversion de priorité (cf. cours suivant)
– classic_pi
• Préemption et latence de l'ordonnanceur
– preempt_test
• Temps d'accès noyau
• ...
http://www.kernel.org/pub/linux/kernel/people/tglx/rt-tests/rt-tests-0.49.t
Miramond Benoît - UCP
57
Le bench cyclic_test
sur un système non Temps Réel :
$> ./cyclictest –a –t –n –p99
T:0( 3431)
P:99 I:1000 C: 100000 Min: 5 Act: 10 Avg:
T: 1 ( 3432)
P:98
I:1500
C: 66934
Min: 4
Act: 10
Avg: 17
14 Max:
39242
Max: 39661
Ici, le résultat du même test sur un système
Temps Réel :
$> ./cyclictest –a –t –n –p99
T: 0 ( 3407) P:99 I:1000 C: 100000 Min: 7 Act:10 Avg: 10 Max:
T: 1 ( 3408) P:98 I:1500 C: 67043
Min: 7
Act:
8
Miramond Benoît - UCP
Avg: 10 Max:
18
22
58
Latence d'ordonnancement
Histogrammme de
répartition des apparitions
en fonction de leur latence
Miramond Benoît - UCP
59
Quels RTOS seront étudiés
dans la formation ? (1)
• uC-linux (« You See Linux », Micro
Controller Linux)
– 1998, portage à partir de linux 2.0
•
•
•
•
Motorola 68000, Colfire
Intel i960
Nios
ARM7
– Pas de MMU, pas mémoire virtuelle
– Taille noyau < 512 Ko
– Pile TCP/IP
Miramond Benoît - UCP
60
Quels RTOS seront étudiés
dans la formation ? (2)
• uC/OS-II (Micro Controller Operating
System)
– 1992 (J. Labrosse)
– 40 processeurs différents (8-64 bits)
– Portable
– ROMable
– Scalable (modulaire)
– Préemptif
– Déterministe
– Pas de MMU
Miramond Benoît - UCP
61
Couche des langages d’application
Workstation
Couche du langage d’assemblage
Couche du système d’exploitation
Couche architecture du jeu d’instruction
(ISA)
télécharger
Cible
embarquée
Couche microarchitecture
Miramond
Benoît - UCP
Couche logique
numérique
62
Plan général des séances de CM (2h)
I.
II.
III.
IV.
V.
Introduction à l’embarqué
Introduction au temps-réel (CM/TP)
Ordonnancement temps-réel
Mécanismes de synchronisation
Conception logicielle en environnement
embarqué
VI. Organisation générale d’un RTOS
VII. Le processus dans la machine
VIII. Cas d’étude d’un RTOS : uC/OS-II
IX. Carte Altera pour l’embarqué
Miramond Benoît - UCP
63
Bibliographie
Temps réel et embarqué :
• MicroC/OS-II, The Real-Time Kernel. J. Labrosse
• Hard Real-Time Computing Systems: Predictable
Scheduling Algorithms and Applications (Real-Time
Systems Series) by Giorgio C. Buttazzo (Hardcover Oct 1, 2004)
• Real-Time Concepts for Embedded Systems by Qing
Li and Caroline Yao (Paperback - Jul 2003)
• Linux embarqué, 2006
Aller plus loin :
• Embedded Systems Handbook. R. Zurawski and all
The Art of Designing Embedded Systems. J. Ganssle
• Real-Time Systems by Jane W. S. Liu (Hardcover Jun 15, 2000)
Miramond Benoît - UCP
64