Windows CE
Dipl.-Informatiker (FH) Dieter Prifling
Dipl.-Ing. (FH) Michael Schanz
Im Bereich der Embedded Control Anwendungen haben sich eine Reihe von Betriebssystemen derzeit etabliert. Mit Windows CE steht ein nun weiteres Betriebssystem zur Verfügung, das sich gerade durch seine grafischen Fähigkeiten in diesem Marktsegment behaupten will. Windows CE ist in aller Munde, aber erst wenige konnten schon Erfahrungen sammeln. Im folgenden werden die Grundzüge dieses neuen Systems sowie die Voraussetzungen geschildert, die zu einer Windows CE Implementation auf X86 Basis notwendig sind.
Architektur
Um kurz den Aufbau von Windows CE zu beschreiben: man hat es auf kleine, kompakte Systeme ausgelegt und versucht, den Speicherbedarf und den Overhead des Betriebssystems zur Laufzeit gering zu halten. Bild 1 zeigt den strukturellen Aufbau des Betriebssystems.
Bild 1.
OEM Abstraction Layer (OAL)
bildet die unterste und damit die hardwarenahe Ebene des Systems. In dieser Schicht findet die Anpassung an die Hardware, die Verwaltung der Interrupts und auch das Powermanagement statt. Vergleichbar ist diese Schicht mit dem „Hardware Abstraction Layer (HAL)“ von Windows NT, sie muß bei einer Windows CE Implementation vom Systemintegrator genau auf die Zielhardware abgestimmt werden.
Das Treibermodell von Windows CE unterstützt statische und dynamische Device-Treiber. Während statische Treiber während des Systemstarts geladen werden und deshalb auch innerhalb der gesamten Sitzung präsent sind, werden dynamische Treiber von der Applikation nachgeladen. Sie sind deshalb auch nur zur Laufzeit der Applikation verfügbar. Zur Treiberentwicklung steht ein Device Driver Kit (DDK) zur Verfügung.
Das Treibermodell von Windows CE unterscheidet sich von Windows 95 und Windows NT, weshalb sämtliche Treiber neu erstellt werden müssen. Im Lieferumfang von Windows CE sind einige Treiber schon vorhanden, wie z. B. Grafiktreiber für die Grafikchips ET4000 und S3 Trio 64. Nicht enthalten sind in der aktuellen Version 2.0 z. B. IDE- und Floppy-Treiber, woran man die Ausrichtung von Windows CE auf den PC-Card Markt erkennen kann.
Kernel
Der Kernel ist, ähnlich wie bei Windows 95 und Windows NT, zuständig für das Speichermanagement, Verwaltung von Prozessen und Threads, sowie für die Ressourcenvergabe. Durch das präemptive Multitasking können mehrere Prozesse gleichzeitig laufen; zur Prozeßsteuerung und -synchronisation sind verschiedene Mechanismen vorgesehen.
USER GDI
Das User und Graphics Device Interface wird auch mit Graphics-Windowing-Events-Subsystem (GWES) bezeichnet und bildet die Schnittstelle zum Benutzer. Dieser Teil des Systems regelt die grafischen Ausgaben, wie die Anzeigen von Fenstern und Bedienelementen, sowie Eingaben vom Benutzer.
Object Stores
Die Komponenten des Object Stores werden dazu verwendet, persistente Daten im nichtflüchtigen Speicher, z. B. Flash-Eprom, abzulegen. Ein spezieller Mechanismus bei der Abspeicherung der Daten verhindert, daß korrupte Datensegmente entstehen können, beispielsweise wenn während der Datenspeicherung ein Stromausfall oder ein Reset erfolgt.
TCP/IP, PPP, IrDA
Kommunikation mit dem System erfolg standardmäßig mit dem Internet Protokoll TCP/IP in Verbindung mit PPP. Diese Protokolle kommen zum Zuge, wenn Systeme sowohl direkt über Kabel als auch via Modem miteinander verbunden sind. Zur drahtlosen Anbindung steht das IrDA Protokoll zur Verfügung.
API
Windows CE stellt eine Teilmenge der Win32 API zur Verfügung. Diese umfaßt über 500 der am meisten gebrauchten Win32 APIs. Windows CE bietet eine zahlreiche Menge von Kommunikationsschnittstellen, wie „Windows Sockets“, TAPI und Unimodem.
Da die API im Funktionsumfang reduziert ist, können viele für Windows 95 kompilierte Standardanwendungen nicht direkt auf Windows CE funktionieren. So sind beispielsweise die Anwendungsfenster nur im Vollbildmodus darstellbar. Die komplette Stringverarbeitung des API basiert auf Unicode (2 Byte Zeichen), was zu Lasten des Speicherbedarfs geht. Dennoch bietet das API genügend Funktionalität, um auch komplexere Anwendungen für Windows CE zu erstellen. Es stehen weitere Programmierschnittstellen, wie z. B. die Microsoft Foundation Class, zur Verfügung.
Remote Connectivity
Durch die Bereitstellung einer „Remote Access API (RAPI)“ kann ein ferngesteuerter Datenaustausch erfolgen. Dies reicht von einfachem Austausch von Dateien zwischen Host- und Targetsystem bis hin zur Änderung der Registry.
Hardware
Windows CE ist von Haus aus für mehrere Hardwareplattformen geeignet. Dazu zählen u. a. die Hitachi SuperH
-Familie, die MIPS Prozessoren R4100, R4200 und R4300, Motorolas PowerPC82, sowie Prozessoren der Intel i486-Familie. Innerhalb von Windows CE werden Instructions verwendet werden, die erst ab dem i486 verfügbar sind, deshalb lassen sich Prozessoren der 386-Klasse nicht ohne weiteres betreiben. Das i386-Support-Paket der
JUMPtec AG, das diese Befehle abfängt und umsetzt, schafft hier Abhilfe. Somit wird Windows CE auch für den Bereich der Embedded Control Anwendungen interessant, wo kostengünstige Systeme auf i386 Basis sehr verbreitet sind. Die Kombination aus Low-Cost-Hardware mit integriertem grafischen Betriebssystem ermöglicht somit kostengünstige Komplettlösungen, die eine echte Alternative zu mikrocontrollerbasierten Systemen bilden. Die Vorteile der Kostenreduktion in der Softwareerstellung und –wartung sprechen für sich.
Windows CE Praxis
Im folgenden sollen nun kurz die Erfordernisse bei der Erstellung eines Windows CE Images dargelegt werden.
Bei Windows CE handelt sich es nicht um ein fertig installierbares Betriebssystem, viel mehr muß aufgrund der Hardwareabhängigkeit und der Modularität ein Image (das das Betriebssystem inkl. Anwendungen enthält) in einem komplizierten Buildprozeß erstellt werden.
Installation des Evaluationkits
Das komplette Windows CE Evaluationkit wird in Form von drei CD-ROMs geliefert. Es besteht aus zwei Teilen, dem „Toolkit für VC++ 5.0“ für die Anwendungsprogrammierung und dem „Embedded Development Kit“ für die Erstellung des Windows CE Betriebssystems. Als Entwicklungsplattform wird ein NT4.0-Rechner mit vorinstalliertem VCC++ in der Version 5.0 vorausgesetzt; das Eval-Kit wird zu der bestehenden Installation hinzuinstalliert (ähnlich dem MS-DDK). Für eine Installation von „Toolkit“ und „Embedded Development Kit“ auf x86-Basis ist ca. 1GB zusätzlicher Plattenplatz notwendig. Vor der Installation sind alle Vorgänger-versionen zu entfernen. Im Gruppenverzeichnis von MS VC++ werden verschiedene Verknüpfungen auf die Windows CE Entwicklungsumgebung angelegt.
Demo Projekte
Das Evaluationkit enthält für die X86-Plattform mehrere Demo Beispiele um den Buildprozeß und verschiedene Anwendungsfälle zu erläutern. Sie reichen von der einfachen Windows CE Commandline bis hin zur kompletten Windows CE Shell mit Handschriftenerkennung. Mit Hilfe der Verknüpfung „WCE X86 Environment“ können sie bei Bedarf kompiliert werden. Insbesondere muß hierbei beachtet werden, daß im ausführenden Batch-File die Environment-Variable für die Grafikhardware richtig gesetzt wird, um eine richtige Behandlung des Grafikchips zu gewährleisten.
Implementation auf der Zielhardware
Einer Implementation von Windows CE geht eine genaue Analyse der Erfordernisse voraus. Aufgrund dieser Analyse wird festgelegt, welche Anwendungen und Treiber erstellt werden müssen. Sind Anwendung und Treiber entwickelt, so wird das System in einem Makeprozeß erstellt.
Makeprozeß
Durch die Anpassung von Batch- und Makefiles wird die Konfiguration des Systems festgelegt. Im anschließenden Buildprozeß wird eine Imagedatei erzeugt, die sowohl das Windows CE Betriebssystem als auch die zuvor im Makefile definierten Anwendungen beinhaltet. Die Größe dieser Imagedatei richtet sich nach der jeweiligen Konfiguration und bewegt sich im Bereich von einigen hundert Kilobytes bis mehrere Megabytes. Vorteilhaft für die Entwicklung erweist sich eine Zielhardware mit EPP und serieller Schnittstelle. Mit Hilfe der EPP-Schnittstelle und einem speziellen Kabel wird das erzeugte Image auf die Zielhardware übertragen. Die serielle Schnittstelle dient zum Remote-Debugging.
Bootloader
Zum Testen des Images wird das Programm "LOADCEPC.EXE" verwendet, das das Image in den Speicher des Targetsystems lädt. Dieses Programm setzt MS-DOS, HIMEM.SYS und VESA-Support des BIOS auf dem Targetsystem voraus. In der endgültigen Applikation übernimmt diese Funktionalität ein Bootloader, der das binäre Image in der Bootphase in den Speicher kopiert. Dabei befindet sich das Image entweder auf der Festplatte oder im ROM. Von Microsoft wird kein Bootloader geliefert; eine bereits vollständige Implementation kann von der JUMPtec AG bezogen werden. Dieser Bootloader erlaubt das direkte Hochfahren von Windows CE von einer BIOS (INT 13h) kompatiblen Festplatte oder Flashdisk. Unterstützt wird nur das FAT 16 Datei-system. Der Loader lädt sofort das NK.BIN Image und erfordert nicht den Einsatz eines IDE Treibers. Eine Weiterentwicklung des Bootloaders macht sogar das BIOS überflüssig, so daß nur noch Lizenzgebühren für Windows CE anfallen.
IDE-Treiber
Im Lieferumfang von Microsoft sind für die X86-Plattform leider nur Treiber für PCMCIA-Flash Karten enthalten, um Daten im Rahmen des Object Stores persistent abzuspeichern. In einem Standard-PC werden Daten auf einer Festplatte gespeichert; im Embedded Control Bereich kommen oft Speichermedien auf Flash-Basis zum Einsatz. Beide Verfahren erfordern innerhalb von Windows CE ebenfalls spezielle Treiber, die über Drittanbieter bezogen werden müssen. Der von der JUMPtec AG gelieferte IDE-Treiber erlaubt Schreib- und Lesezugriff auf bis zu vier IDE-kompatible Festplatten und Flashdisks. Die Laufwerke können ein Standard MS-DOS FAT Dateisystem beinhalten. Mit diesem Treiber besteht somit die Möglichkeit Konfigurations- oder Programmdaten abzuspeichern.
Grafiktreiber
Als Standardgrafikauflösung stehen 320x200 Pixel zur Verfügung. Um hier die VGA Auflösung von 640x480 Pixel zu erreichen, muß der Grafiktreiber angepaßt werden. Dies ist notwendig, da eine Auflösung von 320x200 Pixel (64000 Byte) gerade noch in das 64 KByte große Segment paßt, welches von der Grafikkarte in den Adreßraum des Prozessors eingeblendet wird. Bei höheren Auflösungen muß zwischen mehreren 64KByte Blöcken umgeschaltet werden. Das zur Umschaltung notwendige Verfahren ist vom verwendeten Grafikchip abhängig. Eine Anpassung ist insbesondere notwendig, wenn andere Grafikchips als ET4000 oder S3 Trio 64 zur Verwendung kommen, da nur für diese Chips Treiber zur Verfügung stehen.
Remote-Debugging
Im Entwicklungspaket ist ein Kernel-Debugger enthalten, der über die serielle Schnittstelle betrieben wird. Es handelt sich dabei um einen Source-Level-Debugger, mit dem sowohl Windows CE Treiber als auch Anwendungen debuggt werden können. Das Windows CE Kernel gibt zur Laufzeit Debug-Meldungen via COM1 aus, die auf dem Entwicklungssystem ausgewertet werden können.
Wie die bisherige Betrachtung von Windows CE erkennen läßt, ist eine gesonderte Anpassung an die gegebene Hardware unumgänglich. Der Aufwand einer solchen komplizierten Anpassung kann durch den Einsatz von autorisierten Microsoft Windows CE Systemintegratoren erheblich reduziert werden.
Lizenzierung
Durch die Modularität und die Anwendungsvielfalt läßt sich Windows CE nach einem 3-stufigen Modell lizenzieren:
Es wird zwischen
- Windows CE Kernel Version
- Windows CE Limited Version und
- Windows CE Full Version unterschieden.
Die Lizenzierung einer Baugruppe wird durch einen Lizenzsticker auf dem Massenspeicherbaustein (z. B. Flash-EEprom) signalisiert.
Fazit
Windows CE ist im Gegensatz zu Windows 95 und Windows NT kein Betriebssystem, das fertig installierbar angeliefert wird. Die Systemintegration von Windows CE erfordert tiefere Hard- und Software-Kenntnisse, sowohl im Bereich der BIOS-Entwicklung, als auch im Bereich des Win32 API. Es stehen deshalb sogenannte „Microsoft Windows CE Authorized System Integrators“ zur Verfügung, die die Systemintegration vornehmen.
Seite /
|