Top Banner

of 36

uClinux Tutorial S3C44B0

Apr 05, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/2/2019 uClinux Tutorial S3C44B0

    1/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    1 / 36

    PragmatecProduits et services ddis aux systmes embarqus

    Tutorial uClinuxARM7 Development Starter Kit

    15 Octobre 2006 Rev 1.06

  • 8/2/2019 uClinux Tutorial S3C44B0

    2/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    2 / 36

  • 8/2/2019 uClinux Tutorial S3C44B0

    3/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    3 / 36

    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 : [email protected].

    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.

  • 8/2/2019 uClinux Tutorial S3C44B0

    4/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    4 / 36

    TABLE DES MATIERES

    1 Prambule........................................................................................................................................5

    La carte de dveloppement............................................................................................................................. 5

    Dveloppement crois sous Linux.................................................................................................................. 6

    2 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 Chargement de uClinux................................................................................................................12

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

    4 Installation dEclipse....................................................................................................................215 Programme DEMO_IHM.............................................................................................................30

    6 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

  • 8/2/2019 uClinux Tutorial S3C44B0

    5/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    5 / 36

    1 Prambule

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

    La carte de dveloppement

    La carte ARM7 qui vous est propos est base sur le processeur S3C44BOX de Samsung. Ellepossde de nombreux priphriques (USB, Ethernet, RS232, IDE, ) et ce tutorial na pas laprtention de passer en revue la totalit de ces priphriques et de leur mise en uvre. Toutefois ilsera 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 avecla carte et le port Ethernet pour transfrer des programmes en RAM.

  • 8/2/2019 uClinux Tutorial S3C44B0

    6/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    6 / 36

    Dveloppement crois sous Linux

    Dans ce tutorial nous allons considrer un dveloppement crois depuis une plate-forme Linux. Celasignifie que nous dvelopperons sur un PC Linux et que nous compilerons le noyau et lesprogrammes utilisateurs pour notre cible S3C44B0.

    Nimporte quel PC sous Linux fera laffaire, mais nous avons choisi de raliser ce tutorial depuis laFedoraCore4, tlchargeable depuis le site de RedHat. Nous vous recommandons vivementdutiliser cette distribution car lenvironnement de dveloppement Eclipse utilis pour le debug y estdj prsent.

    Un dveloppement crois depuis Linux est prfrable par rapport un dveloppement depuisWindows/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 laFedoraCore4 sur votre PC dj quip de Windows sur une partition libre : un logiciel damorce serainstall afin de vous proposer au boot un choix quand au dmarrage sous Windows ou Linux (logicielGRUB).

    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 votrestation (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 majeureentre un noyau Linux et uClinux rside dans le fait que uClinux est une version ddie auxprocesseurs 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 Cncessaire la compilation des programmes utilisateurs a t aussi grandement allge afin dtre

    plus efficace sur de petits systmes embarqus.

  • 8/2/2019 uClinux Tutorial S3C44B0

    7/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    7 / 36

    2 L'environnement de dveloppement

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

    Installation des sources de uClinux

    Nous crons un rpertoire de travail sous notre homedirectory : /home/xavier/uClinux. Les sourcesseront dcompresses cet endroit ainsi que les diffrents outils comme suit :

    Attention de ne jamais installer et compiler vos sources uClinux en tant que ROOT. Loggezvous en tant quutilisateur attitr sur votre station Linux !

  • 8/2/2019 uClinux Tutorial S3C44B0

    8/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    8 / 36

    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 selonlutilisation.

    linux : rpertoire dans lequel se trouvent les sources du noyau Linux (version uClinux) ainsi que lesdrivers 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 filesystem 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 programmede base comme le shell, mais aussi des programmes plus labors comme Microwindows qui vous permetdavoir un mini serveurX sur votre carte ARM7 (via le framebuffer). Bien entendu cest aussi l que cetrouveront les exemples de ce tutorial.

    Vendors : rpertoire spcifique chaque type de cible, le classement se faisant par marque defabriquant. 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 desoutils de dveloppement pour ARM7 comme suit :

    Toujours en tant que ROOT tappez la commande suivante : mkdir /usr/local/arm-elf/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 lemode ROOT (commande exit ).

    Attention : noubliez pas de passer root temporairement pour procder cetteinstallation !

  • 8/2/2019 uClinux Tutorial S3C44B0

    9/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    9 / 36

    Paramtrage de minicom

    Comme quivalent dHyperTerminal sous Windows nous utilisons minicom. Si vous bnficiez pasdun port srie sur votre ordinateur portable par exemple, utilisez une interface USB/RS232 trs biengre 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 lecaractre 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 foisminicom 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 clientmet une requte vers un serveur qui est en charge de lui envoyer un certain fichier.

  • 8/2/2019 uClinux Tutorial S3C44B0

    10/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    10 / 36

    Pour cela nous avons besoin dun rpertoire tftpboot la racine de votre station dedveloppement (qui tiendra le rle de serveur FTP).

    Votre carte est pralablement installe avec ladresse IP : 192.168.0.30. Si pour une raisonquelconque cette adresse rseau ne vous la convient pas vous pouvez la changer sous minicom parune 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 demodifier ces paramtres :

  • 8/2/2019 uClinux Tutorial S3C44B0

    11/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    11 / 36

    Vous pouvez aussi tapez la commande ifconfig a eth0 192.168.0.10 pour assigner une nouvelleadresse IP votre carte en eth0. Ensuite dans la fentre ci-dessous, dsactivez puis ractivez leservice 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 lestransferts depuis ladresse IP de la carte (192.168.0.30).

  • 8/2/2019 uClinux Tutorial S3C44B0

    12/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    12 / 36

    3 Chargement de uClinux

    Nous allons prsente compiler le noyau uClinux tel quil a t prconfigur par Pragmatec. La cartedont vous avez fait lacquisition est dj pr-install avec un noyau uClinux et tout un ensemble deprogrammes 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 nouvellesapplications.

    Compilation de uClinux

    Les fichiers de paramtrages du noyau et des applications sont dj prsents dans votre distributionet 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 tracesde rfrences un autre environnement de dveloppement. Ensuite les autres tapes de lacompilation 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.

  • 8/2/2019 uClinux Tutorial S3C44B0

    13/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    13 / 36

    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 leschoix de la configuration.

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

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

  • 8/2/2019 uClinux Tutorial S3C44B0

    14/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    14 / 36

    Vous pouvez visionner les paramtres slectionner dans les diffrentes fentres mais ne modifiezrien si vous ntes pas sr de savoir ce que vous faites. Vous y trouverez les paramtres propres auxdiffrents 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 lesactions mener pour gnrer correctement le noyau linux. Dans notre cas il ne sagit pas rellementde 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 andExit .

  • 8/2/2019 uClinux Tutorial S3C44B0

    15/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    15 / 36

    Voici les diffrents programmes qui ont t slectionns :

    Busybox :

    La busybox est une sorte de couteau suisse compos dun shell basic et dune multitude decommandes 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

  • 8/2/2019 uClinux Tutorial S3C44B0

    16/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    16 / 36

    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

  • 8/2/2019 uClinux Tutorial S3C44B0

    17/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    17 / 36

    tftp : transfert rseau udp

    tftpget : macro de transfert udp rapide

    Cette fois-ci vous quittez dfinitivement lenvironnement de paramtrage de Linux. Tapez makeclean , puis make dep et enfin make pour crer les binaires uClinux qui seront chargs dansvotre carte.

    Ltape de compilation se termine par une dition de lien et la recopie des binaires deprogrammation dans le rpertoire images

    Pour charger votre binaire image.ram en RAM (qui contient le nouveau noyau uClinuxrecompil), 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 mmoireRAM 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 lemoindre problme vous aurez toujours la possibilit de rebooter votre carte (bouton reset) et laisserla 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 .

  • 8/2/2019 uClinux Tutorial S3C44B0

    18/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    18 / 36

    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 :

  • 8/2/2019 uClinux Tutorial S3C44B0

    19/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    19 / 36

    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 plussur 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

  • 8/2/2019 uClinux Tutorial S3C44B0

    20/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    20 / 36

    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 aurontdisparu au prochain redmarrage de la carte).

    Les rpertoires /home et /usr permettent de conserver toutes les donnes qui y sont inscrites, toutcomme le ferait un disque dur. Stockez y les informations que vous souhaitez conserver.

  • 8/2/2019 uClinux Tutorial S3C44B0

    21/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    21 / 36

    4 Installation dEclipse

    Eclipse est un environnement de dveloppement intgr ouvert et gratuit. Il permet de grer desprojets 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 depuisla cible via le rseau Ethernet.

    Le problme dEclipse est quil nest pas conu la base pour effectuer un dbug distant via lerseau Ethernet, et pour corriger ce problme il est ncessaire dy ajouter un correctif sous la formedun 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).

  • 8/2/2019 uClinux Tutorial S3C44B0

    22/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    22 / 36

    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 decompilation (all et clean devraient suffire).

  • 8/2/2019 uClinux Tutorial S3C44B0

    23/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    23 / 36

    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.

  • 8/2/2019 uClinux Tutorial S3C44B0

    24/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    24 / 36

    Pour utiliser le dbuger il faut lancer dune part gdbserver sur la cible, et dautre part gdb sur lastation via Eclipse.

    Prparation de la cible :Sous /home, commencez par crer un script qui va nous permettre dautomatiser le dbug. Tappezla commande vi ./debug et mettez le jour comme indiqu ci-dessous (noubliez pas de tappersur 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 surInternet (Recherchez vi manuel sur les pages franaises de www.google.fr).

  • 8/2/2019 uClinux Tutorial S3C44B0

    25/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    25 / 36

    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... :

  • 8/2/2019 uClinux Tutorial S3C44B0

    26/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    26 / 36

    Dans la nouvelle fentre, slectionnez C/C++ Local application et renseignez la nouvelleperspective comme suit :

  • 8/2/2019 uClinux Tutorial S3C44B0

    27/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    27 / 36

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

    Puis cliquez sur Add... :

  • 8/2/2019 uClinux Tutorial S3C44B0

    28/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    28 / 36

    Vous pouvez maintenant changer de perspective en cliquant sur les doubles flches qui se situent enhaut et droite dEclipse. Slectionnez la perspective Debug .

    Vous pouvez prsent tenter une connexion la cible en mode debug en cliquant encore une foissur 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 fentreDebug, 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 soinde lancer DABORD le dbuger sur la cible laide la commande ./debug .

  • 8/2/2019 uClinux Tutorial S3C44B0

    29/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    29 / 36

    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 programmeautomatiquement et lancer le mode debug.

    Lapplication utilise le framebuffer qui est la mmoire vido primaire. Au dmarrage de votre noyauLinux vous avez pu peut-tre constat quil y avait un logo Pragmatec qui saffichait sur le LCD 256couleurs. Le programme demo na dautre but que dessayer deffacer le logo Pragmatec. Au boutdun certain temps voici le rsultat obtenu :

    Avant Aprs

  • 8/2/2019 uClinux Tutorial S3C44B0

    30/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    30 / 36

    5 Programme DEMO_IHM

    Le programme prcdent tait un exemple simple dont lobjectif tait de dmontrer la relativesimplicit 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 avecuClinux et un LCD connect notre ARM7.

    Pour voir ltendu des possibilits graphiques quoffre uClinux, crez un nouveau rpertoire dansvotre workspace Eclipse : DEMO_IHM... puis recopier le projet DEMO_IHM.

    Crez un nouveau projet sous Eclipse, ainsi quune nouvelle perspective de dbug propre ceprojet. 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 lacommande 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 .

  • 8/2/2019 uClinux Tutorial S3C44B0

    31/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    31 / 36

    Afin de pouvoir dbuger sur la cible noubliez pas de crer un fichier ./debug qui doit fairerfrence au programme appel ihm prsent et non plus demo .

    Le programme DEMO_IHM sappuie sur Nano-X, un serveur X extrmement allg qui permetdafficher 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 :

  • 8/2/2019 uClinux Tutorial S3C44B0

    32/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    32 / 36

    6 Informations complmentaires

    Ce chapitre prsente un certain nombre dinformations utiles lies lutilisation de votre carte, dansle cas ou disposez dune connexion rseau avec votre carte et pour tout ceux qui ne possde pas deLCD 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 ciblesans avoir besoin dutiliser un cordon srie.

    Dans une entreprise cela vous permet aussi dinstaller la carte un endroit loign du poste detravail, en la connectant au rseau dentreprise Ethernet.

    Vous pouvez ouvrir une session Telnet sous Windows en cliquant sur le bouton Dmarrer puisen slectionnant le menu Excuter .

    Tapez alors telnet 192.168.0.30 si ladresse IP de votre carte est 192.168.0.30.

  • 8/2/2019 uClinux Tutorial S3C44B0

    33/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    33 / 36

    Transfert FTPPour 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 transfertFTP 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 commandesautorises.

    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 fichiersdans lune ou lautre des directions.

  • 8/2/2019 uClinux Tutorial S3C44B0

    34/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    34 / 36

    Partage rseau par NFSSi vous souhaitez changer souvent des fichiers entre votre station de travail et votre cible, alors lesystme NFS (Network File System) est fait pour vous !

    Nous avons vu prcdemment comment transfrer des fichiers de la station vers la cible au traversdu rpertoire /tftpboot . Il est possible grce au NFS de faire que ce rpertoire soit un rpertoirepartag la fois par la cible et par la station. Ainsi votre PC et votre cible aura tout 2 accs cerpertoire 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 ciblepeuvent 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 aurpertoire /mnt .

  • 8/2/2019 uClinux Tutorial S3C44B0

    35/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    35 / 36

    Modification des paramtres rseauxLensemble 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 MACdu 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 basssur lutilisation dun LCD graphique 320x240 pixels.

    Le principe est dutiliser un serveur graphique appel nano-X qui contrle laffichage deslments graphiques sur le LCD et une application cliente qui dialogue avec le serveur graphiqueafin de lui indiquer les lments afficher ou rafrachir.

    Nano-X possde des fonctionnalits rseaux de sorte quil est possible davoir un client et un serveurgraphique sur 2 machines Linux diffrentes. Il est donc possible de lancer le serveur graphique sur lastation de dveloppement et le client sur la cible.

    Dans le rpertoire nano-X de votre distribution (par exemple uClinux-prag-20061017/user/microwin/src ) nous avons ajout le programme nano-x-i86 qui est compil pourun processeur i86. Vous pouvez donc le lancer sur votre station de dveloppement. Auparavant ilfaut lui indiquer quil va devoir recevoir des consignes dun client distant laide de la variable

    denvironnement REMOTE . Tapez donc export REMOTE=1 .

  • 8/2/2019 uClinux Tutorial S3C44B0

    36/36

    Btiment EARHART

    ZAC Grenoble Air Parc

    38590 St Etienne de St Geoirs - France

    www.pragmatec.net

    Tutorial / uClinux

    uClinux - Mise en oeuvre

    De plus si vous utilisez les font TRUETYPE avec votre projet il faut copier la font choisie dans votrehomedirectory. Par exemple dans le cadre du projet DEMO_IHM qui utilise la font arialb.ttf vousdevez 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 consignesvia 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-prag-20060829/user/microwin/src/bin le programme nxview qui permet dafficher une image sur leLCD ainsi que limage tux.gif .

    Transfrez les sur la cible laide de tftpget , FTP ou NFS et lancez le programme commesuit :

    nxview tux.gif

    Vous devriez obtenir sur la station de travail laffichage suivant :