Rennes – 20 mai 2014
Lepton Système d’exploitation
Temps réel pour l’embarqué
Préparé par:
Philippe Le Boulanger: p.le-bou...
Rennes – 20 mai 2014
Lepton
•  C'est un système d'exploitation temps-réel pour
des cibles embarquées aux ressources et
pui...
Rennes – 20 mai 2014
Qu’est-ce que c’est ?
Rennes – 20 mai 2014
Lepton
๏ Historique
๏ Architecture interne
๏ Architecture firmware
๏ Empreinte mémoire
๏ Exemples
๏ O...
Rennes – 20 mai 2014
Chauvin-Arnoux
Présentation
•  Société fondée en 1893, spécialisée dans le
développement d instrument...
Rennes – 20 mai 2014
Chauvin-Arnoux
Les produits
Testeur RCD Micro-ohmmètre
Mutltimètre 100000 points
Testeur Multifonctio...
Rennes – 20 mai 2014
Architecture firmware
spaghetti
traitement
des
données
gestion mesure
gestion écran
gestion
sdcard
ge...
Rennes – 20 mai 2014
Architecture firmware
Code des mécanismes de
gestion de périphériques
•  Extraction du code de
l appl...
Rennes – 20 mai 2014
Chauvin-Arnoux
la standardisation
•  Une démarche de standardisation du logiciel et
matériel est en r...
Rennes – 20 mai 2014
Chauvin-Arnoux
la standardisation
processeur
matériels
d interaction
avec
l utilisateur
matériels de
...
Rennes – 20 mai 2014
De nouveaux besoins
• De plus en plus de fonctionnalités évoluées
sont exigées «Softwareisation».
➡ p...
Rennes – 20 mai 2014
Pourquoi un système
d exploitation ?
• Il permet :
• De s abstraire des ressources matérielles et fac...
Rennes – 20 mai 2014
Architecture firmware
structurée
traitement
des
données
gestion mesure
gestion écran
gestion
sdcard
g...
Rennes – 20 mai 2014
Architecture firmware
structurée
Code des mécanismes de
gestion de périphériques
Code API gestion des...
Rennes – 20 mai 2014
Architecture firmware
structurée
Code de l application A Code de l application B
Code API gestion des...
Rennes – 20 mai 2014
lepton objectifs
• Accueil de briques logicielles.
• Réutilisation de ces briques logicielles.
• Amél...
Rennes – 20 mai 2014
Lepton
๏ Historique
๏ Architecture interne
๏ Architecture firmware
๏ Empreinte mémoire
๏ Exemples
๏ O...
Rennes – 20 mai 2014
Lepton Architecture
• Abstraction vis-à-vis du
noyau temps réel.
• Gestion pilote de
périphérique et ...
Rennes – 20 mai 2014
Noyau temps réel
•  Lepton utilise un noyau temps
réel sans le modifier.
• embOS Segger
• eCos
• free...
Rennes – 20 mai 2014
Pilote de périphérique
•  Modèle de pilote de
périphérique (type bloc et
caractère)
•  Streams
•  Vis...
Rennes – 20 mai 2014
Pile protocolaire IP
• LWIP v1.3.2
• support IPv4 (IPv6
prochainement)
• TCP/UDP
• uIP du projet Cont...
Rennes – 20 mai 2014
Système de Fichiers
• Le système de fichiers est un
élément central dans le
fonctionnement de ce type...
Rennes – 20 mai 2014
POSIX
POSIX
processus shell
pthread
principal
processus httpd
pthread
principal
i2c eeprom
module
vfs...
Rennes – 20 mai 2014
POSIX
• POSIX standardise les appels systèmes
et fonctions du système d exploitation.
• Elle permet l...
Rennes – 20 mai 2014
Pseudo Processus
• Il permet:
• une décomposition en
«brique» de traitement
élémentaire.
• l utilisat...
Rennes – 20 mai 2014
Pseudo processus
0
1
2
3
4
5
…
10
11
…
table des descripteurs du processus
pthread
principal
pthread
...
Rennes – 20 mai 2014
Lepton
๏ Historique
๏ Architecture interne
๏ Architecture firmware
๏ Empreinte mémoire
๏ Exemples
๏ O...
Rennes – 20 mai 2014
Architecture firmware
fichier de configuration
.XML
sources lepton
sources applications
mklepton
fich...
Rennes – 20 mai 2014
Architecture firmware
le shell
Rennes – 20 mai 2014
Architecture firmware
Exemple 1
processus 2
pthread
principal
application /usr/sbin/lsh
0
1
entrée st...
Rennes – 20 mai 2014
Architecture firmware
Exemple 2
processus 2
pthread
principal
application /usr/sbin/lsh
0
1
entrée st...
Rennes – 20 mai 2014
Lepton
๏ Historique
๏ Architecture interne
๏ Architecture firmware
๏ Empreinte mémoire
๏ Exemples
๏ O...
Rennes – 20 mai 2014
Empreinte mémoire
• Empreinte mémoire (Cortex M3):
• minimum: 150KB de code 27KB RAM
• Shell et autre...
Rennes – 20 mai 2014
Empreinte mémoire
•  Echo d un paquet UDP sur
un socket BSD
•  Pile uIP IPv6
•  Connexion PPP
•  Liai...
Rennes – 20 mai 2014
Lepton
๏ Historique
๏ Architecture interne
๏ Architecture firmware
๏ Empreinte mémoire
๏ Exemples
๏ O...
Rennes – 20 mai 2014
Exemples de produits
utilisant Lepton
Testeur RCD Micro-ohmmètre
Testeur Multifonctions
Répéteur mété...
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...
Rennes – 20 mai 2014
Exemple d organisation
du développement
svn mantis
application
ca6116
cvs mantis
serveur
noyau
équipe...
Rennes – 20 mai 2014
Lepton
๏ Historique
๏ Architecture interne
๏ Architecture firmware
๏ Empreinte mémoire
๏ Exemples
๏ O...
Rennes – 20 mai 2014
Briques open source
Environnement de développement
Linux
Simulation
OpenOCD + JTAG
Linux
Rennes – 20 mai 2014
Briques open source
réutilisées dans lepton
Mongoose Web Server
FTP server Troll-FTPd for eCos
Nano-X...
Rennes – 20 mai 2014
Lepton
en Open Source
Noyau lepton: structure
«officielle» d intégration
et de développement
Entrepri...
Rennes – 20 mai 2014
Lepton
๏ Historique
๏ Architecture interne
๏ Architecture firmware
๏ Empreinte mémoire
๏ Exemples
๏ O...
Rennes – 20 mai 2014
Résumé
•  Lepton met à disposition des concepts avancés que
l on retrouve sur des systèmes d exploita...
Rennes – 20 mai 2014
La place de Lepton
Rennes – 20 mai 2014
Bien commencer !
http://code.google.com/p/lepton/
http://code.google.com/p/lepton/source/browse/docs/...
Rennes – 20 mai 2014
Prochaines évolutions
•  Plus grande intégration dans un environnement
de développement.
•  Sécurité/...
Rennes – 20 mai 2014
Merci de votre attention.
Prochain SlideShare
Chargement dans…5
×

Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014

