GCC : installation d'un environnement de développement pour le Palm

Cet article a été publié dans le numéro 2 (octobre 1999) du magazine Team Palmtops.
Il est reproduit avec l'aimable autorisation de Posse Press.

 

Développer pour le Palm sans débourser un centime ? Grâce à l'enthousiasme de la poignée de développeurs qui ont élaboré tous les outils nécessaires, c'est possible !

Nous abordons ce mois-ci l'installation de ces outils, avec à la clé la compilation d'une première application. La procédure d'installation décrite dans ce qui suit ne devrait pas poser de problèmes si les indications fournies sont fidèlement respectées. S'il n'est pas impossible de tenter des variantes, sachez néanmoins que vous vous risquez le cas échéant de passer de longues heures à chercher le petit détail qui "coince"... Une dernière précision avant de commencer : il vous faudra environ 100 Mo d'espace libre sur votre disque C: pour pouvoir travailler tranquillement. Gardez à l'esprit que tous les fichiers mentionnés sont disponibles sur le CD-ROM de Team Palmtops, dans le répertoire \Pilot\Magazine\Prog. Nous ne mentionnerons que les noms des sous-répertoires dans cet article...

GCC-0.5.0 : complet, mais un peu dépassé

Son nom fait référence au fameux compilateur GCC que la Free Software Fundation propose dans le cadre du projet GNU, mais l'environnement GCC-0.5.0 constitue en réalité un système de développement complet : tous les outils nécessaires pour développer une application Palm y sont inclus. Malheureusement, cette solution date de deux ans déjà et beaucoup de choses se sont passées entre-temps dans le petit monde du Palm. Néanmoins, une bonne partie des outils garde son intérêt et c'est pourquoi nous avons retenu GCC-0.5.0 pour bâtir notre environnement.

Commençons par décompresser toutes les archives dont le nom commence par win32gcc050 dans un répertoire temporaire. Démarrons ensuite l'installateur, qui répond au nom de setup.exe. Contrairement aux apparences, cet installateur n'est pas conçu pour effectuer une installation sur un disque autre que C:. Il est possible de changer le disque de destination, mais comme dans ce cas on constate (après coup !) que beaucoup de choses ne fonctionnent pas comme prévu, il est prudent de s'en tenir à C:. En revanche, à l'aide du bouton "browse", nous choisissons un nom de répertoire de destination plus commode que celui proposé par défaut, par exemple C:\PalmSDK. Enfin, nous sélectionnons l'installation "typical".

Après cette étape, la machine peut sembler bloquée pendant quelques secondes, mais l'on peut bientôt continuer l'installation en cliquant sur le bouton "Next" pour valider chacune des étapes suivantes, dont la dernière consiste en la création d'un certain nombre d'icônes. Au terme de cette phase relativement lente, un ultime message nous indique qu'il faut redémarrer l'ordinateur. Avant d'accepter le redémarrage, procédons à quelques vérifications. Le fichier C:\autoexec.bat doit avoir été complété par la définition de quelques variables et la modification du PATH. Si le répertoire Program Files est sur un autre disque que C: (configuration atypique : danger !), l'installateur se trompe et crée dans le répertoire racine de ce disque un autoexec.bat partiel avec les infos correspondantes, qu'il faut alors reporter dans le "vrai" autoexec.bat...] Il faut également créer le répertoire C:\tmp, si nécessaire. Ensuite nous pouvons redémarrer la machine.

Au terme de l'installation, nous trouvons un dossier PalmPilot-GNU dans le menu Démarrer/Programmes de Windows. Si nous ouvrons ce dossier et double-cliquons sur le raccourci bash, une fenêtre DOS s'ouvre, avec l'interpréteur de commandes d'origine Unix. Vérifions que la commande ls, équivalente au dir du DOS, affiche bien une liste de fichiers, puis fermons la fenêtre à l'aide de la commande exit. Il faut prendre garde à ne pas forcer la fermeture en cliquant sur le bouton de fermeture de la fenêtre, car cette manipulation est susceptible de destabiliser toute la machine.

Nous pouvons supprimer toutes les autres icônes présentes dans le dossier PalmPilot-GNU, car elles correspondent à des outils dépassés. Profitons-en pour renommer ce dossier et lui donner l'appellation PalmDev, plus actuelle. Nous terminons en supprimant le répertoire temporaire où nous avions décompressé les archives win32gcc050 : il est désormais inutile.

Copie d'écran CodeWarrior

Le dossier créé par l'installation standard de GCC-0.5.0.

 

Copie d'écran CodeWarrior

GCC-0.5.0 s'appuie sur bash, d'origine Unix.

PalmOS SDK 3.0

