Introduction
Dans cet article nous allons présenter Windows
CE (Compact Edition) et vous donner les bases pour comprendre cet OS. Windows
CE est, en effet, une version bien particulière de Windows destinée aux appareils
mobiles tels que les PocketPC, SmartPhone ou systèmes embarqués (voitures,
écrans passagers dans les avions...). Windows CE doit donc pouvoir être utilisé
sur une multitude de machines différentes non compatibles : processeurs,
périphériques, mémoire, affichage... De plus, sa taille doit être la plus
faible possible. C’est pourquoi il n’existe pas de Windows CE générique ;
Microsoft propose plutôt un logiciel permettant de créer le Windows CE parfaitement
adapté au matériel ciblé. Il s’agit de Platform Builder.
Nous allons tout d’abord voir comment personnaliser
et compiler le noyau de son OS.
Présentation de Windows CE
Voici ce à quoi ressemble l’interface graphique de Windows CE :
Comme vous le voyez donc, cette interface est très proche
des Windows « classiques ».
L’architecture du système, est, elle, plus particulière,
puisqu’elle doit permettre la plus grande modularité possible afin de pouvoir
implémenter Windows CE pour des matériels très variés :
Il faut donc choisir tous les modules nécessaires au bon
fonctionnement du système sur un matériel donné. Ainsi, chaque fabricant implémente
le Windows CE voulu grâce à un outil de génération (Platform Builder), et
paye ensuite une licence (de l’ordre de $3) à Microsoft pour chaque Windows
CE vendu sur ce matériel. Par exemple, il est tout à fait possible de créer
une implémentation de Windows CE sans interface graphique (automates) !
La taille de l’OS peut ainsi varier entre 1 MO (noyau sans interface ni option)
et plusieurs dizaines de MO (interface graphique, multiples drivers, applications
finales variées...).
Installation de Platform Builder
Avant tout, vous devez installer Platform Builder :
il s’agit de l’environnement de développement permettant de créer une implémentation
spécifique de Windows CE. Ce logiciel est disponible en version d’essai à
cette adresse
(seule une version anglaise est disponible). Il vous permettra, une fois votre
noyau compilé, soit de le simuler sur la machine de développement (grâce à
l’émulateur fourni), soit de l’implanter sur une machine cible (autre PC,
PocketPC...).
L’installation se déroule « sans encombres ».
Si vous choisissez une « Custom Installation », vous devrez choisir
les composants à installer : en effet, pour chaque processeur existe
une interface OS/matériel différente. Il vous suffit donc d’installer celles
dont vous aurez l’utilité :
Sur l’exemple ci-dessus, nous n’installons que
les Board Support Packages (BSP) pour l’émulateur (considéré ici comme un
matériel à part entière) et les processeurs x86 (PC).
Compilation d’un noyau et simulation sur émulateur
Pour débuter sous Platform Builder, nous allons réaliser
notre premier OS. Pour cela, il suffit de créer une nouvelle plateforme via
le menu « File à New Platform... ».
Nous allons suivre étape par étape l’assistant de création
de plateforme. Après un écran d’accueil, vous devez choisir le type de la
machine ciblée :
Ici, nous développons un OS qui sera simulé sur
la machine de développement via l’émulateur de Platform Builder. L’étape suivante
vous propose de choisir les fonctionnalités de votre OS : vous pouvez
sélectionner une configuration type ou bien en créer une personnalisée :
Si vous optez pour une « Custom configuration »,
vous devrez choisir tous les éléments de l’OS un par un : avec ou sans
interface graphique, drivers en tout genre, protocoles réseaux, applications
finales, polices...
Sélectionner une configuration prédéfinie vous évite d’avoir
à choisir parmi toutes les options possibles. Vous pourrez par la suite plus
ou moins affiner la configuration choisie. Au final, Platform Builder réunira
tous les composants nécessaires à votre Windows CE. Vous pouvez par la suite
retirer des modules ou en ajouter. Dans la fenêtre de gauche se trouvent toutes
les fonctionnalités présentent dans l’OS et, dans celle de droite, toutes
les fonctionnalités que l’on peut ajouter :

