next up previous contents
suivant: Configuration des ports du monter: Développement d'un système d'exploitation précédent: Conclusion   Table des matières

Sous-sections

Description des outils

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.

Compilateur, assembleur et linker

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 :

m68k-coff-gcc :
ce compilateur est la version adaptée pour la famille de processeur motorola 68000 du célèbre compilateur gcc. Il est particulièrement adapté aux systèmes enfouis car il produit un code de très bonne qualité. Il dispose d'une foule d'options paramétrables en ligne de commande comme le degré d'optimisation, la plateforme choisie, etc. Gcc permet aussi d'insérer du code assembleur en ligne. (voir [#!GCC!#])
m68k-coff-as :
nous avons utilisé l'assembleur pour certaines parties du système d'exploitation très proches de la machine : le code de démarrage, pour paramétrer les vecteurs d'interruption, pour implémenter les stubs d'interruption qui sauvent et restaurent le contexte. (voir [#!AS!#])
m68k-coff-ld :
le linker permet de lier les différents fichiers compilés ensemble et de placer le code à des endroits précis en mémoire. Un fichier de commande permet de représenter la disposition en mémoire des données. (voir [#!LD!#])

La suite d'outils PRC-Tools

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.

L'émulateur : Xcopilot

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 :

Read :
permet de lire un mot en mémoire
Write :
permet d'écrire un mot en mémoire
Reg :
affiche le contenu des registres

Avantages :

Inconvénients :

L'émulateur Palm OS : POSE

L'émulateur Palm OS (POSE) est une application qui émule les plateformes Palm Powered $^{\textregistered}$. 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.

Avantages :

Inconvénients :


next up previous contents
suivant: Configuration des ports du monter: Développement d'un système d'exploitation précédent: Conclusion   Table des matières
Fabian Skivee 2002-06-04