14

Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

Embed Size (px)

Citation preview

Page 1: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

Polytech - Electronique et Technologies Numériques -

TP1

Première approche avec le Linux embarqué

William MARTIN. Vincent LE CAM.

Sept 2012. Version B

Contact:www.ifsttar.fr

[email protected]@ifsttar.fr

i

Page 2: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

2 Cible : PEGASE 1

Historique des versions

Date Version DescriptionNov2011

V.A Toutes : Création du TP1

Sept2012

V.B Mise à jour du TP1

1 Introduction

Le but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci�que-ment, celui des systèmes d'exploitation embarqués. L'intérèt d'un OS embarqué est d'o�rune couche d'abstraction normalisée entre les ressources physiques et logicelles d'un pro-cesseur (ports d'entrée-sortie, registres, etc.) et le code métier souvent écrit en langage C.Plusieurs OS embarqués sont disponibles et pourraient être abordés mais, généralementchacun d'entre eux, cible un type d'applications :

� Android: Téléphone portable, tablettes, ...� Windows CE : téléphone portable, tabletPC, applications graphiques� VxWorks : aéronautique, industrie automobile,� TinyOS : réseau de capteurs sans-�l intégrés,� uClinux : applications industrielles, téléphonie, smartphone...� ...

La série des TP dont il est question se focalise sur le uCLinux qui représente l'une desdéclinaisons du système Linux pour le monde embarqué (au meme titre que Ubuntu estune déclinaison pour le monde PC). Notez que plus de 25% des applications embarquéesmondiales se basent sur un noyau Linux.

L'abstraction o�erte par un OS embarqué est appréciable car elle permet de développerdes applications dont les codes sources sont relativement indépendants du processeur etdonc réutilisables d'une application à l'autre. Toutefois, un certain nombre de conceptsdoit être correctement appréhendés. Ce TP1 a pour objectif d'aborder ces concepts:

� Introduction à la carte d'instrumentation générique PEGASE d'IFSTTAR� Mise en oeuvre des outils de cross-compilation� Modi�er, compiler, �asher et booter son propre noyau uClinux� Développer et exécuter ses propres applications sur le noyau uClinux

2 Cible : PEGASE

Qui dit OS embarqué suppose dé�nition d'une cible des applications qui vont êtredéveloppées. Pour les 3 TP, la carte PEGASE développée par IFSTTAR sera utiliséecomme cible. PEGASE est l'acronyme de Plateforme Experte Générique pour Applica-tions Sans-�l Embarquées. Cette carte intègre un processeur orienté traitement de signal-un Black�n d'Analog Device- et elle est le fruit d'une certain nombre de développe-ments autour de l'instrumentation sans-�l dans le Génie Civil. Sa conception permetl'intégration d'un OS embarqué -uClinux- et cette intégration associée à des ressourcestelles qu'un récepteur GPS et un module WiFi lui confère des possibilités d'utilisations

Polytech - ETN - TP1

Page 3: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

5 ETAPE2 : Premier démarrage de PEGASE - Prise en main (1h) 2

étendues. Tout au long de cette série de TP il sera nécessaire de se référer auGuide de Mise en Oeuvre de PEGASE V1.F qui vous est fourni en annexe des TP.

Figure 1 � Photo de la carte mère de PEGASE

3 Introduction à la carte d'instrumentation générique

PEGASE d'IFSTTAR

�> Présentation sommaire du concept PEGASE par Vincent Le Cam : PowerPointdi�usé en séance (30mn)

4 ETAPE1 : Présentation de PEGASE et de son en-

vironnement uCLinux (30mn)

Pour débuter, cette étape consiste simplement en la prise de connaissance de la plate-forme PEGASE. Pour cela:

1. Se regrouper en binomes je maitrise le Linux / je ne connais pas bien Linux

2. Suivre la présentation des encadrants sur le concept PEGASE

3. Lire le point 4.1 du Guide de mise en oeuvre de PEGASE V1.F sur la compilationcroisée. Explications des encadrants.

4. Noter le rappel donné sur le principe du réseau TCP/IP (PC et PEGASE) et leDHCP

5. Pour tous les TP conserver la même carte PEGASE (cf. numéro indiqué sur lacarte)

5 ETAPE2 : Premier démarrage de PEGASE - Prise

en main (1h)

NE PAS METTRE LES CARTES PEGASE SOUS TENSION.

Les cartes PEGASE sont livrées opérationnelles c'est à dire pré-�ashées d'un noyauuClinux qui leur permet de booter. Le but est de démarrer les cartes pour une premièredécouverte de l'environnement.

Polytech - ETN - TP1

Page 4: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

5 ETAPE2 : Premier démarrage de PEGASE - Prise en main (1h) 3

5.1 Démarrage de la carte, interfaçage par RS232

Pour dialoguer entre le PC et la carte PEGASE nous utiliserons une communicationsérie de type RS232 entre le port RS232 du PC et le port RS232 de la carte PEGASE.Ce port constitue l'interface par défaut de PEGASE c'est à dire que c'est par ce portque transitent, par défaut,outputs de PEGASE (Exemple: résultats de la commande ls,printf("hello world") dans un programme C) ainsi que les inputs (commandes clavier: ls,ps, CTRL+C...).

Figure 2 � Photo de la carte �lle de debug de PEGASE

1. Connecter au PC le cordon RS232. Identi�er le numéro de port COM du PC:commande Linux dmesg

2. Sur le PC, lancer Minicom pour dialoguer avec PEGASE. Con�gurer tout dabordle port com de minicom avec la commande

# minicom -s

3. Naviguer à travers les menus pour con�gurer le port à 115200 bauds, 8N1, pas dectrl de �ux (ceci correspond également à la con�g RS232 par défaut de PEGASE)

4. Sauver et quitter la con�guration et lancer minicom.

5. Observer la carte PEGASE elle-même: trouvez et relevez son adresse MAC.

6. Avec un encadrant: retrouvez cette adresse MAC au niveau du serveur DHCP etvéri�er l'adresse IP correspondante de votre carte PEGASE

7. Auprès d'un encadrant, validez votre bonne compréhension du réseau WiFi du TP.Relever le schéma qui vous sera proposé. Identi�er sur ce schéma réseau votre PC,la carte PEGASE, l'Access Point WiFi, le services DHCP, etc.

8. Connecter l'autre extrémité du cordon série à la carte PEGASE.

9. Relier la carte PEGASE à une alimentation 12V en suivant strictement la connec-tique du bornier X2 tel que décrit en page 10 du Guide de mise en oeuvre. FAIREVALIDER PAR UN DES ENCADRANTS.

10. Mettre sous tension.

5.2 Découverte de la distribution LCPC2011.1 pré-�ashée

Depuis minicom, observer le comportement de la carte lors du boot (provoquer desreboot si nécessaire: bouton reset). Que se passe-t-il les premières secondes ? Véri�erque vous retrouvez à distance via minicom un enviromment Linux en testant plusieurscommandes.

Polytech - ETN - TP1

Page 5: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

5 ETAPE2 : Premier démarrage de PEGASE - Prise en main (1h) 4

1. Tester les commandes Linux classiques : ls, ps, cd,... (voir les documents supportsfournis)

2. Observer le résultat de la commande cat /proc/cpuinfoQuelles sont les 2 fréquencesde PEGASE, à quoi correspondent-elles selon vous ?

3. Avec la commande ps tentez identi�er un processus relatif au service réseaux surPEGASE

4. Identi�er la partition /lcpc et lire la description en page 18 du Guide

5. Créer un �chier "foo1" dans la partition / et créer un �chier "foo2" dans la partition/lcpc

6. Rebooter la carte. Quel �chier a disparu ? Retrouvez le principe décrit dans le GuideP18 : partitionnement de PEGASE.

7. Tester les commandes réseau: ifcon�g, iwcon�g. Quel est le nom de la zone WiFi(ESSID) ?

8. Tester la commande iwlist wlan0 scanning. Quelles informations permet-elle derécupérer ?

9. Dans /lcpc, avec la commande cat visualiser le contenu des �chiers autorun.sh etconnect.sh. Décrire le fonctionnement de ce dernier.

5.3 Connexion à PEGASE en IP (Telnet) / WiFi

Le but à présent est d'accéder à la carte PEGASE non plus via le lien RS232 etl'application minicom du PC mais en utilisant le client TCP/IP universel : Telnet. Lacommande Telnet doit permettre de se connecter à PEGASE en utilisant la liaison WiFi.

1. A partir de la session minicom observer les services réseau en oeuvre sur PEGASEavec la commande netstat -a. Quels services réseau PEGASE lance-t-elle native-ment ?

2. Faites une copie de sauvegarde du �chier /lcpc/autorun.sh en utilisant cp

3. En suivant scrupuleusement la FAQ en page 53 du Guide, compléter le �chier /l-cpc/autorun.sh

4. Attention à ne pas remplacer mais à bien ajouter une commande comme: echo jesuis nom prenom ! Véri�er en éditant le �chier

5. Rebooter PEGASE et observer sur minicom l'apparition, à la �n du boot, de votremessage

6. Depuis le PC faites un ping sur l'@IP de la carte PEGASE. Véri�er la réponse

7. Ouvrir une session Telnet sur la carte PEGASE. Véri�er que tout est ok et quevous retrouvez l'environnement Linux de la carte PEGASE comme depuis minicom.Suivre le Guide P24 / Service Telnet.

8. Débrancher minicom pour n'observer que la session Telnet. PEGASE pourrait fonc-tionner sur le toît de Polytech et vous vous y connecteriez en WiFi/Telnet. Relancerquelques commandes Linux. Faites valider par un encadrant

9. Sans vous embrouiller, tenter un ping puis une connexion Telnet depuis votre cartePEGASE vers la carte PEGASE du binome voisin

10. Rebooter votre carte PEGASE. Que se passe t il sur la session Telnet ?

11. Véri�er que vous pouvez relancer Telnet et que les modi�cations dans autorun.shsont persistantes.

Polytech - ETN - TP1

Page 6: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

5 ETAPE2 : Premier démarrage de PEGASE - Prise en main (1h) 5

5.4 Découverte des services de PEGASE via son serveur web

A la �n de cette étape la con�guration réseau et notamment le lien IP entre PCet PEGASE étant établis, vous pouvez naviguer sur le serveur web intégré à PEGASE.Reportez vous aux pages 27 à 29 du Guide Utilisateur : Serveur Web.

1. Sur le PC lancer un navigateur web de type Firefox

2. Saisir l'adresse IP de la carte PEGASE comme URL

3. Parcourir les di�érentes pages web de PEGASE et retrouver des informations obtenuesprécédemment par des commandes Linux comme iwcon�g ou ps

4. Retrouver le �chier /lcpc/autorun.sh. Y retrouver votre modi�cation : ajout de echo....

5. Dans le �chier /lcpc/autorun.sh ajouter l'allumage d'une led en ajoutant les com-mandes:

rmmod leds_lcpc

echo 0 > /dev/pg10

6. Dans le �chier ajouter aussi une commande permettant d'a�cher bonjour et l'adresseIP de votre carte PEGASE

7. Sauver le �chier via le navigateur web, provoquer le redémarrage et observer lerésultat via Minicom

8. Retrouvez pourquoi c'est bien cette la Led4 qui s'allume à partir du schéma de lacarte �lle dans le Guide P59 (Schéma de la carte �lle de debug)

9. Faites valider l'ensemble de vos manips par un encadrant.

PAUSE CAFE : 10 mns

Polytech - ETN - TP1

Page 7: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

6 ETAPE3 : Installation et compilation d'un noyau uClinux (50mn) 6

6 ETAPE3 : Installation et compilation d'un noyau

uClinux (50mn)

6.1 Introduction

Présentation générale par l'encadrant.

Jusqu'à présent votre approche de l'OS embarqué sur PEGASE a consisté à utiliser lenoyau existant et déjà �ashé avec la carte PEGASE telle qu'elle vous est fournie. Le but àprésent est l'aller plus loin en installant sur le PC les outils nécessaires pour con�gurer etfabriquer votre propre noyau uCLinux, vous permettre de le �asher et de l'exécutersur la cible PEGASE: c'est le principe de la compilation croisée.

PC PEGASE

Sources

Compilation

Execution

Figure 3 � La compilation croisée

Les 3 points clés de la con�guration d'un noyau Linux sont:

1. Le choix de la cible "Vendor / product selection" pour choisir la cible (target)PEGASE

2. La customisation du noyau "Customise Kernel settings"

3. La customisation des applications disponibles sur ce noyau "Vendor/User selection"

L'objectif global de cette partie du TP1 consiste à ajouter une application aunoyau de base sur lequel PEGASE boot. Toutes les sources du noyau uCLinux patchéespour PEGASE ont été installées dans un répertoire pegase sur votre PC de développe-ment. Par rapport à l'image ci-dessous, vous devez donc générer un nouveau noyau inté-grant une nouvelle Application, faire booter PEGASE sur ce nouveau noyau et lancer lanouvelle application; en l'occurence un petit jeu: Dungeon.

De plus, nous pro�terons également de cette étape pour modi�er des éléments du noyauqui pourraient nuire à la suite du TP:

1. Modi�er le driver des port �ags (boutons poussoirs) pour mettre en placeun anti-rebond logiciel

2. Libérer l'utilisation de certaines Leds qui, par défaut, sont associées au fonc-tionnement du module GPS

Polytech - ETN - TP1

Page 8: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

6 ETAPE3 : Installation et compilation d'un noyau uClinux (50mn) 7

Figure 4 � Rappel: modèle simpli�é du noyau Linux

Avant tout, via minicom, sur PEGASE, tentez de lancer le jeu Dungeon en tapant:

root:> dungeon

Véri�er que cette application n'existe pas sous cette version du noyau Linux de PEGASE.

La démarche pour la cross-compilation du noyau est la suivante:

1. Ensemble des sources du noyau de la distribution LCPC2011.1

2. Ensemble des compilateurs et outils nécessaires à la compilation de ces sources pourla cible black�n, processeur de PEGASE: b�n-linux-uclibc,...

3. Con�guration du noyau (cible: PEGASE, paramétrage du noyau, des applicationsde base): avec la commande make xcon�g

4. Compilation du noyau : obtention d'un �chier unique représentant le noyau "uIm-age.initramfs"

5. Le téléchargement et �ashage de ce noyau sur la cible PEGASE.

6. Reboot et exécution de ce noyau sur la cible PEGASE.

Pour ce faire, en prenant votre temps, suivre et appliquer attentivement les instructionsdonnées dans le Guide Utilisateur dans le paragraphe 4.4 La distribution LCPC 2011.1.Attention: bien noter que pour compiler le noyau et, plus tard, vos applications il fautouvrir un terminal de compilation en ouvrant le script: open-terminal.sh.

6.2 Modi�cation d'un driver pour un anti-rebond logiciel

IFSTTAR a (re)développé certains drivers pour la cible PEGASE pour obtenir uncomportement spéci�que sur certains périphériques: le port SPI, les Timers et les PortsFlags. Ces redéveloppements permettent principalement d'obtenir une datation très pré-cise des interruptions dès qu'elles surviennent.

Touver et éditer dans les sources de la distribution le �chier lcpc_p�ags.c:

cd .../pegase/uClinux-dist/linux-2.6.x/drivers/char

gedit lcpc_pflags.c

Polytech - ETN - TP1

Page 9: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

6 ETAPE3 : Installation et compilation d'un noyau uClinux (50mn) 8

Dans le �chier, repérer la fonction d'interruption userirq_handler et ajouter la lignecomportant le mdelay comme indiqué ci-dessous:

static irqreturn_t userirq_handler (int irq, void *dev_id)

{

int minor = (int) dev_id;

/* Sur IT, lit la valeur du PF ds une variable globale */

Tab_GPIO_Attributes[minor].bValue = gpio_get_value (minor);

Tab_GPIO_Attributes[minor].u_seconde = EXPORT_FROM_DRIVER_HWTIMER_GET_OFFICAL_MICROSECOND ();

Tab_GPIO_Attributes[minor].Heure_totale_sec = EXPORT_FROM_DRIVER_HWTIMER_GET_OFFICAL_TOTAL_HOUR ();

Tab_GPIO_Attributes[minor].nb_sat = EXPORT_FROM_DRIVER_HWTIMER_GET_OFFICAL_SAT_NUMBER ();

/* POLYTECH students: TODO add here a latency for push buttons */

mdelay(200);

/* Réveille le read bloquant */

Tab_GPIO_Attributes[minor].done = 1;

wake_up_interruptible (&Read_wait);

return IRQ_HANDLED;

}

Cette modi�cation permet de mettre en place, logiciellement, une gestion du rebond surles ports �ags en interdisant la ré-entrance dans la fonction d'interruption durant 200 mS.Observez que la datation d'un évènement est réalisée dans cette fonction d'interruption.

6.3 Customisation du noyau

Lancez à présent la customisation du noyau:

cd .../pegase/uClinux-dist/

make xconfig

La fenêtre suivante doit apparaître:

Polytech - ETN - TP1

Page 10: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

6 ETAPE3 : Installation et compilation d'un noyau uClinux (50mn) 9

Figure 5 � Fenêtre initiale pour la customisation du noyau uClinux

Dans les sous-menus de Vendor Product Selection:� Select the Vendor you wish to target: sélectionner Analog Device fabricant duprocesseur Black�n

� Select the Product you wish to target: sélectionner la cible spéci�que BF537-PEGASE proposée

Dans les sous-menus de Kernel/Library/Defaults Selection:� NE sélectionner PAS Customize Kernel Settings: con�g du noyau: demanderdes explications de cette sélection à un encadrant

� Sélectionner Customize Application/Library Settings: con�g des applica-tions prises en charges par le noyau

Sauvegarder (bouton Save) puis quitter.

6.4 Customisation des applications du noyau

La 2ième fenêtre de customisation apparaît (dûe à la sélection de Customize Applica-tion/Library Settings).

Polytech - ETN - TP1

Page 11: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

6 ETAPE3 : Installation et compilation d'un noyau uClinux (50mn) 10

Figure 6 � Customisation des jeux dans les applications du noyau uClinux

Sélectionner le génialissime jeu d'aventureDungeon dans le sous-menuGames. Pro�tez-en pour parcourir les autres menus et, sans RIENMODIFIER, observer comment le noyaupeut être plus ou moins riche (et volumineux en terme d'espace mémoire sur la cible):applications, commandes de bases, éditeurs,...

