• Like

Dotnetpro 3 2012_komponentenwerstatt_windows_ce_kraaz

  • 391 views
Uploaded on

Windows Embedded Compact portieren. Das Board Support Package (BSP) vermittelt zwischen den plattformunabhängigen Komponenten von Windows Embedded Compact und der Hardware. Es ist für jedes neue Board …

Windows Embedded Compact portieren. Das Board Support Package (BSP) vermittelt zwischen den plattformunabhängigen Komponenten von Windows Embedded Compact und der Hardware. Es ist für jedes neue Board zu entwickeln.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
391
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. PRAXISWindows Embedded Compact portierenKomponentenwerkstattDas Board Support Package (BSP) vermittelt zwischen den plattformunabhängigen Komponenten von WindowsEmbedded Compact und der Hardware. Es ist für jedes neue Board zu entwickeln. Auf einen Blick W indows Embedded Compact, in Die Gerätetreiber machen von der Code- diesem Artikel kurz „Compact“, ist menge her üblicherweise die Masse des BSP Microsofts kleinstes Betriebssys- aus, sind aber am einfachsten zu entwickeln: tem für Embedded Devices. Das echtzeitfähige Zum einen sich kann der Entwickler auf ein System wird für internetfähige Geräte und MP3- vollständiges, laufendes Betriebssystem mit Player und Kameras verwendet, aber auch für komfortablen Möglichkeiten zum Debugging Industrie-Controller, Medizintechnikprodukte stützen, zum anderen lassen sich die Geräte- sowie in der Heimautomatisierung. In der aktu- treiber einzeln einer nach dem anderen pro- ellen Version 7 unterstützt es die CPU-Architek- grammieren. Die Entwicklung von Bootloader Matthias Kraaz beschäftigt turen x86, MIPS und ARM (Version 5, 6 und 7) und OAL ist dagegen wesentlich trickreicher. sich bei Zühlke Engineering mit sowie SMP (Symmetric Multiprocessing). Nicht Der KITL sorgt für die Kommunikation zwi- Windows Embedded Compact für Medizintechnikgeräte und mehr unterstützt werden die ARM-Version 4i schen Entwicklungs-PC und Compact-Gerät andere Embedded-Systeme. Sie und die CPU-Architektur SuperH. zum Zweck des Debuggings von Betriebssys- erreichen ihn über die Adresse Compact hat einen plattformunabhängigen temkern, Gerätetreibern oder Applikationen. matthias.kraaz@zuehlke.com. Betriebssystemkern, der bei einer Portierung Für jeden Block gibt es wiederverwendbaren auf neue Hardware, also ein neues Board, nicht Code oder Bibliotheken von Microsoft, die nur Inhalt geändert werden muss. Stattdessen sind die um den plattformspezifischen Code ergänzt Hardware-Abhängigkeiten im sogenannten werden müssen. ▸ as Entwicklungsumfeld für D Board Support Package (BSP) gebündelt, sodass Um ein BSP zu entwickeln oder anzupassen, ein Board Support Package. ▸ ootloader und Systemstart. B bei einer Portierung des Betriebssystems nur ist Vertrautheit mit maschinennaher Program- ▸ indows Embedded Compact W dort Änderungen anfallen. Der Betriebssystem- mierung die unabdingbare Voraussetzung. Die für die Hardware konfigu- kern greift niemals direkt auf die Hardware zu, Dokumentation zum Mikrocontroller und der rieren. sondern immer über das BSP. Gleiches gilt für übrigen Hardware sollte natürlich auch verfüg- ▸ Rolle des OS-Designs. Die die Dienste und Applikationen, die unter Com- bar sein. Zu Compact bietet Microsoft umfang- pact laufen. reiche Referenzen, technische Artikel, Anleitun- Serie Aufbauend auf dem eigentlichen Betriebssys- gen, Whitepapers et cetera. Während bei älteren tem liefert Microsoft eine Fülle von Bibliothe- Versionen des Betriebssystems die Dokumenta- 1. Käfer in Komponenten ken, Applikationen und Diensten. Diese sind in tion noch in der MSDN-Bibliothek versammelt 2. Komponentenwerkstatt einzelne Komponenten verpackt, die sich der war, findet sich hier für Compact 7 nur noch die Entwickler nach seinem Bedarf passend zusam- Referenz; technische Artikel und andere Doku- dnpCode menstellen kann. mentationen befinden sich auf einer eigenen A1203Embedded Ein BSP besteht aus den folgenden Blöcken: Webseite [1]. Von besonderem Interesse ist hier ◼ Bootloader, der Artikel The Basics of Bringing up a Hardware ◼ OEM Adaptation Layer (OAL), Platform [2]. Mit Professional Windows Embed- ◼ Gerätetreiber, ded Compact 7 von Samuel Phung, David Jones ◼ Kernel Independent Transport Layer (KITL). und Thierry Joubert ist kürzlich ein aktuelles Buch zu Compact 7 erschienen [3]. Der Bootloader lädt das Betriebssystem ins Anders als bei anderen Produkten stellt Mi- RAM und startet es. Er ist also ein eigenständi- crosoft einen großen Teil des Quellcodes zur ges Programm, das vor dem Start von Compact Verfügung, damit die Funktionsweise der Mi- und völlig unabhängig davon läuft. crosoft-Komponenten besser verständlich wird. Der OAL ist eine Codeschicht, die den Be- Als weitere wichtige Hilfen sind zahlreiche BSPs triebssystemkern von Compact an eine be- als Quellcodes verfügbar. Hilfreich kann auch stimmte Hardware-Plattform anpasst, also vor der Code anderer Betriebssysteme sein, die es allem an den verwendeten Prozessor, Mikro- bereits für die Zielplattform gibt. controller oder System-on-a-Chip (SOC), aber auch an den verwendeten Speicher und die auf Die Entwicklungsumgebung dem Board vorhandene Peripherie. OAL und Die Entwicklung eines BSP erfolgt in Visual Stu- Betriebssystemkern sind über Funktionsaufrufe dio mit installiertem Platform-Builder-Plug-in. und Variablen eng miteinander verzahnt. Für Compact 7 ist mindestens Visual Studio 200870 3.2012 www.dotnetpro.de
  • 2. PRAXISSP1 notwendig. Zusammen mit dem Plat- Speicher, der direkt nach dem Start eines Es soll das ältere BLCOMMON ablösenform Builder wird ein mehrere Gigabyte Mikrocontrollers zur Verfügung steht. und bietet bessere Schnittstellen zwi-großer Verzeichnisbaum installiert, der Die Größe dieses Speicherbereichs va- schen dem wiederverwendbaren Boot-die Quellen und Komponenten von Win- riiert je nach Hardware-Architektur. Bei loader-Kern und dem plattformspezifi-dows Embedded Compact enthält. Im manchen Architekturen ist er zu klein, schen Code. Insbesondere vereinfacht esVerzeichnisbaum – normalerweise unter sodass erst ein noch kleinerer First-Stage- die Implementierung neuer Firmware.C:WINCE700 – befinden sich dann fol- Loader (XLDR) nötig ist. Dieser initiali- Außerdem ersetzt Compact 7 die Hilfsbi-gende Verzeichnisse: siert die CPU so weit, dass der Speicher- bliotheken von BLCOMMON durch eine◼ PUBLIC : Enthält den in Komponenten bereich des eigentlichen Bootloaders Vielzahl separater Treiber mit einheitli- aufgeteilten und vorkompilierten Code zugänglich wird, und startet diesen dann. cher Schnittstelle. des Systems. Teile, insbesondere Trei- Der Bootloader implementiert zudem So ausführlich wie zu BLCOMMON ist ber, werden als Quellcode ausgeliefert. den Download des Betriebssystems in den die Dokumentation für CE Boot allerdings◼ PLATFORM : Enthält ein Unterverzeich- Flash-Speicher oder ins RAM über USB, noch nicht. Doch aufgrund der besseren nis pro BSP sowie ein Verzeichnis COM- Ethernet oder serielle Schnittstelle. Diese Struktur des Frameworks hilft auch ein MON mit gemeinsamem Code für meh- Funktion benutzt der Platform Builder, Blick in die (komplett verfügbaren) Quel- rere Hardware-Plattformen. wenn er ein neu gebautes Betriebssystem- len des Frameworks inklusive Treiber.◼ PRIVATE : Hier ist ein Teil des Betriebs- Image auf das Gerät lädt. Die meisten BSPs von Microsoft ver- systems als Code abgelegt. Der genaue Funktionsumfang des Boot- wenden BLCOMMON. Ein Beispiel für ei-◼ OSDesigns : Enthält ein Unterverzeich- loaders ist variabel und hängt von den An- nen Bootloader auf Basis von CE Boot fin- nis pro OS-Design, also für die Art und forderungen an das zu entwickelnde Gerät det sich im BSP für die CEPC-Plattform. Weise, wie ein Gerät konfiguriert wird [4]. ab. Um den Loader selbst auf das Gerät zu Sie dient dazu, Compact – emuliert in Bis das erste OS-Design erstellt wurde, bringen, sind Tools des Prozessor- oder Virtual PC – auf dem PC laufen zu lassen. ist dieses Verzeichnis leer. Board-Herstellers oder zum Beispiel ein JTAG-Programmieradapter [6] nötig. Nor- Schritt für Schritt zum Bootloader Nach der Installation des Platform Buil- malerweise wird der Bootloader in nicht- Unter How to Develop a Boot Loader [8]ders sollten noch die sogenannten QFEs flüchtigen Speicher wie zum Beispiel Flash befindet sich in der MSDN-Bibliothekeingespielt werden – so nennt Microsoft geschrieben. eine schrittweise Anleitung zum Aufbaukleine Updates für Compact. Die QFEs Bei der Entwicklung des Bootloaders eines Bootloaders. Durch die hier ange-kommen monatlich pro unterstützte stellt sich auch die Frage, ob es einem gebene Reihenfolge lässt sich nach fastProzessorfamilie heraus und sind inkre- (technisch versierten) Benutzer möglich jedem Schritt prüfen, ob der neue Codementell. Am Jahresanfang erscheint ein sein soll, seine eigene Software auf das funktioniert. Bei vielen Schritten gibt eszusammenfassendes Update (Rollup) des Gerät zu bringen. Um das zu verhindern, auch Tipps zur Fehlersuche für den Fall,Vorjahres. Für einen aktuellen Platform muss ein gehärteter, ein „Secure Boot- dass der neue Code nicht wie erwartetBuilder muss also das Rollup vom Jahres- loader“ entwickelt werden, der nur noch funktioniert.anfang installiert werden plus alle folgen- Images lädt und startet, die der Hersteller Außerdem legt die Anleitung Wert dar-den monatlichen QFEs – und das für drei digital signiert hat. Microsoft liefert hierfür auf, möglichst früh Möglichkeiten zumProzessorfamilien. Mit dem WEDU-Plug- eine Reihe von Hilfsbibliotheken, Anlei- Debuggen zu schaffen, um die folgendenin (Windows Embedded Developer Up- tungen und bewährte Praktiken. Schritte zu vereinfachen. Zum Beispiel wirddate) für Compact 7 lässt sich diese lästige die sogenannte Debug-Serielle in BetriebArbeit aber automatisieren [5]. Auch den Das Bootloader-Framework genommen – dies ist eine zeichenbasierteDowngrade, also das Zurückgehen auf Für das Erstellen eines Bootloaders bie- Schnittstelle, über die sich Fortschritts- undeinen älteren Stand, beherrscht das Tool. tet Microsoft das Bootloader-Framework Fehlermeldungen ausgeben lassen. Auch Ein BSP kann von Grund auf neu er- BLCOMMON. Es sorgt dafür, dass für ein wenn Probleme mit einem übernommenenstellt werden; gängige Praxis ist aber, ein neues BSP nur plattform- und anwen- Bootloader auftreten, lassen sich Fehler invorhandenes BSP zu kopieren und anzu- dungsspezifische Teile des Bootloaders dieser Schrittfolge überprüfen.passen. Die Vorlage dafür kann sowohl entwickelt werden müssen. Andere, wie- Die Anleitung ist für Windows Embed-von Microsoft als auch von einem Dritt- derverwendbare Teile des Bootloaders de- ded CE 6.0 geschrieben, passt aber auch füranbieter stammen. Dabei ist es natürlich cken die folgenden Hilfsbibliotheken ab : Compact 7, solange das alte BLCOMMON-sinnvoll, ein BSP für einen möglichst ähn- ◼ Die EBOOT-Bibliothek implementiert Framework verwendet wird.lichen Mikrocontroller zu verwenden, um die für den Download per Ethernet nö-möglichst viel Code ohne Anpassung wie- tigen Protokolle DHCP, TFTP und UDP. Der Startcode für den Bootloaderderverwenden zu können. Kopiert wird ◼ Die BOOTPART-Bibliothek stellt den Egal welches Framework den Vorzug er-ein solches BSP mit dem Cloning Wizard Zugriff auf die Partitionen eines Spei- hält, die Ausführung beginnt immer indes Platform Builders. chers, etwa Flash, zur Verfügung. gleicher Weise: Beim Reset des Prozessors ◼ Die Ethernet-Debug-Bibliotheken sind springt dieser automatisch den StartcodeAufgabe des Bootloaders eine Sammlung von Treibern für eine (Startup Code) des Bootloaders an. DieserDie Implementierung eines BSP beginnt Vielzahl gängiger Ethernet-Controller. Code initialisiert die Hardware so weit,beim Bootloader. Seine Hauptaufgabe ist dass die Ausführung von C-Code möglichimmer der Start eines Betriebssystems. Er Bei Compact 7 ist das neue Bootloader- wird. Daher ist der Startcode auch zwin-ist sehr klein und passt in den winzigen Framework CE Boot [7] hinzugekommen. gend in Assembler zu schreiben.www.dotnetpro.de 3.2012 71
  • 3. PRAXIS _Windows Embedded Compact portieren Der Code muss : ◼ Das Speicherlayout, also die Verwen- Struktur abgelegt werden. Es empfiehlt◼ die Interrupts sperren, dung des physikalischen Speichers. sich auch, hier nach vorhandenem Code◼ die beim Speicherzugriff beteiligten Dieses legt der OAL über eine Konfigu- von Microsoft oder Drittanbietern zu su- Hardware-Komponenten konfigurieren, rationsdatei fest. Die Abbildung virtuel- chen, um sich Entwicklungsaufwand zu◼ eventuell Uhren initialisieren ler auf physikalische Speicheradressen sparen.◼ und den Bootloader aus dem Boot-Medi- erfolgt über Datenstrukturen. Code, der spezifisch für eine Hardware- um (meistens Flash) ins RAM kopieren. ◼ Funktionen zum Abfragen und Setzen Plattform ist, sollte unter PLATFORM einer Echtzeituhr. <Bsp>Src liegen. Damit ist die Hardware so weit vorberei- ◼ Funktionen, um den Cache zu steuern. tet, dass der Assembler-Teil seine Aufgabe Für zahlreiche CPU-Familien liefert Mi- Kommunikation zwischen IDEerfüllt hat und der Startcode seine Arbeit crosoft hierfür bereits Code. und Gerätmit einem Sprung in die in C geschriebene ◼ Den „System-Tick“: eine hochaufge- Der vom KITL implementierte Kommu-Hauptprozedur beenden kann. Diese ruft löste Systemzeit, die zum Beispiel der nikationsweg (siehe oben) dient nichtdann das Bootloader-Framework auf: Scheduler verwendet. Die entsprechen- nur dem Platform Builder zum DebuggenBootloaderMain() bei BLCOMMON und de Schnittstelle zwischen OAL und Be- des Betriebssystems. Auch viele Analyse-BootMain() bei CE Boot. triebssystemkern besteht aus mehreren werkzeuge (Remote File Viewer, Remote Das Framework steuert nun den wei- Funktionen auf beiden Seiten plus eini- Registry Editor, Remote Kernel Tracker etteren Ablauf und ruft dabei vom BSP- gen Variablen im Betriebssystemkern. cetera) kommunizieren darüber mit demEntwickler implementierte Funktionen ◼ Stromregulierung: Der OAL muss Funk- Gerät. Größtenteils besteht diese Trans-auf, um etwa einen Ethernet-Controller tionen für das Aktivieren von und das portschicht aus der Implementierung desund Flash-Speicher zu initialisieren, ein Aufwachen aus verschiedenen Energie- Kommunikationsprotokolls. Dieser TeilBetriebssystem-Image per Ethernet in spar-Modi implementieren. befindet sich fix und fertig in einer Biblio-den Flash-Speicher zu laden und dann zu ◼ Die Debug-Serielle: Funktionen für die thek unter PlatformCommon. Lediglichstarten. Ein- und Ausgabe über eine zeichen- die Initialisierung und die Ansteuerung Der Bootloader muss oft Informatio- basierte Schnittstelle zur Fehleranalyse, der Kommunikations-Hardware sindnen an das zu startende Betriebssystem vor allem für Meldungen des OAL und noch zu ergänzen. In der ausgeliefertenweitergeben, zum Beispiel die per DHCP des Betriebssystemkerns. Konfiguration sollte die KITL-Komponen-erhaltene IP-Adresse oder andere vom ◼ Funktionen für den Umgang mit Inter- te aus Sicherheitsgründen natürlich nichtBenutzer eingegebene Parameter. Dafür rupts für das Sperren, Freigeben und enthalten sein.gibt es einen reservierten physikalischen Registrieren von Interrupt-HandlernSpeicherbereich namens „Boot Args“, et cetera. Für zahlreiche CPU-Familien Die Gerätetreiberüber dessen Position und Struktur Boot- liefert Microsoft hierfür bereits Code. Wenn OAL und KITL fertig sind, umfasstloader und OAL Bescheid wissen. Boot das System einen lauffähigen Kern mitArgs sind meistens eingebettet in einen Produktionsqualität mit weniger RAM-basiertem Dateisystem und De-größeren Speicherbereich, der wiederum Aufwand bugging per Ethernet. Damit bleiben alsals „Driver Globals“ bezeichnet wird und Ein OAL hat Produktionsqualität, wenn sich letzter Brocken die Gerätetreiber. Ihreder zur Kommunikation zwischen Geräte- mit ihm guten Gewissens massenweise Ge- Entwicklung gestaltet sich so kunterbunttreibern und OAL dient [9]. räte produzieren lassen. PQOAL (Produc- wie die Vielzahl von Geräten, die der Her- tion-Quality OAL) ist eine Sammlung von steller eventuell anbinden möchte: Audio,Der Start des Betriebssystems Quellcodedateien für einen OAL, die von Display, Flash, Netzwerk, serielle Gerä-Beim Sprung des Bootloaders ins Betriebs- Microsoft mitgeliefert und gepflegt wer- te und viele mehr. Daher nur ein kurzersystem-Image beginnt die Ausführung mit den. Dadurch muss der Entwickler weniger Überblick an dieser Stelle.einem weiteren Startcode, dem „OAL Start- OAL-Code selbst schreiben und kann mehr Die Gerätetreiber sind bei Compactup Code“. Er muss die vom Bootloader vor- von schon getestetem Code verwenden. dynamisch gelinkte Bibliotheken (alsogenommene Hardware-Initialisierung fort- Die PQOAL-Quellcodes sind auf folgende DLLs), die einen vorgeschriebenen Satzsetzen, damit sich der Betriebssystemkern Unterverzeichnisse von PLATFORMCom- von Funktionen als Schnittstelle imple-aktivieren lässt. Dazu gehört die Initialisie- monSrc aufgeteilt (die in Spitzklammern mentieren. Je nach Gerätetyp sind andererung von Prozessor, Speicher, Interrupts, gesetzten Namen sind variabel): Schnittstellen vorgesehen.GPIOs und so weiter. ◼ C ommon: allgemein verwendbarer, Zu den gängigen Gerätetypen stellt Mi- Nach der Hardware-Initialisierung nicht Hardware-spezifischer Code, crosoft jeweils den plattformunabhängi-übergibt der OAL-Startcode durch den ◼ SOC<SOC>: Code für ein System-on- gen Teil als „Model Device Driver“ (MDD)Aufruf von KernelStart() die Kontrolle an a-Chip, zur Verfügung. Für dessen Schnittstelleden Betriebssystemkern. Alle weiteren ◼ <Cpu-Architektur>Common: Code für muss der „Platform Dependent Driver“Funktionen des OAL werden dann vom alle Prozessoren einer Architektur, bei- (PDD) entwickelt werden, der mit demBetriebssystemkern aufgerufen. spielsweise ARM, MDD zusammen den kompletten Treiber ◼ <Cpu-Architektur><Cpu>: Code für ergibt: Der MDD übernimmt die komple-Weitere Aufgaben des OAL einen bestimmten Prozessor. xeren Aufgaben, während der PDD eherNeben seinem Startcode muss der OAL einfach gestrickt ist. Dadurch lässt sichdem Betriebssystemkern folgende Diens- Auch neue Quellcodes, so sie denn ein funktionierender Treiber recht schnellte zur Verfügung stellen: wiederverwendbar sind, sollten in dieser erstellen mit dem Bonus, dass er größten-72 3.2012 www.dotnetpro.de
  • 4. PRAXISteils bereits vielfach erprobt und dement- Windows CE und hat sich seitdem nicht Fazitsprechend fehlerarm ist. grundlegend geändert. Das BSP passt Compact an eine Hardware- Die Schnittstelle zwischen MDD und Der Platform Builder bietet vier Build- Plattform an. Es besteht aus Bootloader,PDD hängt vom Gerätetyp ab. Bei einigen Kommandos an, um den Übersetzungs- einer Schicht zwischen BetriebssystemkernGerätetypen, zum Beispiel Flash-Speicher, prozess in verschiedenen Varianten zu und Hardware (dem OAL), einer Kommuni-gibt es auch verschiedene Schnittstellen- starten. Für eine komplette Neuerstellung kationsinfrastruktur zum Debuggen (demversionen, weil sich die alte Schnittstelle sorgt zum Beispiel Clean Sysgen. Außer- KITL) und den Gerätetreiber.als ungenügend für neue Arten von Flash dem lassen sich auch einzelne Kompo- Üblicherweise dient ein kopiertes BSPerwiesen hat. nenten bauen und bestimmte Schritte des für eine ähnliche Hardware-Plattform als Treiber für weniger gängige Gerätetypen Build-Prozesses direkt aufrufen. Ausgangspunkt und reduziert dadurch denverwenden meist die Stream-Schnittstelle Nur der Modus Clean Sysgen stellt si- Aufwand bis zum laufenden Compact, un-und lassen sich auf diese Weise von der cher, dass jedwede mögliche Änderung ter Umständen sogar fast bis auf null. Wahr-Applikation verwenden; die Schnittstel- berücksichtigt wird – dies beansprucht scheinlich müssen aber noch das Speicher-le abstrahiert das Gerät als Byte-Strom, aber viel Zeit. Nach den meisten Ände- layout angepasst und einige Gerätetreiberden die Applikation lesen und schreiben rungen kann der Entwickler eines der we- geschrieben werden. Danach wird Com-kann [10]. Jede Treiber-Schnittstelle kann sentlich schnelleren Build-Kommandos pact mit einem OS-Design auf den Anwen-außerdem noch durch sogenannte IOCTLs oder eine Kombination von diesen ver- dungszweck zugeschnitten.erweitert werden, die den Austausch be- wenden. Im Dokument Improving Your Die Entwicklung eines Board Supportliebiger Datenstrukturen zwischen Treiber Build Process erläutert Microsoft die Vari- Packages setzt umfangreiche Kenntnisseund Applikation erlauben. anten [2] [11] [12]. über Microsofts Embedded-Betriebssys- Seltsamerweise werden auch die bei- tem voraus. Ein Artikel wie dieser oderDas OS-Design den Build-Kommandos Build and Sysgen der vorausgegangene kann nur einen Ein-Mit einem OS-Design schneidert der Ent- und Rebuild and Clean Sysgen angeboten, stieg und Überblick bieten. Vertiefendewickler Compact auf einen bestimmten die Binaries unter PUBLIC unwieder- Einblicke bieten die MSDN-Bibliothek,Anwendungszweck zu. Das muss sein, bringlich löschen; anschließend ist eine Dokumentationen auf der Windows-Em-denn für alle verfügbaren Komponenten Neuinstallation des Platform Builders fäl- bedded-Website, Bücher und die – meisthätten die meisten Geräte gar nicht genug lig! Gängige Praxis ist daher, diese Build- einwöchigen – Schulungen. Speziell zumPlatz. Die Komponenten von Compact Kommandos aus dem Menü zu entfernen. Thema Qualitätssicherung sei noch ein-und dem BSP bietet der Platform Builder Sie sind nur für die wenigen Auserwählten mal auf den Artikel Käfer in Komponentenim sogenannten Katalog an. Das OS-De- gedacht, die den kompletten Quellcode in der vorigen Ausgabe der dotnetpro ver-sign enthält: von Compact besitzen. wiesen [4]. [jp]◼ d ie ausgewählten Compact-Kompo- nenten, Hardware-Design für Compact [1] Developing with Windows Embedded Com-◼ das BSP, Angenehm für die Arbeit mit Compact ist, pact, www.dotnetpro.de/SL1203Embedded1◼ d ie Auswahl der BSP-Komponenten, wenn das Hardware-Design noch ein paar [2] Windows Embedded Compact 7 Top Task: sprich der Gerätetreiber (ein OS-Design Kleinigkeiten berücksichtigt. Dazu gehört BSP Development: Board Support Packages, muss also nicht immer alle Gerätetrei- beispielsweise, dass die Kommunikation www.dotnetpro.de/SL1203Embedded2 ber eines BSPs nutzen), zwischen Debugger und Gerät über seri- [3] Samuel Phung, David Jones, Thierry Joubert,◼ die von Compact unterstützten Spra- elle Schnittstelle, über Ethernet oder USB Professional Windows Embedded Compact 7, chen, stattfinden kann. Ideal ist wegen Latenz ISBN 978-1-118-05046-0◼ weitere Einstellungen wie etwa, ob das und Durchsatz eine USB-Schnittstelle, [4] Matthias Kraaz, Käfer in Komponenten, Debugging des Betriebssystemkerns die aber ansonsten nicht verwendet wird. Qualitätssicherung in Windows-Embedded- möglich sein soll. Fast genauso schnell, aber einfacher zu Compact-Projekten, dotnetpro 2/2012, S. 72ff., implementieren ist hingegen eine Ether- www.dotnetpro.de/A1202Embedded Angelegt wird ein OS-Design mit einem net-Schnittstelle. Die serielle Schnittstelle [5] Windows Embedded Developer Update 1.1,Assistenten. Dieser bietet Schablonen an, ist nur eine Notlösung. www.dotnetpro.de/SL1203Embedded3zum Beispiel Small Footprint Device oder Für die Debug-Serielle ist wegen der [6] JTAG, www.dotnetpro.de/SL1203Embedded4Mobile Handheld. Je nach Schablone sind Einfachheit der Ansteuerung ein norma- [7] CE Boot Framework,mehr oder weniger Compact-Komponen- ler UART (Universal Asynchronous Recei- www.dotnetpro.de/SL1203Embedded5ten ausgewählt. Diese Vorauswahl lässt ver Transmitter) am besten geeignet. Bei [8] MSDN, How to Develop a Boot Loader,sich aber anschließend ändern. den ersten Schritten der Portierung sind www.dotnetpro.de/SL1203Embedded6 außerdem eine oder mehrere einfach an- [9] MSDN, Creating Driver Globals and Boot Args,Build-Prozess steuerbare LEDs sehr hilfreich. www.dotnetpro.de/SL1203Embedded7Wenn das OS-Design festgelegt ist, kann Auch die endgültige Produktionsversion [10] MSDN, Stream Interface Drivers,das Betriebssystem gebaut werden. Der der Hardware sollte diese Debug-Hilfs- www.dotnetpro.de/SL1203Embedded8Platform Builder verwendet dazu ein ei- mittel noch bieten. Um dem Zwang zum [11] MSDN, Sysgen Variables,genes Build-System, bestehend aus einer Sparen bei der Herstellung zu genügen, www.dotnetpro.de/SL1203Embedded9Fülle von Hilfsprogrammen, Batch-Skrip- haben sich zum Beispiel eine optionale [12] MSDN, Miscellaneous Environment Variablesten und Makefiles. Dieses Build-System Bestückung, ein Erweiterungsmodul oder (Windows Embedded Compact 7),stammt noch aus der ersten Version von ein Debug-Adapter als hilfreich erwiesen. www.dotnetpro.de/SL1203Embedded10www.dotnetpro.de 3.2012 73