Vous êtes sur la page 1sur 36

Tutorial / uClinux

Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Pragmatec
Produits et services ddis aux systmes embarqus

Tutorial uClinux
ARM7 Development Starter Kit

15 Octobre 2006 Rev 1.06

1 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

2 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Le kit de dveloppement ARM7 est un kit ralis par la socit PRAGMATEC S.A.R.L., socit situe Grenoble (www.pragmatec.net). Il est bas sur une carte de dveloppement ARM7, largement utilise en Asie depuis de nombreuses annes. Il sagit donc dun produit efficace, fiable et disponible. Pragmatec sest attach faire de ce kit un environnement de dveloppement complet et immdiatement oprationnel, avec une introduction en franais et le reste des documents et exemples en langue anglaise. En cas de difficults techniques vous bnficiez de plus dun support technique de la part de lquipe support de Pragmatec : support@pragmatec.net. Ce document a pour but de dmontrer la simplicit dutilisation dune telle plate-forme avec le systme dexploitation Linux, et tout particulirement sa version embarque : uClinux. Nous naborderons pas ici les dtails internes du noyau (modifications, drivers, gestion mmoire, ...) ceci tant destin un document plus spcifique. Toutefois vous dcouvrirez comment rapidement et simplement raliser vos applications sous uClinux, mais aussi comment les dployer et les dbuger sur la cible.

Ce document est la proprit de la socit PRAGMATEC S.A.R.L. Il ne peut tre reproduit et distribu sans laccord de cette socit.

3 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

TABLE DES MATIERES

Prambule........................................................................................................................................5
La carte de dveloppement............................................................................................................................. 5 Dveloppement crois sous Linux.................................................................................................................. 6

L'environnement de dveloppement...............................................................................................7
Installation des sources de uClinux ............................................................................................................... 7 Installation de la chane de compilation........................................................................................................ 8 Paramtrage de minicom................................................................................................................................ 9 Paramtrage de votre serveur tftp................................................................................................................. 9

3 4 5 6

Chargement de uClinux................................................................................................................12
Compilation de uClinux................................................................................................................................ 12

Installation dEclipse ....................................................................................................................21 Programme DEMO_IHM.............................................................................................................30 Informations complmentaires.....................................................................................................32


Connexion par telnet..................................................................................................................................... 32 Transfert FTP................................................................................................................................................ 33 Partage rseau par NFS................................................................................................................................ 34 Modification des paramtres rseaux.......................................................................................................... 35 Nano-X sans LCD.......................................................................................................................................... 35

4 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Prambule

Le but de ce tutorial est de dmontrer combien il est simple de dvelopper une application uClinux sans pour autant devoir prtendre une grande exprience dans le monde Linux. Vous y apprendrez comment installer votre environnement de dveloppement, comment utiliser votre carte ARM7 avec uClinux, les commandes de bases et surtout comment raliser votre propre application et la dbuger sur la cible.

La carte de dveloppement
La carte ARM7 qui vous est propos est base sur le processeur S3C44BOX de Samsung. Elle possde de nombreux priphriques (USB, Ethernet, RS232, IDE, ) et ce tutorial na pas la prtention de passer en revue la totalit de ces priphriques et de leur mise en uvre. Toutefois il sera enrichi dans le temps afin doffrir des exemples de mise en uvre de ces priphriques. Pour ce qui est des outils de dveloppement, nous utiliserons la RS232 (port0) pour dialoguer avec la carte et le port Ethernet pour transfrer des programmes en RAM.

5 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Dveloppement crois sous Linux


Dans ce tutorial nous allons considrer un dveloppement crois depuis une plate-forme Linux. Cela signifie que nous dvelopperons sur un PC Linux et que nous compilerons le noyau et les programmes utilisateurs pour notre cible S3C44B0. Nimporte quel PC sous Linux fera laffaire, mais nous avons choisi de raliser ce tutorial depuis la FedoraCore4, tlchargeable depuis le site de RedHat. Nous vous recommandons vivement dutiliser cette distribution car lenvironnement de dveloppement Eclipse utilis pour le debug y est dj prsent.

Un dveloppement crois depuis Linux est prfrable par rapport un dveloppement depuis Windows/Cygwin. En effet, au fur et mesure vous rajouterez des programmes et des services votre carte ARM7 qui sont disponibles lidentique sur votre PC Linux. Nhsitez pas installer la FedoraCore4 sur votre PC dj quip de Windows sur une partition libre : un logiciel damorce sera install afin de vous proposer au boot un choix quand au dmarrage sous Windows ou Linux (logiciel GRUB). Vous pouvez aussi tlcharger Eclipse v3.1 directement du site officiel et procder son installation. Noubliez pas dinstaller aussi une machine virtuelle Java si vous nen possdez pas une sur votre station (disponible sur le site de SUN). Pour la ssuite des oprations, vrifiez la prsence de linterprteur de script TK wish (mettez jour vos packetages dans le cas contraire). Le noyau linux compil pour votre cible est de la gnration v2.4. La chane de compilation GCC utilise comme cross-compiler est la v2.95.3. Enfin nous rappelons que le noyau destin la cible est un noyau uClinux. La diffrence majeure entre un noyau Linux et uClinux rside dans le fait que uClinux est une version ddie aux processeurs qui ne bnficient pas de la gestion de mmoire virtuelle (MMU) et dunit de calcul virgule flottante (FPU). Cette version est aussi appele NO_MMU / NO_FPU . La librairie C ncessaire la compilation des programmes utilisateurs a t aussi grandement allge afin dtre plus efficace sur de petits systmes embarqus.

6 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

L'environnement de dveloppement

Nous abordons ici linstallation des outils et des sources du noyau uClinux qui sera charg sur la cible.

Installation des sources de uClinux


Nous crons un rpertoire de travail sous notre homedirectory : /home/xavier/uClinux. Les sources seront dcompresses cet endroit ainsi que les diffrents outils comme suit : Attention de ne jamais installer et compiler vos sources uClinux en tant que ROOT. Loggez vous en tant quutilisateur attitr sur votre station Linux !

7 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Dans la liste des fichiers et rpertoires, les plus significatifs sont : images : contient lensemble des fichiers rsultant de la compilation (linux_bootram.bin, linux_boot_rom.bin et romfs.bin). Ces fichiers seront chargs dans la cible soit en RAM ou en FLASH selon lutilisation. linux : rpertoire dans lequel se trouvent les sources du noyau Linux (version uClinux) ainsi que les drivers associs Makefile : script de gnration (du noyau, du file system, des librairies,) romfs : miroir du file system prsent dans la cible. Lors de la gnration du binaire de la cible, ce file system sera associ au noyau uClinux au sein des fichiers linux_bootram.bin et linux_bootrom.bin. step1 : fichier de configuration prformatt pour votre cible. uClibc : contient les sources de la librairie C utilise avec uClinux. user : ensemble de programmes destins tre associs aux file system. On y trouve des programme de base comme le shell, mais aussi des programmes plus labors comme Microwindows qui vous permet davoir un mini serveurX sur votre carte ARM7 (via le framebuffer). Bien entendu cest aussi l que ce trouveront les exemples de ce tutorial. Vendors : rpertoire spcifique chaque type de cible, le classement se faisant par marque de fabriquant. Les fichiers qui nous concernent sont sous uClinux-dist/vendors/Samsung/S3C44B0.

Installation de la chane de compilation


Toujours dans notre homedirectory, passez temporairement ROOT pour installer le package des outils de dveloppement pour ARM7 comme suit :

Toujours en tant que ROOT tappez la commande suivante : mkdir /usr/local/armelf/include/config ; touch /usr/local/arm-elf/include/config/autoconf.h . Copiez le fichier arm-elf-gdb fournis sur le CDROM dans le rpertoire /usr/local/bin, puis quitter le mode ROOT (commande exit ). Attention : noubliez pas de passer root temporairement pour procder cette installation !

8 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Paramtrage de minicom
Comme quivalent dHyperTerminal sous Windows nous utilisons minicom. Si vous bnficiez pas dun port srie sur votre ordinateur portable par exemple, utilisez une interface USB/RS232 trs bien gre de nos jours par la plupart des distributions Linux du commerce. Pour paramtrer minicom, vous avez besoin de passe root :

Pour accder aux diverses commandes, tapez simultanment sur les touches CONTROL et le caractre de votre commande (Faire CTRL+A, puis O, puis laide de la flche du pav numrique, slectionnez configuration du port srie et tapez ENTER). Vous pouvez aussi utiliser la commande minicom s pour directement accder aux paramtres. Pour vrifier que votre paramtrage est correct, vous pouvez mettre sous tension votre carte une fois minicom lanc et paramtr : vous devriez arriver au prompt de uClinux !

Paramtrage de votre serveur tftp


Afin de pouvoir charger de faon quasi automatique votre noyau et ses applications sur votre cible, nous allons utiliser le tftp. Il sagit dun transfert FTP (donc via le rseau) bas sur le fait quun client met une requte vers un serveur qui est en charge de lui envoyer un certain fichier.

9 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Pour cela nous avons besoin dun rpertoire tftpboot la racine de votre station de dveloppement (qui tiendra le rle de serveur FTP). Votre carte est pralablement installe avec ladresse IP : 192.168.0.30. Si pour une raison quelconque cette adresse rseau ne vous la convient pas vous pouvez la changer sous minicom par une commande BIOS (ipcfg 192.180.0.77 par exemple). Nous allons prsent donner ladresse IP 192.168.0.10 la station de dveloppement. Dans System Settings / Network de la FedoraCore3 :

Double cliquez sur la ligne correspondant votre port Ethernet connect la carte ARM7 afin de modifier ces paramtres :

10 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Vous pouvez aussi tapez la commande ifconfig a eth0 192.168.0.10 pour assigner une nouvelle adresse IP votre carte en eth0. Ensuite dans la fentre ci-dessous, dsactivez puis ractivez le service pour retrouver vos paramtres dorigine. Enfin activiez les services tftp et xinetd (cliquez sous FedoraCore3 sur System Settings/Services/) :

Modifiez les paramtres du serveur tftp pour quil utilise le rpertoire /tftpboot :

Surtout noubliez pas de dvalider votre parefeu (firewall) ou au moins dautoriser les transferts depuis ladresse IP de la carte (192.168.0.30).

11 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Chargement de uClinux

Nous allons prsente compiler le noyau uClinux tel quil a t prconfigur par Pragmatec. La carte dont vous avez fait lacquisition est dj pr-install avec un noyau uClinux et tout un ensemble de programmes utilisateurs, il nest donc pas ncessaire de charger un nouveau noyau dans la carte. Par contre il est ncessaire de la recompiler compltement pour pouvoir dvelopper de nouvelles applications.

Compilation de uClinux
Les fichiers de paramtrages du noyau et des applications sont dj prsents dans votre distribution et se nomment (lexemple ci-dessous est donn pour une DEV-44B0X-II) : ./DEVII-step1 : slection de la cible et de la libc ./linux-2.4.x/DEVII-step2 : paramtrage du noyau ./config/DEVII-step3 : slection des applications Avant de compiler le noyau et les applications, faites un make clean destin effacer les traces de rfrences un autre environnement de dveloppement. Ensuite les autres tapes de la compilation seront :

Le make xconfig qui suit permet de paramtrer le noyau et les applications. Nous allons passer en revue les principales fentres qui apparatront lcran.

12 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
La premire fentre est la fentre principale de s lection de cible :

Cliquez sur Load Configuration from File pour charger la configuration correspondante votre carte.

Cliquez sur OK pour valider la slection, puis sur Target Platform Selection pour connatre les choix de la configuration.

Pour passer la fentre suivante, cliquez sur Save and Exit . La seconde fentre principale apparat lcran :

Cliquez nouveau sur Load Configuration from File et chargez le fichier DEVII-step2.

13 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Vous pouvez visionner les paramtres slectionner dans les diffrentes fentres mais ne modifiez rien si vous ntes pas sr de savoir ce que vous faites. Vous y trouverez les paramtres propres aux diffrents priphriques de la carte. Cliquez finalement sur Save and Exit .

La fentre suivante apparat. Il sagit de la fentre de fin de la configuration de Linux. Elle prcise les actions mener pour gnrer correctement le noyau linux. Dans notre cas il ne sagit pas rellement de la dernire fentre principale. Cliquez sur OK pour fermer cette fentre.

La 3me fentre principale apparat alors pour la slection de la partie applicative :

Cliquez sur Load Configuration from File est chargez le fichier DEVII-step3. Vous pouvez terminer le paramtrage de votre systme Linux embarqu en cliquant sur Save and Exit .

14 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Voici les diffrents programmes qui ont t slectionns :

Busybox : La busybox est une sorte de couteau suisse compos dun shell basic et dune multitude de commandes shell classiques mais spcialement repens pour les systmes embarqus. cat : affichage de fichier ASCII chmod : modification des droits des fichiers ou rpertoires cp : copie de fichiers ou rpertoires date : affiche la date sous forme ASCII sur le terminal dd : copie et convertion de fichiers df : donne loccupation des disques en % dmesg : liste les derniers affichage kernel (via printk) du : affichage la taille des fichiers et rpertoires courants false : indicateur de fautes find : recherche un fichier dans larborescence free : affiche la mmoire disponible grep : recherche dune chaine de caractre dans larborescence hostname : dfinit le nom rseau de la cible ifconfig : paramtre les liaisons Ethernet insmod : chargement dynamique des modules kill : arrt dun processus ln : cration de liens (symboliques ou non) ls : liste les fichiers et rpertoires de larborescence lsmod : liste les modules chargs en mmoire

15 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
mkdir : cre un nouveau rpertoire mount : permet le montage de node dans le filesystem msh : shell busybox mv : dplacement de fichiers ou rpertoires ping : test de connexion rseau basic ps : liste les processus en mmoire pwd : fournit le rpertoire courant reboot : permet de redmarrer la cible rm : effacement dun fichier ou rpertoire rmdir : effacement dun rpertoire rmod : dchargement dun module prsent en mmoire route : dfinition des tables de routage rseau sh : shell busybox sync : mise jour dun filesystem tar : outil darchivage test : test dexpressions top : affiche de la charge moyenne des processus touch : cration de fichiers true : indicateur vrai umount : dmontage dun filesystem usleep : attente dun certain dlai vi : diteur en ligne

erase : permet deffacer le contenu dune partition MTD (mmoire NAND) expand : cration dun espace mmoire fdisk : cration et modification de partitions ftp : transfert rseau via TCP/IP gdbserver : dbugger dapplications ct cible inetd : dmon couche rseau init : premier processus dmarrer (processus pre) mke2fs : cration dune partition de type ext2 readRTC : mise jour de lhorloge systme Linux

16 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
tftp : transfert rseau udp tftpget : macro de transfert udp rapide Cette fois-ci vous quittez dfinitivement lenvironnement de paramtrage de Linux. Tapez make clean , puis make dep et enfin make pour crer les binaires uClinux qui seront chargs dans votre carte.

Ltape de compilation se termine par une dition de lien et la recopie des binaires de programmation dans le rpertoire images Pour charger votre binaire image.ram en RAM (qui contient le nouveau noyau uClinux recompil), vous devez utiliser la commande netload et run du BIOS sous minicom comme indiqu sur limage suivante. Le fichier image.ram sera automatiquement charg en mmoire RAM ladresse 0x0C008000, qui est une adresse physique de la mmoire SDRAM. Si vous souhaitez reflasher entirement votre carte ou si celle-ci est vierge, il vous faudra faire un netload suivi dune commande prog xxxx , ou xxxx vaut 100000 pour le fichier romfs.img et 10000 pour le fichier image.rom . Vous aurez donc 2 transferts effectuer. Vous ne risquez strictement rien charger un nouveau noyau uClinux en RAM. Si vous rencontrez le moindre problme vous aurez toujours la possibilit de rebooter votre carte (bouton reset) et laisser la carte dmarrer delle mme depuis le noyau uClinux flash dans la mmoire NOR de 2Mo. Pour charger un binaire en mmoire RAM et lexcuter, rebootez la cible et tapez la commande netload .

17 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Sur la station de dveloppement, allez sous le rpertoire images et tapez ./tftp 192.168.0.30 , puis transfrez comme suit votre binaire vers la cible :

Ct cible, oprez comme suit :

18 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
A lissu du dmarrage du noyau, le logo uClinux et un prompt vont apparatre :