Dans le sous-menu Library Con�guration, trouver la librairieBuild Pegase LIB_PEGASEet dans le sous menu de cette librairie décocher: CGPS drive leds et CHeureAbsolue driveleds. Ceci libère pour vos applications à venir les Leds réservées par défaut.

Figure 7 � Customisation de la librairie PEGASE dans les applications du noyau uClinux

Polytech - ETN - TP1

Page 12: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

7 ETAPE4 : Première approche avec les ressources de PEGASE (5mn) 11

6.5 Compilation, génération du noyau et test sur cible PEGASE

Sauvegarder (bouton Save) puis quitter. Le noyau est con�guré, il faut à présent lecompiler, cela va prendre du temps. Saisir:

root:> make

Pendant la compilation du noyau, lire et préparer la suite du TP.

A présent, le but est de �asher la carte PEGASE avec le nouveau noyau généré (con-tenant Dungeon). Comme indiqué en page 30 du Guide, il faut copier le �chier imagedu noyau ainsi que son �chier de checksum sur la cible PEGASE. Vous les trouvez sous�/VotreRepertoireDeTravail/pegase/uClinux-dist/images�:

� uImage.initramfs: représente THE nouveau noyau Linux (environ 6 Mega-Octets)� uImage.initramfs.md5: �chier de checksum du noyau Linux (quelques Octets)