Conformément à sa volonté d'ouverture, 3Com a rendu disponible l'ensemble des éléments nécessaires au développement pour le Palm, dont la plus grande partie est réunie dans le SDK PalmOS : fichiers d'en-tête (portant l'extension .h), documentation, exemples d'applications, etc. La version actuellement disponible est la 3.0 (une version préliminaire 3.1 est également proposée). Elle consiste en un fichier d'archive winsdk3.zip pesant quelque 9 Mo, que nous décompressons dans le répertoire C:\PalmSDK\PalmOS3.0.

Nous pouvons ensuite actualiser les fichiers d'en-tête livrés avec GCC-0.5.0. Pour ce faire, nous remplaçons le contenu du répertoire C:\PalmSDK\m68k-palmos-coff\include\PalmOS par celui du répertoire C:\PalmSDK\PalmOS3.0\Incs. Toute la documentation incluse dans le SDK est au format Acrobat d'Adobe (les fichiers portent l'extension .pdf). Afin d'être en mesure de la visualiser, il faut installer Acrobat Reader. La version 4 de cet outil est disponible en français, sous la forme d'un programme auto-extractible ar40fra.exe de près de 6 Mo qu'il suffit de lancer pour en activer l'installation. Il se trouve dans le répertoire \Utilitaires\PC du CD-ROM de Team Palmtops.

Concluons cette étape en créant, dans le dossier PalmDev du menu Démarrer/Programmes, des raccourcis vers les fichiers de documentation qui se trouvent dans le répertoire C:\PalmSDK\PalmOS3.0\docs.

La documentation officielle nécessite Acrobat Reader.

Emulateur

GCC-0.5.0 est livré avec Copilot, le programme qui a servi de base à l'émulateur POSE (PalmOS Emulator), aujourd'hui officiellement diffusé par 3Com. Nous pouvons sans regret détruire le répertoire C:\PalmSDK\copilot, ainsi que le fichier copilot.exe présent dans le répertoire C:\PalmSDK\bin, car nous allons les remplacer par une version mise à jour. Commençons par extraire le contenu du fichier d'archive emulator_app_21d29.zip dans le répertoire C:\PalmSDK\pose. Nous créons ensuite un raccourci vers le programme Emulator.exe, que nous ajoutons à notre dossier PalmDev.

Il nous manque encore un élément essentiel au fonctionnement de l'émulateur : une copie de la ROM. Les ROMs PalmOS sont protégées par un copyright, leur diffusion n'est pas libre et leur copie est interdite. En revanche, grâce à l'émulateur, nous pouvons récupérer une copie de la ROM de notre propre Palm. Pour ce faire, cliquons sur le bouton "Download" de la boîte de dialogue qui apparaît au démarrage de l'émulateur, puis suivons la procédure pas à pas. Installons sur le Palm la petite application ROM Transfer.prc livrée dans le répertoire C:\PalmSDK\pose, précisons le numéro et la vitesse (en général 115200 fonctionne bien) du port série auquel est connecté le berceau. Plaçons ensuite le Palm sur le berceau et lançons l'application ROM Transfer. Après avoir indiqué la même vitesse que précédemment et désactivé la Hotsync (en cliquant sur l'icône dans la barre des tâches de Windows, juste à côté de la pendule), nous pouvons déclencher le téléchargement en tapant sur le bouton "Begin Transfer" sur le Palm. Au bout de quelques minutes, nous disposons d'un fichier Palm.ROM que vous stockons dans le répertoire C:\PalmSDK\pose. L'émulateur est alors fonctionnel !

L'émulateur POSE remplace avantageusement son ancêtre CoPilot.

 

L'application ROM Transfer permet de récupérer le contenu de la ROM du Palm.

 

L'icône de l'application ROM Transfer.

 

Récupération de la ROM par à l'aide de l'émulateur.

Editeur

L'éditeur incorporé à GCC-0.5.0, dans la lignée des outils GNU, n'est autre qu'une version Windows d'emacs, bien connu des unixiens. Bien qu'il soit parfaitement concevable et possible d'utiliser cet éditeur, il faut reconnaître qu'il ne se caractérise pas par sa simplicité d'utilisation ni par sa convivialité. De nombreux éditeurs Windows existent sur le marché, dont par exemple PFE (freeware), ou encore l'excellent UltraEdit (shareware, $30). En l'occurence, puisque nous avons choisi de ne nous appuyer que sur des outils disponibles gratuitement, nous avons retenu PFE. Pour l'installer, il suffit d'extraire le contenu de l'archive pfe101i.zip dans le répertoire C:\Program Files\PFE.

Pour un bon fonctionnement du débogueur source GDB, il est important de configurer PFE en mode Unix. Pour ce faire, à l'aide du menu Options/Default modes, créer un "Mode group" que l'on associe au filtre "*.c, *.h, *.rcp, makefile", puis cocher l'option "Use UNIX convention (LF) for end-of-line" dans la rubrique "Saving" visible lorsque l'on clique sur le bouton "Edit modes". Nous terminons en créant un raccourci vers le programme pfe.exe, à ajouter au dossier PalmDev.

