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 :