A présent, télécharger les 2 �chiers sur la carte PEGASE et booter sur ce noyau. LeGuide Utilisateur vous propose plusuieurs méthodes pour transférer des �chiers de (ouvers) le PC à la carte PEGASE. Reportez vous aux pages: P24 et suivantes ou P46.

En suivant les instruction du Guide Utilisateur P30, e�ectuer la mise à jour de lapartition de boot par défaut de PEGASE (mtd1). Utiliser le script: /lcpc/update_linux.sh.A l'issue de ce script la carte reboot. Véri�er que le nouveau noyau est opérationnel. Faitesvalider par un encadrant que vous parvenez vous à jouer au jeu Dungeon ?

7 ETAPE4 : Première approche avec les ressources de

PEGASE (5mn)

Sous Linux (embarqué ou non) la philosophie pour piloter la plupart des ports physiqueset logiques consiste à utiliser des �le descriptor. Un �le descriptor -fd- permet de représen-ter:

1. un GPIO

2. un port série (ttyBF0 ou ttyBF1 sur PEGASE)

3. une socket client ou serveur pour des communications UDP/TCP/IP

4. un port SPI pour s'interfacer, par exemple, avec un Convertisseur Analogique-Numérique (CAN)

5. des espaces mémoire: ram0, ram1, ...

Nous verrons lors des prochains TP comment il est possible d'utiliser les �les descriptorspour manipuler des ports physiques et logiques depuis des codes en langage C. Dans unpremier temps, lister les ressources par une ligne de commande; a�cher et identi�er lesports physiques listés dans le répertoire /dev (dev = device = ressources). Y retrouveret identi�er certains ports physiques de la carte PEGASE:

# cd /dev

# ls -l

Polytech - ETN - TP1

Page 13: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

8 ETAPE5: Développer une première application (35mn) 12

Taper une commande permettant d'écrire directement sur un des ports, en l'occurencele port console sur lequel vous êtes lorsque vous utilisez minicom. Saisissez la mêmecommande depuis une session Telnet ouverte sur PEGASE depuis le PC : que se passe-t-il, quelle est la di�érence avec minicom?

# echo ecriture sur un port > /dev/console

Les 6 leds présentes sur la carte �lle sont reliées, respectivement, à 6 ports �ags (ouGPIO) du processeur. Il est possible de les manipuler en ligne de commande en écrivantune valeur (0 ou 1) sur un �le descriptor représentant les leds. Allumer la led1 (puis les5 autres) avec la commande ci-dessous:

# rmmod leds_lcpc

# echo 0 > /dev/pg10

# echo 0 > /dev/pg9