PFE, un bon éditeur freeware.

 

Le débogueur source GDB en action.

Outils complémentaires

Le compilateur de ressources fourni avec GCC-0.5.0 est PilRC 1.5. Cet outil a beaucoup évolué depuis deux ans et nous en sommes à la version 2.4. Pour l'installer, il suffit d'extraire le contenu du fichier d'archive pilrc.zip dans le répertoire C:\PalmSDK\pilrc, puis de déposer une copie de l'exécutable pilrc.exe de ce répertoire dans le répertoire C:\PalmSDK\bin, afin d'écraser l'ancienne version.

Bien qu'il soit possible de travailler avec un éditeur d'image capable de produire des fichiers BMP monochromes, un petit outil pour la création des icônes n'est pas inutile. A cet égard, IcoEdit s'avère très commode. Il permet notamment de visualiser l'icône en cours de création à plusieurs niveaux de résolution, ce qui facilite nettement la perception du "rendu". Pour installer IcoEdit, nous plaçons le contenu du fichier d'archive icoedit.zip dans le répertoire C:\PalmSDK\icoedit, puis nous créons un raccourci vers le programme PilotIconEditor.exe, à placer dans le dossier PalmDev.

IcoEdit facilite la création des icônes.

Pour terminer, deux outils liés au débogage. Le premier, gdbplug, est destiné à faire le lien entre l'émulateur POSE et le débogueur source GDB. Nous copions le contenu de l'archive gdbplug.zip dans le répertoire C:\PalmSDK\gdbplug, puis nous créons un raccourci vers le programme gdbplug.exe, à placer comme les autres dans le dossier PalmDev. Nous modifions ensuite les propriétés de ce raccourci pour que sa cible soit C:\PalmSDK\gdbplug\gdbplug.exe -port 200 -enable. Le second outil permet un débogage niveau machine. Il s'appelle debuffer (pour l'origine de ce nom, voyez la page web de son auteur !) et s'installe simplement en extrayant le contenu du fichier d'archive debuffer.zip dans le répertoire C:\PalmSDK\debuffer. Son utilisation précise sera abordée ultérieurement.

gdbplug, lien indispensable entre l'émulateur POSE et le débogueur GDB.

Test

Le fichier d'archive exemple.zip renferme les constituants d'une petite application qui nous servira à vérifier l'intégrité de l'environnement de programmation. Plaçons son contenu dans un répertoire de travail que nous nommons C:\dev\exemple. Nous lançons ensuite bash, puis nous tapons cd /dev/exemple pour nous positionner au bon endroit, et enfin make pour lancer la compilation. Si tout se passe correctement, nous obtenons un fichier app.prc que nous pouvons installer sur notre machine, ou (c'est moins risqué) sur l'émulateur (le glisser-déplacer fonctionne à merveille). Il ne reste plus qu'à taper avec le stylet sur l'icône de l'application intitulée "Exemple", et le tour est joué !

Références (mis à jour le 11 juin 2000)

Les outils et fichiers mentionnés dans ce dossier sont disponibles librement sur Internet. Le tableau ci-dessous indique pour chacun d'eux l'adresse de la page web correspondante et celle des fichiers à télécharger. Attention, tout ceci est très volumineux (plusieurs dizaines de Mo !)... Vous trouverez la plupart des archives sur le CD-ROM de Team Palmtops. Nous attendons le feu vert de 3Com pour le SDK 3.0, qu'il vous faudra donc télécharger par vos propres moyens.

GCC-0.5.0

Les outils GCC pour Palm sont maintenant suivis par Palm Inc. Une version à jour est dorénavant disponible sur http://www.palmos.com/dev/tech/tools/gcc/

SDK PalmOS 3.0
Acrobat Reader http://www.adobe.com/support/downloads/acrwin.htm
Emulateur POSE http://www.palmos.com/dev/tech/tools/emulator/
Editeur PFE http://www.lancs.ac.uk/people/cpaap/pfe/ (cet outil n'évolue plus)
Editeur UltraEdit http://www.ultraedit.com/downloads/index.html
IcoEdit N'existe plus.
PilRC http://www.ardiri.com
gdbplug N'est plus nécessaire avec les versions récentes de l'environnement GCC.
Debuffer http://www.pagesz.net/~sessoms/debuffer/

Le mois prochain, nous nous pencherons sur les sources de cette application minimale, afin d'en saisir l'organisation et le fonctionnement.

Denis Faivre - palmprog@ablivio.com.

Copyright © 1999-2000 - Denis Faivre et Posse Press.
Tous droits réservés.