PatentDe  


Dokumentenidentifikation DE10307008A1 09.09.2004
Titel Verfahren zur Konfiguration eines in ein System eingebetteten Geräts sowie ein Speichermedium mit einem entsprechenden Urladeprogramm
Anmelder Siemens AG, 80333 München, DE
Erfinder Sawallisch, Jan, 81379 München, DE
DE-Anmeldedatum 19.02.2003
DE-Aktenzeichen 10307008
Offenlegungstag 09.09.2004
Veröffentlichungstag im Patentblatt 09.09.2004
IPC-Hauptklasse G06F 9/445
Zusammenfassung Die Erfindung besteht im Wesentlichen darin, dass das Urladeprogramm nicht wie bisher nach dem Systemstart vorab übersetzte Konfigurationsschritte in den Arbeitsspeicher des das System realisierenden Rechners lädt, sondern dass das Urladeprogramm ab einer gewissen Stelle im Festwertspeicher eine Liste mit Konfigurationsbeschreibungsbefehlen elementweise holt und einen im Urladeprogramm vorhandenen Interpreter zur Übersetzung zuführt, und das den vom Interpreter übersetzten Binärcode in den Arbeitsspeicher des Rechners lädt, bevor der System-Kernel geladen wird.

Beschreibung[de]

Die Erfindung betrifft ein Verfahren zur Konfiguration eines Geräts in einem sogenannten embedded System, bei dem Grundinitialisierungen, wie beispielsweise eine Festlegung von Speicherbereichen, Taktfrequenzen und Peripherieeinstellungen, durchgeführt werden, sowie ein Speichermedium mit einem Urladeprogramm (Bootloader), das dieses bewirkt.

Bei bekannten Verfahren läuft der Urladevorgang linear ab und ist im Code des Urladeprogramms fest programmiert. Bisher muss bei jeder Hardwarevariation bzw. Geräteänderung für das embedded System ein neues Urladeprogramm bzw. ein neuer Bootloader erstellt werden. Selbst für eine Änderung der Konfigurationseinstellungen für dasselbe Gerät bzw. dieselbe Hardware hat eine solche Änderung zu erfolgen. Es muss hierbei jeweils der Quelltext des Bootloaders geändert, der gesamte Bootloader neu übersetzt und auf den das System ausführenden Rechner heruntergeladen werden. Der Entwickler muss an dieser Stelle sowohl gute Hardware- als auch gute Softwarekenntnisse aufweisen, um diese Aufgabe zu bewältigen.

In bisherigen Urladeprogrammen werden die Konfigurationsschritte für das embedded System vorab übersetzt und beispielsweise in einem Festwertspeicher abgelegt. Bei einem Systemstart werden die vorab übersetzten Konfigurationsschritte und anschließend ein System-Kernel, zum Beispiel ein WinCE®-Kernel, geladen und gestartet.

Die der Erfindung zugrunde liegende Aufgabe besteht nun darin, ein Verfahren zur Konfiguration eines in einem System eingebetteten Geräts bzw. ein entsprechendes Urladeprogramm anzugeben, das die oben genannten Nachteile möglichst vermeidet.

Diese Aufgabe wird hinsichtlich des erfindungsgemäßen Verfahrens durch die Merkmale des Patentanspruchs 1 und hinsichtlich des Speichermediums mit dem erfindungsgemäßen Urladeprogramm durch die Merkmale des Patentanspruchs 6 gelöst. Die weiteren Ansprüche betreffen vorteilhafte Ausgestaltungen des Verfahrens und des Speichermediums.

Die Erfindung besteht im Wesentlichen darin, dass das Urladeprogramm nicht, wie bisher, nach dem Systemstart vorab übersetzte Konfigurationsschritte in den Arbeitsspeicher des das System realisierenden Rechners lädt, sondern dass das Urladeprogramm ab einer gewissen Stelle im Festwertspeicher eine Liste mit Konfigurationsbeschreibungsbefehlen elementweise holt und einen im Urladeprogramm vorhandenen Interpreter zur Übersetzung zuführt, und das den vom Interpreter übersetzten Binärcode in den Arbeitsspeicher des Rechners lädt, bevor der System-Kernel geladen wird.

Die Erfindung wird nachfolgend anhand eines in den Figuren dargestellten Beispiels näher erläutert. Dabei zeigt

1 ein Blockdiagramm zur Erläuterung der Funktionsweise des erfindungsgemäßen Verfahrens bzw. des entsprechenden Urladeprogramms,

2 ein Flussdiagramm zur Erläuterung des erfindungsgemäßen Verfahren und

3 ein konkretes Beispiel eines Initialisierungs-Quellcodes und der zugehörigen Konfigurations-Beschreibungsliste sowie dem erzeugten zugehörigen Binärcode.

