DE10115729A1 - Vielseitiges Boot-Verfahren für eine Anwendungs-Software eines Mikrocontrollers - Google Patents
Vielseitiges Boot-Verfahren für eine Anwendungs-Software eines MikrocontrollersInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software 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.
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.
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.
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)
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)
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)
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 |
-
2000
- 2000-03-31 US US09/541,398 patent/US6625809B1/en not_active Expired - Fee Related
-
2001
- 2001-03-30 DE DE10115729A patent/DE10115729B4/de not_active Expired - Fee Related
Cited By (4)
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 |