Ein Betriebssystem ist eine feine Sache. Besonders wenn man mit komplexeren ARM-Prozessoren arbeitet und nicht alle Schnittstellen selber programmieren kann/will. ( ist doch sehr Zeitaufwändig bis alles 100% gut funktioniert).
z.B. Aufgaben wie
+ Speicher- und Powermanagement
+ verwaltung von Systemressourcen ( Multi-Threading, Interrupts,..)
+ Nicht jeder möchte einen OHCI-Stack für USB-Host, Bluetooth-Stack, TCP/IP oder SDIO-Stack für SD-Karten, bzw. den Treiber für eine SDIO-WLAN-Karte selber schreiben.
+ Oder Treiber für die verschiedenen Dateisysteme.
Das verwenden von Drittsoftware wird erheblich erleichtert. So kann man mit dem Anschluß einer GPS-Mouse an der seriellen Schnittstelle + der Installation von einer Navi-Software sein eigenes Navi bauen.
Die Auswertung und Verarbeitung von Kamera-bildern wird erleichtert. Zum einen kann man mit Hilfe von API's einfacher BMP, JPG, GIF, PNG erstellen/bearbeiten. Zum anderen gibts auch nette Software um z.B. Barcodes zu decodieren.
Wenn man selber was geschrieben hat, z.B. eine Linienerkennung, so ist dieser Code auch über andere Prozessoren portabler.
Remote-Debuggen ist mit Visual-Studio richtig komfortabel. Man kann durch Code steppen, den Inhalt von Variablen und Registern ansehen und was ich besonders interessant finde diese zur Laufzeit des Debuggers auch ändern sprich den ProgrammCounter (PC) verschieben oder den Inhalt einer Variablen einfach im laufenden Program ändern.
Mit Remote-Tools, wie z.B. dem Kernel-Tracker kann man in einer Multi-Thread-Umgebung gut Systemereignisse / Prozesswechsel verfolgen und Memory-Leaks auffinden. Mit Performance-Monitor und Profiler kann man feststellen wo die Rechenzeit verloren gehen.
Beispiel für die Konfiguration eines Bots:
Man schliesst an den XScale folgendes an:
Motorelektronik
serielles GPS-Modul
Kamera
USB-UMTS-Modem
SD-Karte
Auf die SD-Karte würde ich die Roboter-Applikation legen. Man kann dann recht schnell das Verhalten des Bots durch austauschen der Karte ändern.
Die Applikation greift über eine einheitliche Schnittstelle wie COM1: oder einen eigenen Treiber auf die Motorelektronik zu.
Man konfiguriert den Web-Server in das Image. Baut sich eine Web-Seite, die die aktuelle GPS-Koordinaten und das Bild der "Web-Cam" anzeigt.
Zunächst würde man kabelgebunden Ethernet verwenden, um sich diese Seite anzuzeigen. ( bzw. man schliesst einen Monitor an das Modul an und verwendet den IE des WinCE)
Dann schliesst man das UMTS-Modem an und kann dann seinen Bot auf der ganzen Welt ( GSM/UMTS Netz vorausgesetzt) steuern.
Ohne Betriebssystem wären diese Aufgaben erheblich schwieriger.
WinCE ist nicht XP/Vista und auch nicht Windows Mobile. (Windows-Mobile 6 verwendet WinCE 5 als Betriebssystem + ein paar Erweiterungen/Mods). Nicht jedes WinCE ist gleich. Es kann als kleines "headless"-Image, sprich ohne Display, mit wenigen MB Größe und als "großes"-Image (meistens um
die 32MB) konfiguriert werden. Dieses kann dann Komponenten etnhalten wie Web/FTP und Telnet-Server, Dotnet-Framework, Internet-Explorer und Media-Player,...
Ein weit verbreitetes Vorurteil ist, das die Lizenskosten sehr hoch sind. Für eine Core-Lizens legt man gerade mal 5 Dollar hin. ( Lizensen sind nur bei dem kommerziellen Einsatz nötig).
Selbst wenn man partout kein Betriebssystem nehmen möchte, oder gar nicht mit der leistungsfähigeren ( gegenüber AVR's und den "kleinen" ARM's) arbeiten möchte, so sind die Einzelkomponenten des Angebot allein schon für den Preis von 150 Euro interessant:
Visual Studio 2005 Proffesional
Sei es die diversen X86-Platformen oder eine Platform wie
XScale PXA270 (32MB-Flash, 64MB RAM)-Modul mit Baseboard für den Anschluß sämtlicher uController/PC Schnittstellen.
Falls die Frage anders gemeint war (Microsoft ist böse, freie Software ist das einzig wahre!!):
Wir können einen eigenen Thread aufmachen wo wir über die Vor-/Nachteile von embedded Betriebssysteme diskutieren. Der größte Vorteil von WinCE gegenüber Linux ist, das Microsoft es vor allem Einsteigern etwas einfacher macht, da die Information und die Tools besser gebündelt sind.
Besonders in den heutigen "short-time to market"-Zeiten, wiegen die potenziell geringeren Lizenskosten und die zusätzlich einzustellenden Linux-Experten auf.
(Ein sehr großer Teil des WinCE-Betriebssystem steht dem Nutzer auch in Source-Form vor und kann verändert werden!)
Lesezeichen