In 1 ist ein Blockdiagramm des erfindungsgemäßen Konfigurationsverfahrens dargestellt, wobei ein Urladeprogramm BL (Bootloader) einen Interpreter (CSLI) beinhaltet, Befehle einer Konfigurations-Beschreibungsliste CSL (Config Script List) in einen Binärcode übersetzt. Die Konfigurations-Beschreibungsliste CSL befindet sich als Block an einer ganz bestimmten Stelle beginnend im Speicher, zum Beispiel in einem Flash-Speicher zwischen einem Grundbootprogramm und dem System-Kernel, und kann so jederzeit erneuert werden. Das Urladeprogramm BL selbst enthält also nur den Interpreter CSI selbst und bleibt somit für verschiedene Hardwarekonfigurationen unverändert. Die Konfigurations-Beschreibungsliste enthält für die in das System eingebetteten Geräte bzw. die Hardwarekonfiguration die Konfigurationsschritte S1, S2 ... Sn.

Um sicher zu gehen, dass das System in jedem Fall gestartet werden kann, ist dem Interpreter CSLI optional eine Sicherheitsabfrage A vorgeschaltet, die zunächst die Existenz einer Konfigurations-Beschreibungsliste überprüft und bei Fehlen einer solchen ersatzweise, wie bisher, vorübersetzte Konfigurationsschritte in den Arbeitsspeicher des Rechners lädt, auf dem das System später abläuft.

Nachdem die Konfigurationsschritte vom Urladeprogramm BL in den Arbeitsspeicher geladen wurden, lädt das Urladeprogramm noch den System-Kernel, beispielsweise WinCE® und startet diesen.

Die Schritte S1, S2 ... Sn werden in der Liste CSL bspw. vorteilhaft mit 4 × 32Bit dargestellt, wobei die einzelnen Doublewords folgende Bedeutung haben:

Um ein System zu initialisieren, müssen bestimmte Werte in Register geschrieben oder aus ihnen gelesen werden. Außerdem sind Wartevorgänge notwendig, entweder in einer bestimmten Zeit oder auf ein bestimmtes Ereignis hin, beispielsweise Warten auf einen Wechsel eines ganz bestimmten Bits.

Realisiert werden diese Routinen durch folgende Befehle für 8Bit-, 16Bit- oder 32Bit-Werte:

WRITE8, WRITE16, WRITE32, READ8, READ16, READ32, WAITCYC WAIT8, WAIT16, WAIT32

Ferner sind in der Liste CSL die Befehle BEGIN und END notwendig, um den Beginn und das Ende der Liste CSL bzw. deren Übersetzung zu kennzeichnen. Der Interpreter CSLI wandelt jeden einzelnen Registerbefehl der Liste CSL in entsprechende Prozessorbefehle, zum Beispiel mehrere Assemblerbefehle, um.

In 2 ist ein Ablaufdiagramm des erfindungsgemäßen Verfahrens zur Konfiguration bzw. des erfindungsgemäßen Urladevorgangs dargestellt, wobei nach einem Einlesen 0 des ersten Registerbefehls der Liste CSL eine Abfrage 1 erfolgt, die der optionalen Abfrage A von 1 entspricht und bei der zunächst überprüft wird, ob überhaupt eine Konfigurations-Beschreibungsliste verfügbar ist. Dies kann beispielsweise dadurch erfolgen, dass an einer bestimmten dafür vorgesehenen Stelle im Festwertspeicher, also bei einer definierten Adresse, das Vorhandensein des BEGIN-Kommandos überprüft wird. Ist keine Liste CSL vorhanden, erfolgt ein Laden 6 der vorab übersetzten, also binärcodierten, Schritte DS1 ... DSn in den Arbeitsspeicher und anschließend ein Laden 7 des System-Kernels sowie ein Start 8 des Systems.

Sofern aber eine Konfigurations-Beschreibungsliste CSL vorhanden ist, erfolgt ein Auslesen 2 eines Kommandos aus der Liste CSL, wobei ein solches Kommando beispielsweise aus einem Opcode, einer Adresse, einem Wert und einer Maske besteht. Nach einer Überprüfung 3, ob es sich bereits um das END-Kommando handelt, erfolgt, sofern es sich noch nicht um das Ende-Kommando END handelt, eine Übersetzung 4 des betreffenden Kommandos und eine anschließende Übertragung 5 des hierbei entstehenden Binärcodes in den Arbeitsspeicher des Rechners. Nach der Übertragung in den Arbeitsspeicher wird im Flussdiagramm zur Stelle 2 verzweigt bzw. erneut ein Befehl aus der Liste CSL ausgelesen. Hat hingegen die Abfrage 3 ein END-Kommando festgestellt, wird sofort ein Laden 7 des System-Kernels und ein anschließender Start 8 des Systems bewirkt.

In 3 ist ein Beispiel eines ursprünglichen Codes einer Initialisierungs-Assembler-Routine init.src dargestellt, wie sie in herkömmlichen Urladeprogrammen zu finden ist. Ferner ist in 3 eine zum Source-Code init.src korrespondierende Konfigurations-Beschreibungsliste init.csl beispielsweise mit den Befehlen WRITE16 und WAIT32 jeweils mit Zieladresse, Wert und Maske dargestellt. Der CSL-Interpreter des Urladeprogramms erkennt am ersten Doubleword DWORD die entsprechende Konfigurationsschrittmethode. Der Operations Code 0X22 bezeichnet das Schreiben eines 16Bit-Wertes, in Assembler zum Beispiel "MOV.W". Der zweite Parameter beinhaltet die Zieladresse 0XFFC0000C, die mit dem Wert des dritten Parameters 0XA500 beschrieben werden soll. Da der vierte Parameter alle für einen 16Bit-Wert relevanten Bits belegt, also den Wert 0XFFFF aufweist, erfolgt keine Maskierung. Der zweite Befehl fordert hingegen zum Warten auf, bis im Register 0XBB040010 das höchstwertige Bit den Wert 1 enthält, wobei die beiden Parameter Wert und Maske jeweils den Wert 0X80000000 erhalten.

Eine Modifizierung der Konfigurationsschritte ist hiermit bedeutend einfacher, weil hardware- und softwarebezogene Arbeiten klarer getrennt sind. Es wird nur ein einziges Urladeprogramm für verschiedenste Konfigurationen benötigt und ab einer bestimmten Länge der Konfigurations-Beschreibungsliste wird hiermit sogar insgesamt Code eingespart.


Anspruch[de]
  1. Verfahren zur Konfiguration mindestens eines in ein System eingebetteten Geräts,

    bei dem während eines Urladevorgangs das mindestens eine in das System eingebettete Gerät eine Grundinitialisierung mit Hardwareparametern erhält und

    bei dem diese Urladevorgang dadurch erfolgt, dass ein Interpreterprogramm (CSLI) Befehle aus einer in einem veränderbaren Festwertspeicher eine Liste (CSL) zur Konfigurationsbeschreibung ausliest und in einen Binärcode (init.bin) für die Grundinitialisierung übersetzt, die in einen Arbeitsspeicher eines zur Ausführung des Systems vorhandenen Rechners geladen wird.
  2. Verfahren nach Anspruch 1, bei dem beim Urladevorgang zunächst überprüft wird, ob überhaupt eine Liste zur Konfigurationsbeschreibung vorhanden ist und, sofern keine solche Liste vorhanden ist, ein vordefinierter Binärcode für die Grundinitialisierung in den Arbeitsspeicher des Rechners geladen wird.
  3. Verfahren nach Anspruch 1, bei dem dadurch überprüft wird, ob eine Liste zur Konfigurationsbeschreibung vorhanden ist, dass an einer bestimmten Stelle des veränderbaren Festwertspeichers ein Beginn-Kommando für das Interpreterprogramm (CSLI) gespeichert ist.
  4. Verfahren nach einem der Ansprüche 2 oder 3, bei dem aus dem Beginn-Kommando selbst oder einer unmittelbar folgenden Speicherzelle eine Versionsnummer des erforderlichen Interpreterprogramms ausgelesen und, bei unzulässiger Versionsnummer, ein vordefinierter Binärcode in den Arbeitsspeicher des Rechners geladen wird.
  5. Verfahren nach einem der Ansprüche 2 bis 4, bei dem am Ende der Liste zur Konfigurationsbeschreibung eine Prüfsumme ausgelesen und, bei fehlerhafter Prüfsumme, ein vordefinierter Binärcode in den Arbeitsspeicher des Rechners geladen wird.
  6. Speichermedium mit einem Urladeprogramm, das mit Hilfe eines darin enthaltenen Interpreterprogramms Befehle aus einer Liste (CSL) zur Konfigurationsbeschreibung ausliest und in einen Binärcode für eine Grundinitialisierung eines in einem System eingebetteten Geräts übersetzt und diesen zur Ausführung des Systems in den Arbeitsspeicher des Rechners lädt.
  7. Speichermedium nach Anspruch 6, bei dem das Urladeprogramm derart aufgebaut ist, dass zunächst überprüft wird, ob überhaupt eine Liste zur Konfigurationsbeschreibung vorhanden ist und sofern keine solche Liste vorhanden ist, ein vordefinierter Binärcode für die Grundinitialisierung in den Arbeitsspeicher des Rechners geladen wird.
Es folgen 3 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com