# ...

8 ETAPE5: Développer une première application (35mn)

Pour �nir le TP1 il vous est demandé de créer votre première application, de lacompiler, de la télécharger et de l'exécuter sur la cible PEGASE selon le principe de lacompilation croisée. Pour cela, lire scrupuleusement le Guide Utilisateur à partir de lapage 33, chapitre Développer ses propres applications. Prendre le temps de lire les 6 pages(37 à 41) car elles expliquent le mode de développement des applications sur PEGASEdont vous aurez besoin désormais (jusqu'au TP3).

Eventuellement avec un encadrant, essayer d'avoir l'idée la plus claire possible sur:� La librairie PEGASE: son rôle, son contenu...� La notion de C-Objet (par rapport au C ou au C++ que vous connaissez)� La nécessité de compiler ses applications en ouvrant dabord un terminal par open-terminal.sh

Comme indiqué dans le Guide en 6.5, repartez de l'exemple .../pegase/uClinux-dist/user/pegase-helloworld qui vous est fourni pour réaliser votre première application. Dans le Make�lepenser à modi�er PEGASEINSTALLDIR, modi�er le nom de l'exécutable (helloworld)par le votre (MonAppliAMoi). Et compléter le code source pour ajouter le clignotementd'une Led à 10 Hz:

#...

# usleep(100000);

# system(" echo 0 > /dev/pg10");

# usleep(100000);

# system(" echo 1 > /dev/pg10");

#...

Compiler, faites tourner et valider par un encadrant le bon fonctionnement sur la ciblePEGASE.

Polytech - ETN - TP1

Page 14: Polytech - Electronique et Technologies Numériques - TP1 but de ce TP1 est de vous initier avec le monde de l'embarqué et, plus spéci que-ment, celui des systèmes d'exploitation

8 ETAPE5: Développer une première application (35mn) 13

Si vous êtes arrivés ici alors faites, selon le même principe, des modi�cations en reprenantles exemples unitaires fournis dans le répertoire .../pegase/uClinux-dist/user/pegase-test :exécuter et modi�er en particulier Example_Gpio.c.

A partir de cet exemple, essayer de comprendre les di�érences et les avantages deslectures de ports physiques en mode polling ou callback et discuter avec l'encadrant pourvalider votre compréhension.

Fin du TP1.

Polytech - ETN - TP1