Polytech - Electronique et Technologies Numériques - TP1 Première approche avec le Linux embarqué



Documents pareils
Formation à l'utilisation de PEGASE : Plate-forme Experte Générique pour Applications Sans-fil Embarquées

Installation et prise en main

Network Camera. Camera. Network. Guide d installation v1.1. Installation Guide v R1.1. Anglais. Français. Espagnol. Allemand R1.

Bac Professionnel Systèmes Electroniques Numériques

INSTALLATION MODULE WEB

DOCUMENTATION VISUALISATION UNIT

NovoSIP manuel de mise en service

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

Retrospect 7.7 Addendum au Guide d'utilisation

TP 4 & 5 : Administration Windows 2003 Server

ETI/Domo. Français. ETI-Domo Config FR

FreeNAS Shere. Par THOREZ Nicolas

Traitement de données

Installation software

Manuel d'installation de GESLAB Client Lourd

Cours LG : Administration de réseaux et sécurité informatique. Dans les Paramètres Système onglet Processeur, le bouton "Activer PAE/NX"

Assistance à distance sous Windows

1. Généralités Certifications Ouverture du carton Contenu de la boîte... 3

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

1. Présentation du TP

Tutorial uclinux ARM7 Development Starter Kit. Pragmatec Produits et services dédiés aux systèmes embarqués. uclinux - Mise en oeuvre

NovoSIP manuel de mise en service

Installation 1K-Serveur

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

NovoSIP manuel de mise en service

Systèmes embarqués D.Rossier

Etape 1 : Connexion de l antenne WiFi et mise en route

WGW PBX. Guide de démarrage rapide

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

Mise en place des TPs Réseau en machines virtuelles. Utilisation de VmPlayer

Quick Start Installation de MDweb version 2.3

Éléments d'architecture des ordinateurs

1. Comment accéder à mon panneau de configuration VPS?

Client Kiwi Backup : procédures d'installation et de mise à jour. Gilles Arnoult, Clément Varaldi

Edutab. gestion centralisée de tablettes Android

Hotspot Mobile 3G+ HUAWEI E587. Guide de démarrage rapide

2. Activation du WIFI sur la FREEBOX et de sa fonction Routeur

Permis de conduire info

Itium XP. Guide Utilisateur

TP1 - Prise en main de l environnement Unix.

Installation d un Contrôleur de Domaine Windows Server 2003

pas à pas prise en main du logiciel Le Cloud d Orange - Transfert de fichiers sur PC et MAC Le Cloud

Boîtier pour disque dur externe 3,5" (8,89cm) USB 2.0

Hotspot Mobile 4G HUAWEI E5776. Guide de démarrage rapide

Sélection du contrôleur

Atelier Le gestionnaire de fichier

Les possibilités de paramétrage réseau des logiciels de virtualisation sont les suivantes quant à la connexion réseau :

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1

Mettre Linux sur une clé USB bootable et virtualisable

PARAGON SYSTEM BACKUP 2010

Cours Langage C/C++ Programmation modulaire

L'accès aux ressources informatiques de l'ufr des Sciences

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

domovea Portier tebis

TRAVAILLER SUR LES ORDINATEURS DU LYCEE

VD Négoce. Description de l'installation, et procédures d'intervention

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Direction des Systèmes d'information

1 INTRODUCTION 2 2 PRE-REQUIS Export du certificat du serveur Date et heure du système Téléchargement du logiciel du terminal 2

Laplink PCmover Express La façon la plus facile de transférer vers un nouveau PC Windows

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer

Seafile, pour simplifier l'accès à ses fichiers, les partager et les synchroniser

MANUEL D INSTALLATION

Mise en oeuvre d un Serveur de CD AXIS StorPoint

Manuel de l utilisateur

WINDOWS SERVER 2003-R2

Boot Camp Guide d installation et de configuration

Accès à un coupleur/contrôleur Ethernet via une liaison téléphonique

Manuel logiciel client for Android

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Manuel d'installation

Raja Bases de données distribuées A Lire - Tutoriel