Vous tes prsent sous un shell. Tapez les commandes de votre choix pour en savoir un peu plus sur son mode de fonctionnement : ps : pour connatre ltat des processus courants ls al : pour afficher la liste des fichiers et rpertoires courants ifconfig : pour connatre les paramtres rseaux cat etc/version : pour connatre la version logicielle et sa date de cration De plus vous pouvez utilisez les commandes df et mount pour en savoir un peu plus quant lorganisation mmoire de votre cible : Si votre carte possde une mmoire NAND de 16Mo, vous devriez avoir lorganisation suivante : /dev/rom0 : filesystem en read-only correspond au root / /dev/ram0 : correspond au rpertoire /var /dev/mtdblock2 : partition MTD de la flash NAND mont en /home /dev/mtdblock1 : partition PTD de la flash NAND monte en /usr

19 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Tous les programmes livrs avec votre distribution uClinux se trouvent sous /bin. Utilisez le rpertoire /var pour y stocker vos informations ou vos programmes temporaires (ils auront disparu au prochain redmarrage de la carte). Les rpertoires /home et /usr permettent de conserver toutes les donnes qui y sont inscrites, tout comme le ferait un disque dur. Stockez y les informations que vous souhaitez conserver.

20 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Installation dEclipse

Eclipse est un environnement de dveloppement intgr ouvert et gratuit. Il permet de grer des projets couplets de faon graphique, et y compris de dbuger le code dvelopp. Nous allons utiliser Eclipse pour dvelopper nos programmes et pour les dbuger directement depuis la cible via le rseau Ethernet.

Le problme dEclipse est quil nest pas conu la base pour effectuer un dbug distant via le rseau Ethernet, et pour corriger ce problme il est ncessaire dy ajouter un correctif sous la forme dun plugin. Pour cela utilisez le plugin ZYLIN qui se trouve sur le CDROM (embeddedcdt-linux-gtk-20051213). Copiez les rpertoires features et plugins sous les rpertoires correspondant de Eclipse (prsent sous /usr/share/eclipse).

21 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Ceci tant fait commencez par copier le projet DEMO sous votre workspace Eclipse (par exemple /home/xavier/workspace).

Vous allez prsent crer le projet sous Eclipse (File/New/Project...Standart Make C project) :

Puis cliquez sur Finished .

Importez les fichiers du projet fourni en exemple dans votre environnement Eclipse. Pour cela cliquez laide du bouton droit sur le nom de votre projet et choisissez Import . Faites de mme pour activer le sous-menu Build make target et slectionnez les modes de compilation (all et clean devraient suffire).

22 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Vous devez obtenir la vue suivante :

Enfin compilez votre projet laide du menu Project :

Laffichage dans la fentre Console doit vous renseigner sur le rsultat de la compilation.

23 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Pour utiliser le dbuger il faut lancer dune part gdbserver sur la cible, et dautre part gdb sur la station via Eclipse. Prparation de la cible : Sous /home, commencez par crer un script qui va nous permettre dautomatiser le dbug. Tappez la commande vi ./debug et mettez le jour comme indiqu ci-dessous (noubliez pas de tapper sur i pour passer en mode insertion) :

Tapez ESC puis :wq pour sauvegarder et quitter.

Pour en savoir plus sur lditeur en ligne vi , nhsitez pas consulter les aides disponibles sur Internet (Recherchez vi manuel sur les pages franaises de www.google.fr).

24 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Votre script de debug et maintenant prt. Il tlcharge automatiquement le programme demo (qui a t copi sous /tftpboot lissue de la compilation), puis lance le dbuger.

Prparation dEclipse : Pour pouvoir dbuger notre programme sous Eclipse il convient de crer une nouvelle perspective (une vue en quelques sortes) consacre au debug. Au milieu de votre barre doutils Eclipse vous trouverez licone dun cafard pour symboliser le debug. Cliquez sur la flche descendante qui se situe sa droite, puis sur Debug... :

25 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Dans la nouvelle fentre, slectionnez C/C++ Local application et renseignez la nouvelle perspective comme suit :

26 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Il faut maintenant ajouter votre nouvelle perspective en cliquant nouveau sur la flche descendante de licne de dbug :

Puis cliquez sur Add... :

27 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Vous pouvez maintenant changer de perspective en cliquant sur les doubles flches qui se situent en haut et droite dEclipse. Slectionnez la perspective Debug . Vous pouvez prsent tenter une connexion la cible en mode debug en cliquant encore une fois sur la flche descendante de licne dbug, puis en slectionnant le menu DEMO debug :

Vous devez obtenir la vue suivante sous Eclipse (dbuger arrt sur le main) :

