Le Blog de Thomas

Logiciels libres, Linux embarqué, et autres ...

L'UTBM, vraiment fini ... ou presque !


Il y a deux semaines, je suis retourné à Belfort pour passer ma soutenance de projet de fin d'études, la dernière étape avant l'obtention du tant attendu diplôme d'ingénieur. J'ai donc traversé la France depuis Toulouse pour 10 minutes de soutenance, heureusement que la soutenance était suivie d'un week-end sympathique avec des amis de Belfort !

Durant la soutenance, il a donc été question de ce que j'ai fait en stage à Mitsubishi Electric ITE TCL, un laboratoire de recherche en télécommunications situé à Rennes, de septembre 2004 à mi-février 2005. Je n'ai pas eu le temps d'en parler sur mon blog, c'est donc l'occasion !

L'équipe dans laquelle je travaillais développait une plateforme matérielle pour le traitement de trafic réseau à haut-débit, de l'ordre du gigabit par seconde. S'agissant d'un laboratoire de recherche, cette plateforme est uniquement un prototype, destiné à réaliser des expérimentations. Les traitements à appliquer sur le traffic réseau peuvent être du simple filtrage, ou bien de la réservation de bande passante pour garantir une certaine qualité pour de la vidéo-conférence, ou d'autres choses plus complexes. Pour cela, l'équipe a entièrement conçu une plateforme matérielle spécifique : la plateforme FlexNP?. En son sein, on trouve plusieurs composants importants :

Tous ces composants sont reliés par de nombreux bus, afin d'obtenir une architecture la plus souple possible. Ils sont reliés au monde extérieur par l'intermédiaire de contrôleurs Ethernet Gigabit ou de contrôleurs ATM Gigabit. L'architecture FlexNP? est donc très spécifique, et n'a rien à voir avec un ordinateur classique. Au niveau logiciel, le processeur ARM fait tourner un noyau Linux 2.4, et le processeur MIPS fait tourner un autre noyau Linux 2.4.

Mon stage s'est décomposé en trois étapes :

Le stage était donc orienté sur du développement très bas-niveau, très proche du matériel. Le déboguage était donc particulièrement délicat : en cas de problème, le matériel n'affiche pas gentiment une erreur, mais refuse tout simplement de fonctionner, sans en dire plus. Il a fallu parfois plusieurs jours pour arriver à configurer correctement certains matériels, notamment le second coeur. On est parfois un peu désemparé face au peu de moyens de déboguage existants. De plus, la plateforme utilisait des composants très récents et donc très peu utilisés. Chercher de l'aide sur Internet était le plus souvent illusoire. La seule technique de déboguage possible était une sonde JTAG, c'est à dire une sonde qui contrôle matériellement ce que fait le processeur. Malheureusement, le logiciel propriétaire fourni avec la sonde était complètement buggé, et il était difficile d'en tirer quelque chose.

Un autre détail amusant est la mise au point du code d'initialisation du second coeur. Au démarrage, le second coeur commence à exécuter du code à une adresse fixe, qu'on ne peut changer. Or cette adresse est située dans la Flash, ce qui signifie qu'à chaque test du code d'initialisation, il fallait reflasher la mémoire. Et si, malencontreusement, les modifications apportées au code d'initialisation empêchait le premier coeur de démarrer, alors il n'était plus possible de reflasher la mémoire puisqu'on n'avait pas accès au logiciel permettant de le faire. La seule solution était de passer par la sonde JTAG, au fonctionnement assez aléatoire. Ainsi, il m'a une fois fallu deux jours pour reprendre le contrôle de la plateforme suite à un flashage foiré. Amusant, n'est-ce pas ?

Globalement, le stage était très intéressant, j'ai beaucoup appris sur l'architecture matérielle. L'ambiance au sein de l'équipe était vraiment très sympathique. L'équipe était assez diversifiée en termes de compétences : des ingénieurs hard, qui réalisaient l'électronique de la carte, et des ingénieurs softs, surtout spécialisés dans les télécoms et les réseaux. Cette diversité a permis des échanges très intéressants, beaucoup plus que si j'étais resté dans une équipe qui ne faisait que du système. Un grand merci à David, Romain, Laurent, Mathieu, Luc, Hervé et Christophe !

Documents :
Il y a 3 commentaires sur cette page. [Afficher commentaires/formulaire]