DE10229817B4 - Verfahren und Vorrichtung zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts - Google Patents

Verfahren und Vorrichtung zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts Download PDF

Info

Publication number
DE10229817B4
DE10229817B4 DE10229817A DE10229817A DE10229817B4 DE 10229817 B4 DE10229817 B4 DE 10229817B4 DE 10229817 A DE10229817 A DE 10229817A DE 10229817 A DE10229817 A DE 10229817A DE 10229817 B4 DE10229817 B4 DE 10229817B4
Authority
DE
Germany
Prior art keywords
program
memory
stored
computer program
reset
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.)
Expired - Fee Related
Application number
DE10229817A
Other languages
English (en)
Other versions
DE10229817A1 (de
Inventor
Uwe Daemmrich
Dieter Buchholz
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 DE10229817A priority Critical patent/DE10229817B4/de
Priority to US10/608,759 priority patent/US7246206B2/en
Publication of DE10229817A1 publication Critical patent/DE10229817A1/de
Application granted granted Critical
Publication of DE10229817B4 publication Critical patent/DE10229817B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Verfahren zum Ablegen eines Computerprogramms (21) in einen Programmspeicher (15, 20) eines Steuergeräts (10), wobei das Computerprogramm (21) nach vorgebbaren Regeln in bestimmten Speicherbereichen des Programmspeichers (15, 20) abgelegt wird, wobei in ungenutzten Speicherbereichen des Programmspeichers (15, 20), in denen das Computerprogramm (21) nicht abgelegt wird, ein in einem Rechengerät (11) des Steuergeräts (10) nicht vorhandener Befehlscode, ein sogenannter Illegal Opcode, zum gezielten Auslösen eines Reset abgelegt wird, wobei der Reset durch Abarbeiten des Illegal Opcodes auf dem Rechengerät (11) sofort und nicht erst nach einer speziellen Fehlerbehandlung ausgelöst wird, und nach dem Reset des Steuergeräts (10) sofort wieder mit der normalen Funktionalität des Steuergeräts (10) fortgefahren wird.

Description

  • Stand der Technik
  • Die vorliegende Erfindung betrifft ein Verfahren zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts. Das Computerprogramm wird nach vorgebbaren Regeln in bestimmten Speicherbereichen des Programmspeichers abgelegt. In ungenutzten Speicherbereichen des Programmspeichers, in denen das Computerprogramm nicht abgelegt wird, wird ein in einem Rechengerät des Steuergeräts nicht vorhandener Befehlscode, ein sogenannter Illegal Opcode, zum gezielten Auslösen eines Reset abgelegt.
  • Die Erfindung betrifft außerdem eine Vorrichtung zum Ablegen eines Computerprogramms in einem Programmspeicher eines Steuergeräts. Die Vorrichtung weist erste Mittel zum Ablegen des Computerprogramms nach vorgebbaren Regeln in bestimmten Speicherbereichen des Programmspeichers auf. Die Vorrichtung weist zweite Mittel zum Ablegen eines in einem Rechengerät des Steuergeräts nicht vorhandenen Befehlscodes, eines sogenannten Illegal Opcodes, zum gezielten Auslösen eines Reset, in ungenutzten Speicherbereichen des Programmspeichers auf, in denen die ersten Mittel das Computerprogramm nicht abgelegt haben.
  • Schließlich betrifft die vorliegende Erfindung ein Steuergerät mit einem Rechengerät, insbesondere einem Mikroprozessor, und einem Programmspeicher, auf dem ein Computerprogramm nach vorgebbaren Regeln in bestimmten Speicherbereichen des Programmspeichers abgelegt ist. In ungenutzten Speicherbereichen des Programmspeichers, in denen das Computerprogramm nicht abgelegt ist, ist ein in dem Rechengerät des Steuergeräts nicht vorhandener Befehlscode, ein sogenannter Illegal Opcode, zum gezielten Auslösen eines Reset abgelegt.
  • Aus dem Stand der Technik ist es bspw. bei Kraftfahrzeug-Steuergeräten bekannt, den Programmcode eines Computerprogramms für ein Rechengerät, insbesondere für einen Mikroprozessor oder für eine CPU (Central Processing Unit), und für eventuell vorhandene Co-Prozessoren entsprechend einem für das jeweilige Steuergerät gültigen Adressmapping zu lokatieren und in einem Programmspeicher des Steuergeräts abzulegen. Unter Lokatieren wird das Zuweisen bestimmter Teile des Computerprogramms, sog. Programmsegmente, zu bestimmten Speicherbereichen des Programmspeichers verstanden.
  • Nach dem Stand der Technik erfolgt das Lokatieren und Ablegen des Programmcodes in dem Programmspeicher nach vorgebbaren Regeln, die insbesondere die nachfolgenden Sachverhalte berücksichtigen:
    • – Programmsegmente, die häufig aufgerufen werden, werden in Speicherbereiche lokatiert, die eine schnelle Programmausführung, d. h. eine schnelle Abarbeitung der Programmsegmente auf dem Mikroprozessor oder der CPU ermöglichen. Diese Programmsegmente (bspw. der Programmcode schneller Zeitraster) können in einem internen Flash-Speicher des Steuergeräts abgelegt werden.
    • – Die Zugriffsmöglichkeiten auf den Programmspeicher bei bestimmten hardwarebedingten Systemzuständen. So kann es bspw. vorkommen, dass bei Unterspannung nicht auf den internen Flash-Speicher zugegriffen werden kann. Um diesem Systemzustand Rechnung zu tragen, werden die Programmsegmente, auf die trotz Unterspannung sicher zugegriffen werden soll, in einen externen Flash-Speicher lokatiert und dort abgelegt.
  • Im Rahmen der vorliegenden Erfindung wird unter internem Flash-Speicher derjenige Flashbereich bezeichnet, der sich innerhalb des CPU-Gehäuses befindet. Mit externem Flash-Speicher ist dagegen ein separater IC (Integrated Circuit)-Baustein bezeichnet, auf den über einen externen Bus von der CPU aus zugegriffen wird.
  • Die Lokatierung erfolgt nach dem Assemblieren, Compilieren und Linken des Programmcodes und bevor das Computerprogramm in den Programmspeicher des Steuergeräts abgelegt wird. Insgesamt führt das aus dem Stand der Technik bekannte Verfahren zum Ablegen eines Computerprogramms in einem Programmspeicher eines Steuergeräts dazu, dass Programmsegmente auf unterschiedliche, nicht zusammenhängende Adressbereiche des Programmspeichers verteilt werden.
  • Beim Abarbeiten des in dem Programmspeicher abgelegten Computerprogramms auf einem Rechengerät, insbesondere auf einem Mikroprozessor oder einer CPU, kann es aus unterschiedlichen Gründen dazu kommen, dass das Computerprogramm in ungenutzte Speicherbereiche des Programmspeichers, in denen kein Programmcode abgelegt ist, springt. In den ungenutzten Speicherbereichen ist nach dem Stand der Technik kein definierter Programmcode abgelegt. Nach einem Sprung in den ungenutzten Speicherbereich des Programmspeichers wird folglich dieser undefinierte Programmcode abgearbeitet. Dadurch kann das Steuergerät in einen undefinierten und damit irregulären Zustand gelangen.
  • Ursachen für einen Sprung des Computerprogramms in den ungenutzten Speicherbereich des Programmspeichers können innere und äußere Einflüsse, bspw. Bitkipper in dem Flash-Speicher oder in einem RAM (Random-Access-Memory), Auswirkungen von überhöhter EMV (Elektromagnetische Verträglichkeit)-Strahlung oder schlummernde Programmierfehler sein.
  • Aus dem Stand der Technik sind des weiteren verschiedene Mechanismen bekannt, um einen irregulären Zustand des Steuergeräts zu erkennen und das System einerseits in einen sicheren Zustand zu überführen und andererseits die Funktionalität des Steuergerätes wieder zu gewährleisten. Diese bekannten Mechanismen umfassen bspw.:
    • – einen internen Controller-Watchdog;
    • – eine Überwachung von Zeitrastern;
    • – ein Zwei-Rechner-Konzept;
    • – eine Überwachung des Programmablaufs auf Plausibilität;
    • – eine Checksummenprüfung.
  • Durch die beispielhaft aufgezählten Mechanismen wird versucht, Bitkipper in dem Flash-Speicher oder in dem RAM, Einflüsse durch elektromagnetische Einstrahlung (EMV) oder nichtplausible Zustände wie z.B. schlummernde Programmierfehler (bspw. Sprünge über falsch berechnete Pointer) direkt oder indirekt zu erkennen, das Steuergerät in einen sicheren Zustand zu überführen und die Funktionalität des Steuergerätes wieder herzustellen. Durch das frühzeitige Erkennen von irregulären oder undefinierten Zuständen des Steuergerätes soll die Robustheit des Systems erhöht werden. Durch eine rasche Wiederherstellung der Funktionalität des Steuergerätes soll die Verfügbarkeit des Systems verbessert werden.
  • Aus der DE 100 18 859 A1 ist es bekannt, beim Auftreten einer Fehlfunktion einer Einrichtung zum Messen, Steuern und Regeln (MSR) ein Überwachungssystem für die MSR-Einrichtung nicht sofort, sondern erst nach mehrfachem Auftreten einer Fehlfunktion in einen sicheren Zustand zu überführen. Bei jedem Auftreten einer Fehlfunktion wird der Zählerstand eines Zählers erhöht. Überschreitet der Zählerstand einen vorgebbaren Grenzwert, geht das Überwachungssystem in den sicheren Zustand über.
  • Aus der JP 63-155 236 ist ein Verfahren und eine Vorrichtung zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts bekannt, wobei das Computerprogramm nach vorgebbaren Regeln in bestimmten Speicherbereichen des Programmspeichers abgelegt wird. In ungenutzten Speicherbereichen des Programmspeichers, in denen das Computerprogramm nicht abgelegt wird, wird ein Befehlscode zum unbedingten Springen an eine vorgegebene Adresse des Programmspeichers abgelegt. An der Adresse ist eine Fehlerbehandlungsroutine abgelegt, die abgearbeitet wird, falls das Computerprogramm während der Abarbeitung in die ungenutzten Speicherbereiche läuft.
  • Bignell, James et al.: Z80 Microprocessor Technology: Hardware, Software and Interfacing; Delmar Publishers, 1986, S. 21-22, 124-135; ISBN 0-8273-2492-8 können die Gründzüge des Aufbaus und der Programmierung des Z80-Prozessors entnommen werden. Außerdem werden dort die Unterschiede zwischen einem Interrupt und einer Subroutine erläutert.
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, einen einfachen und schnellen Mechanismus zu schaffen, durch den undefinierte oder irreguläre Zustände des Steuergerätes erkannt, sowie das Steuergerät in einen sicheren Zustand überführt und die Funktionalität des Steuergerätes wieder hergestellt werden kann.
  • Zur Lösung dieser Aufgabe schlägt die vorliegende Erfindung ein Verfahren mit den Merkmalen des Anspruchs 1 vor, wobei der Reset durch Abarbeiten des Illegal Opcodes auf dem Rechengerät sofort und nicht erst nach einer speziellen Fehlerbehandlung ausgelöst wird, und nach dem Reset des Steuergeräts sofort wieder mit der normalen Funktionalität des Steuergeräts fortgefahren wird.
  • Vorteile der Erfindung
  • Ein wesentlicher Aspekt der vorliegenden Erfindung besteht somit darin, in den ungenutzten Speicherbereichen des Programmspeichers statt des undefinierten Programmcodes vorgebbare Informationen, vorzugsweise einen bestimmten Programmcode wie Illegal Opcode abzulegen, durch den das Steuergerät in einen definierten Zustand überführt wird. Zusätzlich kann durch die vorgebbaren Informationen auch die Funktionalität des Steuergerätes wieder hergestellt werden.
  • Die Erfindung betrifft einen Mechanismus, der verhindert, dass das Rechengerät, insbesondere der Mikroprozessor oder die CPU, durch Speicherbereiche läuft, die in dem entsprechenden Stand des Computerprogramms eigentlich ungenutzt sind und folglich für die Programmausführung nicht verwendet werden dürfen. Falls das Rechengerät in diese Speicherbereiche verzweigt, liegt auf jeden Fall ein nicht plausibler Zustand vor. Um den weiteren Ablauf des Computerprogramms durch diesen ungenutzten Speicherbereich hindurch dennoch kontrollieren zu können und eine zufällige Rückkehr in vorhandenen Programmcode des Computerprogramms auszuschließen, soll dieser Speicherbereich zumindest teilweise mit einem speziellen Programmcode aufgefüllt werden, durch den das Rechengerät gezielt in einen definierten Zustand überführt wird. Vorzugsweise wird das Rechengerät durch den speziellen Programmcode veranlasst, einen Reset des Steuergeräts auszulösen.
  • Sobald in einen ungenutzten Speicherbereich gesprungen wird bzw. sobald Programmbefehle aus diesem Speicherbereich ausgeführt werden, wird dies erkannt. Das Steuergerät wird sofort zurückgesetzt. Durch einen anschließenden Hochlauf des Steuergeräteprogramms wird das System wieder in einen definierten, funktionsfähigen Zustand versetzt. Nach dem Hochfahren des Steuergerätes kann dann, sofern kein dauerhafter Fehler vorliegt, wieder mit der normalen Funktionalität des Steuergerätes fortgefahren werden.
  • Der erfindungsgemäß vorgeschlagene Mechanismus bietet eine Absicherungsmaßnahme gegen Programmausführung in den ungenutzten Speicherbereichen eines Programmspeichers, die in dem entsprechenden Stand des Computerprogramms nicht verwendet werden dürfen. Durch die vorliegende Erfindung wird die Robustheit eines Computerprogramms für ein Steuergerät erhöht und die Verfügbarkeit des Steuergeräts entscheidend verbessert. Das Auftreten eines nichtplausiblen bzw. irregulären Zustands wird sofort erkannt. Darüber hinaus ist eine nachträgliche Implementierung in der Software aller Steuergeräte möglich. Der erfindungsgemäß vorgeschlagene Mechanismus kann einfach und schnell in der Steuergerätesoftware implementiert werden. Da eine Erweiterung des Programmcodes des Computerprogramms nicht notwendig ist, fällt kein zusätzlicher Aufwand und fallen keine zusätzlichen Kosten für die Realisierung der vorliegenden Erfindung an.
  • Es ist theoretisch denkbar, dass ein Rechengerät des Steuergerätes, insbesondere ein Mikroprozessor oder eine CPU, während der Abarbeitung des Computerprogramms in Speicherbereiche des Flash-Speichers springt bzw. Speicherbereiche des Flash-Speichers durchläuft, die zwar physikalisch vorhanden sind, die aber in dem aktuellen Stand des Computerprogramms ungenutzt sind. Falls das Rechengerät fälschlicherweise in diese ungenutzten Speicherbereiche springt und/oder in diesen ungenutzten Speicherbereichen Programmcode ausliest, kann das Steuergerät in einen irregulären oder undefinierten Zustand gelangen. Das Rechengerät wird versuchen, den aus den ungenutzten Speicherbereichen ausgelesenen Programmcode auszuführen. Falls der Programmcode keinen Sprung beinhaltet, wird das Rechengerät linear die gelesenen Programmbefehle ausführen und mit großer Wahrscheinlichkeit irgendwann in einen Speicherbereich mit regulärem Programmcode des Computerprogramms wieder hineinlaufen. Das Systemverhalten während der Ausführung der Programmbefehle aus dem ungenutzten Speicherbereich als auch das Systemverhalten nach einem Übergang in den tatsächlich genutzten Speicherbereich des Flash-Speichers ist nicht definiert bzw. nicht vorhersehbar und muss deshalb vermieden werden. Besonders kritisch ist dieses Verhalten, wenn es in einem Zeitraster geschieht, das selbst nicht auf Plausibilität kontrolliert wird.
  • Mit der vorliegenden Erfindung kann ein solcher undefinierter bzw. irregulärer Zustand des Steuergerätes sofort wieder abgebrochen werden, wodurch die Robustheit des Steuergeräts erhöht wird. Außerdem kann durch geeignete Wahl der vorgebbaren Informationen das Gesamtsystem schnell wieder in einen sicheren Zustand überführt und die Funktionalität des Steuergerätes wieder hergestellt werden, wodurch die Verfügbarkeit des Steuergeräts entscheidend verbessert wird.
  • Das Steuergerät wird durch Abarbeiten der vorgebbaren Informationen auf einem Rechengerät, insbesondere auf einem Mikroprozessor oder auf einer CPU (Central Processing Unit), des Steuergeräts zurückgesetzt. Durch die in dem ungenutzten Speicherbereich abgelegten Informationen wird also gezielt ein Reset des Steuergerätes ausgelöst. Der Reset wird vorzugsweise durch einen in der Recheneinheit nicht vorhandenen und damit verbotenen Befehlscode (sog. Illegal Opcode) ausgelöst.
  • Vorzugsweise wird das Steuergerät durch Abarbeiten des in den ungenutzten Speicherbereichen des Programmspeichers abgelegten Befehlscodes zurückgesetzt. Das Zurücksetzen des Steuergeräts kann bspw. durch einen in der Recheneinheit nicht vorhandenen und damit verbotenen Befehlscode (sog. Illegal Opcode) bewirkt werden. Der Reset hat einen Hochlauf des Steuergeräteprogramms zur Folge. Es können Informationen über den genauen Ort des Auftretens des Fehlers und die Vergangenheit festgehalten werden (z.B. eine Rücksprungadresse in das Computerprogramm). Aus diesen Informationen können Rückschlüsse (z.B. auf die Häufigkeit des Auftretens eines Fehlers) gezogen werden.
  • Die genaue Umsetzung der vorliegenden Erfindung hängt einerseits von dem verwendeten Rechengerät, insbesondere von dem Typ des verwendeten Mikroprozessors oder der verwendeten CPU ab. Verschiedene Rechengeräte unterscheiden sich bspw. durch den verwendeten Befehlssatz, der auf dem Rechengerät abgearbeitet wird. Andererseits hängt die genaue Umsetzung der vorliegenden Erfindung von dem gewünschten Umfang der Funktionalität des Mechanismus, d. h. von der gewünschten "Intelligenz" der Erkennung, der Überführung in einen sicheren Zustand und der Wiederherstellung der Funktionsfähigkeit des Steuergerätes, ab.
  • Es ist denkbar, die vorgebbaren Informationen lediglich in ausgewählten ungenutzten Speicherbereichen des Programmspeichers abzulegen. Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird jedoch vorgeschlagen, dass die vorgebbaren Informationen in allen ungenutzten Speicherbereichen des Programmspeichers abgelegt werden.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass wenigstens ein ungenutzter Speicherbereich des Programmspeichers mit dem Illegal Opcode vollständig aufgefüllt wird. Es ist weiter denkbar, lediglich ausgewählte oder aber alle ungenutzten Speicherbereiche des Programmspeichers vollständig mit dem Illegal Opcode aufzufüllen.
  • Gemäß einer anderen bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass der Illegal Opcode in vorgebbaren Abständen in wenigstens einem ungenutzten Speicherbereich des Programmspeichers abgelegt wird. Dabei bewirkt der Teil des ungenutzten Speicherbereichs, in dem der Illegal Opcode nicht abgelegt ist, keine Sprünge und keine Endlosschleifen. Der Illegal Opcode wird vorzugsweise in regelmäßigen Abständen in dem wenigstens einen ungenutzten Speicherbereich des Programmspeichers abgelegt.
  • Gemäß noch einer anderen bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass der Illegal Opcode lediglich am Ende wenigstens eines ungenutzten Speicherbereiches des Programmspeichers abgelegt wird. Dabei muss jedoch sichergestellt sein, dass der Teil des ungenutzten Speicherbereiches, in dem keine vorgebbaren Informationen abgelegt werden, keine Sprünge und keine Endlosschleifen bewirkt.
  • Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird eine Vorrichtung mit den Merkmalen des Anspruchs 7 vorgeschlagen, wobei der Illegal Opcode derart ausgestaltet ist, dass ein Abarbeiten des Illegal Opcodes auf dem Rechengerät sofort und nicht erst nach einer speziellen Fehlerbehandlung einen Reset des Steuergeräts auslöst, und nach dem Reset des Steuergeräts sofort wieder mit der normalen Funktionalität des Steuergeräts fortgefahren wird.
  • Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass die zweiten Mittel als ein Hexadezimal-Editor ausgebildet sind. Durch den Hexadezimal-Editor können die ungenutzten Speicherbereiche, die in dem entsprechenden Stand des Computerprogramms nicht genutzt werden, mit speziellem Hexadezimal-Code gefüllt werden. Das Befüllen des nichtgenutzten Programmspeichers erfolgt im Verlauf der Herstellung des Standes des Computerprogramms.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass die Vorrichtung Mittel zur Ausführung des erfindungsgemäßen Verfahrens aufweist.
  • Als noch eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ein Steuergerät mit den Merkmalen des Anspruchs 10 vorgeschlagen, wobei der Illegal Opcode derart ausgestaltet ist, dass ein Abarbeiten des Illegal Opcodes auf dem Rechengerät sofort und nicht erst nach einer speziellen Fehlerbehandlung einen Reset des Steuergeräts auslöst, und nach dem Reset des Steuergeräts sofort wieder mit der normalen Funktionalität des Steuergeräts fortgefahren wird.
  • Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass der Illegal Opcode nach dem erfindungsgemäßen Verfahren in den ungenutzten Speicherbereichen des Programmspeichers abgelegt ist.
  • Zeichnungen
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung. Es zeigen:
  • 1 ein Ablaufdiagramm eines erfindungsgemäßen Verfahrens gemäß einer bevorzugten Ausführungsform; und
  • 2 ein erfindungsgemäßes Steuergerät gemäß einer bevorzugten Ausführungsform.
  • Beschreibung der Ausführungsbeispiele
  • In 1 ist ein Ablauf des erfindungsgemäßen Verfahrens gemäß einer bevorzugten Ausführungsform dargestellt. Das erfindungsgemäße Verfahren beginnt in einem Funktionsblock 1. In einem Funktionsblock 2 wird der Programmcode für ein bestimmtes Computerprogramm erstellt. Das Computerprogramm dient bspw. zur Steuerung und/oder Regelung einer bestimmten Funktionalität in einem Kraftfahrzeug. In einem Funktionsblock 3 wird das erstellte Computerprogramm assembliert, kompiliert und gelinkt. Anschließend erfolgt in einem Funktionsblock 4 die Lokatierung des Programmcodes. Im Rahmen der Lokatierung wird das Computerprogramm nach vorgebbaren Regeln bestimmten Speicherbereichen eines Programmspeichers zugeordnet. Beim Lokatieren des Programmcodes werden bspw. folgende Sachverhalte berücksichtigt:
    • – Teile des Computerprogramms, sogenannte Programmsegmente, die häufig aufgerufen werden (bspw. der Programmcode schneller Zeitraster), werden in Speicherbereichen lokatiert, die eine schnelle Programmausführung ermöglichen, bspw. in einem internen Flash-Speicher.
    • – Programmsegmente, auf die trotz bestimmter hardwarebedingter Systemzustände mit Sicherheit noch zugegriffen werden soll, werden in entsprechende Speicherbereiche lokatiert, auf die auch in diesem Systemzuständen noch sicher zugegriffen werden kann. Falls bspw. bei Unterspannung ein Zugriff auf einen internen Flash-Speicher nicht möglich ist, werden die entsprechenden Programmsegmente in externe Flash-Speicher lokatiert. Durch das Lokatieren wird das Computerprogramm auf unterschiedliche, nicht zusammenhängende Adressbereiche des Programmspeichers verteilt.
  • In einigen Speicherbereichen des Programmspeichers wird das Computerprogramm nicht abgelegt, diese Speicherbereiche bleiben also ungenutzt. Es ist theoretisch denkbar, dass ein Rechengerät, insbesondere ein Mikroprozessor oder eine CPU (Central Processing Unit), bei der Programmausführung in diese ungenutzten Speicherbereiche des Programmspeichers springt bzw. diese ungenutzten Speicherbereiche durchläuft.
  • Diese ungenutzten Speicherbereiche sind zwar physikalisch vorhanden, werden aber bei dem aktuellen Programmstand nicht genutzt und sind somit frei. Falls das Rechengerät fälschlicherweise in diese ungenutzten Speicherbereiche springt und/oder in diesen ungenutzten Speicherbereichen Programmcode ausliest, kann das Steuergerät in einen undefinierten und damit irregulären Zustand gelangen. Das Rechengerät versucht, den aus dem ungenutzten Speicherbereich ausgelesenen Programmcode auszuführen. Falls der Programmcode keinen Sprung beinhaltet, führt das Rechengerät die eingelesenen Programmbefehle linear aus und läuft mit großer Wahrscheinlichkeit in einen Speicherbereich hinein, in dem regulärer Programmcodes des Programms abgelegt ist.
  • Das Systemverhalten während der Abarbeitung von Programmbefehlen aus dem ungenutzten Speicherbereich und nach einem Übergang in den von dem Computerprogramm tatsächlich genutzten Speicherbereich des Programmspeichers ist nicht vorhersehbar und muss deshalb vermieden werden. Besonders kritisch ist dieses Verhalten, wenn es in einem Zeitraster geschieht, das selbst nicht auf Plausibilität kontrolliert wird.
  • Die vorliegende Erfindung schlägt einen weiteren Mechanismus vor, durch den dieser irreguläre Zustand sofort bei dessen Auftreten abgebrochen, das Gesamtsystem in einen sicheren Zustand überführt und die Funktionalität des Steuergeräts wieder hergestellt wird. Dazu werden bei dem erfindungsgemäßen Verfahren in einem Funktionsblock 5 vorgebbare Informationen in den ungenutzten Speicherbereich des Programmspeichers lokatiert. Die vorgebbaren Informationen bewirken ein Zurücksetzen des Steuergerätes, wenn sie auf dem Rechengerät, insbesondere auf dem Mikroprozessor oder CPU, abgearbeitet werden. Es ist aber auch denkbar, dass durch Abarbeiten der vorgebbaren Informationen auf dem Rechengerät zunächst eine Interrupt-Service-Routine oder eine Fehlerbehandlungs-Routine aufgerufen wird. Am Ende der Routine kann das Steuergerät dann bspw. durch einen Software-Reset zurückgesetzt und neu hochgefahren werden. Das Steuergerät befindet sich dann in einem definierten, voll funktionsfähigen Zustand und kann mit der Abarbeitung des Computerprogramms fortfahren.
  • Die vorgebbaren Informationen können lediglich in einem Teil der ungenutzten Speicherbereiche des Programmspeichers abgelegt werden. Vorzugsweise werden die vorgebbaren Informationen jedoch in allen ungenutzten Speicherbereichen des Programmspeichers abgelegt. Des Weiteren ist es möglich, dass die vorgebbaren Informationen lediglich in einem Teil eines ungenutzten Speicherbereiches, bspw. am Ende des ungenutzten Speicherbereiches, abgelegt werden. Dabei muss jedoch sichergestellt werden, dass der Teil des ungenutzten Speicherbereiches, in dem die vorgebbaren Informationen nicht abgelegt sind, keine Sprünge und keine Endlosschleifen bewirkt, wenn der darin enthaltene Programmcode auf dem Rechengerät abgearbeitet wird. Vorzugsweise wird jedoch ein ungenutzter Speicherbereich des Programmspeichers mit den vorgebbaren Informationen vollständig aufgefüllt.
  • In einem Funktionsblock 6 des erfindungsgemäßen Verfahrens wird der im Funktionsblock 4 lokatierte Programmcode des Computerprogramms und werden die in dem Funktionsblock 5 lokatierten vorgebbaren Informationen in den entsprechenden Speicherbereichen des Programmspeichers abgelegt. In einem Funktionsblock 7 ist das erfindungsgemäße Verfahren beendet.
  • Gemäß einem alternativen erfindungsgemäßen Verfahren, das jedoch nicht in den Figuren dargestellt ist, werden zunächst sämtliche vorhandene Speicherbereiche des Programmspeichers mit den vorgebbaren Informationen gefüllt. Anschließend wird nur der aus dem Lokator gewonnene Programmcode des Computerprogramms in die entsprechenden Speicherbereiche darüber geschrieben. Dieses Verfahren hat den Vorteil, dass dann über alle Bereiche eine Checksumme gebildet werden kann.
  • In 2 ist ein erfindungsgemäßes Steuergerät gemäß einer bevorzugten Ausführungsform in seiner Gesamtheit mit dem Bezugszeichen 10 bezeichnet. Das Steuergerät 10 dient bspw. zur Steuerung und/oder Regelung bestimmter Funktionalitäten in einem Kraftfahrzeug. Das Steuergerät 10 umfasst einen CPU (Central Processing Unit)-Baustein 30 und einen separaten IC (Integrated Circuit)-Baustein 31, auf dem ein externer Flash-Speicher 20 angeordnet ist. Der CPU-Baustein 30 umfasst ein Rechengerät 11, das bspw. als ein Mikroprozessor oder als eine CPU ausgebildet ist. Das Rechengerät 11 steht über eine erste Datenverbindung 12 mit einem schnellen Arbeitspeicher 13 in Verbindung, der als ein statisches oder dynamisches RAM (Random-Access-Memory) ausgebildet ist. Über eine zweite Datenverbindung 14 steht das Rechengerät 11 mit einem internen Flash-Speicher 15 und einem ROM (Read-Only-Memory) 16 in Verbindung. Das ROM 16 ist ein Festwertspeicher, in dem bspw. das sogenannte BIOS (Basic Input Output System) abgelegt ist.
  • Über eine dritte Datenverbindung 17 und einen Kommunikationskontroller 18 steht das Rechengerät 11 mit einem Datenbus 19 in Verbindung. An den Datenbus 19 ist bspw. der externe Flash-Speicher 20 angeschlossen, so dass das Rechengerät 11 über den Datenbus 19 auf den externen Flash-Speicher 20 zugreifen kann. Der interne Flash-Speicher 15 und der externe Flash-Speicher 20 bilden den Programmspeicher, in dem das Computerprogramm 21 in bestimmten Speicherbereichen und in den übrigen ungenutzten Speicherbereichen die vorgebbaren Informationen 22 abgelegt sind. Über eine vierte Datenverbindung 23 ist das Rechengerät 11 mit einer Schnittstelle 24 verbunden, über die eine Vorrichtung 25 zum Ablegen des Computerprogramms 21 und der vorgebbaren Informationen 22 in den dafür vorgesehenen Speicherbereichen des Programmspeichers angeschlossen werden kann.
  • Anhand des internen Flash-Speichers 15 wird der Stand der Technik beschrieben, bei dem während der Ausführung des Computerprogramms 21 (Pfeil 26) fälschlicherweise in den nachfolgenden ungenutzten Speicherbereich des Flash-Speichers 15 gesprungen wird (Pfeil 27). Das Rechengerät 11 liest Programmbefehle aus den ungenutzten Speicherbereich ein und führt diese aus (Pfeil 28). Da es sich bei den aus dem ungenutzten Speicherbereich eingelesenen Programmbefehlen um vorgebbare Informationen handelt, durch welche das Steuergerät 10 in einen definierten Zustand überführt wird, besteht bei der vorliegenden Erfindung keine Gefahr, dass das Computerprogramm 21 in eine unkontrollierte Endlosschleife oder das Steuergerät 10 in einen undefinierten und damit irregulären Zustand gelangt. Der definierte Zustand des Steuergerätes 10 kann bspw. durch ein Software-Reset erzielt werden. Dazu springt das Rechengerät 11 durch die Abarbeitung der Programmbefehle (Pfeil 28) veranlasst an eine bestimmte RESET-Adresse (Pfeil 29) eines Speicherbereichs des Programmspeichers 15, 20, in dem das Computerprogramm 21 abgelegt ist. Danach läuft das Computerprogramm 21 wieder hoch und die Abarbeitung des Computerprogramms 21 beginnt wieder von vorne.
  • Der definierte Zustand des Steuergeräts 10 kann aber auch durch die Abarbeitung einer Interrupt-Service-Routine oder einer Fehlerbehandlungs-Routine erzielt werden. Dazu springt das Rechengerät 11 durch die Abarbeitung der Programmbefehle (Pfeil 28) veranlasst an eine bestimmte Speicher-Adresse eines Speicherbereichs des Programmspeichers 15, 20, in dem das Computerprogramm 21 abgelegt ist. Diese Speicher-Adresse entspricht dem Anfang der Interrupt-Service-Routine oder der Fehlerbehandlungs-Routine. Nach Abarbeitung der Interrupt-Service-Routine oder der Fehlerbehandlungs-Routine kann das Rechengerät 11 an die RESET-Adresse springen, um das Steuergerät 10 zurückzusetzen.
  • Die in den ungenutzten Speicherbereichen abgelegten vorgebbaren Informationen sind bspw. als ein Programmcode in einem Hexadezimal-Format, sogenannter Hexadezimal-Code, ausgebildet. Zum Auffüllen der ungenutzten Speicherbereiche des Programmspeichers 15, 20 kann die Vorrichtung 25 bspw. einen Hexadezimal-Editor umfassen. Der für die vorgebbaren Informationen verwendete Hexadezimal-Code sollte eine der folgenden Möglichkeiten erfüllen:
    • – den gesamten ungenutzten Speicherbereich mit mindestens einem Programmbefehl auffüllen, der gezielt ein Zurücksetzen des Steuergerätes 10 (sogenannter Reset) auslöst. Bei einem Microcontroller vom Typ 80C166 der Firma Siemens entspricht dies bspw. einem Befehl SRST oder Illegal Opcode.
    • – den gesamten ungenutzten Speicherbereich mit mindestens einem Programmbefehl füllen, durch den in eine Interrupt-Service-Routine gesprungen wird.
    • – den gesamten ungenutzten Speicherbereich mit mindestens einem Programmbefehl füllen, durch den in eine spezielle Fehlerbehandlungs-Routine gesprungen wird.
    • – nur am Ende eines ungenutzten Speicherbereichs und ggf. zusätzlich in regelmäßigen Abständen, z.B. alle 512 Byte, innerhalb des ungenutzten Speicherbereiches mindestens einen Programmbefehl entsprechend den obigen drei Möglichkeiten implementieren. Das setzt allerdings voraus, dass die sonstigen Programmbefehle in dem ungenutzten Speicherbereich keine Sprünge und keine Endlosschleifen bewirken.
  • Am Ende der Interrupt-Service-Routine und am Ende der Fehlerbehandlungs-Routine sollte das Steuergerät bspw. per Software zurückgesetzt werden. Der Software-Reset hat ein erneutes Hochfahren des Steuergerätes 10 zur Folge. Sowohl bei der Interrupt-Service-Routine als auch bei der Fehlerbehandlungs-Routine können bspw. Vergangenheitsinformationen über den genauen Ort des Auftretens und die Vergangenheit festgehalten werden, z.B. Rücksprungadresse. Aus diesen Informationen können Rückschlüsse bspw. auf die Häufigkeit des Auftretens eines Fehlers, gemacht werden.

Claims (11)

  1. Verfahren zum Ablegen eines Computerprogramms (21) in einen Programmspeicher (15, 20) eines Steuergeräts (10), wobei das Computerprogramm (21) nach vorgebbaren Regeln in bestimmten Speicherbereichen des Programmspeichers (15, 20) abgelegt wird, wobei in ungenutzten Speicherbereichen des Programmspeichers (15, 20), in denen das Computerprogramm (21) nicht abgelegt wird, ein in einem Rechengerät (11) des Steuergeräts (10) nicht vorhandener Befehlscode, ein sogenannter Illegal Opcode, zum gezielten Auslösen eines Reset abgelegt wird, wobei der Reset durch Abarbeiten des Illegal Opcodes auf dem Rechengerät (11) sofort und nicht erst nach einer speziellen Fehlerbehandlung ausgelöst wird, und nach dem Reset des Steuergeräts (10) sofort wieder mit der normalen Funktionalität des Steuergeräts (10) fortgefahren wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Illegal Opcode in allen ungenutzten Speicherbereichen des Programmspeichers (15, 20) abgelegt wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass wenigstens ein ungenutzter Speicherbereich des Programmspeichers (15, 20) mit dem Illegal Opcode vollständig aufgefüllt wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der Illegal Opcode in vorgebbaren Abständen in wenigstens einem ungenutzten Speicherbereich des Programmspeichers (15, 20) abgelegt wird.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass der Illegal Opcode in regelmäßigen Abständen in dem wenigstens einen ungenutzten Speicherbereich des Programmspeichers (15, 20) abgelegt wird.
  6. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der Illegal Opcode am Ende wenigstens eines ungenutzten Speicherbereichs des Programmspeichers (15, 20) abgelegt wird.
  7. Vorrichtung (25) zum Ablegen eines Computerprogramms (21) in einem Programmspeicher (15, 20) eines Steuergeräts (10), wobei die Vorrichtung (25) erste Mittel zum Ablegen des Computerprogramms (21) nach vorgebbaren Regeln in bestimmten Speicherbereichen des Programmspeichers (15, 20) aufweist, wobei die Vorrichtung (25) zweite Mittel zum Ablegen eines in einem Rechengerät (11) des Steuergeräts (10) nicht vorhandenen Befehlscodes, eines sogenannten Illegal Opcodes, zum gezielten Auslösen eines Reset, in ungenutzten Speicherbereichen des Programmspeichers (15, 20) aufweist, in denen die ersten Mittel das Computerprogramm (21) nicht abgelegt haben, wobei der Illegal Opcode derart ausgestaltet ist, dass ein Abarbeiten des Illegal Opcodes auf dem Rechengerät (11) sofort und nicht erst nach einer speziellen Fehlerbehandlung einen Reset des Steuergeräts (10) auslöst, und nach dem Reset des Steuergeräts (10) sofort wieder mit der normalen Funktionalität des Steuergeräts (10) fortgefahren wird.
  8. Vorrichtung (25) nach Anspruch 7, dadurch gekennzeichnet, dass die zweiten Mittel als ein Hexadezimal-Editor ausgebildet sind.
  9. Vorrichtung (25) nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass die Vorrichtung (25) Mittel zur Ausführung eines Verfahrens nach einem der Ansprüche 2 bis 6 aufweist.
  10. Steuergerät (10) mit einem Rechengerät (11), insbesondere einem Mikroprozessor, und einem Programmspeicher (15, 20), auf dem ein Computerprogramm (21) nach vorgebbaren Regeln in bestimmten Speicherbereichen des Programmspeichers (15, 20) abgelegt ist, wobei in ungenutzten Speicherbereichen des Programmspeichers (15, 20), in denen das Computerprogramm (21) nicht abgelegt ist, ein in dem Rechengerät (11) des Steuergeräts (10) nicht vorhandener Befehlscode, ein sogenannter Illegal Opcode, zum gezielten Auslösen eines Reset abgelegt ist, wobei der Illegal Opcode derart ausgestaltet ist, dass ein Abarbeiten des Illegal Opcodes auf dem Rechengerät (11) sofort und nicht erst nach einer speziellen Fehlerbehandlung einen Reset des Steuergeräts (10) auslöst, und nach dem Reset des Steuergeräts (10) sofort wieder mit der normalen Funktionalität des Steuergeräts (10) fortgefahren wird.
  11. Steuergerät (10) nach Anspruch 10, dadurch gekennzeichnet, dass der Illegal Opcode nach einem Verfahren nach einem der Ansprüche 2 bis 6 in den ungenutzten Speicherbereichen des Programmspeichers (15, 20) abgelegt ist.
DE10229817A 2002-06-28 2002-06-28 Verfahren und Vorrichtung zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts Expired - Fee Related DE10229817B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10229817A DE10229817B4 (de) 2002-06-28 2002-06-28 Verfahren und Vorrichtung zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts
US10/608,759 US7246206B2 (en) 2002-06-28 2003-06-27 Method and device for storing a computer program in a program memory of a control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10229817A DE10229817B4 (de) 2002-06-28 2002-06-28 Verfahren und Vorrichtung zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts

Publications (2)

Publication Number Publication Date
DE10229817A1 DE10229817A1 (de) 2004-01-22
DE10229817B4 true DE10229817B4 (de) 2007-05-24

Family

ID=29761587

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10229817A Expired - Fee Related DE10229817B4 (de) 2002-06-28 2002-06-28 Verfahren und Vorrichtung zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts

Country Status (2)

Country Link
US (1) US7246206B2 (de)
DE (1) DE10229817B4 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI226997B (en) * 2003-07-01 2005-01-21 Benq Corp System and method preventing exceptional execution of central processing unit and the computer readable storage medium
US8140485B2 (en) * 2008-07-31 2012-03-20 International Business Machines Corporation Data recovery using a minimum number of recovery streams
US11537401B2 (en) 2021-02-10 2022-12-27 Microchip Technology Incorporated Trap sub-portions of computer-readable instructions and related systems, methods, and apparatuses

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4351050A (en) * 1979-03-23 1982-09-21 Nissan Motor Company, Limited Fail-safe control computer
DE3606699A1 (de) * 1986-03-01 1987-09-03 Ant Nachrichtentech Prozessor-system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3606699A (en) * 1969-09-16 1971-09-21 John J Robinson Jr Gate control drive unit
US4525780A (en) * 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4410991A (en) * 1981-06-03 1983-10-18 Gte Laboratories Incorporated Supervisory control apparatus
JPS63155236A (ja) 1986-12-18 1988-06-28 Fuji Electric Co Ltd ソフトウエアの暴走検知方法
IT1246467B (it) * 1990-10-22 1994-11-19 St Microelectronics Srl Macchina a stati finiti per sistemi affidabili di computazione e regolazione
US5446904A (en) * 1991-05-17 1995-08-29 Zenith Data Systems Corporation Suspend/resume capability for a protected mode microprocessor
DE19847986C2 (de) * 1998-10-17 2000-10-26 Daimler Chrysler Ag Einzelprozessorsystem
DE10018859A1 (de) 2000-04-14 2001-10-18 Bosch Gmbh Robert System und Verfahren zur Überwachung einer Einrichtung zum Messen, Steuern und Regeln
DE10036278A1 (de) * 2000-07-26 2002-02-07 Bosch Gmbh Robert Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
DE10124742C1 (de) * 2001-05-21 2003-01-23 Infineon Technologies Ag Verfahren und Einrichtung zum Testen einer Speicherschaltung
DE10135285B4 (de) * 2001-07-19 2005-08-04 Infineon Technologies Ag Speichereinrichtung und Verfahren zum Betreiben eines eine Speichereinrichtung enthaltenden Systems
US6938183B2 (en) * 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
US6898697B1 (en) * 2002-03-29 2005-05-24 Advanced Micro Devices, Inc. Efficient method for mode change detection and synchronization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4351050A (en) * 1979-03-23 1982-09-21 Nissan Motor Company, Limited Fail-safe control computer
DE3606699A1 (de) * 1986-03-01 1987-09-03 Ant Nachrichtentech Prozessor-system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BIGNELL,James, DONOVAN,Robert: Z80 Microprocessor Technology: Hardware, Software and Interfacing. Albany, [u.a.]: Delmar Publishers, 1986, S.21-22, 124-135, ISBN: 0-8273-2492-8 *
JP 63155236 A (abstract) *

Also Published As

Publication number Publication date
US7246206B2 (en) 2007-07-17
DE10229817A1 (de) 2004-01-22
US20040153768A1 (en) 2004-08-05

Similar Documents

Publication Publication Date Title
DE102007045398A1 (de) Integriertes Mikroprozessorsystem für sicherheitskritische Regelungen
WO2006015945A2 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
WO2006032617A1 (de) Verfahren zur abarbeitung eines computerprogramms auf einem computersystem
EP1810139B1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE102005040916A1 (de) Speicheranordnung und Betriebsverfahren dafür
DE10229817B4 (de) Verfahren und Vorrichtung zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts
DE102005016801B4 (de) Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher
EP1812853B1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE102008004206A1 (de) Anordnung und Verfahren zur Fehlererkennung und -behandlung in einem Steuergerät in einem Kraftfahrzeug
DE102005060714B4 (de) Datenverarbeitungsvorrichtung, Speicherkarte, Verfahren zum Betreiben einer Datenverarbeitungsvorrichtung und Herstellungsverfahren für eine Datenverarbeitungsvorrichtung
DE102016116221A1 (de) Verfahren und Einrichtung zur Überwachung der Ausführung eines Programmcodes
DE10349200A1 (de) System und Verfahren zur Überwachung und Verwaltung prozessinterner Speicher einer Prozessausführungseinheit
DE10252347A1 (de) Überwachte Unterprogrammausführung
DE10135285B4 (de) Speichereinrichtung und Verfahren zum Betreiben eines eine Speichereinrichtung enthaltenden Systems
DE102009000874A1 (de) Verfahren zur Verbesserung der Analysierbarkeit von Softwarefehlern in einem Mikrocontroller
DE10110050A1 (de) Verfahren zur Absicherung sicherheitskritischer Programmteile vor versehentlicher Ausführung und eine Speichereinrichtung zur Durchführung dieses Verfahrens
EP3659032A1 (de) Verfahren zum betreiben eines steuergerätes und vorrichtung mit zugehörigem steuergerät
EP1774417B1 (de) Verfahren und vorrichtung zum überwachen des ablaufs eines steuerprogramms auf einem rechengerät
EP2338111A1 (de) Verfahren und vorrichtung zum testen eines rechnerkerns in einer mindestens zwei rechnerkerne aufweisenden recheneinheit
DE10148157B4 (de) Programmgesteuerte Einheit
WO2023232401A1 (de) Verfahren für einen betrieb eines steuergeräts eines fahrzeuges
DE102022113739A1 (de) Vorrichtung zum steuern einer ausfallbewältigung in einem autonomes-fahren-system und verfahren dafür
DE102009005449B4 (de) Prozessor, der zur Überwachung des Kontrollflusses Befehlen zugeordnete Eigen- und Folgekennungen auswertet
WO2004001586A1 (de) Vorrichtung und verfahren zum verarbeiten einer sequenz von sprungbefehlen
DE102008029231B4 (de) Prozessor mit Ansprungbefehlen zur Überwachung des Kontrollflusses

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R084 Declaration of willingness to licence
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee