Logiciels Libres et Systèmes Embarqués

Serveur/client TCP/IP dans un FPGA Xilinx utilisant l'API RAW de LwIP 2.00.a (0.7.2)

Table des matières

Introduction

LwIP

LwIP est une pile réseau dont l'empreinte mémoire est très faible, ce qui la rend idéale pour les systèmes embarqués.

La licence utilisée par le projet LwIP est du même type que la licence BSD, ce qui dans notre cas nous permet de créer un produit propriétaire sans être obligé de redistribuer les sources. Attention, il existe tout de même des clauses à respecter, et j'invite donc le lecteur à en prendre connaissance.

Il faut savoir que LwIP est utilisé par un très grand nombre de projets libres et propriétaires, et que des améliorations sont donc constamment apportées. De plus, elle a été conçue de telle manière qu'elle soit extrêmement portable ce qui la rend idéale pour la réutilisation de projet.

Toutes ces raisons font que nous avons choisi de développer nos applications réseau avec LwIP plutôt qu'avec Xilnet. De plus Xilnet ne possède pas de fonctions TCP "client" ce qui nous conforte dans notre choix.

LwIP possède trois API de programmation :

Le projet

Ce projet fourni un exemple d'implémentation d'un serveur et d'un client TCP avec LwIP. Tout ce qui concerne la configuration se trouve dans le fichier config.h. Ainsi, on peut configurer le serveur pour qu'il écoute sur le port 80, et se connecter dessus avec un client HTTP (Firefox, Netscape, Opera, Internet Explorer, ...). Etant donné que ce serveur ne fait rien d'autre que de renvoyer ce qu'il reçoit, on verra alors la requète HTTP s'afficher sur notre navigateur.

En ce qui concerne le client, il ne fait rien d'autre que d'envoyer le nom de l'entreprise "SMP". Pour voir facilement le résultat, il suffit de configurer un serveur sur notre ordinateur. Prenons par exemple NetCat :

nc.exe -s 149.199.6.132 -p 1302 -l

Attention à ne pas confondre le serveur et le client dans le code...

aller à la section suivante