Lepton est un système d’exploitation open source dont la structure apporte non seulement des bénéfices en terme de facilité de développement mais également
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
1. Rennes – 20 mai 2014
Lepton Système d’exploitation
Temps réel pour l’embarqué
Préparé par:
Philippe Le Boulanger: p.le-boulanger@o10ee.com
Nicolas Bravin:n.bravin@o10ee.com
http://o10ee.com/
http://code.google.com/p/lepton/
2. Rennes – 20 mai 2014
Lepton
• C'est un système d'exploitation temps-réel pour
des cibles embarquées aux ressources et
puissances limitées.
• Cibles visées: Micro-contrôleurs Cortex M3/M4,
ARM7 et ARM9… .
• 3 axes de développements:
• 1. Ressources matérielles limitées/basse
consommation.
• 2. Réutilisation/"softwarisation".
• 3. Environnement de développement/mise au point.
5. Rennes – 20 mai 2014
Chauvin-Arnoux
Présentation
• Société fondée en 1893, spécialisée dans le
développement d instruments de mesure.
• Chauvin-Arnoux group : 6 centres de R&D, 6
sites de production:
• Pôle tests et mesures (Chauvin-Arnoux, Metrix).
• Pôle équipements électriques (Enerdis).
• Pôle équipements thermiques (Pyro-contrôle)
• Service réalisations spéciales (Enerdis).
6. Rennes – 20 mai 2014
Chauvin-Arnoux
Les produits
Testeur RCD Micro-ohmmètre
Mutltimètre 100000 points
Testeur Multifonctions
Répéteur météo
Oscilloscope
8. Rennes – 20 mai 2014
Architecture firmware
Code des mécanismes de
gestion de périphériques
• Extraction du code de
l application ou du code de
gestion de périphériques
difficile voir impossible.
• Conséquence: réutilisation
ou évolution compliquée.
9. Rennes – 20 mai 2014
Chauvin-Arnoux
la standardisation
• Une démarche de standardisation du logiciel et
matériel est en route. L objectif: faciliter la mise
au point des produits et raccourcir les délais de
développement.
• Pour y parvenir, il est nécessaire de créer des
modules logiciels et matériels standardisés :
des « briques ».
10. Rennes – 20 mai 2014
Chauvin-Arnoux
la standardisation
processeur
matériels
d interaction
avec
l utilisateur
matériels de
stockage de
données.
matériels de
communication
matériels
mesures
• écran
• clavier
• commutateur
• …
• eeprom
• flash (nor, nand)
• sdcard
• …
• rs232,rs485
• ethernet
• wifi
• zigbee
• usb
• …
• traitement
analogique
• traitement
numérique (DSP)
11. Rennes – 20 mai 2014
De nouveaux besoins
• De plus en plus de fonctionnalités évoluées
sont exigées «Softwareisation».
➡ plus de moyen de communication: Ethernet, USB,
wifi, Bluetooth (4.0 BLE), zigbee, Bus CAN, ...
➡ Plus de protocoles qu ils soient informatiques
(TCP/UDP/IP V4 et V6, FTP, HTTP avec du
cgi, ...), ou industriels (Ethercat, profinet,...).
➡ Interface graphique.
• Coût croissant de leurs implémentations.
12. Rennes – 20 mai 2014
Pourquoi un système
d exploitation ?
• Il permet :
• De s abstraire des ressources matérielles et facilite
ainsi le portage.
• D accueillir des fonctionnalités évoluées et de les
intégrer dans une architecture homogène.
• De manipuler aisément ces fonctionnalités au
moyen de fonctions génériques: périphériques d e/
s, aspects temps-réel et multitâche.
13. Rennes – 20 mai 2014
Architecture firmware
structurée
traitement
des
données
gestion mesure
gestion écran
gestion
sdcard
gestion
clavier
gestion
ethernet
gestion
rs232
traitement
des
données
gestion mesure
gestion écran
gestion
sdcardgestion
clavier gestion
ethernet
gestion
rs232
système d exploitation
14. Rennes – 20 mai 2014
Architecture firmware
structurée
Code des mécanismes de
gestion de périphériques
Code API gestion des flux de données
Code
Pile
Réseau
Code
Système
de
fichiers
Code générique de gestion des
pilotes de périphériques d e/s
Code de l application
Code pilote
UART
Code pilote
Ethernet
Code pilote
flash nand
Systèmedexploitation
15. Rennes – 20 mai 2014
Architecture firmware
structurée
Code de l application A Code de l application B
Code API gestion des flux de données
Code
Pile
Réseau
Code
Système
de
fichiers
Code générique de gestion des
pilotes de périphériques d e/s
Code pilote
UART
Code pilote
Ethernet
Code pilote
flash nand
Systèmedexploitation
BSP
A
Code API gestion des flux de données
Code
Pile
Réseau
Code
Système
de
fichiers
Code générique de gestion des
pilotes de périphériques d e/s
Systèmedexploitation
Code pilote
UART
Code pilote
Ethernet
Code pilote
flash nand
BSP
A
réutilisation
évolution ou nouveau développement
réutilisation
Code pilote
UART
Code pilote
Ethernet
Code pilote
flash nand
BSP
B
ou
intégration nouveau
BSP
16. Rennes – 20 mai 2014
lepton objectifs
• Accueil de briques logicielles.
• Réutilisation de ces briques logicielles.
• Amélioration de leur stabilité.
• Disponibilité de solutions sur étagère.
• Synergie entre les projets et les équipes.
18. Rennes – 20 mai 2014
Lepton Architecture
• Abstraction vis-à-vis du
noyau temps réel.
• Gestion pilote de
périphérique et streams.
• «Piles» réseau
• Systèmes de fichiers.
• Appels et fonctions
système POSIX.
• Pseudo processus.
processus shell
pthread
principal
processus httpd
pthread
principal
POSIX
i2c eeprom
module
vfs/file system interface
vfs
kernel/vfs interfaces
rootfs
kernel i/o interface
kernel mechanism
LCD driver
kalkal
FAT yaffs
i2c
driver
FTL
module
flash driver
ethernet driver
lwip
IP
stack
uIP
IP
stack
PPP
module
uart driver
19. Rennes – 20 mai 2014
Noyau temps réel
• Lepton utilise un noyau temps
réel sans le modifier.
• embOS Segger
• eCos
• freeRTOS
• Le noyau temps réel apporte les
services suivants:
• Gestion de tâches:
ordonnancement, synchronisation
(mutex,semaphore), évènements.
• Gestion des interruptions
kalkal
processus shell
pthread
principal
processus httpd
pthread
principal
POSIX
i2c eeprom
module
vfs/file system interface
vfs
kernel/vfs interfaces
rootfs
kernel i/o interface
kernel mechanism
LCD
driver
FAT yaffs
i2c
driver
FTL
module
flash driver
ethernet driver
lwip
IP
stack
uIP
IP
stack
PPP
module
uart driver
20. Rennes – 20 mai 2014
Pilote de périphérique
• Modèle de pilote de
périphérique (type bloc et
caractère)
• Streams
• Visible dans le système de
fichiers: /dev
processus shell
pthread
principal
processus httpd
pthread
principal
POSIX
vfs/file system interface
vfs
kernel/vfs interfaces
rootfs
kernel mechanism
kalkal
FAT yaffs
lwip
IP
stack
uIP
IP
stack
i2c eeprom
module
kernel i/o interface
LCD driver
i2c
driver
FTL
module
flash driver
ethernet driver PPP
module
uart driver
21. Rennes – 20 mai 2014
Pile protocolaire IP
• LWIP v1.3.2
• support IPv4 (IPv6
prochainement)
• TCP/UDP
• uIP du projet Contiki
• support IPv4 et IPv6 (Pas de
dual stack)
• TCP/UDP
• Accessible par:
• Socket BSD.
• read() et write().
lwip
IP
stack
uIP
IP
stack
processus shell
pthread
principal
processus httpd
pthread
principal
POSIX
kernel mechanism
kalkal
vfs/file system interface
vfs
kernel/vfs interfaces
rootfs FAT yaffs
i2c eeprom
module
kernel i/o interface
LCD driver
i2c
driver
FTL
module
flash driver
ethernet driver PPP
module
uart driver
22. Rennes – 20 mai 2014
Système de Fichiers
• Le système de fichiers est un
élément central dans le
fonctionnement de ce type
d architecture
• VFS Virtual File System
✓ rootfs
✓ ufs
✓ kofs
✓ FAT
✓ YAFFS
vfs/file system interface
vfs
kernel/vfs interfaces
rootfs FAT yaffs
processus shell
pthread
principal
processus httpd
pthread
principal
POSIX
i2c eeprom
module
kernel i/o interface
kernel mechanism
LCD
driver
kalkal
i2c
driver
FTL
module
flash driver
ethernet driver
lwip
IP
stack
uIP
IP
stack
PPP
module
uart driver
24. Rennes – 20 mai 2014
POSIX
• POSIX standardise les appels systèmes
et fonctions du système d exploitation.
• Elle permet la réutilisation de briques
logicielles entre systèmes d exploitation
respectant ce standard.
25. Rennes – 20 mai 2014
Pseudo Processus
• Il permet:
• une décomposition en
«brique» de traitement
élémentaire.
• l utilisation de certains
mécanismes de l approche
UNIX.
• Pas de «relogement» en
mémoire.
• Pas d espace mémoire
réservé.
processus shell
pthread
principal
processus httpd
pthread
principal
POSIX
i2c eeprom
module
vfs/file system interface
vfs
kernel/vfs interfaces
rootfs
kernel i/o interface
kernel mechanism
LCD driver
kalkal
FAT yaffs
i2c
driver
FTL
module
flash driver
ethernet driver
lwip
IP
stack
uIP
IP
stack
PPP
module
uart driver
33. Rennes – 20 mai 2014
Empreinte mémoire
• Empreinte mémoire (Cortex M3):
• minimum: 150KB de code 27KB RAM
• Shell et autres utilitaires comme ls, stty, ps…
• POSIX (150 Fonctions et appels système
supportés)
• VFS et systèmes de fichiers: rootfs, ufs, kofs.
• Pilote de périphérique (Liaisons séries)
• Lignes de code
• 250 000 lignes de code
34. Rennes – 20 mai 2014
Empreinte mémoire
• Echo d un paquet UDP sur
un socket BSD
• Pile uIP IPv6
• Connexion PPP
• Liaison série à 115200
Bauds
• Cible: Cortex M3 512KB
Flash
• Performance: 7% de CPU
avec utilisation du lien PPP
à 98%
36. Rennes – 20 mai 2014
Exemples de produits
utilisant Lepton
Testeur RCD Micro-ohmmètre
Testeur Multifonctions
Répéteur météo
Oscilloscope
37. Rennes – 20 mai 2014
Évolution et réutilisation
lepton v1.0 v2.0 v3.0 v4.0
Arch 16bits
Arch 16bits
Arch 32bits
Arch 32bits Arch 32bits
Plusieurs appareils
en cours de
développement…
38. Rennes – 20 mai 2014
Exemple d organisation
du développement
svn mantis
application
ca6116
cvs mantis
serveur
noyau
équipe
Metrix
svn mantis
application
handscope
équipe
Chauvin-Arnoux
Pôle test et mesure
svn mantis
application
FREMM équipe
Enerdis
Réalisation spéciale
équipe
transversale
Développement lepton
40. Rennes – 20 mai 2014
Briques open source
Environnement de développement
Linux
Simulation
OpenOCD + JTAG
Linux
41. Rennes – 20 mai 2014
Briques open source
réutilisées dans lepton
Mongoose Web Server
FTP server Troll-FTPd for eCos
Nano-X Microwindows
FLNX: FLTK pour Nano-X
eCos noyau temps réel
42. Rennes – 20 mai 2014
Lepton
en Open Source
Noyau lepton: structure
«officielle» d intégration
et de développement
Entreprises
Organismes/laboratoires
de recherche
Communauté
open source
44. Rennes – 20 mai 2014
Résumé
• Lepton met à disposition des concepts avancés que
l on retrouve sur des systèmes d exploitation plus
volumineux.
• Il permet de faire face aux besoins de
fonctionnalités évoluées (communication, interface
utilisateur, stockage).
• Il est basé sur une architecture modulaire avec des
interfaces et mécanismes standardisés qui offrent
une plus grande souplesse de réutilisation et de
portage.
• Il est disponible en open source.
46. Rennes – 20 mai 2014
Bien commencer !
http://code.google.com/p/lepton/
http://code.google.com/p/lepton/source/browse/docs/INSTALL
http://code.google.com/p/lepton/source/browse/docs/START
http://code.google.com/p/lepton/source/browse/docs/AVAILABLE_POSIX
47. Rennes – 20 mai 2014
Prochaines évolutions
• Plus grande intégration dans un environnement
de développement.
• Sécurité/sureté: Protection mémoire MPU, … .
• Gestion avancée de la consommation
énergétique: Tickless,… .
• Plus de micro-contrôleurs supportés.
• «Véritable» processus (avec du XIP).
• Développement d un noyau temps réel dédié.
• Utilisation de LLVM
• …
48. Rennes – 20 mai 2014
Merci de votre attention.