Betriebssysteme

Der Windows Embedded Compact 7 Bootloader

08.11.10 | Autor / Redakteur: Rudi Swiontek und Ralf Ebert * / Hendrik Härter

Der Plattform-Builder 2008 unterstützt beim Entwickeln des Bootloaders
Der Plattform-Builder 2008 unterstützt beim Entwickeln des Bootloaders

In unserem Beitrag beschreiben wir verschiedene Boot-Möglichkeiten, um WinEC7 zu laden und zu initialisieren. Außerdem stellen wir Ihnen verschiedene Tools vor, mit denen ein Bootloader entwickelt, getestet und debugged werden kann. Die verwendete Testhardware ist ein X86-Entwicklungssystem mit einer Intel-CPU.

Der Bootloader ist ein kleines zusätzliches Programm, dass die Target-Hardware initialisiert und das Betriebssystem „Windows Embedded Compact 7“ in den Speicher lädt. Der Ladevorgang wird mit einem Sprung auf die Betriebssystem-Start-Routine abgeschlossen.

Der Bootloader ist einzigartig für jede Hardware-Plattform. Es gibt auch Geräte, die ohne einen Bootloader auskommen. Dabei befindet sich das Betriebssystem auf dem Flash und wird nach einem PowerOnReset ohne zu laden gestartet.

Aus Geschwindigkeitsgründen wird das WinEC7 vom Flash in den RAM geladen und dann gestartet. Mit dem Platform Builder 2008 lässt sich der Bootloader entwickeln. Während der Entwicklungsphase kann das WinEC7-Image über die verschiedenen Kabelverbindungen wie Ethernet, Universal Serial Bus (USB) oder seriellen Bus geladen und getestet werden. Der Bootloader kann das Betriebssystem auch von den verschiedenen lokalen Speichermedien wie Compact Flash oder Festplatte ins RAM laden.

Der Bootloader sollte Debug- oder Fehlermeldungen ausgeben können
Der Bootloader sollte Debug- oder Fehlermeldungen ausgeben können

Normalerweise wird der Bootloader aus dem Board Support Package (BSP) heraus verwendet, um Entwicklungszeit zu sparen. Die BSPs werden von den OEMs der verschiedenen CPU-Hersteller zur Verfügung gestellt. Der Bootloader sollte Debug oder Fehlermeldung ausgegeben können. Fehlermeldungen werden typischerweise über eine serielle Schnittstelle mit einer Übertragungsrate von 38400 Baud, ohne Parität, mit acht Datenbits und einem Stoppbit ausgegeben. Anzumerken ist, dass bei der Bootloader-Entwicklung die Support-Bibliotheken von Microsoft genutzt werden sollten.

Ergänzendes zum Thema
Der x86-Bootprozess

Für x86-basierende Geräte befindet sich das Erste-Programm im BIOS und initialisiert die Hardware des Systems. Danach sucht das BIOS nach bootfähigen Speicher und lädt das Programm auf dieser Partition. Das x86-BIOS enthält somit den Bootloader.

Wo sich der Boot Loader im Programmspeicher befindet

Der Bootloader liegt in einem adressierten Adressbereich und kann andere Programmteile laden
Der Bootloader liegt in einem adressierten Adressbereich und kann andere Programmteile laden

Der physikalische Speicher RAM/ROM/Flash wird durch die MMU (Memory Management Unit) in den Adressbereich des Betriebssystems "gemapped" und liegt oberhalb der virtuellen Adresse 0x80000000. Diese Adressenzuteilungen werden mit der boot.bib Datei definiert und festgelegt. Somit liegt der Boot-Loader in einem reservierten Adressbereich und kann dann alle anderen Programmteile (nk.bin) laden.

Im Bild 3 ist zu erkennen, das WinEC7 insgesamt 32.000 Anwendungen mit einer virtuellen Größe von je 2 GByte unterstützt. Die Aufteilung des Speichers wird in der config.bib definiert und befindet sich im Verzeichnis "C:\WINCE700\platform\CEPC\files".

Aufgaben und Anpassen eines Bootloaders

Speicherzuordnungen: Die erste Aufgabe bei der Anpassung bezieht sich auf die Definition der Speicherzuordnungen für den Bootloader. Die Standard-BSPs in WinEC7 definieren die Speicherkonfiguration in einer ."bib-Datei" im Boot-Loader-Verzeichnis, C:\WINCE700\Platform\CEPC\Src\Boot loader\Eboot\boot.bib.

StartUp-Einsprungspunkt: Der StartUp-Einsprungspunkt des Bootloaders muss sich im linearen Speicher an der Adresse befinden, an der die CPU beginnt (PowerOnReset), um Programmcode auszuführen, damit die Hardware initialisiert werden kann. Erfolgt die Anpassung auf einem Referenz-BSP für den gleichen Prozessor, muss der meiste Programcode für die CPU und den Speichercontroller nicht geändert werden.

Ergänzendes zum Thema
BIOS Loader entwickeln oder anpassen
Die StartUp-Routine ruft die Main-Funktion des Bootloaders auf. Basiert der Bootloader auf BLCOMMON wird die Funktion BootLoaderMain aufgerufen, um den Downloadtransport zu initialisieren, indem die OEM-Plattformfunktionen aufgerufen werden.

Inhalt des Artikels:

»1 »2 nächste Seite

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)



Spamschutz 

Bitte geben Sie das Resultat dieser Rechenaufgabe (Addition) ein:
Kommentar abschicken

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 24233120)

Meistgelesene Artikel

Die digitale Pappkamera von IKEA im ELEKTRONIKPRAXIS-Test

Digitalkamera KNÄPPA

Die digitale Pappkamera von IKEA im ELEKTRONIKPRAXIS-Test

09.05.12 - Als wir letzte Woche hier die digitale Pappkamera KNÄPPA von IKEA vorstellten, waren wir über die enorme Resonanz selbst überrascht. Deshalb haben wir uns ein Exemplar zukommen lassen und für unsere Leser genauer unter die Lupe genommen. lesen...

Info-Dienste für Elektronik-Professionals

Immer aktuell informiert: der EP Tagesspiegel mit aktuellen Branchen-Nachrichten der letzten 24 Stunden oder die wöchentlichen themenspezifischen Newsletter "Fachwissen für Elektronikprofis"  von elektronikpraxis.de. Jetzt kostenlos abonnieren!

Heftarchiv
ELEKTRONIKPRAXIS 10/2012

ELEKTRONIKPRAXIS 10/2012

Magneto-induktiver Sensor mit linearem Signalhub

Weitere Themen:
Bauteil-Engpässe sind bald passé
Kampf der Messtechnik-Giganten
Kamerageführte Robotik

zum ePaper

zum Heftarchiv