Clé Flash USB2.0 Acer

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

2X ThinClientServer Guide d utilisation

Notice succincte pour ordinateurs Windows - IPC-10 AC

LOGICIEL ALARM MONITORING

Movie Cube. Manuel utilisateur pour la fonction sans fil WiFi

ultisites S.A. module «services»

Dispositions relatives à l'installation :

ndv access point : Utilisation

Séquence de découverte de SparkAngels Logiciel d entraide numérique

SweetyPix, mode d'emploi

[Serveur de déploiement FOG]

JaZUp manuel de l'utilisateur v2.4

TD/TP 1 Introduction au SDK d Android

Activité : TP Durée : 6H00. Un PC d assemblage de marque NEC Un casque avec micro Une clé USB. Un CD de Windows XP professionnel

Préconisations Techniques & Installation de Gestimum ERP

Dongle WiFi de QUMI Manuel de l utilisateur

56K Performance Pro Modem

TAGREROUT Seyf Allah TMRIM

VIDEO RECORDING Accès à distance

Seagate Technology LLC S. De Anza Boulevard Cupertino, CA 95014, États-Unis

TeamViewer 9 Manuel Wake-on-LAN

Guide d'installation rapide. Caméras IP

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

Un serveur web, difficile?

Transcription:

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 william.martin@power-lan.com vincent.le-cam@ifsttar.fr i

