Portage d'un noyau de système pour applications synchrones vers la plate-forme Lego NXT

De Ensiwiki
Aller à : navigation, rechercher


Portage d'un noyau de système pour applications synchrones vers la plate-forme Lego NXT

Labo Verimag
Equipe Équipe SYNCHRONE
Encadrants Pascal.Raymond@imag.fr,Christophe.Rippert@imag.fr

Thème général

Le but de ce TER est de porter un noyau de système existant sur PC vers la plate-forme Lego NXT. Il se place dans le contexte du langage synchrone à flot de données Lustre et du développement de systèmes logiciels fiables destinés à des utilisations critiques. On y abordera des problématiques liées au développement de services systèmes de bas-niveau, d'ordonnancement statique et dynamique, de tâches périodiques et de plates-formes matérielles contraintes.

Compétences attendues

Le candidat devra avoir de solides bases en programmation bas-niveau (cours d'Architecture des ordinateurs et Logiciel de Base de première année) ainsi qu'une bonne connaissance générale des systèmes d'exploitation (cours de Pratique du système et SEPC de 2A).

La phase initiale du stage nécessitera l'analyse d'un code existant et la production de schémas architecturaux rigoureux : on attend donc également une bonne maîtrise des techniques de Génie Logiciel.

Contexte du travail

L'équipe SYNCHRONE du laboratoire Verimag travaille sur la spécification et la compilation du langage synchrone Lustre permettant de développer des applications embarquées fiables. Ces applications sont utilisés dans des domaines critiques tels que l'avionique, le nucléaire, etc. où la moindre erreur logicielle peut avoir des conséquences dramatiques.

Depuis quelques années, la nécessité d'embarquer des éléments de système (couche d'abstraction du matériel, ordonnanceur dynamique, etc.) avec les applications s'est imposée, pour permettre la gestion d'événements particuliers (tâches sporadiques devant être traitées de façon urgente) ou faciliter le portage d'une plate-forme matérielle à une autre. Ce sujet se situe dans la continuité des efforts engagés dans l'équipe pour mettre au point des services systèmes fiables permettant l'exécution d'applications synchrones sur des plates-formes matérielles contraintes.

Sujet

Le travail attendu se base sur un prototype développé dans le cadre d'un stage précédent et dont les résultats sont détaillés dans ce document. Le prototype a été réalisé dans l'environnement d'exécution VirtualBox qui simule un PC : l'intérêt est bien évidemment de pouvoir récupérer du code existant pour cette plate-forme matérielle très répandue, et aussi d'utiliser des outils de mise au point confortables. Néanmoins, un PC n'est pas une plate-forme embarquée et n'est donc pas représentatif du type de contraintes auxquelles on peut être confronté lorsqu'on développe du code système pour ce type de dispositif.

Parallèlement, des travaux ont été menés sur la brique Lego NXT qui constitue une plate-forme réaliste en termes de caractéristiques matérielles (processeur ARM7 à 48 MHz, 256 KiO de mémoire Flash, 64 KiO de RAM, etc.). Ces travaux ont été menés jusqu'ici en utilisant le système open-source nxtOSEK qui inclut notamment les pilotes de périphériques utiles pour utiliser la brique Lego. Néanmoins, ce système est architecturé d'une façon peu modulaire qui rend difficile l'extraction des parties intéressantes du système, et ne facilite pas la compréhension du code.

Le but de ce TER est donc de porter le prototype réalisé sur PC vers la plate-forme Lego NXT. Il se déroulera en plusieurs étapes :

  1. apprentissage du langage Lustre et des problématiques liées (ordonnancement statique, tâches périodiques, etc.)
  2. analyse de la base de code existante et réalisation de schémas architecturaux rigoureux mettant en évidence les dépendances structurelles entre les différents modules et les flots d'exécution
  3. portage du code vers la plate-forme Lego NXT, en utilisant une couche logicielle existante composée d'une partie minimal du système nxtOSEK.

Résultats attendus

  • une spécification propre du système existant qui sera respectée lors du portage vers la plate-forme Lego
  • le portage a proprement parlé, qui sera avancé aussi loin que le permettra le temps disponible dans le TER