700 vues

Publié le

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

Publié dans : Ingénierie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
700
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
25
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014

  1. 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. 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.
  3. 3. Rennes – 20 mai 2014 Qu’est-ce que c’est ?
  4. 4. Rennes – 20 mai 2014 Lepton ๏ Historique ๏ Architecture interne ๏ Architecture firmware ๏ Empreinte mémoire ๏ Exemples ๏ Open source ๏ Conclusion
  5. 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. 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
  7. 7. Rennes – 20 mai 2014 Architecture firmware spaghetti traitement des données gestion mesure gestion écran gestion sdcard gestion clavier gestion ethernet gestion rs232
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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.
  17. 17. Rennes – 20 mai 2014 Lepton ๏ Historique ๏ Architecture interne ๏ Architecture firmware ๏ Empreinte mémoire ๏ Exemples ๏ Open source ๏ Conclusion
  18. 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. 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. 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. 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. 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
  23. 23. Rennes – 20 mai 2014 POSIX POSIX processus shell pthread principal processus httpd pthread principal 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 • POSIX 1003.1-2008 Base Definition • open(), read(), write(), vfork()… • POSIX Realtime Extension •  Files de messages, semaphores, • POSIX Threads Extension • processus léger: pthread, mutex, conditions (moniteur).
  24. 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. 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
  26. 26. Rennes – 20 mai 2014 Pseudo processus 0 1 2 3 4 5 … 10 11 … table des descripteurs du processus pthread principal pthread secondaire pthread secondaire liste chainée des pthreads noyau associés au processus pthread principal pthread secondaire pthread secondaire 0 0 0 0 0 0 0 0 masque signaux temps-réel signaux temps-réel pendants … kernel_sigqueue signaux temps-réel empilés void(*__sa_handler)(int) void(*__sa_handler)(int) void(*__sa_handler)(int) void(*__sa_handler)(int) masque signaux standards 0 0 0 1 0 0 0 0signaux standards pendants void(*__sa_handler)(int) void(*ma_fonction)(int) void(*__sa_handler)(int) void(*__sa_handler)(int) processus
  27. 27. Rennes – 20 mai 2014 Lepton ๏ Historique ๏ Architecture interne ๏ Architecture firmware ๏ Empreinte mémoire ๏ Exemples ๏ Open source ๏ Conclusion
  28. 28. Rennes – 20 mai 2014 Architecture firmware fichier de configuration .XML sources lepton sources applications mklepton fichiers sources générés fichier firmware .elf Cible JTAG
  29. 29. Rennes – 20 mai 2014 Architecture firmware le shell
  30. 30. Rennes – 20 mai 2014 Architecture firmware Exemple 1 processus 2 pthread principal application /usr/sbin/lsh 0 1 entrée standard sortie standard processus 4 pthread principal application /usr/bin/ihm 0 1 entrée standard sortie standard /dev/kb /dev/fb/fb0 /dev/ttys0 /dev/ttys0 processus 5 pthread principal application /usr/bin/msr -i 2 -c 100 0 1 entrée standard sortie standard 4 /var/msr.o 8 write() read() lepton#2$ msr -i 2 -c 200 & /dev/ttys0 /dev/ttys0
  31. 31. Rennes – 20 mai 2014 Architecture firmware Exemple 2 processus 2 pthread principal application /usr/sbin/lsh 0 1 entrée standard sortie standard processus 1 pthread principal application serveur http /usr/bin/net/mongoosed 7 8 sortie entrée 5 6 entrée sortie processus 3 pthread principal application /usr/sbin/msr -i 2 -c 10 0 1 entrée standard sortie standard read() write() read() read() write() write() tube FIFO tube FIFO connexion socket pipe() vfork() dup() close() execve() waitpid() vfork() execve() waitpid() tube FIFO
  32. 32. Rennes – 20 mai 2014 Lepton ๏ Historique ๏ Architecture interne ๏ Architecture firmware ๏ Empreinte mémoire ๏ Exemples ๏ Open source ๏ Conclusion
  33. 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. 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%
  35. 35. Rennes – 20 mai 2014 Lepton ๏ Historique ๏ Architecture interne ๏ Architecture firmware ๏ Empreinte mémoire ๏ Exemples ๏ Open source ๏ Conclusion
  36. 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. 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. 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
  39. 39. Rennes – 20 mai 2014 Lepton ๏ Historique ๏ Architecture interne ๏ Architecture firmware ๏ Empreinte mémoire ๏ Exemples ๏ Open source ๏ Conclusion
  40. 40. Rennes – 20 mai 2014 Briques open source Environnement de développement Linux Simulation OpenOCD + JTAG Linux
  41. 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. 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
  43. 43. Rennes – 20 mai 2014 Lepton ๏ Historique ๏ Architecture interne ๏ Architecture firmware ๏ Empreinte mémoire ๏ Exemples ๏ Open source ๏ Conclusion
  44. 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.
  45. 45. Rennes – 20 mai 2014 La place de Lepton
  46. 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. 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. 48. Rennes – 20 mai 2014 Merci de votre attention.

×