Vous pouvez prsent vous dplacer en pas pas en cliquant sur la flche du milieu de la fentre Debug, inspecter les variables locales la fonction courante, placer des breakpoints... Nhsitez pas manipuler le dbuger sous Eclipse, quitte relancer le dbug plusieurs fois, en prenant bien soin de lancer DABORD le dbuger sur la cible laide la commande ./debug .

28 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Vous pouvez aussi directement modifier le code dans la perspective de debug et recompiler le code la vole. Ensuite relancer ./debug sur la cible pour transfrer le nouveau programme automatiquement et lancer le mode debug. Lapplication utilise le framebuffer qui est la mmoire vido primaire. Au dmarrage de votre noyau Linux vous avez pu peut-tre constat quil y avait un logo Pragmatec qui saffichait sur le LCD 256 couleurs. Le programme demo na dautre but que dessayer deffacer le logo Pragmatec. Au bout dun certain temps voici le rsultat obtenu :

Avant

Aprs

29 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Programme DEMO_IHM

Le programme prcdent tait un exemple simple dont lobjectif tait de dmontrer la relative simplicit quil y a dbuger un programme sur cible avec Eclipse. Pourtant ce programme semble quelque peu limit, au vu de ce quil est possible de faire avec uClinux et un LCD connect notre ARM7. Pour voir ltendu des possibilits graphiques quoffre uClinux, crez un nouveau rpertoire dans votre workspace Eclipse : DEMO_IHM... puis recopier le projet DEMO_IHM. Crez un nouveau projet sous Eclipse, ainsi quune nouvelle perspective de dbug propre ce projet. Vous devez obtenir le rsultat suivant :

Sur la cible, crez un rpertoire IHM sous /usr. Transfrer le fichier arialb.ttf prsent sous uClinux-pragm-20060217/user/microwin/src/fonts/. Sous IHM, il convient de transfrer toutes les images GIF du projet. Pour cela vous pouvez utiliser la commande tar sur la station : tar cvf images.tar *.gif . Puis copiez le fichier images.tar sous /tftpboot, et transfrez le sur la cible laide de la commande tftpget sous IHM ( tftpget 192.168.0.10 get images.tar). Enfin dsarchivez les images sur la cible : tar xvf images.tar .

30 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
Afin de pouvoir dbuger sur la cible noubliez pas de crer un fichier ./debug qui doit faire rfrence au programme appel ihm prsent et non plus demo . Le programme DEMO_IHM sappuie sur Nano-X, un serveur X extrmement allg qui permet dafficher des images, du texte et des objets graphiques sur un LCD via le framebuffer.

Laffichage sur le LCD prsente une simulation dun afficheur LCD de voiture :

31 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Informations complmentaires

Ce chapitre prsente un certain nombre dinformations utiles lies lutilisation de votre carte, dans le cas ou disposez dune connexion rseau avec votre carte et pour tout ceux qui ne possde pas de LCD graphique.

Connexion par telnet


Votre carte possde un systme dexploitation uClinux 2.4 assez complet qui vous permet entre autre de vous y connecter par Telnet. Ceci permet par exemple douvrir un shell distant sur la cible sans avoir besoin dutiliser un cordon srie. Dans une entreprise cela vous permet aussi dinstaller la carte un endroit loign du poste de travail, en la connectant au rseau dentreprise Ethernet.

Vous pouvez ouvrir une session Telnet sous Windows en cliquant sur le bouton Dmarrer puis en slectionnant le menu Excuter . Tapez alors telnet 192.168.0.30 si ladresse IP de votre carte est 192.168.0.30.

32 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Transfert FTP
Pour transfrer vos fichiers sur la cible (images, programmes, ) nous avons utiliss la commande tftpget . Il est aussi possible de vous connecter la cible par FTP et deffectuer ainsi un transfert FTP du ou des fichiers vers la cible ou depuis la cible :

Vous pouvez ouvrir dmarrer un connexion FTP sous Windows en cliquant sur le bouton Dmarrer puis en slectionnant le menu Excuter . Tapez alors ftp 192.168.0.30 si ladresse IP de votre carte est 192.168.0.30.

Tapez la commande help sous le prompt FTP pour connatre lensemble des commandes autorises. Sachez toutefois que les 4 commandes les plus utilises sont : cd : prcise le rpertoire courant sur la station lcd : prcise le rpertoire courant sur la cible put : permet de transfrer un fichier de la station vers la cible get : permet de rcuprer un fichier depuis la cible Des variantes de put et de get permettent aussi de transfrer automatiquement plusieurs fichiers dans lune ou lautre des directions.

33 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Partage rseau par NFS


Si vous souhaitez changer souvent des fichiers entre votre station de travail et votre cible, alors le systme NFS (Network File System) est fait pour vous ! Nous avons vu prcdemment comment transfrer des fichiers de la station vers la cible au travers du rpertoire /tftpboot . Il est possible grce au NFS de faire que ce rpertoire soit un rpertoire partag la fois par la cible et par la station. Ainsi votre PC et votre cible aura tout 2 accs ce rpertoire comme sil sagissait dun rpertoire distant. Le systme NFS est natif dans le noyau Linux, si bien que votre station de travail Linux et votre cible peuvent grer NFS. Toutefois il y a quelques pralables : Sur la station, passez roor et crez ou modifiez le fichier /etc/exports. Ajoutez : tftpboot 192.168.0.30(rw,sync) Au prompt du shell tapez : /etc/rc.d/init.d/nfs restart .. autant de fois que ncessaire afin davoir la totalit des services OK .

Sur la cible, modifiez le fichier /home/rc.sh qui fait parti des scripts de dmarrage :

D commentez les 2 dernires lignes portmap et mount nfs . Sauvegardez et rebooter la cible. Pour accder au contenu du rpertoire /tftpboot de la station il vous suffira sur la cible daccder au rpertoire /mnt .

34 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net

Modification des paramtres rseaux


Lensemble des paramtres rseaux eth0 sont regroups dans le fichier /home/rc.sh .

Vous pouvez le modifiez pour changer par exemple ladresse IP de la carte ou encore ladresse MAC du contrleur Ethernet. Utilisez aussi ce fichier pour lancer automatiquement des programmes au dmarrage.

Nano-X sans LCD


Dans les chapitres prcdents nous avons abord les exemples DEMO et DEMO_IHM, tout 2 bass sur lutilisation dun LCD graphique 320x240 pixels. Le principe est dutiliser un serveur graphique appel nano-X qui contrle laffichage des lments graphiques sur le LCD et une application cliente qui dialogue avec le serveur graphique afin de lui indiquer les lments afficher ou rafrachir. Nano-X possde des fonctionnalits rseaux de sorte quil est possible davoir un client et un serveur graphique sur 2 machines Linux diffrentes. Il est donc possible de lancer le serveur graphique sur la station de dveloppement et le client sur la cible. Dans le rpertoire nano-X de votre distribution (par exemple uClinux-prag20061017/user/microwin/src ) nous avons ajout le programme nano-x-i86 qui est compil pour un processeur i86. Vous pouvez donc le lancer sur votre station de dveloppement. Auparavant il faut lui indiquer quil va devoir recevoir des consignes dun client distant laide de la variable denvironnement REMOTE . Tapez donc export REMOTE=1 .

35 / 36

Tutorial / uClinux
Btiment EARHART ZAC Grenoble Air Parc 38590 St Etienne de St Geoirs - France

uClinux - Mise en oeuvre

www.pragmatec.net
De plus si vous utilisez les font TRUETYPE avec votre projet il faut copier la font choisie dans votre homedirectory. Par exemple dans le cadre du projet DEMO_IHM qui utilise la font arialb.ttf vous devez copier ce fichier situ sous uClinux-prag-20061017/user/microwin/src/fonts/truetype/ dans /home/xavier (votre compte correspondant la variable denvironnement $HOME).

Sur la cible vous devez faire de mme pour prciser au client quil va devoir envoyer ces consignes via le rseau. Tapez : export REMOTE=1 export NXDISPLAY=192.168.0.10

Ensuite lancez votre programme client sur la cible. Par exemple vous trouverez dans le rpertoire bin de nano-X (par exemple uClinux-prag20060829/user/microwin/src/bin le programme nxview qui permet dafficher une image sur le LCD ainsi que limage tux.gif . Transfrez les sur la cible laide de tftpget , FTP ou NFS et lancez le programme comme suit : nxview tux.gif Vous devriez obtenir sur la station de travail laffichage suivant :

36 / 36

Vous aimerez peut-être aussi