2 Cible : PEGASE 1 Historique des versions Date Version Description Nov 2011 V.A Toutes : Création du TP1 Sept 2012 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éciquement, celui des systèmes d'exploitation embarqués. L'intérèt d'un OS embarqué est d'or une couche d'abstraction normalisée entre les ressources physiques et logicelles d'un processeur (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éralement chacun 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 des déclinaisons du système Linux pour le monde embarqué (au meme titre que Ubuntu est une déclinaison pour le monde PC). Notez que plus de 25% des applications embarquées mondiales se basent sur un noyau Linux. L'abstraction oerte par un OS embarqué est appréciable car elle permet de développer des applications dont les codes sources sont relativement indépendants du processeur et donc réutilisables d'une application à l'autre. Toutefois, un certain nombre de concepts doit ê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 Modier, 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 être développées. Pour les 3 TP, la carte PEGASE développée par IFSTTAR sera utilisée comme cible. PEGASE est l'acronyme de Plateforme Experte Générique pour Applications Sans-l Embarquées. Cette carte intègre un processeur orienté traitement de signal -un Blackn d'analog Device- et elle est le fruit d'une certain nombre de développements autour de l'instrumentation sans-l dans le Génie Civil. Sa conception permet l'intégration d'un OS embarqué -uclinux- et cette intégration associée à des ressources telles qu'un récepteur GPS et un module WiFi lui confère des possibilités d'utilisations

5 ETAPE2 : Premier démarrage de PEGASE - Prise en main (1h) 2 Tout au long de cette série de TP il sera nécessaire de se référer au Guide de Mise en Oeuvre de PEGASE V1.F qui vous est fourni en annexe des TP. étendues. 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 : PowerPoint di usé en séance (30mn) 4 ETAPE1 : Présentation de PEGASE et de son environnement uclinux (30mn) Pour débuter, cette étape consiste simplement en la prise de connaissance de la plateforme 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 compilation croisée. Explications des encadrants. 4. Noter le rappel donné sur le principe du réseau TCP/IP (PC et PEGASE) et le DHCP 5. Pour tous les TP conserver la même carte PEGASE (cf. numéro indiqué sur la carte) 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 noyau uclinux qui leur permet de booter. Le but est de démarrer les cartes pour une première découverte de l'environnement.

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 communication sé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 port que 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 dabord le port com de minicom avec la commande # minicom -s 3. Naviguer à travers les menus pour con gurer le port à 115200 bauds, 8N1, pas de ctrl 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 et vé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 connectique du bornier X2 tel que décrit en page 10 du Guide de mise en oeuvre. FAIRE VALIDER 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 des reboot si nécessaire: bouton reset). Que se passe-t-il les premières secondes? Véri er que vous retrouvez à distance via minicom un enviromment Linux en testant plusieurs commandes.

5 ETAPE2 : Premier démarrage de PEGASE - Prise en main (1h) 4 1. Tester les commandes Linux classiques : ls, ps, cd,... (voir les documents supports fournis) 2. Observer le résultat de la commande cat /proc/cpuinfo Quelles sont les 2 fréquences de PEGASE, à quoi correspondent-elles selon vous? 3. Avec la commande ps tentez identier un processus relatif au service réseaux sur PEGASE 4. Identier 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 Guide P18 : partitionnement de PEGASE. 7. Tester les commandes réseau: ifcong, iwcong. Quel est le nom de la zone WiFi (ESSID)? 8. Tester la commande iwlist wlan0 scanning. Quelles informations permet-elle de récupérer? 9. Dans /lcpc, avec la commande cat visualiser le contenu des chiers autorun.sh et connect.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 et l'application minicom du PC mais en utilisant le client TCP/IP universel : Telnet. La commande 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 PEGASE avec la commande netstat -a. Quels services réseau PEGASE lance-t-elle nativement? 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 /lcpc/autorun.sh 4. Attention à ne pas remplacer mais à bien ajouter une commande comme: echo je suis nom prenom! Vérier en éditant le chier 5. Rebooter PEGASE et observer sur minicom l'apparition, à la n du boot, de votre message 6. Depuis le PC faites un ping sur l'@ip de la carte PEGASE. Vérier la réponse 7. Ouvrir une session Telnet sur la carte PEGASE. Vérier que tout est ok et que vous 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 fonctionner sur le toît de Polytech et vous vous y connecteriez en WiFi/Telnet. Relancer quelques commandes Linux. Faites valider par un encadrant 9. Sans vous embrouiller, tenter un ping puis une connexion Telnet depuis votre carte PEGASE vers la carte PEGASE du binome voisin 10. Rebooter votre carte PEGASE. Que se passe t il sur la session Telnet? 11. Vérier que vous pouvez relancer Telnet et que les modications dans autorun.sh sont persistantes.

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 conguration réseau et notamment le lien IP entre PC et 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 obtenues précédemment par des commandes Linux comme iwcong ou ps 4. Retrouver le chier /lcpc/autorun.sh. Y retrouver votre modication : ajout de echo... 5. Dans le chier /lcpc/autorun.sh ajouter l'allumage d'une led en ajoutant les commandes: rmmod leds_lcpc echo 0 > /dev/pg10 6. Dans le chier ajouter aussi une commande permettant d'acher bonjour et l'adresse IP de votre carte PEGASE 7. Sauver le chier via le navigateur web, provoquer le redémarrage et observer le résultat via Minicom 8. Retrouvez pourquoi c'est bien cette la Led4 qui s'allume à partir du schéma de la carte 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

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 le noyau 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 congurer et fabriquer votre propre noyau uclinux, vous permettre de le asher et de l'exécuter sur la cible PEGASE: c'est le principe de la compilation croisée. PC PEGASE Sources Compilation Exécution Figure 3 La compilation croisée Les 3 points clés de la conguration 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 au noyau de base sur lequel PEGASE boot. Toutes les sources du noyau uclinux patchées pour PEGASE ont été installées dans un répertoire pegase sur votre PC de développement. 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 la nouvelle application; en l'occurence un petit jeu: Dungeon. De plus, nous proterons également de cette étape pour modier des éléments du noyau qui pourraient nuire à la suite du TP: 1. Modier le driver des port ags (boutons poussoirs) pour mettre en place un anti-rebond logiciel 2. Libérer l'utilisation de certaines Leds qui, par défaut, sont associées au fonctionnement du module GPS

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érier 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 pour la cible blackn, processeur de PEGASE: bn-linux-uclibc,... 3. Conguration du noyau (cible: PEGASE, paramétrage du noyau, des applications de base): avec la commande make xcong 4. Compilation du noyau : obtention d'un chier unique représentant le noyau "uimage.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 instructions donné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 faut ouvrir un terminal de compilation en ouvrant le script: open-terminal.sh. 6.2 Modication d'un driver pour un anti-rebond logiciel IFSTTAR a (re)développé certains drivers pour la cible PEGASE pour obtenir un comportement spécique sur certains périphériques: le port SPI, les Timers et les Ports Flags. 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_pags.c: cd.../pegase/uclinux-dist/linux-2.6.x/drivers/char gedit lcpc_pflags.c

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 ligne comportant 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_MICROSE Tab_GPIO_Attributes[minor].Heure_totale_sec = EXPORT_FROM_DRIVER_HWTIMER_GET_OFFICAL_T 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 modication permet de mettre en place, logiciellement, une gestion du rebond sur les 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:

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 du processeur Blackn Select the Product you wish to target: sélectionner la cible spécique BF537- PEGASE proposée Dans les sous-menus de Kernel/Library/Defaults Selection: NE sélectionner PAS Customize Kernel Settings: cong du noyau: demander des explications de cette sélection à un encadrant Sélectionner Customize Application/Library Settings: cong des applications 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 Application/Library Settings).

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'aventure Dungeon dans le sous-menu Games. Protezen pour parcourir les autres menus et, sans RIEN MODIFIER, observer comment le noyau peut ê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 Conguration, trouver la librairie Build Pegase LIB_PEGASE et dans le sous menu de cette librairie décocher: CGPS drive leds et CHeureAbsolue drive leds. 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

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 conguré, il faut à présent le compiler, 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é (contenant Dungeon). Comme indiqué en page 30 du Guide, il faut copier le chier image du 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. Le Guide Utilisateur vous propose plusuieurs méthodes pour transférer des chiers de (ou vers) le PC à la carte PEGASE. Reportez vous aux pages: P24 et suivantes ou P46. En suivant les instruction du Guide Utilisateur P30, eectuer la mise à jour de la partition 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érier que le nouveau noyau est opérationnel. Faites valider 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 physiques et logiques consiste à utiliser des le descriptor. Un le descriptor -fd- permet de représenter: 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 descriptors pour manipuler des ports physiques et logiques depuis des codes en langage C. Dans un premier temps, lister les ressources par une ligne de commande; acher et identier les ports physiques listés dans le répertoire /dev (dev = device = ressources). Y retrouver et identier certains ports physiques de la carte PEGASE: # cd /dev # ls -l

8 ETAPE5: Développer une première application (35mn) 12 Taper une commande permettant d'écrire directement sur un des ports, en l'occurence le port console sur lequel vous êtes lorsque vous utilisez minicom. Saisissez la même commande depuis une session Telnet ouverte sur PEGASE depuis le PC : que se passet-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 (ou GPIO) du processeur. Il est possible de les manipuler en ligne de commande en écrivant une valeur (0 ou 1) sur un le descriptor représentant les leds. Allumer la led1 (puis les 5 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 la compiler, de la télécharger et de l'exécuter sur la cible PEGASE selon le principe de la compilation croisée. Pour cela, lire scrupuleusement le Guide Utilisateur à partir de la page 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 PEGASE dont 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 openterminal.sh Comme indiqué dans le Guide en 6.5, repartez de l'exemple.../pegase/uclinux-dist/user/pegasehelloworld qui vous est fourni pour réaliser votre première application. Dans le Makele penser à modier PEGASEINSTALLDIR, modier le nom de l'exécutable (helloworld) par le votre (MonAppliAMoi). Et compléter le code source pour ajouter le clignotement d'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 cible PEGASE.

8 ETAPE5: Développer une première application (35mn) 13 Si vous êtes arrivés ici alors faites, selon le même principe, des modications en reprenant les exemples unitaires fournis dans le répertoire.../pegase/uclinux-dist/user/pegase-test : exécuter et modier en particulier Example_Gpio.c. A partir de cet exemple, essayer de comprendre les diérences et les avantages des lectures de ports physiques en mode polling ou callback et discuter avec l'encadrant pour valider votre compréhension. Fin du TP1.