Vous devez maintenant compiler votre noyau. Pour cela, cliquez
sur « Build à Build Platform ». L’opération est assez longue : comptez
15 minutes environ (testé sur un Pentium III, 1.3 GHz, 512 MO).
Platform Builder recompile en effet une bonne partie des codes sources de
Windows CE, effectue l’édition de liens et génère un OS complet ! Au
passage, notez qu’environ 45% des codes sources de Windows CE sont mis à disposition
par Microsoft : vous les trouverez dans le répertoire WINCE420 installé
par défaut à la racine de votre disque.
Votre OS est maintenant prêt pour la simulation. Vous devez
tout d’abord configurer la méthode de chargement de l’OS : par Ethernet,
par liaison série, ou vers l’émulateur. Pour cela, cliquez sur « Target
à Configure
Remote Connection » :
Nous choisissons ici l’émulateur pour le téléchargement de
l’image de l’OS. La zone « Kernel Transport » permet quant à elle
de spécifier le type de liaison utilisée pendant le fonctionnement de l’OS,
pour le déboguage (le cas échéant).
Dans notre cas (émulateur), vous pouvez configurer l’affichage
et d’autres paramètres grâce au bouton « Configure » de la ligne
« Download ».
Vous pouvez maintenant lancer la simulation en cliquant sur
« Target à Download / Initialize ».
Déploiement du noyau sur machine cible
Il est tout à fait possible de projeter Windows CE sur un
véritable PC, qu’on appelle CEPC. Pour cela, le CEPC et la machine de développement
doivent être reliées par un réseau Ethernet. Le CEPC doit être équipé d’une
carte vidéo compatible VESA (la plupart des cas).
Vous devez réaliser une plateforme pour CEPC, puis la compiler
(les étapes sont les mêmes que pour la création d’une plateforme pour émulateur).
Il faut ensuite créer une disquette de boot pour le CEPC. Cette disquette
va permettre de télécharger, via la carte réseau (qui doit être compatible
NE2000), le noyau depuis le PC de développement et de démarrer l’OS. Il s’agit
d’une disquette DOS contenant des exécutables permettant de réaliser ces opérations.
Pour la créer, exécuter le programme « %ProgramFiles%\Windows
CE Platform Builder\4.20\CEPB\Utilities\websetup.exe » qui va créer deux
fichiers dans le répertoire Windows. Cette opération n’est à effectuer qu’une
seule fois. Placez ensuite une disquette dans le lecteur, et exécutez « %ProgramFiles%\Windows
CE Platform Builder\4.20\CEPB\Utilities\CEPCBoot.144 ». Une fois la disquette
de démarrage crée, éditez le fichier « autoexec.bat » qui s’y trouve.
Plusieurs modifications sont à y faire :
-
Si vous utilisez une carte Ethernet ISA sur le CEPC, vous devez entrer
son IRQ et son IOBASE (informations disponibles dans le BIOS du CEPC). Entrez
également l’IP du CEPC sur la ligne correspondante (si le CEPC n’est pas connecté
à un serveur DHCP).
-
Si vous utilisez une carte Ethernet PCI, conservez les valeurs IRQ
et IOBASE par défaut. Vous devez tout de même préciser l’IP de la machine
(sauf si un DHCP est présent).
Voici une copie d’écran du fichier « autoexec.bat »
modifié pour une carte ISA :
Démarrez le CEPC sur la disquette, puis lancez le « Configure
Remote Connection ». Dans les deux zones « Download » et « Kernel
Transport », entrez « Ethernet ». Cliquez ensuite sur le bouton
« Configure » de la ligne « Download ». Lorsque le CEPC
est prêt à télécharger l’OS, il envoie son nom sur le réseau. Vous verrez
apparaître ce nom dans la boîte de configuration. Sélectionnez le puis validez.
Vous pouvez maintenant lancer « Target à
Download Initialize ». Le téléchargement terminé, Windows CE est lancé
sur le CEPC !
Si votre OS a été compilé en version Debug, ou avec l’option
de compilation « Enable CE Target Control Support » (voir copie
d’écran plus bas) vous devez maintenir la connexion entre le PC et le CEPC.
Si vous coupez la connexion (« Target à Disconnect »), le CEPC plantera. Notez que vous ne pouvez pas
compiler pendant qu’une connexion est établie.
Conclusion
Nous venons de décrire la méthode pour compiler
une implémentation de Windows CE et pour la tester sur l’émulateur ou un PC
cible. La modularité de Windows CE permet de réaliser des OS spécifiques au
matériel et de taille très réduite (entre 1 et 25 MO). Cependant, il reste
à écrire des applications dédiées ainsi que les drivers correspondants aux
périphériques de la machine cible. Nous verrons tout cela dans un prochain
article.