Comme dans la plupart des réalisations dans les systèmes enfouis, le choix des outils de développement est très important.
Disposer d'un compilateur et d'un linker flexible, performant et qui génère du code compact pour la plateforme choisie est
fondamental. Tout le travail a été réalisé sous Linux. Pour bien comprendre le procédé de compilation et l'intégration des
différents composants ensemble, il faut maîtriser certains outils comme le programme make, les scripts perl, etc.
Pour tout ce qui concerne le système Linux et les outils spécifiques qu'il contient voir, [#!syst-linux!#].
Le système d'exploitation Palm OS permet de charger des applications Palm en RAM. Ces applications Palm sont enregistrées au
format PRC. Une application pour Palm est simplement une base de données avec un certain nombre de ressources obligatoires. Le
fichier PRC est une représentation plate d'une base de données Palm. Quand le fichier PRC est chargé dans le Palm, il est convertit
en une base de données en utilisant la routine Palm OS dmCreateDatabaseFromImage(). La suite d'outils PRC-Tools contient
tout les outils nécessaires pour créer des applications Palm.
Nous avons utilisé la suite d'outils GNU m68k-coff qui constitue un environnement de développement pour la famille des processeurs Motorola 68000. Voici la liste des outils que nous avons utilisés :
La suite d'outils PRC-Tools est un ensemble complet d'outils pour construire des applications Palm en C et C++. Le package inclu les
versions patchées des packages GNU GCC, binutils et gdb ainsi que certains outils pour construire des fichiers PRC.
Le compilateur est m68k-palmos-gcc et fonctionne comme le gcc normal sauf qu'il est adapté pour les applications Palm. L'outils
le plus intéressant de la suite est build-prc qui permet de créer les fameux fichiers PRC.
build-prc lit les fichiers ressource qu'on lui donne en entrée et les combine en un fichier de ressource Palm OS au format PRC.
Une fois que l'on a réussi à générer du code pour les plateformes m68k et plus particulièrement pour le Palm, il faut pouvoir simuler
l'exécution de ce code. XCopilot est un émulateur pour PalmIII sous Unix. Il dispose de deux fichiers pilot.rom et
pilot.ram qui correspondent respectivement au contenu de la ROM et de la RAM du PalmIII. Il suffit donc de remplacer le fichier
pilot.rom par notre propre code et celui-ci peut être émulé. L'option -reset permet d'effacer la RAM avant le démarrage
de l'émulateur
Xcopilot dispose d'un petit débugger intégré qui envoie ces informations en TCP/IP sur le port 2000. En se connectant au port 2000 de
la machine, il est donc possible de contrôler l'exécution du Xcopilot. L'option -debug old permet d'activer ce debugger.
Le débugger permet d'effectuer les actions suivantes :
Il était difficile de débugger avec ces quelques commandes. J'ai donc ajouté trois commandes au débugger :
L'émulateur Palm OS (POSE) est une application qui émule les plateformes Palm Powered
. Cet émulateur
est fournit par Palm et permet de charger une image de ROM, des applications et des bases de données. On peut ainsi disposer d'un
Palm sur son PC.
Le POSE affiche une image à l'écran qui représente exactement une machine Palm. On peut séléctionner quel type de Palm on veut émuler.
On peut utiliser cet émulateur pour pour debugger facilement des applications Palm ou l'utiliser avec un debugger Palm pour effectuer
du debugging intensif.
Cet outil est destiné aux développers d'applications Palm qui disposent d'un moyen simple de tester et debugger leurs applications sans devoir les placer sur un Palm réel.