DE102006040644A1 - Correction procedure for a reprogrammable microprocessor - Google Patents

Correction procedure for a reprogrammable microprocessor Download PDF

Info

Publication number
DE102006040644A1
DE102006040644A1 DE102006040644A DE102006040644A DE102006040644A1 DE 102006040644 A1 DE102006040644 A1 DE 102006040644A1 DE 102006040644 A DE102006040644 A DE 102006040644A DE 102006040644 A DE102006040644 A DE 102006040644A DE 102006040644 A1 DE102006040644 A1 DE 102006040644A1
Authority
DE
Germany
Prior art keywords
correction
routine
code
application routine
integrity
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.)
Withdrawn
Application number
DE102006040644A
Other languages
German (de)
Inventor
Markus Fislage
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102006040644A priority Critical patent/DE102006040644A1/en
Priority to IT001696A priority patent/ITMI20071696A1/en
Priority to FR0757235A priority patent/FR2905487B1/en
Priority to ES200702347A priority patent/ES2333189B1/en
Publication of DE102006040644A1 publication Critical patent/DE102006040644A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Circuits Of Receivers In General (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Das erfindungsgemäße Korrekturverfahren für einen neu-programmierbaren Mikroprozessor sieht nachfolgende Schritte vor: Bereitstellen des Mikroprozessors mit einem nicht-flüchtigen neu-programmierbaren Halbleiterspeicher; Speichern mindestens einer Anwendungsroutine in dem nicht-flüchtigen neubeschreibbaren Halbleiterspeicher; Bereitstellen eines Korrekturkodes für die mindestens eine Anwendungsroutine; Bereitstellen eines Prüfkodes für die mindestens eine Anwendungsroutine; Prüfen der Integrität der gespeicherten mindestens einen Anwendungsroutine mittels des Prüfcodes; Ausführen einer Korrektur mittels des Korrekturkodes, wenn die Integrität der Anwendungsroutine fehlt, wobei die Korrektur in dem nicht-flüchtigen neubeschreibbaren Halbleiterspeicher erfolgt; Prüfen der Integrität der korrigierten Anwendungsroutine mittels des Prüfcodes; und Annehmen einer erfolgreichen Korrektur, wenn die Integrität der korrigierten Anwendungsroutine bestätigt wird.The inventive reprogrammable microprocessor correction method includes the steps of: providing the microprocessor with a non-volatile reprogrammable semiconductor memory; Storing at least one application routine in the non-volatile rewritable semiconductor memory; Providing a correction code for the at least one application routine; Providing a test code for the at least one application routine; Checking the integrity of the stored at least one application routine by means of the check code; Performing correction by the correction code when the integrity of the application routine is absent, the correction taking place in the non-volatile rewritable semiconductor memory; Checking the integrity of the corrected application routine using the verification code; and accepting a successful correction when the integrity of the corrected application routine is confirmed.

Description

Die vorliegende Erfindung betrifft ein Korrekturverfahren für einen neu-programmierbaren Mikroprozessor und einen neu-programmierbaren Mikroprozessor zum Durchführen des Korrekturverfahrens.The The present invention relates to a correction method for a new programmable microprocessor and a reprogrammable Microprocessor for performing the correction procedure.

Vielfältige Steuergeräte bedienen sich eines Mikroprozessors der fest vorgegebene Anwendungsroutinen ausführt. Diese Anwendungsroutinen werden typischerweise in dem Mikroprozessor gespeichert. Der Mikroprozessor weist hierfür einen einmalig oder mehrmalig beschreibbaren Speicherbereich auf. Der Mikroprozessor lädt aus dem Speicherbereich die einzelnen Instruktionen direkt aus dem Speicherbereich in seine Ausführungsregister. Der Speicherbereich wird typischerweise als EEPROM realisiert. Durch externe Programmiergeräte können neue Anwendungsroutinen blockweise in den EEPROM gespeichert werden.Serve a variety of control units a microprocessor's fixed application routines performs. These application routines are typically in the microprocessor saved. The microprocessor has this one or more times writable memory area on. The microprocessor loads from the Memory area the individual instructions directly from the memory area in its execution register. The memory area is typically realized as EEPROM. By external programming devices can new ones Application routines are stored in blocks in the EEPROM.

In den neu beschreibbaren Speichern können vereinzelt einzelne Bits durch Störeinflüsse verändert werden. Diese einzelnen Bitfehler können dann dazu führen, dass die Steuerroutinen nicht oder fehlerhaft ausgeführt werden. In besonders sicherheitsrelevanten Steuergeräten, wie z.B. für ein Airbag-System, ist ein solches Fehlverhalten nicht tolerierbar. Bei solchen Steuergeräten wird daher geprüft, ob die Steuerroutinen und ihre zugehörigen Daten fehlerfrei abgespeichert sind, bevor sie ausgeführt werden. Ist dies nicht der Fall, wird das Steuergerät blockiert.In the rewritable memories can occasionally individual bits be changed by disturbing influences. These individual bit errors can then cause that the control routines are not executed or executed incorrectly. In particularly safety-related control devices, such as for an airbag system, such misconduct is intolerable. In such controllers is therefore checked, whether the control routines and their associated data are stored without error are before they run become. If this is not the case, the control unit is blocked.

Offenbarung der ErfindungDisclosure of the invention

Das erfindungsgemäße Verfahren mit den Merkmalen des Patentanspruchs 1 schafft vorteilhafterweise eine Korrektur von gespeicherten Anwendungsroutinen, bevor sie ausgeführt werden.The inventive method with the features of claim 1 provides advantageous a correction of stored application routines before they are executed.

Das Korrekturverfahren für einen neu-programmierbaren Mikroprozessor sieht die Schritte vor:

  • (a) Bereitstellen des Mikroprozessors mit einem nicht-flüchtigen neu-programmierbaren Halbleiterspeicher;
  • (b) Speichern mindestens einer Anwendungsroutine in dem nicht-flüchtigen neubeschreibbaren Halbleiterspeicher,
  • (c) Bereitstellen eines Korrekturkodes für die mindestens eine Anwendungsroutine;
  • (d) Bereitstellen eines Prüfkodes für die mindestens eine Anwendungsroutine;
  • (e) Prüfen der Integrität der gespeicherten mindestens einen Anwendungsroutine mittels des Prüfkodes;
  • (f) Ausführen einer Korrektur mittels des Korrekturkodes, wenn die Integrität der Anwendungsroutine fehlt, wobei die Korrektur in dem nicht-flüchtigen neubeschreibbaren Halbleiterspeicher erfolgt;
  • (g) Prüfen der Integrität der korrigierten Anwendungsroutine mittels des Prüfkodes; und
  • (h) Annehmen einer erfolgreichen Korrektur, wenn die Integrität der korrigierten Anwendungsroutine bestätigt wird.
The reprogrammable microprocessor correction procedure provides the steps:
  • (a) providing the microprocessor with a non-volatile reprogrammable semiconductor memory;
  • (b) storing at least one application routine in the non-volatile rewritable semiconductor memory,
  • (c) providing a correction code for the at least one application routine;
  • (d) providing a test code for the at least one application routine;
  • (e) checking the integrity of the stored at least one application routine by means of the check code;
  • (f) performing correction by the correction code if the integrity of the application routine is absent, the correction taking place in the non-volatile rewritable semiconductor memory;
  • (g) checking the integrity of the corrected application routine by means of the check code; and
  • (h) accepting a successful correction when the integrity of the corrected application routine is confirmed.

Eine Maßnahme des erfindungsgemäßen Verfahrens besteht darin, eine Anwendungsroutine von dem neu-programmierbaren Mikroprozessor zu korrigieren, falls sie als defekt erkannt wird. Einerseits wird eine hohe Sicherheit hinsichtlich der Integrität der Anwendungsroutine dadurch erreicht, dass unterschiedliche Verfahren für die Prüfung und die Korrektur der Anwendungsroutine verwendet werden.A measure the method according to the invention It is an application routine of the reprogrammable Correct microprocessor if it is detected as defective. On the one hand, there is a high level of security regarding the integrity of the application routine achieved by using different procedures for testing and the correction of the application routine can be used.

Der Aufwand für einen Mikroprozessor oder eine Datenverarbeitungseinrichtung eines Steuergeräts wird dadurch gering gehalten, dass eine Korrektur nur erfolgt, wenn zuvor eine fehlende Integrität festgestellt wird. Darüber hinaus erfolgt die Korrektur in dem nichtflüchtigen, neu beschreibbaren Speicher. Wird die Anwendungsroutine ein nächstes Mal geladen, weist sie wieder eine Integrität auf und bedarf somit keiner erneuten Korrektur.Of the Effort for a microprocessor or a data processing device of a ECU is kept low by the fact that a correction only takes place if previously found a lack of integrity becomes. About that In addition, the correction is made in the nonvolatile, rewritable Storage. If the application routine loads the next time, it will instruct again an integrity and thus requires no further correction.

Die Prüfung und Korrektur erfolgt ohne externe Komponenten. Hierdurch kann auch eine Korrektur während des Betriebs erfolgen.The exam and correction is done without external components. This can also a correction during of the operation.

Der Mikroprozessor kann Instruktionen der Anwendungsroutinen jeweils unmittelbar aus dem nicht flüchtigen neubeschreibbaren Halbleiterspeicher zum Ausführen laden.Of the Microprocessor can provide instructions of the application routines respectively directly from the non-volatile rewritable semiconductor memory to execute load.

Beim Korrigieren wird ein Block des nicht-flüchtigen neubeschreibbare Halbleiterspeicher neugeschrieben, der die zu korrigierende Anwendungsroutine aufweist.At the To correct, a block of the non-volatile rewritable semiconductor memory is rewritten, which has the application routine to be corrected.

Eine Korrekturroutine zum Ausführen der Korrektur wird in einem eigenen Block gespeichert. Hierdurch wird sichergestellt, dass bei einer Korrektur nicht versehentlich die Korrekturroutine überschrieben wird. Vorzugsweise ist ein Ändern des Blocks mit der Korrekturroutine nicht möglich.A Correction routine for execution the correction is saved in a separate block. hereby Ensures that when corrected not accidentally overwrite the correction routine becomes. Preferably, a change is of the block with the correction routine is not possible.

Das Prüfen der Integrität kann jedes Mal erfolgen, bevor die Anwendungsroutine ausgeführt wird.The Check of integrity can be done each time before the application routine is executed.

Eine Korrekturroutine zum Ausführen der Korrektur kann selbst eine Anwendungsroutine sein. Vorteilhafterweise wird eine Korrektur als nicht erfolgreich angenommen, wenn die gespeicherte Korrekturroutine keine Integrität aufweist.A Correction routine for execution the correction can itself be an application routine. advantageously, a correction is considered unsuccessful if the stored Correction routine no integrity having.

Der nichtflüchtige, neu beschreibbare Speicher kann ein Flash-Speicher sein.The non-volatile, rewriteable Spei It can be a flash memory.

Das Bereitstellen der Anwendungsroutine kann durch eine Laderoutine erfolgen, die die Anwendungsroutine in den nicht flüchtigen, neu beschreibbaren Speicher speichert. Zweckmäßigerweise prüft die Laderoutine die Integrität der gespeicherten Anwendungsroutine unmittelbar nach dem Speichern mittels des Prüfkodes. Ferner kann die Laderoutine selbst eine Anwendungsroutine sein. Nachladen oder Verändern von Anwendungsroutinen wird in diesem Fall durch die Laderoutine vorgenommen. Eine externe Bereitstellung dieser Laderoutine ist somit nicht notwendig. Gleichzeitig kann die Laderoutine selbst geändert werden.The Deploying the application routine may be through a loader routine carried out the application routine in the non-volatile, rewritable memory stores. Conveniently, the loading routine checks the integrity the stored application routine immediately after saving using of the test code. Furthermore, the load routine itself may be an application routine. Reloading or changing of application routines is in this case through the loader routine performed. An external deployment of this loader is not necessary. At the same time, the loading routine itself changed become.

Der Korrekturkode kann ein Reed-Solomon-Kode sein.Of the Correction code can be a Reed-Solomon code.

Kurze Beschreibung der ZeichnungenBrief description of the drawings

1 zeigt eine Ausführungsform Vorrichtung zum Durchführen eines Korrekturverfahrens. 1 shows an embodiment of apparatus for performing a correction method.

2 zeigt ein Flussdiagramm einer Ausführungsform des erfindungsgemäßen Korrekturverfahrens; 2 shows a flowchart of an embodiment of the correction method according to the invention;

3 zeigt ein Flussdiagramm einer Anwendung der Ausführungsform von 2; und 3 FIG. 12 shows a flow chart of an application of the embodiment of FIG 2 ; and

4 zeigt eine weitere Anwendung der Ausführungsform von 2. 4 shows another application of the embodiment of 2 ,

Beschreibung der AusführungsformenDescription of the embodiments

In 1 ist ein Blockdiagramm eines Steuergeräts 1 gezeigt, welches ein Korrekturverfahren ausführen kann. Das Steuergerät 1 weist eine Mikroprozessoreinheit 2 auf. Die Mikroprozessoreinheit 2 ist mit einem Flash-Speicher oder einem anderen nichtflüchtigen, neu beschreibbaren Speicher 4 gekoppelt.In 1 is a block diagram of a controller 1 which can perform a correction procedure. The control unit 1 has a microprocessor unit 2 on. The microprocessor unit 2 is with a flash memory or other non-volatile, rewritable memory 4 coupled.

Der Mikroprozessor 2 beginnt, indem er eine erste Instruktion an einer fest vorgegebenen Adresse aus dem Flash-Speicher 4 lädt bzw. ausführt, typischerweise an der Adresse 0. Danach lädt der Mikropro zessor 1 eine Instruktion nach der anderen aus dem Flash-Speicher 4 gemäß einem inkrementierenden Adresszähler oder gemäß Sprungbefehlen, die er soeben ausgeführt hat.The microprocessor 2 begins by sending a first instruction to a fixed address from flash memory 4 loads or executes, typically at the address 0. Thereafter loads the micropro processor 1 one instruction after the other from the flash memory 4 according to an incrementing address counter or according to branch instructions which it has just executed.

Ein Hauptspeicher oder ein anders gearteter größerer Direktzugriffsspeicher sind nicht implementiert. Somit liegt auch keine Kopie einer auszuführenden Ausführungsroutine vor.One Main memory or a different type of larger random access memory are not implemented. Thus, there is no copy of one to be executed executive routine in front.

Ein Diagnosesystem 5 oder eine Bereitstellungseinrichtung für neue Anwendungsroutinen kann über eine Schnittstelle 6 mit dem Mikroprozessor 2 gekoppelt werden.A diagnostic system 5 or a new application routines providing facility can interface 6 with the microprocessor 2 be coupled.

Eine Ausführungsform eines Korrekturverfahrens wird nachfolgend basierend auf dem Flussdiagramm in 2 erläutert. In dem nichtflüchtigen, neu beschreibbaren Speicher 4 ist eine Auslöseroutine für einen Airbag abgespeichert (10). Die Auslöseroutine ist beispielhaft für vielfältige verschiedene flashbare Anwendungsroutinen.An embodiment of a correction method will be described below based on the flowchart in FIG 2 explained. In the nonvolatile, rewriteable memory 4 is stored a triggering routine for an airbag ( 10 ). The triggering routine is exemplary for a variety of different flashable application routines.

In die Auslöseroutine wird ein Korrekturkode eingewoben (11). Vorteilhafterweise wird ein Reed-Solomon-Kode verwendet. Der Reed-Solomon-Kode ermöglicht die Korrektur einzelner Bitfehler in der Auslöseroutine. Die Anzahl der zusätzlich eingewobenen Bits für den Reed-Solomon-Kode wird danach gewählt, wie viele Bitfehler noch korrigierbar sein sollen. Die zusätzlichen Bits für die Korrektur mittels des Reed-Solomon-Kodes können auch in einem separaten Speicherbereich abgelegt werden, anstatt in die Auslöseroutine eingewoben zu werden.A correction code is woven into the release routine ( 11 ). Advantageously, a Reed-Solomon code is used. The Reed-Solomon code allows the correction of individual bit errors in the triggering routine. The number of additionally-interleaved bits for the Reed-Solomon code is selected according to how many bit errors are still correctable. The additional bits for the Reed-Solomon code correction may also be stored in a separate memory area instead of being woven into the triggering routine.

Ferner wird ein Prüfkode für die Auslöseroutine errechnet (12) und in dem Flash-Speicher abgelegt. Der Prüfkode kann z.B. eine zyklisch generierte Prüfsumme sein. Bei geringen Sicherheitsanforderungen können auch einfache Paritätsprüfbits verwendet werden.Furthermore, a test code for the triggering routine is calculated ( 12 ) and stored in the flash memory. The check code may be, for example, a cyclically generated checksum. For low security requirements, simple parity check bits can also be used.

Bevor die Auslöseroutine gestartet wird, wird deren Integrität geprüft (13). Dies erfolgt mittels Prüfkodes. Die hierfür zuständige Prüfroutine ist vorzugsweise ebenfalls in dem Flash-Speicher gespeichert. Diese Prüfroutine wird durch den Mikroprozessor schrittweise ausgeführt und lädt die einzelnen Instruktionen der Auslöseroutine um deren Speicherinhalt auszulesen ohne diese auszuführen. Schrittweise wird somit in bekannter Weise der Prüfkode aus der gespeicherten Anwendungsroutine neu berechnet und mit dem bereitgestellten Prüfkode auf Identität verglichen.Before the trigger routine is started, its integrity is checked ( 13 ). This is done by means of test codes. The responsible check routine is preferably also stored in the flash memory. This check routine is executed step by step by the microprocessor and loads the individual instructions of the trigger routine to read their memory contents without executing them. Step by step, the test code is thus recalculated in a known manner from the stored application routine and compared with the provided test code for identity.

Bei fehlender Integrität, d.h. fehlender Identität des neu berechneten Prüfkodes und des bereitgestellten Prüfkodes, erfolgt eine Korrektur der Auslöseroutine (14). Eine geeignete Korrekturroutine, die selbst in dem Flash-Speicher abgelegt sein kann, führt das Reed-Solomon-Verfahren aus. Die Korrekturroutine wird durch den Mikroprozessor schrittweise ausgeführt. Danach wird ein Block, in dem die Auslöseroutine gespeichert ist mit dem korrigierten Inhalt überschrieben.In the absence of integrity, ie missing identity of the newly calculated check code and the test code provided, a correction of the triggering routine ( 14 ). A suitable correction routine, which itself may be stored in the flash memory, executes the Reed-Solomon method. The correction routine is executed step by step by the microprocessor. Thereafter, a block in which the triggering routine is stored is overwritten with the corrected content.

Für das blockweise Überschreiben kann ein Puffer 3 bereitgestellt werden. In diesem kann eine Kopie des Blocks abgelegt und die korrigierte Anwendungsroutine zwischengespeichert werden, bevor der Inhalt in den Flash-Speicher geschrieben wird.For block overwriting, a buffer can be used 3 to be provided. In this a copy of the block can be stored and the corrected application routine to be cached before the content is written to the flash memory.

In der Regel werden auf diese Weise sämtliche Bitfehler der Auslöseroutine beseitigt. Jedoch kann es vereinzelt dazu kommen, dass zu viele Bitfehler in der Auslöseroutine enthalten sind. Dies macht es erforderlich, dass die korrigierte Auslöseroutine mittels des Prüfkodes auf Integrität überprüft wird (15).As a rule, all bit errors of the triggering routine are eliminated in this way. However, occasionally there may be too many bit errors in the triggering routine. This requires that the corrected triggering routine be checked for integrity by the check code ( 15 ).

Die Korrekturen werden unmittelbar in dem nichtflüchtigen, neu beschreibbaren Speicher ausgeführt. Somit liegt die Anwendungsroutine, d.h. z.B. die Auslöseroutine, nun in korrigierter Fassung in dem nichtflüchtigen Speicher vor.The Corrections are made immediately in the non-volatile, rewritable Memory executed. Thus, the application routine, i. e.g. the triggering routine, now in corrected form in the non-volatile memory.

Die Korrekturroutine wird vorzugsweise in einem eigenen Block des Flash-Speichers 4 abgelegt. Da für die Ausführung der Korrekturroutine keine Kopie vorliegt, darf während des Korrigierens eines Blocks die Korrekturroutine selbst nicht überschrieben werden.The correction routine is preferably stored in a separate block of the flash memory 4 stored. Since there is no copy for the execution of the correction routine, the correction routine itself must not be overwritten during the correction of a block.

Das beschriebene Verfahren gemäß der Ausführungsform benötigt keine externen Routinen. Es ist somit vollständig autark und kann z.B. lokal in dem Steuergerät 1 durchgeführt werden.The described method according to the embodiment does not require any external routines. It is thus completely self-sufficient and can, for example, locally in the control unit 1 be performed.

Die Ausführungsform kann für vielfältige Anwendungen in einem Steuergerät eingesetzt werden. Eine erste Anwendung besteht darin, das Korrekturverfahren beim Neuprogrammieren (20) eines Steuergeräts einzusetzen. Die neuen Anwendungsroutinen werden durch ein externes System bereitgestellt (21). In gleicher Weise werden der Korrekturkode und der Prüfkode der neuen Anwendungsroutinen extern bereitgestellt (22, 23). Eine Laderoutine, welche Teil der Anwendungsroutinen in dem nichtflüchtigen, neu beschreibbaren Speicher sind, lädt die bereitgestellten neuen Anwendungsroutinen mit deren Korrekturkodes und Prüfkodes ein (24).The embodiment can be used for a variety of applications in a control unit. A first application is to use the reprogramming ( 20 ) of a control unit. The new application routines are provided by an external system ( 21 ). In the same way, the correction code and the test code of the new application routines are provided externally ( 22 . 23 ). A load routine, which is part of the application routines in the nonvolatile, rewriteable memory, loads the provided new application routines with their correction codes and test codes ( 24 ).

Nachdem die neue Anwendungsroutine in den nichtflüchtigen, neu beschreibbaren Speicher gespeichert ist, wird deren Integrität mittels des Prüfkodes überprüft (25) und gegebenenfalls eine Korrektur mittels des Korrekturkodes ausgeführt (26).After the new application routine is stored in the non-volatile, rewritable memory, its integrity is checked by the check code ( 25 ) and if necessary a correction by means of the correction code ( 26 ).

Ein weiteres Anwendungsgebiet der Ausführungsform des Korrekturverfahrens besteht darin, dass im Betrieb des Steuergeräts die darin gespeicherten Anwendungsroutinen zyklisch oder bei Bedarf überprüft und gegebenenfalls korrigiert werden. So kann z.B. jede Anwendungsroutine, bevor sie gestartet wird, auf Integrität geprüft werden und, falls notwendig, korrigiert und nochmals deren Integrität geprüft werden.One Another application of the embodiment of the correction method is that in the operation of the controller, the stored therein Application routines cyclically or if necessary checked and corrected if necessary become. Thus, e.g. every application routine before it gets started on integrity checked and, if necessary, corrected and their integrity checked again.

Hierdurch wird z.B. auch sichergestellt, dass ein Steuergerät in den meisten Fällen wieder startbar ist, sogar wenn eine Startroutine des Steuergeräts zwischenzeitlich defekt ist. Normalerweise würde ein Defekt der Startroutine dazu führen, dass die Prozessoreinheit, die weiteren Speichereinheiten und Schnittstellen nicht ordnungsgemäß eingerichtet werden können und keine weiteren Anwendungsroutinen mehr startbar sind.hereby is e.g. also ensured that a control unit in the most cases is bootable again, even if a startup routine of the controller in the meantime is defective. Normally a failure of the start routine cause the processor unit, the other storage devices and interfaces are not set up properly can and no more application routines are bootable.

Während des Betriebs des Steuergeräts wird die Startroutine vorzugsweise zyklisch auf deren Integrität überwacht. Falls durch einen Bitfehler oder eine sonstige Störung die Integrität nicht mehr gewahrt ist, wird eine Korrektur der Startroutine ausgeführt. Zur Sicherheit wird nachfolgend nochmals die Integrität der Startroutine überprüft.During the Operation of the controller the start routine is preferably cyclically monitored for integrity. If due to a bit error or other fault the integrity is no longer maintained, a correction of the start routine is executed. to Safety, the integrity of the start routine is checked again below.

Beim Starten eines Steuergeräts (30) können nachfolgende Schritte ausgeführt werden (4). Zuerst werden die Prüfroutinen und die Korrekturroutinen überprüft (31, 32). Liegt bei diesen Routinen ein Defekt, z.B. ein Bitfehler, vor (33), so wird aus Sicherheitsgründen angenommen, dass das Steuergerät nicht in einen funktionsfähigen Zustand zurücksetzbar ist (34). Falls die vorgenannten Routinen in Ordnung sind, erfolgt eine Prüfung der anderen Anwendungsroutinen (35). Die Prüfung und gegebenenfalls die Korrektur erfolgt gemäß der Ausführungsform, die unter Anderem zusammen mit 2 erläutert ist.When starting a controller ( 30 ) the following steps can be carried out ( 4 ). First the check routines and the correction routines are checked ( 31 . 32 ). If there is a defect in these routines, eg a bit error, ( 33 ), it is assumed for safety reasons that the control unit can not be reset to a functional state ( 34 ). If the aforementioned routines are in order, the other application routines ( 35 ). The test and, where appropriate, the correction takes place according to the embodiment, which, inter alia, together with 2 is explained.

Claims (9)

Korrekturverfahren für einen neu-programmierbaren Mikroprozessor, mit den Schritten (a) Bereitstellen des Mikroprozessors mit einem nicht-flüchtigen neu-programmierbaren Halbleiterspeicher; (b) Speichern mindestens einer Anwendungsroutine in dem nicht-flüchtigen neubeschreibbaren Halbleiterspeicher, (c) Bereitstellen eines Korrekturkodes für die mindestens eine Anwendungsroutine; (d) Bereitstellen eines Prüfkodes für die mindestens eine Anwendungsroutine; (e) Prüfen der Integrität der gespeicherten mindestens einen Anwendungsroutine mittels des Prüfkodes; (f) Ausführen einer Korrektur mittels des Korrekturkodes, wenn die Integrität der Anwendungsroutine fehlt, wobei die Korrektur in dem nicht-flüchtigen neubeschreibbaren Halbleiterspeicher erfolgt; (g) Prüfen der Integrität der. korrigierten Anwendungsroutine mittels des Prüfkodes; und (h) Annehmen einer erfolgreichen Korrektur, wenn die Integrität der korrigierten Anwendungsroutine bestätigt wird.Correction procedure for a reprogrammable Microprocessor, with the steps (a) Providing the microprocessor with a non-volatile newly programmable semiconductor memory; (b) save at least an application routine in the non-volatile rewritable semiconductor memory, (C) Providing a correction code for the at least one application routine; (D) Provide a check code for the at least one application routine; (e) checking the integrity of the stored at least one application routine by means of the check code; (F) To run a correction by means of the correction code, if the integrity of the application routine is missing, wherein the correction is in the non-volatile rewritable semiconductor memory he follows; (g) Check of integrity of the. corrected application routine by means of the check code; and (h) accepting a successful correction when the integrity of the corrected Application routine confirmed becomes. Korrekturverfahren nach Anspruch 1, wobei der Mikroprozessor Instruktionen der Anwendungsroutinen jeweils unmittelbar aus dem nicht-flüchtigen neubeschreibbaren Halbleiterspeicher zum Ausführen lädt.The correction method of claim 1, wherein the microprocessor Instructions of the application routines each directly from the non-volatile rewritable Semiconductor memory for execution invites. Korrekturverfahren nach Anspruch 1 oder 2, wobei beim Korrigieren ein Block des nichtflüchtigen neubeschreibbare Halbleiterspeicher neu-geschrieben wird.A correction method according to claim 1 or 2, wherein when correcting, a block of the non-volatile rewritable semiconductor memory is re-written. Korrekturverfahren nach einem der vorhergehenden Ansprüche, wobei eine Korrekturroutine zum Ausführen der Korrektur in einem eigenen Block gespeichert wird.Correction method according to one of the preceding Claims, wherein a correction routine for executing the correction in a own block is saved. Korrekturverfahren nach der vorhergehenden Anspruch 4, wobei eine Korrektur als nicht erfolgreich angenommen wird, wenn die Korrekturroutine keine Integrität aufweist.Correction method according to the preceding claim 4, where a correction is deemed unsuccessful if the correction routine has no integrity. Korrekturverfahren nach einem der vorhergehenden Ansprüche, wobei der nicht-flüchtige neubeschreibbare Speicher ein Flash-Speicher ist.Correction method according to one of the preceding Claims, the non-volatile rewriteable memory is a flash memory. Korrekturverfahren nach einem der vorhergehenden Ansprüche, wobei der Korrekturkode ein Reed-Solomon-Kode ist.Correction method according to one of the preceding Claims, wherein the correction code is a Reed-Solomon code. Korrekturverfahren nach einem der vorhergehenden Ansprüche, wobei die Integrität der gespeicherten Anwendungsroutine vor einem Ausführen der Anwendungsroutine geprüft wird.Correction method according to one of the preceding Claims, being the integrity the stored application routine before executing the Application routine checked becomes. Korrekturvorrichtung, insbesondere zum Durchführen eines der Korrekturverfahren nach den Ansprüchen 1 bis 8, mit einem nicht-flüchtigen, neu beschreibbaren Speicher (4) zum Speichern von mindestens einer Anwendungsroutine, jeweils eines Prüfkodes und jeweils eines Korrekturkodes für die mindestens eine Anwendungsroutine und eine Datenverarbeitungseinrichtung (2) zum Durchführen einer Prüfung der Integrität der Anwendungsroutine anhand des Prüfkodes und zum Durchführen einer Korrektur unter Verwendung des Korrekturkodes.Correction device, in particular for carrying out one of the correction methods according to claims 1 to 8, with a non-volatile, rewritable memory ( 4 ) for storing at least one application routine, in each case a test code and in each case a correction code for the at least one application routine and a data processing device ( 2 ) for checking the integrity of the application routine based on the check code and making a correction using the correction code.
DE102006040644A 2006-08-30 2006-08-30 Correction procedure for a reprogrammable microprocessor Withdrawn DE102006040644A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102006040644A DE102006040644A1 (en) 2006-08-30 2006-08-30 Correction procedure for a reprogrammable microprocessor
IT001696A ITMI20071696A1 (en) 2006-08-30 2007-08-28 CORRECTION PROCEDURE FOR A RE-PROGRAMMABLE MICROPROCESSOR
FR0757235A FR2905487B1 (en) 2006-08-30 2007-08-29 METHOD AND DEVICE FOR CORRECTING A REPROGRAMMABLE MICROPROCESSOR
ES200702347A ES2333189B1 (en) 2006-08-30 2007-08-29 CORRECTOR PROCEDURE FOR A REPROGRAMABLE MICRO-PROCESSOR.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006040644A DE102006040644A1 (en) 2006-08-30 2006-08-30 Correction procedure for a reprogrammable microprocessor

Publications (1)

Publication Number Publication Date
DE102006040644A1 true DE102006040644A1 (en) 2008-03-13

Family

ID=39046974

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006040644A Withdrawn DE102006040644A1 (en) 2006-08-30 2006-08-30 Correction procedure for a reprogrammable microprocessor

Country Status (4)

Country Link
DE (1) DE102006040644A1 (en)
ES (1) ES2333189B1 (en)
FR (1) FR2905487B1 (en)
IT (1) ITMI20071696A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140039764A1 (en) * 2012-08-02 2014-02-06 Denso Corporation Controller pre-shipment inspection method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003151A (en) * 1997-02-04 1999-12-14 Mediatek Inc. Error correction and detection system for mass storage controller
US6421805B1 (en) * 1998-11-16 2002-07-16 Exabyte Corporation Rogue packet detection and correction method for data storage device
CN1436308A (en) * 2000-06-22 2003-08-13 密克罗奇普技术公司 Method of checking EEPROM data with embedded CRC
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7389465B2 (en) * 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US7409623B2 (en) * 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140039764A1 (en) * 2012-08-02 2014-02-06 Denso Corporation Controller pre-shipment inspection method

Also Published As

Publication number Publication date
ES2333189A1 (en) 2010-02-17
FR2905487B1 (en) 2012-09-21
ES2333189B1 (en) 2010-11-04
ITMI20071696A1 (en) 2008-02-29
FR2905487A1 (en) 2008-03-07

Similar Documents

Publication Publication Date Title
EP2318920B1 (en) Control appliance for a vehicle, and method for updating data for a control appliance for a vehicle
DE102012204256B4 (en) METHOD AND SYSTEM FOR INITIATING A RE-OPERATION PROCESS IN A NON-VOLATILE SOLID STORAGE DEVICE
DE19839680B4 (en) Method and device for modifying the memory contents of control units
EP1854007A2 (en) Method, operating system, and computing device for processing a computer program
DE102015210651B4 (en) Circuit and method for testing an error correction capability
DE102013005170A1 (en) Control device for a vehicle and error handling method in a control device for a vehicle
DE102009024605A1 (en) Apparatus and method for bypassing a first program code portion with a replacement program code portion
WO2016074663A1 (en) Updating of firmware
WO2006045754A1 (en) Method, operational system and computing unit for executing a computer program
DE19931184A1 (en) Altering controller memory contents involves writing new data that is worthy of security into different memory area before transferring to original memory area contg. replaced data
WO2004090732A2 (en) Program-controlled unit
DE10002203B4 (en) Method for protecting a microcomputer system against manipulation of data stored in a memory arrangement of the microcomputer system
EP1359485B1 (en) Control and monitoring system
WO2008068189A1 (en) Method for updating software of an electronic device, in particular of the release of low-voltage circuit breakers
DE102006040644A1 (en) Correction procedure for a reprogrammable microprocessor
EP1595212B1 (en) Method and device for monitoring an electronic circuit
DE102005060714B4 (en) Data processing device, memory card, method of operating a data processing device and method of manufacturing a data processing device
DE112019004272T5 (en) INSTALLING APPLICATION PROGRAM CODE ON A VEHICLE CONTROL SYSTEM
DE102010027287A1 (en) Method and device for checking a main memory of a processor
DE102005040917A1 (en) Data processing system and operating method therefor
DE10148157B4 (en) Program controlled unit
DE10123170A1 (en) Operating controller, especially for motor vehicle, involves running changed program and/or using changed data only if changed program and/or data has or have been successfully verified
WO2009103728A1 (en) Method and device for storing information data
DE10135285A1 (en) Storage device and method for operating a system containing a storage device
EP3217280A1 (en) Patch method, in particular in method calling

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20130515

R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee