DE10115729A1 - Vielseitiges Boot-Verfahren für eine Anwendungs-Software eines Mikrocontrollers - Google Patents

Vielseitiges Boot-Verfahren für eine Anwendungs-Software eines Mikrocontrollers

Info

Publication number
DE10115729A1
DE10115729A1 DE10115729A DE10115729A DE10115729A1 DE 10115729 A1 DE10115729 A1 DE 10115729A1 DE 10115729 A DE10115729 A DE 10115729A DE 10115729 A DE10115729 A DE 10115729A DE 10115729 A1 DE10115729 A1 DE 10115729A1
Authority
DE
Germany
Prior art keywords
space
application software
application
boot
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10115729A
Other languages
English (en)
Other versions
DE10115729B4 (de
Inventor
Brent C Duff
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Delphi Technologies Inc
Original Assignee
Delphi Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Delphi Technologies Inc filed Critical Delphi Technologies Inc
Publication of DE10115729A1 publication Critical patent/DE10115729A1/de
Application granted granted Critical
Publication of DE10115729B4 publication Critical patent/DE10115729B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

Ein Verfahren (60) zum Neuprogrammieren von Anwendungs-Software in einem Mikrocontroller (10) ohne den Mikrocontroller gegenüber Ausfall anfällig zu machen. Das Verfahren (60) teilt den Anwendungs-Speicherraum (18) in fünf unterschiedliche Bereiche, die einen Rücksetzvektor-Raum (20), einen Vor-Boot-Software-Raum (22) und einen Anwendungs-Software-Raum (24) umfassen, der ferner in einen Haupt-Anwendungs-Boot-Raum (26) und einen Sicherungs-Anwendungs-Boot-Raum (28) unterteilt ist. Bei einer anderen Ausführungsform der vorliegenden Erfindung ist der Anwendungs-Software-Raum (24) derart programmiert, daß er eine Rücksetzvektor-Sprungtabelle (52) enthält. Der Sicherungs-Raum (28) ist derart programmiert (64), daß er Daten enthält, die notwendig sind, um den Mikrocontroller neu zu programmieren, bis der Haupt-Anwendungs-Raum (26) wie gewünscht neu programmiert worden ist (68). Der Sicherungs-Boot-Raum (28) kann nicht gelöscht werden, bis der Haupt-Anwendungs-Raum (26) richtig neu programmiert worden ist. Dann kann nach der Sicherungs-Boot-Raum (28) gelöscht werden (70) und wie gewünscht neu programmiert werden.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Booten einer Anwen­ dungs-Software eines Mikroprozessors, und insbesondere ein Verfahren zum Neuprogrammieren einer Anwendungs-Software eines Mikrocontrol­ lers, das ein vielseitiges Boot-Verfahren umfaßt.
Im allgemeinen umfaßt ein Arbeitsablauf eines Mikrocontrollers einen Pro­ zeß zum Initialisieren oder Starten seiner eigenen internen Logik und/­ oder vorgesehenen Software-Anwendung, der auch als ein Boot-Verfahren bekannt ist. Boot- oder Urlade-Verfahren nach dem Stand der Technik sind an sich nicht vielseitig, da die Boot-Software an einem besonderen Kommunikationsprotokoll und einer besonderen Hardware-Plattform fest­ gemacht ist. Aufgrund dieser Beschränkungen ist die Boot-Software nicht immer in der Lage, für neuere Technologien aufgerüstet zu werden, und ist oft anfällig dafür, während eines Neuprogrammierens gelöscht zu wer­ den. In vielen Fällen kann die Boot-Software nicht neu programmiert wer­ den, und ein Neuprogrammierungsereignis kann zu einem irreparablen Fehler führen.
Typischerweise wird das Boot-Verfahren für eine Anwendungs-Software eines Mikrocontrollers durch die Verwendung einer Rücksetzvektorlogik, die in dem Mikroprozessor enthalten ist, Rücksetzvektoren im Anwen­ dungs-Speicherraum, Anwendungs-Boot-Software und der Anwendungs- Software selbst bewerkstelligt. Die Rücksetzvektoren enthalten Daten, die auf die Startadresse von Anwendungs-Boot-Software und anderen Routi­ nen zeigen, die sich in der Anwendungs-Software befinden. Die Anwen­ dungs-Boot-Software bestimmt typischerweise, ob die Anwendungs- Software vorhanden ist, und liefert die geeigneten Kommunikationsalgo­ rithmen zum Neuprogrammieren des Anwendungsspeichers. Die Anwen­ dungs-Software steuert die Funktionalität des Mikrocontrollers, indem die Arbeitsabläufe des Mikroprozessors gesteuert werden. Bevor ein Mikro­ controller neu programmiert werden kann, muß beispielsweise der An­ wendungs-Speicherraum gelöscht werden. Wenn der Rücksetzvektor ge­ löscht wird, oder leer bleibt, hat der Mikrocontroller keine Möglichkeit, beim Einschaltrücksetzen entweder Boot- oder Ausführungs-Software für die Anwendungs-Software zu lokalisieren. Das Ergebnis ist, daß der Mi­ krocontroller nicht neu gebootet werden kann, um ein Neuprogrammieren zuzulassen.
Eine Boot-ROM-Technologie umfaßt ein einmal programmierbares Bauteil. Es kann nicht neu programmiert werden. Ein Boot-ROM hat, wenn über­ haupt, sehr begrenzte Tauglichkeit zur Aufrüstung, es sei denn, das Bau­ teil wird entfernt und durch eine neuere Version ersetzt. Schnelle Ände­ rungen in der Technologie erfordern es, daß die Anwendungs-Boot-Soft­ ware mit jeder Version der Software aufgerüstet wird, um Änderungen im Kommunikationsprotokoll und Aktualisierungen der Hardware-Plattform zu unterstützten oder bekannte Fehler in der Anwendungs-Boot-Software zu beheben. Wenn die Boot-ROM-Technologie verwendet wird, kann die Anwendungs-Boot-Software nicht aufgerüstet werden, wodurch die Flexi­ bilität begrenzt wird und die Kosten des Mikrocontrollers erhöht werden.
Andere bekannte Boot-Verfahren umfassen einen neu programmierbaren Boot-Block, der Ausfallanfälligkeiten während eines Neuprogrammie­ rungsereignisses enthalten kann. Während eines Rücksetzens eines Mi­ krocontrollers wird beispielsweise der Mikrocontroller einen Programm­ zähler mit der Startadresse des Boot-Blocks laden. Wenn der Boot-Block während des Neuprogrammierungsereignisses gelöscht wird, hat der Mi­ krocontroller keine Möglichkeit, die Anwendungs-Software zu booten oder den Speicherraum zu programmieren. In bestimmten Situationen kann der Mikrocontroller vollständig betriebsunfähig werden. Wenn beispiels­ weise ein Rücksetzen während eines Neuprogrammierungsereignisses auftritt und der Boot-Block gelöscht worden ist, hat der Mikrocontroller keine Möglichkeit, mit einem externen Werkzeug zu kommunizieren, das die Neuprogrammierung des Boot-Blocks und/oder der Anwendungs- Software erlaubt.
Die oben beschriebenen Verfahren erfordern teure Treiber, sind nicht ausfallsicher und sind in ihren Entwürfen sehr unflexibel. Die Anwen­ dungs-Boot-Software benutzt große Mengen Speicherraum. Jede Aufrü­ stung erfordert neue Hardware oder führt eine unerwünschte Anfälligkeit gegenüber Ausfall des Mikrocontrollers ein. Zusätzlich sind diese Verfah­ ren auf besonderen Kommunikationsprotokolle und eine besondere Hard­ ware-Technologie begrenzt.
In der Automobilindustrie im besonderen ist Flexibilität der Schlüssel für die kleinen Controller, die bei vielen Kraftfahrzeuganwendungen verwen­ det werden. Aufgrund der Größen- und Gewichtsbeschränkungen wenden Kraftfahrzeuganwendungen diese kleinen Controller häufig an, und die Controller werden oft für Aufrüstungen neu programmiert, was es nötig macht, den Speicher zu löschen. Ein Dedizieren von nicht löschbarem Speicherraum steht bei diesen kleinen Controllern im Gegensatz zur Not­ wendigkeit für Flexibilität.
Die vorliegende Erfindung ist ein vielseitiges Verfahren zum Neuprogram­ mieren von Anwendungs-Software eines Mikrocontrollers. Das Verfahren der vorliegenden Erindung weist einen Raum in Anwendungsspeicher auf, der für Vor-Boot-Daten reserviert ist. Die Vor-Boot-Startadresse ist immer fest, und ihr Rücksetzvektorzeiger kann nicht gelöscht werden. Deshalb wird mit der Vor-Boot-Startadresse im Rücksetzvektor-Raum direkt ein Bezug hergestellt. Der Zweck des Vor-Boot-Raums ist es, gültige Anwen­ dungs-Boot-Software im Speicherraum des Mikrocontrollers zu lokalisie­ ren. Der Vor-Boot-Raum erlaubt es, daß die Anwendungs-Boot-Software während eines Neuprogrammierungsereignisses im gesamten Speicher­ raum verschoben werden kann, ohne den Mikrocontroller gegenüber Ausfall anfällig zumachen. Die vielen Stellen für die Anwendungs-Boot- Software gewähren ein ausfallsicheres Verfahren zur Neuprogrammierung.
Gemäß dem Verfahren der vorliegenden Erindung unterteilt das vielseiti­ ge Boot-Verfahren einen Speicher in vier separate Speicherräume, und zwar einen Rücksetzvektor-Speicherraum, einen Vor-Boot-Logik-Raum, einen Hauptblock in dem Anwendungs-Software-Speicherraum und einen Sicherungsblock im Anwendungs-Software-Speicherraum. Bei dem Ver­ fahren der vorliegenden Erfindung wird ein Block des Anwendungs- Software-Speicherraums gelöscht und mit einem Sicherungs- Anwendungs-Boot-Programm programmiert. Der Hauptblock des Anwen­ dungsspeichers wird dann gelöscht und neu programmiert. Schließlich wird der Sicherungsblock gelöscht und mit Anwendungs-Software neu programmiert. Der Mikrocontroller weist nun aufgerüstete Anwendungs- Boot-Software, neu programmierte Kommunikations-Software und neu programmierte Anwendungs-Software auf, ohne Anfälligkeiten einzufüh­ ren.
Es ist ein Ziel der vorliegenden Erfindung, ein ausfallsicheres Verfahren zum Neuprogrammieren von Anwendungs-Software in einem Mikroprozes­ sor zu schaffen. Es ist ein anderes Ziel der vorliegenden Erfindung, eine vollständige Aktualisierung von Anwendungs-Software, die Kommunikati­ ons-Software einschließt, zuzulassen. Ein weiteres Ziel der vorliegenden Erfindung ist es, ein Verfahren bereitzustellen, um ein Auftreten eines Rücksetzens eines Mikroprozessors während des Neuprogrammierungs­ prozesses des Anwendungs-Boot-Speicherraums zuzulassen.
Die Erfindung wird im folgenden beispielhaft anhand der Zeichnungen be­ schrieben, in diesen ist:
Fig. 1 ein Schaubild der Architektur des Anwendungs-Boot-Spei­ chers gemäß dem Verfahren der vorliegenden Erfindung,
Fig. 2 ein Flußdiagramm einer Vor-Boot-Logik gemäß dem Verfahren der vorliegenden Erfindung,
Fig. 3 ein Schaubild der Speicherarchitektur für den Anwendungs- Software-Raum der vorliegenden Erfindung,
Fig. 4 eine Rücksetzvektor-Sprungtabelle gemäß einer Ausfüh­ rungsform des Verfahrens der vorliegenden Erfindung, und
Fig. 5 ein Flußdiagramm eines Neuprogrammierungsereignisses ge­ mäß einer Ausführungsform des Verfahrens der vorliegenden Erfindung, das eine Rücksetzvektorlogik umfaßt.
Die vorliegende Erfindung ist ein vielseitiges Neuprogrammierungsverfah­ ren für eine Anwendungs-Software eines Mikrocontrollers. Die vorliegende Erfindung läßt es immer zu, daß selbst im Falle eines Einschaltrückset­ zens zu jedem Zeitpunkt während des Neuprogrammierungsereignisses eine Neuprogrammierungskommunikation stattfinden kann. Fig. 1 ist ein Schaubild der Architektur für den Speicher eines Mikrocontrollers 10. Der Mikrocontroller 10 weist mindestens einen Mikroprozessor 12 auf, dessen Speicher eine Rücksetzvektorlogik 14 enthält. Die Rücksetzvektorlogik 14 bleibt während eines Neuprogrammierungsereignisses unverändert. Bei einer Ausführungsform der vorliegenden Erfindung enthält die Rücksetz­ vektorlogik 14 eine Rücksetzvektor-Sprungtabelle, die später ausführlich diskutiert werden wird. Der Mikrocontroller 10 enthält auch Kommunika­ tions-Hardware 16, die abhängig von der Machart und dem Modell des Mikrocontrollers variiert. In Fig. 1 ist auch ein externes Programmierwerk­ zeug 17 gezeigt, das dazu verwendet wird, Anweisungen während eines Neuprogrammierungsereignisses zum Mikrocontroller 10 zu übertragen. Es ist wichtig, daß das externe Programmierwerkzeug 17 während eines Neuprogrammierungsereignisses immer mit dem Mikrocontroller 10 kom­ munizieren kann.
Gemäß der vorliegenden Erfindung weist der in Fig. 1 gezeigte Mikrocon­ troller 10 einen Anwendungsspeicher 18 auf, der in vier separate Spei­ cherräume unterteilt ist, die einen Rücksetzvektor-Raum 20 umfassen, der, wie die Rücksetzvektorlogik 14, während eines Neuprogrammierungs­ ereignisses unverändert bleibt. Der Anwendungsspeicher 18 enthält auch einen Vor-Boot-Software-Raum 22 und einen Anwendungs-Software- Raum 24. Der Anwendungs-Software-Raum 24 ist ferner in einen Haupt­ block 26 und einen Sicherungsblock 28 unterteilt. Es ist anzumerken, daß der Anwendungs-Speicherraum 18 nicht auf eine besondere Art einer Speichertechnologie, d. h. RAM, ROM usw., begrenzt ist. Es ist auch an­ zumerken, daß jeder Speicherabschnitt nicht notwendigerweise in der gleichen Art von Speichertechnologie enthalten sein muß.
Der Rücksetzvektor-Raum 20 enthält die Adressen, die auf die Startadres­ sen von bestimmten Algorithmen zeigen, die sich jeweils in den Vor-Boot- und Anwendungs-Software-Räumen 22 bzw. 24 befinden. Der Rücksetz­ vektor-Raum 20 enthält auch die Startadresse für den Vor-Boot-Raum 22, die immer fest ist und mit der im Rücksetzvektor-Raum 20 direkt ein Be­ zug hergestellt werden kann. Der Rücksetzvektorzeiger für den Vor-Boot- Raum 22 kann nicht gelöscht werden.
Der Vor-Boot-Raum 22 ist derart entworfen, daß er gültige Anwendungs- Boot-Software im Anwendungsspeicher 18 lokalisiert. Die Bestimmung von "gültiger" Anwendungs-Boot-Software ist anwendungsspezifisch, und daher ist die Vor-Boot-Logik, die der Lokalisierung von gültiger Boot- Software zugeordnet ist, von der Anwendung abhängig und wird hierin nicht diskutiert werden. Da die Vor-Boot-Logik den Zweck hat, gültige Anwendungs-Boot-Software im Anwendungsspeicher 18 zu finden, ist es möglich, die Anwendungs-Boot-Software während des Neuprogrammie­ rungsereignisses im gesamten Speicherraum 18 zu verschieben. Die An­ wendungs-Boot-Software befindet sich an vielen Stellen, wodurch mehrere Wahlmöglichkeiten für einen ausfallsicheren Entwurf zugelassen werden.
Fig. 2 ist ein Flußdiagramm 30, das eine mögliche Vor-Boot-Logik zeigt, die bei dem Verfahren der vorliegenden Erindung verwendet werden kann. Fig. 2 veranschaulicht eine bedingte IF, THEN, ELSE-Bestimmung für die Vor-Boot-Logik 30. Es ist jedoch anzumerken, daß es möglich ist, andere Verfahren einer Verwendung bedingter Schleifen einzusetzen, um den Anwendungsspeicher bei der Suche nach einem gültigen Anwen­ dungs-Boot-Programm auszutasten. Ein Fachmann ist in der Lage, die bedingte IF, THEN, ELSE-Schleife durch ein anderes Verfahren zu erset­ zen, um ähnliche Ergebnisse wie die der vorliegenden Erfindung zu erzie­ len.
Der Boot-Prozeß des Mikrocontrollers beginnt 32, und ein Einschaltrück­ setzvektor wird ausgeführt 34. Die Vor-Boot-Logik 36 sucht nach einem gültigen Anwendungs-Boot-Programm 38. In dem Fall, daß ein gültiges Boot-Programm gefunden wird, wird der Haupt-Anwendungs-Boot-Raum abgearbeitet 40. In dem Fall, daß kein gültiges Anwendungs-Boot-Pro­ gramm gefunden wird, wird der Sicherungs-Anwendungs-Boot-Raum ab­ gearbeitet 42. Sobald der geeignete Boot-Raum abgearbeitet worden wird, endet in jedem Fall der Vor-Boot-Prozeß 44.
Der Anwendungs-Software-Raum 24 ist in dem Schaubild von Fig. 3 aus­ führlicher gezeigt. Der Anwendungs-Software-Raum muß mindestens zwei separate und unabhängig löschbare Blöcke aufweisen. Es sind ein Haupt­ block 26 und ein Sicherungsblock 28 gezeigt. Der Hauptblock 26 enthält das Anwendungs-Boot-Programm, das die Anwendung initialisiert. Er enthält auch Neuprogrammierungs-Kommunikationsroutinen und die Anwendungs-Software selbst. Der Sicherungsblock 28 erfüllt zwei Funk­ tionen. Während des normalen Betriebs des Mikrocontrollers enthält der Sicherungsblock 28 die Anwendungs-Software. Während eines Neupro­ grammierungsereignisses wird jedoch der Sicherungsblock das Siche­ rungs-Boot-Programm und enthält die Reprogramming Communications. Dies stellt sicher, daß es immer ein Mittel gibt, um mit dem externen Pro­ grammierwerkzeug zu kommunizieren, wodurch verhindert wird, daß Ausfallanfälligkeiten ein Problem werden, sollte ein Rücksetzen des Mikro­ controllers während des Neuprogrammierens auftreten.
Fig. 4 ist ein Rücksetzvektor-Schaubild 50, das eine optionale Rücksetz­ vektor-Sprungtabelle aufweist, gemäß einer Ausführungsform der vorlie­ genden Erindung. Die optionale Rücksetzvektor-Sprungtabelle 52 befin­ det sich im Anwendungs-Speicherraum 24 zusammen mit dem Haupt­ block 26 und dem Sicherungsblock 28. Die Rücksetzvektor-Sprungtabelle 52 hält den Rücksetzvektor-Raum 20 während des Neuprogrammierungs­ ereignisses unverändert, bei dem der Rücksetzvektor-Raum 20 unlöschbar bleiben kann. Wie es oben diskutiert wurde, enthält der Rücksetzvektor- Raum 20 Rücksetzvektoren, die auf die Startadressen von Algorithmen in den Vor-Boot- und Anwendungs-Software-Räumen 26, 28 zeigen. Ein Lö­ schen des Rücksetzvektor-Raums 20 kann Anfälligkeiten bewirken, sollte während des Neuprogrammierens ein unerwartetes Rücksetzen des Mi­ kroprozessors auftreten. Während des Neuprogrammierens der Anwen­ dungs-Software ändern sich diese Startadressen oft, was Änderungen an den Dateninhalten in dem Rücksetzvektor-Raum 20 erfordert. Die Rück­ setzvektor-Sprungtabelle 52 erlaubt es, daß die Startadressen sich än­ dern, ohne daß der Rücksetzvektor-Raum 20 verändert wird. Jedoch wird die Rücksetzvektor-Sprungtabelle nicht die Startadresse für den Vor-Boot- Raum 22 enthalten. Die Startadresse für den Vor-Boot-Raum 22 ist immer fest, und ihr Rücksetzvektorzeiger kann nicht gelöscht werden. Es ist an­ zumerken, daß, wenn der Rücksetzvektor-Raum 20 eine byte-schreibbare­ /-löschbare Speichertechnologie ist, es dann keine Notwendigkeit für eine Rücksetzvektor-Sprungtabelle 52 gibt.
Bei dem in Fig. 4 gezeigten Beispiel weist der Einschaltrücksetzvektor bei Adresse $000000 den Dateninhalt $000100 auf, der auf die Startadresse für die Vor-Boot-Logik in dem Vor-Boot-Software-Raum 22 zeigt. Der Rücksetzvektor bei Adresse $000004 weist den Dateninhalt $500000 auf, der auf die Rücksetzvektor-Sprungtabelle 52 zeigt. Die Rücksetzvektor- Sprungtabelle 52 bei Adresse $500000 weist eine Sprunganweisung zur Startadresse einer Eingabeerfassungsroutine auf. Die Rücksetzvektor- Sprungtabelle 52 kann für alle Dateninhalte im Rücksetzvektor-Raum 20 verwendet werden, die während eines Neuprogrammierungsereignisses nicht gelöscht werden können.
Fig. 5 ist ein Flußdiagramm 60, das veranschaulicht, wie der Anwen­ dungs-Raum neu programmiert werden kann, während Anwendungs- Boot-Software im Speicher gehalten wird, gemäß dem Verfahren der vor­ liegenden Erindung. Während des normalen Betriebes 62 enthält der Speicherraum 18 den Rücksetzvektor-Raum 20, den Vor-Boot-Raum 22 und den Anwendungs-Raum 24. Während des normalen Betriebes 62 ent­ hält der Anwendungs-Raum 24 seine eigenen Boot-Routinen, Neupro­ grammierungs-Kommunikationsroutinen und, wahlweise, eine Rücksetz­ vektor-Sprungtabelle. Während eines Neuprogrammierungsereignisses 64 wird ein Block des Anwendungs-Speicher-Raums gelöscht, und ein Siche­ rungs-Anwendungs-Boot-Programm 28 wird programmiert. Das Ergebnis ist ein Hauptblock 26 und ein Sicherungsblock 28. Der Sicherungsblock 28 enthält die notwendige Neuprogrammierungs-Kommunikationsroutine und die Boot-Logik für das Neuprogrammierungsereignis. Der Sicherungs- Anwendungs-Boot-Block 28 kann nicht gelöscht werden, wenn der Haupt- Anwendungs-Raum nicht gültig ist. Dies ist eine ausfallsichere Weise, um eine Kommunikation mit den externen Werkzeugen aufrechtzuerhalten. Eine Gültigkeitsprüfung kann mit jedem von vielen dem Fachmann be­ kannten Verfahren bewerkstelligt werden.
Sobald der Sicherungsblock 28 programmiert worden ist, wird der Haupt- Anwendung-Raum 26 gelöscht 66. Sollte an diesem Punkt im Neupro­ grammierungsereignis ein Einschaltrücksetzen auftreten, wird der Haupt- Anwendungs-Raum in dem Sicherungsblock 28 gesichert, der, wie es oben diskutiert wurde, nicht gelöscht werden kann. Deshalb kann die Neupro­ grammierung ohne einen Ausfall fortfahren.
Sobald der Haupt-Anwendungs-Raum gelöscht worden ist, kann er wie gewünscht programmiert werden 68. Der Haupt-Anwendungs-Raum 26 enthält nun das Anwendungs-Boot-Programm, die Neuprogrammierungs- Kommunikationsroutinen und die Logik, um zu bestimmen, ob die Siche­ rung vorhanden ist, oder der Haupt-Anwendungs-Raum enthält gültige Anwendungs-Software. Sobald die Neuprogrammierung des Haupt-Anwen­ dungs-Raums abgeschlossen ist, kann der Sicherungs-Anwendungs- Raum gelöscht werden und mit Anwendungs-Software programmiert wer­ den 70. Das Neuprogrammierungsereignis ist abgeschlossen und der Mi­ krocontroller ist vollständig mit gültiger Anwendungs-Software program­ miert. Der Mikrocontroller enthält nun aufgerüstete Anwendungs-Boot- und Neuprogrammierungs-Kommunikationsroutinen und Anwendungs- Software. Es sind gemäß dem Verfahren der vorliegenden Erfindung keine Anfälligkeiten eingeführt worden.
Zusammengefaßt betrifft die Erfindung ein Verfahren 60 zum Neupro­ grammieren von Anwendungs-Software in einem Mikrocontroller 10 ohne den Mikrocontroller gegenüber Ausfall anfällig zu machen. Das Verfahren 60 teilt den Anwendungs-Speicherraum 18 in fünf unterschiedliche Berei­ che, die einen Rücksetzvektor-Raum 20, einen Vor-Boot-Software-Raum 22 und einen Anwendungs-Software-Raum 24 umfassen, der ferner in ei­ nen Haupt-Anwendungs-Boot-Raum 26 und einen Sicherungs-Anwen­ dungs-Boot-Raum 28 unterteilt ist. Bei einer anderen Ausführungsform der vorliegenden Erfindung ist der Anwendungs-Software-Raum 24 derart programmiert, daß er eine Rücksetzvektor-Sprungtabelle 52 enthält. Der Sicherungs-Raum 28 ist derart programmiert 64, daß er Daten enthält, die notwendig sind, um den Mikrocontroller neu zu programmieren, bis der Haupt-Anwendungs-Raum 26 wie gewünscht neu programmiert wor­ den ist 68. Der Sicherungs-Boot-Raum 28 kann nicht gelöscht werden, bis der Haupt-Anwendungs-Raum 26 richtig neu programmiert worden ist. Dann nach kann der Sicherungs-Boot-Raum 28 gelöscht werden 70 und wie gewünscht neu programmiert werden.

Claims (8)

1. Verfahren (60) zum Neuprogrammieren von Anwendungs-Software in einem Mikrocontroller (10), der einen Anwendungs-Speicherraum (18) aufweist, wobei das Verfahren die Schritte umfaßt, daß:
der Anwendung-Speicherraum (18) in einen Rücksetzvektor- Raum (20), einen Vor-Boot-Software-Raum (22), einen Hauptblock (26) eines Anwendungs-Software-Raums (24) und einen Sicherungs­ block (28) des Anwendungs-Software-Raums (24) unterteilt wird,
der Block (28) des Anwendungs-Software-Raums (24) gelöscht wird,
der Sicherungsblock (28) des Anwendungs-Software-Raums (24) programmiert wird (64),
der Hauptblock (26) des Anwendungs-Software-Raums (24) gelöscht wird (66),
der Hauptblock (26) des Anwendungs-Software-Raums (24) programmiert wird (68),
der Sicherungsblock (28) des Anwendungs-Software-Raums (24) gelöscht wird (70), und
der Sicherungsblock (28) des Anwendungs-Software-Raums (24) neu programmiert wird.
2. Verfahren (60) nach Anspruch 1, dadurch gekennzeichnet, daß der Schritt des Programmierens (64) des Sicherungsblocks (28) des Anwendungs-Software-Raums (24) ferner umfaßt, daß der Siche­ rungsblock (28) mit einer Logik-Routine programmiert wird (64), um ein Löschen des Sicherungsblocks (28) bei der Abwesenheit eines gültigen Hauptblocks (26) des Anwendungs-Software-Raums (24) zu verhindern.
3. Verfahren (60) nach Anspruch 2, dadurch gekennzeichnet, daß es den Schritt umfaßt, daß bestimmt wird, ob der Hauptblock (28) des Anwendungs-Software-Raums (24) gültige Anwendungs- Software enthält, bevor der Sicherungsblock (28) des Anwendungs- Software-Raums (24) gelöscht wird (70).
4. Verfahren (60) nach Anspruch 1, dadurch gekennzeichnet, daß es den Schritt umfaßt, daß eine Rücksetzvektor-Sprungtabelle (52) in den Anwendungs-Software-Raum (24) programmiert wird.
5. Verfahren (60) zum Neuprogrammieren von Anwendungs-Software in einem Mikrocontroller (10), der einen Anwendungs-Speicherraum (18) aufweist, wobei das Verfahren (60) die Schritte umfaßt, daß:
der Anwendung-Speicherraum (18) in einen Rücksetzvektor- Raum (20), einen Vor-Boot-Software-Raum (22), einen Hauptblock (26) eines Anwendungs-Software-Raums (24) und einen Sicherungs­ block (28) des Anwendungs-Software-Raums (24) unterteilt wird,
der Block (28) des Anwendungs-Software-Raums (24) gelöscht wird,
der Sicherungsblock (28) des Anwendungs-Software-Raums (24) mit einer Neuprogrammierungs-Kommunikationsroutine und einer Boot-Logik programmiert wird (64),
der Hauptblock (26) des Anwendungs-Software-Raums (24) gelöscht wird (66),
der Hauptblock (26) des Anwendungs-Software-Raums (24) mit einer gewünschten Anwendungs-Software, einer Neuprogram­ mierungs-Kommunikationsroutine und einer Boot-Logik program­ miert wird (68),
der Sicherungsblock (28) des Anwendungs-Software-Raums (24) gelöscht wird (70), und
der Sicherungsblock (28) des Anwendungs-Software-Raums (24) mit einer gewünschten Anwendungs-Software neu program­ miert wird.
6. Verfahren (60) nach Anspruch 5, dadurch gekennzeichnet, daß der Schritt des Programmierens (64) des Sicherungsblocks (28) des Anwendungs-Software-Raums (24) mit einer Neuprogrammierungs- Kommunikationsroutine und einer Boot-Logik ferner umfaßt, daß der Sicherungsblock (28) mit einer Logik-Routine programmiert wird (64), um ein Löschen des Sicherungsblocks (28) bei der Abwesenheit eines gültigen Hauptblocks (26) des Anwendungs-Software-Raums (24) zu verhindern.
7. Verfahren (60) nach Anspruch 6, dadurch gekennzeichnet, daß es den Schritt umfaßt, daß bestimmt wird, ob der Hauptblock (25) des Anwendungs-Software-Raums (24) gültige Anwendungs- Software enthält, bevor der Sicherungsblock (28) des Anwendungs- Software-Raums (24) gelöscht wird (70).
8. Anwendungs-Speicherraum (18) in einem Mikrocontroller (10), der einen Vor-Boot-Logik-Raum (22) umfaßt, um eine gültige Anwen­ dungs-Boot-Software in dem Anwendungs-Speicherraum (18) zu su­ chen und zu lokalisieren.
DE10115729A 2000-03-31 2001-03-30 Vielseitiges Boot-Verfahren für eine Anwendungs-Software eines Mikrocontrollers Expired - Fee Related DE10115729B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US541398 1983-10-12
US09/541,398 US6625809B1 (en) 2000-03-31 2000-03-31 Versatile boot method for a microcontroller's application software

Publications (2)

Publication Number Publication Date
DE10115729A1 true DE10115729A1 (de) 2001-10-11
DE10115729B4 DE10115729B4 (de) 2004-09-30

Family

ID=24159425

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10115729A Expired - Fee Related DE10115729B4 (de) 2000-03-31 2001-03-30 Vielseitiges Boot-Verfahren für eine Anwendungs-Software eines Mikrocontrollers

Country Status (2)

Country Link
US (1) US6625809B1 (de)
DE (1) DE10115729B4 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1584016A2 (de) * 2003-01-13 2005-10-12 Bitfone Corporation Mobiler handapparat mit der fähigkeit zur aktualisierung seines aktualisierungsagenten
US9081638B2 (en) 2006-07-27 2015-07-14 Qualcomm Incorporated User experience and dependency management in a mobile device

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981176B2 (en) * 1999-05-10 2005-12-27 Delphi Technologies, Inc. Secured microcontroller architecture
JP4842417B2 (ja) * 1999-12-16 2011-12-21 ソニー株式会社 記録装置
US6971095B2 (en) * 2000-05-17 2005-11-29 Fujitsu Limited Automatic firmware version upgrade system
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
JP4434539B2 (ja) * 2001-12-26 2010-03-17 富士通マイクロエレクトロニクス株式会社 プロセッサおよびそのブート方法
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US20050262337A1 (en) * 2004-05-24 2005-11-24 Siemens Vdo Automotive Corporation Method and device for determining flash software compatibility with hardware
WO2006003564A1 (en) * 2004-06-29 2006-01-12 Koninklijke Philips Electronics N.V. Safe flashing
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US8875114B2 (en) * 2007-09-21 2014-10-28 International Business Machines Corporation Employing identifiers provided by an operating system of a processing environment to optimize the processing environment
US8578362B2 (en) * 2011-03-18 2013-11-05 Hamilton Sundstrand Corporation Method for downloading software to an electronics product
KR20130081459A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 휴대단말기의 pre―load 어플리케이션 탑재를 위한 메모리 영역구분 장치
US9959120B2 (en) * 2013-01-25 2018-05-01 Apple Inc. Persistent relocatable reset vector for processor
US9329931B2 (en) * 2013-07-24 2016-05-03 Seagate Technology Llc Solid state drive emergency pre-boot application providing expanded data recovery function
US10372616B2 (en) 2015-06-03 2019-08-06 Renesas Electronics America Inc. Microcontroller performing address translations using address offsets in memory where selected absolute addressing based programs are stored
US10365961B2 (en) * 2016-09-09 2019-07-30 Dell Products L.P. Information handling system pre-boot fault management
US11023302B2 (en) 2018-03-07 2021-06-01 Dell Products L.P. Methods and systems for detecting and capturing host system hang events

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568641A (en) * 1995-01-18 1996-10-22 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
GB9601900D0 (en) * 1996-01-31 1996-04-03 Neopost Ltd Electronic apparatus including a memory device and method of reprogramming the memory device
JPH09288573A (ja) * 1996-04-23 1997-11-04 Mitsubishi Electric Corp 車載制御装置
US6275931B1 (en) * 1998-06-22 2001-08-14 Elsag International N.V. Method and apparatus for upgrading firmware boot and main codes in a programmable memory
US6272628B1 (en) * 1998-12-14 2001-08-07 International Business Machines Corporation Boot code verification and recovery

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1584016A2 (de) * 2003-01-13 2005-10-12 Bitfone Corporation Mobiler handapparat mit der fähigkeit zur aktualisierung seines aktualisierungsagenten
EP1584016A4 (de) * 2003-01-13 2009-03-11 Hewlett Packard Development Co Mobiler handapparat mit der fähigkeit zur aktualisierung seines aktualisierungsagenten
US7725889B2 (en) 2003-01-13 2010-05-25 Hewlett-Packard Development Company, L.P. Mobile handset capable of updating its update agent
US9081638B2 (en) 2006-07-27 2015-07-14 Qualcomm Incorporated User experience and dependency management in a mobile device

Also Published As

Publication number Publication date
DE10115729B4 (de) 2004-09-30
US6625809B1 (en) 2003-09-23

Similar Documents

Publication Publication Date Title
DE10115729A1 (de) Vielseitiges Boot-Verfahren für eine Anwendungs-Software eines Mikrocontrollers
DE102005013285B4 (de) Verfahren zum Konfigurieren eines Steuergeräts und Steuergerät
DE4312250B4 (de) Computer-System, das zum Betrieb sowohl in einer ersten wie auch in einer zweiten Bytereihenfolge-Betriebsart fähig ist, sowie ein Verfahren zum Booten eines solchen Computer-Systems
DE19633466C2 (de) Nachinitialisierung von Chipkarten
DE4331703C2 (de) Elektronische Einrichtung
EP1674956B1 (de) Verfahren zur dynamischen Konfiguration einer Bedienoberfläche eines Funktionsbausteins
DE10308545A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms
DE2937354A1 (de) Verfahren und einrichtung zur ueberwachung des gebrauchs eines programmierbaren rechners
EP2663946A2 (de) Verfahren zum betrieb einer mikroprozessoreinheit, insbesondere in einem mobilen endgerät
EP2486460A1 (de) Verfahren zur steuerung und bedienung einer produktionszelle sowie eine steuereinrichtung
DE60317392T2 (de) Verfahren zur automatischen Aktualisierung des Pfadzugriffs zu einem Festplattensystem eines Hardwareperimeters von Rechnerressourcen, Anordnung zur Durchführung dieses Verfahrens und Speicher, der in diesem System verwendet wird
DE2358593A1 (de) Datenverarbeitungsanordnung und bei dieser verwendbare steuerschaltung
DE19911794B4 (de) Verfahren und Vorrichtung zur Absicherung bei Veränderung des Speicherinhalts von Steuergeräten
DE10064025B4 (de) Verfahren zum Booten eines Mikroprozessors sowie Mikroprozessor mit einem bedingten deterministischen Rücksetzvektor
DE102005001430A1 (de) Verfahren zur Beschreibung von Speicherinhalten und zur Beschreibung des Transfers von Speicherinhalten
DE10002203B4 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
EP3070690A1 (de) Chipkarte und verfahren zur softwarebasierten modifikation einer chipkarte
DE60226276T2 (de) Verfahren und anordnung zum modifizieren des inhalts eines korrekturidentifikationsregisters
DE19946959B4 (de) Verfahren zum Laden von Daten für grundlegende Systemroutinen
DE19709975C2 (de) Mikrocomputer
EP1563358A2 (de) Verfahren zur sicheren überprüfung eines speicherbereiches eines mikrocontrollers in einem steuergerät und steuergerät mit einem geschützten mikrocontroller
DE102007062915A1 (de) Verfahren zum Betreiben einer speicherprogrammierbaren Steuerung
DE102013003593A1 (de) Verfahren zum Durchführen eines Löschungsvorgangs in einem beschreibbaren Speicherelement
WO2018091334A1 (de) Verfahren zur automatischen und dynamischen re-konfiguration einer speicherschutz-einheit sowie ein mikrocontroller mit einer speicherschutz-einheit
EP1644881B1 (de) Verfahren zum projektieren und/oder konfigurieren eines projektes

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee