DE10036278A1 - Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik - Google Patents

Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik

Info

Publication number
DE10036278A1
DE10036278A1 DE10036278A DE10036278A DE10036278A1 DE 10036278 A1 DE10036278 A1 DE 10036278A1 DE 10036278 A DE10036278 A DE 10036278A DE 10036278 A DE10036278 A DE 10036278A DE 10036278 A1 DE10036278 A1 DE 10036278A1
Authority
DE
Germany
Prior art keywords
program
microcontroller
debug logic
during
microprocessor
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.)
Ceased
Application number
DE10036278A
Other languages
English (en)
Inventor
Michael Beuten
Martin Thomas
Klaus Schneider
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 DE10036278A priority Critical patent/DE10036278A1/de
Priority to US09/910,206 priority patent/US7712084B2/en
Publication of DE10036278A1 publication Critical patent/DE10036278A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Abstract

Die Erfindung betrifft ein Verfahren zur Überwachung des Ablaufs eines auf mindestens einem Mikroprozessor (3) eines Mikrocontrollers (1) ablauffähigen Programms mittels einer Debug Logik (6) des Mikrocontrollers (1), wobei von der Debug Logik (6) beim Zugriff auf einen bestimmten Adressbereich (10) während der Programmlaufzeit eine Ausnahmebedingung (Exception), insbesondere eine Unterbrechung (Interrupt) des Programmablaufs, ausgelöst wird. Um eine besonders zuverlässige aber dennoch möglichst resourcenschonende Überwachung des Ablaufs eines auf einem Mikroprozessor (3) ablauffähigen Programms aus Fehlerzustände zu schaffen, wird vorgeschlagen, dass die Debug Logik (6) von dem Mikroprozessor (3) konfiguriert wird und von der Debug Logik (6) nach dem Auslösen einer Ausnahmebedingung während der Programmlaufzeit eine Ausnahmebedingungs-Routine (Exception-Routine) durchlaufen wird. Vorteilhafterweise wird die Debug Logik (6) während des Hochverfahrens des Mikrocontrollers (1) konfiguriert. DOLLAR A Während des Durchlaufs der Exception-Routine wird vorzugsweise der Mikrocontroller (1) rückgesetzt und erneut hochgefahren und das überwachte Programm initialisiert.

Description

Die vorliegende Erfindung betrifft ein Verfahren zur Überwachung des Ablaufs eines auf mindestens einem Mikroprozessor eines Mikrocontrollers ablauffähigen Programms mittels einer Debug Logik des Mikrocontrollers, wobei von der Debug Logik beim Zugriff auf einen bestimmten Adressbereich während der Programmlaufzeit eine Ausnahmebedingung (Exception), insbesondere eine Unterbrechung (Interrupt) des Programmablaufs, ausgelöst wird.
Die Erfindung betrifft außerdem ein Steuerelement, insbesondere ein Read-Only-Memory oder ein Flash-Memory, für einen Mikrocontroller insbesondere eines Steuergeräts eines Kraftfahrzeugs, wobei auf dem Steuerelement ein Programm abgespeichert ist, das auf mindestens einem Mikroprozessor des Mikrocontrollers ablauffähig und dazu geeignet ist, beim Hochfahren des Mikrocontrollers eine Debug Logik des Mikrocontrollers zu veranlassen, den Ablauf eines weiteren auf dem mindestens einen Mikroprozessor des Mikrocontrollers ablauffähigen Programms während der Programmlaufzeit zu überwachen, beim Zugriff auf einen bestimmten Adressbereich eine Ausnahmebedingung (Exception), insbesondere eine Unterbrechung (Interrupt) des Programmablaufs, auszulösen und danach eine Ausnahmebedingungs-Routine (Exception-Routine) zu durchlaufen.
Schließlich betrifft die vorliegende Erfindung einen Mikrocontroller mit mindestens einem Mikroprozessor und einer Debug Logik, wobei auf dem mindestens einen Mikroprozessor ein Programm ablauffähig ist, die Debug Logik während der Programmlaufzeit den Ablauf des Programms überwacht und beim Zugriff auf einen bestimmten Adressbereich eine Ausnahmebedingung (Exception), insbesondere eine Unterbrechung (Interrupt) des Programmablaufs, auslöst.
Stand der Technik
Aus dem Stand der Technik sind Mikrocontroller bekannt, die mindestens einen Mikroprozessor (Rechnerkern), einen Analog/Digital (A/D)-Wandler, einen Digital/Analog (D/A)- Wandler, einen Datenbus, einen Adressbus, einen Controlbus, interne Steuerelemente (z. B. ein Read-Only-Memory oder ein Flash-Memory) und/oder weitere Bauelemente umfassen. Ein derartiger Mikrocontroller ist bspw. Teil eines Steuergerätes für ein Kraftfahrzeug. Das Steuergerät dient zur Steuerung/Regelung von technischen Vorgängen oder Prozessen in dem Kraftfahrzeug, z. B. der Brennkraftmaschine, des Getriebes, der Lenkung, des Fahrwerks, etc. In einem internen oder externen Steuerelement des Mikrocontrollers ist ein Steuerprogramm zur Ausführung der Steuerung/Regelung abgespeichert. Das Steuerprogramm ist auf mindestens einem der Mikroprozessoren ablauffähig.
Komplexere Mikrocontroller neuerer Bauart umfassen als weiteres Bauelement eine sog. Debug Logik. Die Debug Logik wird während der Entwicklung des auf dem mindestens einen Mikroprozessor des Mikrocontrollers ablauffähigen Programms eingesetzt und dient zur Verbesserung der Sichtbarkeit der Abläufe in dem Mikrocontroller. Mit Hilfe der Debug Logik können Fehler in dem Programm erkannt, lokalisiert und aus dem Programm entfernt werden. Die Debug Logik ist an einen Datenbus, einen Adressbus und/oder einen Controlbus des Mikrocontrollers angeschlossen. Dem Adressbus kann die Debug Logik entnehmen, auf welchen ausgewählten Adressbereich zugegriffen wird, dem Datenbus, welche Daten in den ausgewählten Adressbereich geschrieben werden sollen bzw. aus dem ausgewählten Adressbereich gelesen wurden, und dem Controlbus, ob auf den ausgewählten Adressbereich schreibend oder lesend zugegriffen werden soll.
Die Debug Logik weist darüber hinaus eine Debug- Schnittstelle auf, an die ein sog. Debugger angeschlossen werden kann. Der Debugger ist üblicherweise als ein herkömmlicher Personal Computer (PC) ausgebildet, auf dem ein Debug-Programm abläuft. Mithilfe des Debuggers kann der Programmablauf auf dem Mikroprozessor gesteuert und dabei der Zustand des Programms und des Mikrocontrollers überwacht werden. Nach Abschluss der Entwicklung des Programms wird die Debug Logik nicht mehr benötigt. Da sie jedoch Teil des Mikrocontrollers ist, wird sie während des bestimmungsgemäßen Einsatzes des Mikrocontrollers während der Programmlaufzeit zwangsläufig mitgeführt, obwohl sie eigentlich keine Aufgabe hat.
Über eine event-Leitung steht die Debug Logik mit dem Mikroprozessor in Verbindung. Die Debug Logik kann in der Regel eine Ausnahmebedingung, eine sog. Exception, bspw. eine Unterbrechung, einen sog. Interrupt, auslösen. Als Interrupt wird ein Signal bezeichnet, das von einer Ein-/Ausgabeeinheit an den Mikroprozessor gesendet wird, wenn ein Fehler aufgetreten ist oder ein Eingriff erforderlich ist, um die Ein-/Ausgabe abzuschließen. Ein Interrupt bewirkt normalerweise, dass die Ausführung des aktuellen Programms ausgesetzt und eine Interrupt-Routine ausgeführt wird.
Aus der US 5,809,293 ist es bekannt, während der Entwicklung eines auf einem Mikroprozessor eines Mikrocontrollers ablauffähigen Programms ein sog. Trace Tool einzusetzen, das die Abläufe in dem Mikrocontroller, insbesondere in dem Mikroprozessor verfolgt und aufzeichnet. Das Sichtbarmachen der Abläufe mit dem Trace Tool stößt jedoch an seine Grenzen, wenn bspw. zwischen dem Trace Tool und dem Mikroprozessor ein Zwischenspeicher (Cache) angeordnet ist, in den während der Programmlaufzeit Werte zwischengespeichert und bei Bedarf ausgelesen werden. Da das Trace Tool in einem solchen Fall nicht unmittelbar auf den Mikroprozessor, sondern nur auf die zwischengespeicherten Werte Zugriff hat, weiß es nicht, welche Befehle von dem Mikroprozessor wann ausgeführt werden. Die US 5,809,293 schlägt vor, in einem solchen Fall eine Debug Logik zur Unterstützung des Trace Tools und zur Verbesserung der Sichtbarkeit der Abläufe in dem Mikrocontroller einzusetzen.
Aus der US 5,680,620 ist ein Mikrocontroller mit einer Debug Logik bekannt, die verwendet wird, um eine Umadressierung, ein sog. Remapping, von Dateneingängen bzw. Datenausgängen, sog. Input/Output (I/O)-Ports, auszuführen. Dies kann bspw. notwendig sein, wenn ein altes Programm auf einer neuen Hardware-Umgebung abläuft, in der bestimmte I/O-Ports nicht mehr vorhanden sind. Auf die Adressen der nicht mehr vorhandenen I/O-Ports wird ein Unterbrechungspunkt, ein sog. Breakpoint, gesetzt. Die Debug Logik überwacht den Programmablauf während der Programmlaufzeit. Wenn versucht wird, auf eine solche Adresse zuzugreifen, wird eine Exception ausgelöst und eine Exception-Routine ausgeführt. Im Rahmen der Exception- Routine wird die Adresse des nicht vorhandenen I/O-Ports auf der Andresse eines in der neuen Hardware-Umgebung vorhandenen I/O-Ports umadressiert.
Dieses aus der US 5,680,620 bekannte Verfahren kann auch angewandt werden, um ein altes Programm in einer neuen Betriebssystem-Umgebung ausführen zu können. Wenn bspw. das neue Betriebssystem anders als das alte den Zugriff auf ein I/O-Port aus mehreren Anwendungen heraus zulässt, dürfen die Zugriffe aus einer Anwendung nicht - wie unter der alten Betriebssystem-Umgebung üblich - direkt auf den I/O- Port erfolgen, sondern müssen über das Betriebssystem geleitet und von diesem koordiniert werden. In diesem Fall löst jeder Zugriff auf einen I/O-Port eine Exception aus, durch die der Zugriff zur Koordination an das Betriebssystem weitergeleitet wird.
Bei dem aus dem Stand der Technik bekannten Verfahren werden nur zulässige Zugriffe auf die I/O-Ports behandelt. Im Rahmen des bekannten Verfahrens findet keine Überprüfung der Befehle bzw. des Programms auf mögliche Fehlerzustände statt. Bei dem bekannten Verfahren handelt es sich also um eine reine Betriebssystemerweiterung.
Aus dem Stand der Technik ist es des weiteren bekannt, zur Überwachung eines Stacks eines Mikrocontrollers während des Hochfahrens des Mikrocontrollers in einen Speicherbereich am Rande des Stacks ein Muster zu schreiben und während der Programmlaufzeit von Zeit zu Zeit zu prüfen, ob dieses Muster verändert wird oder nicht. Eine Veränderung des Musters deutet auf einen Stacküberlauf oder Stackunterlauf hin. Eine derartige Überwachung eines Speicherbereichs hat jedoch den Nachteil, dass sie relativ Resourcenintensiv ist, insbesondere kostet sie Rechenleistung des Mikroprozessors und Programmspeicher. Außerdem ist es bei modernen Mikrocontrollern zur Überwachung eines Stacks nicht mehr ausreichend, eine Veränderung eines Musters in einem begrenzten Speicherbereich am Rande des Stacks zu überwachen, da beim Aufbau eines Stackframes auch ein Sprung über mehrere Adressen stattfinden kann, ohne dass die Adressen in dem Zwischenraum verändert werden. Aus diesem Grund muss der zu überwachende Speicherbereich am Rande des Stacks immer größer gewählt werden, wodurch die Resourcen des Mikrocontrollers stark belastet werden und die Rechenzeit ansteigt. Außerdem erkennt das bekannte Verfahren einen Stacküberlauf bzw. einen Stackunterlauf erst, wenn bereits auf Speicherbereiche außerhalb des vorgesehenen Stackbereichs zugegriffen worden ist. Dadurch besteht die Gefahr, dass das auf dem Mikroprozessor ablauffähige Programm in einen undefinierten Zustand gerät noch bevor das Überschreiten oder Unterschreiten des vorgesehenen Stackbereichs detektiert wird und entsprechende Gegenmassnahmen eingeleitet werden können.
Die Aufgabe der vorliegenden Erfindung besteht darin, eine besonders zuverlässige aber dennoch möglichst resourcenschonende Überwachung des Ablaufs eines auf einem Mikroprozessor ablauffähigen Programms auf Fehlerzustände zu schaffen.
Zur Lösung der Aufgabe schlägt die Erfindung ausgehend von dem Verfahren der eingangs genannten Art vor, dass die Debug Logik von dem Mikroprozessor konfiguriert wird und von der Debug Logik nach dem Auslösen einer Ausnahmebedingung während der Programmlaufzeit eine Ausnahmebedingungs-Routine (Exception-Routine) durchlaufen wird.
Vorteile der Erfindung
Gemäß der vorliegenden Erfindung wird eine Debug Logik, die während der Programmlaufzeit in der Regel ohne eine Aufgabe ist, zur Überwachung des Programms auf Fehlerzustände herangezogen. Die von der Debug Logik zu detektierenden Fehlerzustände können unterschiedlicher Art sein. Insbesondere ist an die Überwachung von bestimmten Speicherbereichen gedacht, um einen unerlaubten Zugriff auf diese Speicherbereiche zu verhindern. Es ist denkbar, dass das Programm aufgrund von Programmierungs- oder Hardwarefehlern während der Programmlaufzeit auf physisch nicht vorhandene oder auf Speicherbereiche zugreifen möchte, die außerhalb eines vorgesehenen Speicherbereichs liegen. Ein solcher unerlaubter Zugriff kann das Programm in einen undefinierten Zustand und zu unvorhersehbaren Aktionen des Steuergeräts führen.
Der Einsatz der Debug Logik zur Fehleranalyse eines Programms während der Programmlaufzeit hat den Vorteil, dass die Debug Logik eine zuverlässige Überwachung des Programmablaufs ermöglicht. Außerdem handelt es sich um eine besonders resourcenschonende Überwachung des Programmablaufs, da die Debug Logik weder Rechenleistung des Mikroprozessors noch Programmspeicher beansprucht.
Mit dem erfindungsgemäßen Verfahren kann die Sicherheit eines Mikrocontrollers auf verschiedene Weise erhöht werden. Zunächst ist eine höhere Rechenbelastung des Mikroprozessors möglich. Außerdem ist eine zuverlässige Funktion der Fehleranalyse unabhängig von der Rechenbelastung des Mikroprozessors gegeben. Schließlich ist die Implementierung der Fehleranalyse unabhängig von der verwendeten Speicherrealisierung. Bei einem Stack ist es bspw. unerheblich, wie ein Stackframe angelegt wird. Selbst ein Sprung über mehrere Speicheradressen beim Aufbau des Stackframes führt nicht zum Verlust der Überwachungssicherheit.
Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass die Debug Logik während des Hochfahrens des Mikrocontrollers konfiguriert wird.
Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass der Mikrocontroller während des Durchlaufs der Exception-Routine rückgesetzt und erneut hochgefahren und das überwachte Programm initialisiert, wird.
Um zu verhindern, dass das Programm aufgrund des aufgetretenen Fehlerzustandes in einen undefinierten Zustand gerät und das Steuergerät unvorhersehbare Aktionen ausführt, wird der Mikrocontroller nach dem Auslösen der Ausnahmebedingung sicherheitshalber rückgesetzt und neu hochgefahren und das Programm initialisiert. Nach dem Hochfahren des Mikrocontrollers und dem Initialisieren des Programms befindet sich dieses in einem definierten Ausgangszustand.
Gemäß einer anderen bevorzugten Ausführungsform der Erfindung wird vorgeschlagen, dass vor dem Rücksetzen und dem erneuten Hochfahren des Mikrocontrollers und vor der Initialisierung des Programms zumindest die Art des Fehlerszustandes in einem Fehlerspeicher abgelegt wird. Der Inhalt des Fehlerspeichers kann von Zeit zu Zeit, bspw. bei einem Werkstattaufenthalt des Kraftfahrzeugs, ausgelesen und analysiert werden. Aus dem Fehlerspeicher lassen sich wichtige Informationen über die Zuverlässigkeit des Programms und damit auch über die Sicherheit des Steuergeräts entnehmen. Vorteilhafterweise wird vor dem Rücksetzen und dem erneuten Hochfahren des Mikrocontrollers und vor der Initialisierung des Programms auch die Speicheradresse, auf die vor Auftreten des Fehlerzustandes zugegriffen wurde, in dem Fehlerspeicher abgelegt.
Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass von der Debug Logik überwacht wird, ob das Programm während der Programmlaufzeit auf einen vorgebbaren Adressbereich eines Speichers zugreift. Die Debug Logik steht mit einem Adressbus, einem Datenbus und/oder einem Controlbus in Verbindung. Dem Adressbus kann die Debug Logik entnehmen, auf welchen Adressbereich zugegriffen wird, dem Datenbus, welche Daten in einen bestimmten Adressbereich geschrieben bzw. aus einem bestimmten Adressbereich gelesen wurden, und dem Controlbus, ob auf einen bestimmten Adressbereich schreibend oder lesend zugegriffen wird. Der Adressbereich kann bspw. einem bestimmten Speicherbereich zugeordnet sein.
Gemäß einer bevorzugten Ausführungsform der Erfindung wird vorgeschlagen, dass von der Debug Logik überwacht wird, ob das Programm während der Programmlaufzeit auf einen Adressbereich eines Stacks des Mikrocontrollers jenseits einer vorgebbaren maximalen Stackgröße zugreift. Jenseits der maximalen Stackgröße wird ein illegaler Speicherbereich, eine sog. Breakregion, definiert, auf den ein Unterbrechungspunkt, ein sog. Breakpoint gesetzt wird. Wenn ein Stackpointer während der Programmlaufzeit auf diesen illegalen Speicherbereich zeigt, falls also versucht wird, auf den illegalen Speicherbereich zuzugreifen, wird eine Ausnahmebedingung, eine sog. Exception, ausgelöst.
Der Stack ist der einzige Speicherbereich, dessen Größe nicht genau festgelegt ist und sich während der Programmlaufzeit ändern kann. Zur Einsparung von Speicherplatz wird der maximale Stackbereich so klein wie möglich gewählt. Andererseits muss er jedoch ausreichend groß gewählt werden, um auch im worst case sicherzustellen, dass der Stackpointer stets auf eine Adresse innerhalb des maximalen Speicherbereichs zeigt. In bestimmten Betriebsituationen des Mikrocontrollers kann es dazu kommen, dass so weit gefüllt ist, dass der Stackpointer auf den illegalen Speicherbereich zeigt. Diese Situationen können mit dem erfindungsgemäßen Verfahren besonders zuverlässig und gleichzeitig resourcenschonend detektiert werden.
Gemäß einer alternativen Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass von der Debug Logik überwacht wird, ob während der Programmlaufzeit versucht wird, eine aus einem Flash-Speicher des Mikrocontrollers in einen Random-Access-Speicher des Mikrocontrollers ausgelagerte Code-Sequenz des Programms in dem Flash- Speicher zur Ausführung zu bringen. Ein Update eines Flash- Speichers während der Programmlaufzeit wird in der Regel über einen Contoller Area Network (CAN)-Bus oder eine Diagnoseschnittstelle ausgeführt, da diese bei einem geschlossenen Steuergerät üblicherweise die einzigen von außen frei zugänglichen Schnittstellen sind. Diese Schnittstellen werden von bestimmten Codesequenzen eines Programms gesteuert. Der Update des Flash-Speichers kann deshalb nur während der Ausführung dieser Codesequenzen ausgeführt werden. Aus diesem Grund ist es notwendig während des Updates des Flash-Speichers die zur Steuerung der Schnittstellen erforderlichen Codesequenzen des Programms aus dem Flash-Speicher in ein Random-Access- Memory zu übertragen, wo sie ausgeführt werden müssen. Wenn nun während der Programmlaufzeit versucht wird, auf den Flash-Speicher zur Ausführung der Codesequenzen zuzugreifen, deutet dies darauf hin, dass sich ein Programmzeiger versprungen hat. Es besteht die Gefahr, dass das Programm in einen undefinierten Zustand gerät. Aus diesem Grund wird von der Debug Logik eine Exception ausgelöst, falls während der Programmlaufzeit versucht wird, auf den Flash-Speicher zur Ausführung der Codesequenzen zuzugreifen.
Im Rahmen der vorliegenden Erfindung kann von der Debug Logik auch die Auslastung des Mikroprozessors des Mikrocontrollers während der Programmlaufzeit überwacht werden. Dazu wird von der Debug Logik Anfang und Ende einer Idle-Task erfasst und mithilfe eines weiteren Mikroprozessors protokolliert. Der Mikroprozessor führt dann eine Idle-Task aus, wenn er sonst keine Tasks ausführen muss, wenn er also nicht ausgelastet ist. Die Häufigkeit der Ausführung der Idle-Task ist also umgekehrt proprotional der Auslastung des Mikrocontrollers. Die Speicheradressen der Idle-Task sind bekannt. Die Debug Logik kann einen Zugriff auf diese Speicheradressen überwachen und zu Beginn und Ende der Idle-Task eine Exception auslösen. Der weitere Mikroprozessor kann die Event-Leitung überwachen, über die die Debug Logik mit dem Mikroprozessor in Verbindung steht. Der weitere Mikroprozessor detektiert das Auslösen einer Exception und kann dadurch Anfang und Ende der Idle-Task protokollieren. Bei einem Mikrocontroller mit mehreren Mikroprozessoren kann ein erster Prozessor des Mikrocontrollers zur Ausführung des Programms und ein anderer Prozessor des Mikrocontrollers zur Überwachung der Auslastung des ersten Prozessors herangezogen werden.
Von besonderer Bedeutung ist die Realisierung des erfindungsgemäßen Verfahrens in Form eines Steuerelements, das für einen Mikrocontroller insbesondere eines Steuergeräts eines Kraftfahrzeugs vorgesehen ist. Dabei ist auf dem Steuerelement ein Programm abgespeichert, das auf mindestens einem Mikroprozessor eines Mikrocontrollers ablauffähig und zur Ausführung eines erfindungsgemäßen Verfahrens geeignet ist. Insbesondere ist das Steuerelement dazu geeignet, beim Hochfahren des Mikrocontrollers eine Debug Logik des Mikrocontrollers zu veranlassen, den Ablauf eines weiteren auf dem mindestens einen Mikroprozessor des Mikrocontrollers ablauffähigen Programms während der Programmlaufzeit zu überwachen. Durch das Programm wird ein Breakpoint auf einen bestimmten Adressbereich gelegt, so dass bei einem Zugriff auf diesen Adressbereich eine Ausnahmebedingung (Exception), insbesondere eine Unterbrechung (Interrupt) des Programmablaufs, ausgelöst wird. Das Programm umfasst auch eine besondere Ausnahmebedingungs-Routine (Exception-Routine), die im Anschluss an die Ausnahmebedingung durchlaufen wird. Im Rahmen der Ausnahmebedingungs-Routine wird der Mikrocontroller rückgesetzt und erneut hochgefahren und das überwachte Programm initialisiert. Das weitere, zu überwachende Programm ist bspw. als ein Steuerprogramm des Steuergeräts ausgebildet. Als Steuerelement kann insbesondere ein elektrisches Speichermedium zur Anwendung kommen, bspw. ein Read-Only-Memory oder ein Flash-Memory.
Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Mikrocontroller der eingangs genannten Art vorgeschlagen, dass der Mikroprozessor die Debug Logik konfiguriert und der Mikrocontroller Mittel zum Durchlaufen einer Ausnahmebedingungs-Routine (Exception-Routine) nach dem Auslösen einer Ausnahmebedingung während der Programmlaufzeit aufweist.
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird vorgeschlagen, dass der Mikrocontroller weitere Mittel zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 8 aufweist.
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:
Fig. 1 einen erfindungsgemäßen Mikrocontroller gemäß einer ersten bevorzugten Ausführungsform der Erfindung;
Fig. 2 einen erfindungsgemäßen Mikrocontroller gemäß einer zweiten bevorzugten Ausführungsform der Erfindung; und
Fig. 3 ein Ablaufdiagramm des erfindungsgemäßen Verfahrens.
Beschreibung der Ausführungsbeispiele
In Fig. 1 ist ein Mikrocontroller gemäß der vorliegenden Erfindung in seiner Gesamtheit mit dem Bezugszeichen 1 bezeichnet. Der Mikrocontroller 1 ist bspw. Teil eines Steuergerätes 2 für ein Kraftfahrzeug. Das Steuergerät 2 dient zur Steuerung/Regelung von technischen Vorgängen oder Prozessen in dem Kraftfahrzeug, z. B. der Brennkraftmaschine, des Getriebes, der Lenkung, des Fahrwerks, etc. Der Mikrocontroller 1 weist einen Mikroprozessor 3, auf dem ein Steuerprogramm zur Ausführung der Steuerung/Regelung ablauffähig ist. Das Steuerprogramm ist in einem internen Steuerelement 4 und/oder in einem externen Steuerelement 5 abgespeichert. Die Steuerelemente 4, 5 sind vorzugsweise als Speicherelemente ausgebildet. Das interne Steuerelement 4 ist als ein Flash-Speicher und das externe Steuerelement 5 als ein Random-Access-Memory ausgebildet. Das externe Steuerelement 5 ist über ein Bus- Interface 13 an den Datenbus D, den Adressbus A und den Controlbus C angeschlossen. Das Bus-Interface 13 wandelt die Bussignale in den Standard des externen Steuerelements 5 um.
Der Mikrocontroller 1 weist des weiteren eine Debug Logik 6 auf. Die Debug Logik 6 wird nach dem Stand der Technik während der Entwicklung des auf dem Mikroprozessor 3 des Mikrocontrollers 1 ablauffähigen Steuerprogramms eingesetzt und dient zur Verbesserung der Sichtbarkeit der Abläufe in dem Mikrocontroller 1. Mit Hilfe der Debug Logik 6 können Fehler in dem Steuerprogramm erkannt, lokalisiert und aus dem Programm entfernt werden. Der Mikroprozessor 3, das interne Steuerelement 4, das externe Steuerelement 5 und die Debug Logik 6 stehen über einen Datenbus D, einen Adressbus A und/oder einen Controlbus C des Mikrocontrollers 1 untereinander in Verbindung.
Die Debug Logik 6 weist eine von außerhalb des Steuergeräts 2 zugänglich an das Gehäuse des Steuergeräts 2 geführte Debug-Schnittstelle 7 auf, an die ein sog. Debugger 8 angeschlossen werden kann. Der Debugger 8 ist üblicherweise als ein herkömmlicher Personal Computer (PC) ausgebildet, auf dem ein Debug-Programm abläuft. Mithilfe des Debuggers 8 kann der Ablauf des Programms auf dem Mikroprozessor 3 gesteuert und dabei der Zustand des Programms und des Mikrocontrollers 1 überwacht werden.
Über eine event-Leitung 9 steht die Debug Logik 6 mit dem Mikroprozessor 3 in Verbindung. Die Debug Logik 6 kann eine Ausnahmebedingung, eine sog. Exception, bspw. eine Unterbrechung, ein sog. Interrupt, erzeugen und die Exception über die event-Leitung 9 an den Mikroprozessor 3 leiten. Beim Auftreten einer bestimmten Exception wird aus einer Exception-Tabelle eine entsprechende Exception- Routine ausgewählt. Die Ausführung des aktuellen Programms wird ausgesetzt und die Exception-Routine durchlaufen. Eine Exception-Routine kann verschiedene Aktionen veranlassen, die von einem Rücksetzen und erneutem Hochfahren des Mikrocontrollers 1 und einer Initialisierung des Programms bis zu einem Bedienen bestimmter Bauelemente (z. B. von Ein-/Ausgabeeinheiten) des Mikrocontrollers 1 reichen.
Erfindungsgemäß wird die Debug Logik 6 während der Laufzeit des auf dem Mikroprozessor 3 ausführbaren Programms zur Überwachung des Programms auf das Auftreten eines vorgebbaren Fehlerzustandes eingesetzt. Nach dem Auftreten des vorgegebenen Fehlerzustandes wird über die event- Leitung 9 eine Ausnahmebedingung ausgelöst und eine dem Fehlerzustand entsprechende Exception-Routine durchlaufen. Im Rahmen der Exception-Routine wird zunächst die Art des Fehlerszustandes und die Speicheradresse, auf die vor dem Auftreten des Fehlerzustandes zugegriffen wurde, in einem Fehlerspeicher (nicht dargestellt) abgelegt. Danach wird der Mikrocontroller 1 rückgesetzt und erneut hochgefahren und das überwachte Steuerprogramm initialisiert. Der Inhalt des Fehlerspeichers kann von Zeit zu Zeit, bspw. bei einem Werkstattaufenthalt des Kraftfahrzeugs, ausgelesen und analysiert werden.
Die Fehleranalyse gemäß dem erfindungsgemäßen Verfahren wird vorzugsweise zum Überwachen eines vorgebbaren Adressbereichs eines Speichers eingesetzt. Insbesondere wird das Steuerprogramm dahingehend überwacht, ob während der Programmlaufzeit auf einen illegalen Adressbereich 10 eines Stacks 11 des Mikrocontrollers 1 jenseits einer vorgebbaren maximalen Stackgröße von 4 kB zugreift. Ein Stapelspeicher, ein sog. Stack 11, ist ein Bereich eines Random-Access-Memory (RAM) 12 des Mikrocontrollers 1. Bei dem Stack 11 handelt sich um eine Datenstruktur, bei der Datenelemente am Ende einer sequentiellen Liste hinzugefügt (in den Stack 11 eingegeben) und von demselben Ende wieder abgerufen (aus dem Stack 11 entnommen) werden. Diese Zugriffsart entspricht dem Last-In/First-Out (LIFO)- Verfahren. In dem vorliegenden Ausführungsbeispiel hat das RAM 12 eine Größe von 26 kB, die maximale Stackgröße beträgt 4 kB.
Auf den illegalen Speicherbereich 10 wird ein Unterbrechungspunkt, ein sog. Breakpoint gesetzt. Der Speicherbereich 10 wird auch als Breakregion bezeichnet. Sobald ein Stackpointer auf den illegalen Speicherbereich 10 zeigt, löst die Debug Logik 6 über die event-Leitung 9 eine Exception aus. Der Stackpointer ist bspw. als ein vordefiniertes Register ausgebildet, dessen Dateninhalt dem Adressbereich des Stacks 11 entspricht, auf den der Stackpointer zeigt. Wenn auf dem Adressbus A bspw. ein Wert liegt, der innerhalb des illegalen Speicherbereichs 10 liegt, wird dies von der Debug Logik 6 registriert. Wird dann zusätzlich noch an den Controlbus C ein Befehl zum Schreiben oder Lesen angelegt, wenn also versucht wird, auf den illegalen Speicherberich 10 zuzugreifen, löst die Debug Logik 6 die Exception aus.
In Fig. 2 ist eine alternativ Ausführungsform der vorliegenden Erfindung dargestellt. Ein Update des als Flash-Speicher ausgebildeten internen Steuerelements 4 während der Programmlaufzeit wird in der Regel über einen Contoller Area Network (CAN)-Bus 14 oder eine Diagnoseschnittstelle 15 ausgeführt, da diese bei einem geschlossenen Steuergerät 2 üblicherweise die einzigen von außen frei zugänglichen Schnittstellen sind. Diese Schnittstellen 14, 15 werden von bestimmten Codesequenzen eines auf dem Mikroprozessor 3 ablauffähigen Programms gesteuert. Der Update des internen Steuerelements 4 kann deshalb nur während der Ausführung dieser Codesequenzen durchgeführt werden. Aus diesem Grund ist es notwendig während des Updates des internen Steuerelements 4 die zur Steuerung der Schnittstellen 14, 15 erforderlichen Codesequenzen des Programms aus dem internen Steuerelement 4 in den bspw. als Random-Access-Memory ausgebildeten externen Speicher 5 zu übertragen, wo sie während des Updates ausgeführt werden müssen.
Es ist denkbar, dass das Steuerprogramm aufgrund von Programmierungs- oder Hardwarefehlern während der Programmlaufzeit fälschlicherweise auf das internen Steuerelement 4 zur Ausführung der ausgelagerten Codesequenzen zugreifen möchte. Dies deutet darauf hin, dass sich ein Programmzeiger versprungen hat. Es besteht die Gefahr, dass das Programm in einen undefinierten Zustand gerät. Um dies zu vermeiden wird gemäß der zweiten bevorzugten Ausführungsform der Erfindung von der Debug Logik 6 überwacht, ob während des Ablaufs des Steuerprogramms versucht wird, die ausgelagerte Code- Sequenz des Steuerprogramms in dem internen Steuerelement 4 zur Ausführung zu bringen. Die Debug Logik 6 löst eine Exception aus, falls während der Programmlaufzeit versucht wird, auf den internen Speicher 4 zur Ausführung der Codesequenzen zuzugreifen.
In Fig. 3 ist ein Ablaufdiagramm des erfindungsgemäßen Verfahrens für das Ausführungsbeispiel aus Fig. 1 dargestellt. Das Verfahen beginnt in Funktionsblock 20. Anschließend wird in einem Funktionsblock 21 der Mikrocontroller 1 hochgefahren. Während des Hochfahrens des Mikrocontrollers 1 wird in Funktionsblock 22 auf dem Mikroprozessor 3 ein auf einem Steuerelement, z. B. dem internen Steuerelement 4, abgespeichertes Programm ausgeführt. Das Programm ist dazu geeignet, beim Hochfahren des Mikrocontrollers 1 die Debug Logik 6 zu veranlassen, den Ablauf des weiteren auf dem Mikroprozessor 3 des Mikrocontrollers 1 ablauffähigen Stuerprogramms während der Programmlaufzeit zu überwachen. Durch das Programm wird während des Hochfahrens ein Breakpoint auf den illegalen Adressbereich 10 gelegt, so dass bei einem Zugriff auf diesen Adressbereich 10 die Exception ausgelöst wird. Das Programm umfasst auch eine bestimmte Exception-Routine, die nach dem Auslösen der Exception durchlaufen wird.
In einem nachfolgenden Funktionsblock 23 wird das zu überwachende Steuerprogramm initialisiert. Anschließend wird das zu überwachende Steuerprogramm in einem Funktionsblock 24 ausgeführt, d. h. das Steuergerät 2 erfüllt seine bestimmungsgemäße Steuerungs-/ Regelungsaufgabe. Parallel dazu überwacht die Debug Logik 6 in einem Funktionsblock 25 den Ablauf des Steuerprogramms und erfüllt ihre Fehleranalyseaufgabe.
In einem Abfrageblock 26 wird überprüft, ob das Steuerprogramm während der Programmlaufzeit auf den illegalen Adressbereich 10 zugreift. Falls nein, wird wieder zu den Funktionsblöcken 24 und 25 verzweigt. Falls ja, wird eine Exception ausgelöst (Funktionsblock 27), der Ablauf des Steuerprogramms wird unterbrochen und die Exception-Routine wird durchlaufen. Im Rahmen der Exception-Routine wird zunächst in einem Funktionsblock 28 die Art des Fehlerszustandes und die Speicheradresse, auf die vor Auftreten des Fehlerzustandes zugegriffen wurde, in einem Fehlerspeicher abgelegt wird. Danach wird in einem Funktionsblock 29 der Mikrocontroller 1 rückgesetzt und erneut hochgefahren. Schließlich wird das überwachte Steuerprogramm in einem Funktionsblock 30 initialisiert und dann zu dem Funktionsblock 24 zur weiteren Ausführung des Steuerprogramms und zu Funktionsblock 25 zur parallelen Fehleranalyse verzweigt.

Claims (11)

1. Verfahren zur Überwachung des Ablaufs eines auf mindestens einem Mikroprozessor (3) eines Mikrocontrollers (1) ablauffähigen Programms mittels einer Debug Logik (6) des Mikrocontrollers (1), wobei von der Debug Logik (6) beim Zugriff auf einen bestimmten Adressbereich (10) während der Programmlaufzeit eine Ausnahmebedingung (Exception), insbesondere eine Unterbrechung (Interrupt) des Programmablaufs, ausgelöst wird, dadurch gekennzeichnet, dass die Debug Logik (6) von dem Mikroprozessor (3) konfiguriert wird und von der Debug Logik (6) nach dem Auslösen einer Ausnahmebedingung während der Programmlaufzeit eine Ausnahmebedingungs-Routine (Exception-Routine) durchlaufen wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Debug Logik (6) während des Hochfahrens des Mikrocontrollers (1) konfiguriert wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Mikrocontroller (1) während des Durchlaufs der Exception-Routine rückgesetzt und erneut hochgefahren und das überwachte Programm initialisiert wird.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass vor dem Rücksetzen und dem erneuten Hochfahren des Mikrocontrollers (1) und vor der Initialisierung des Programms zumindest die Art des Fehlerszustandes in einem Fehlerspeicher abgelegt wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass vor dem Rücksetzen und dem erneuten Hochfahren des Mikrocontrollers (1) und vor der Initialisierung des Programms die Speicheradresse, auf die vor Auftreten des Fehlerzustandes zugegriffen wurde, in dem Fehlerspeicher abgelegt wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass von der Debug Logik (6) überwacht wird, ob das Programm während der Programmlaufzeit auf einen vorgebbaren Adressbereich (10) eines Speichers (12) zugreift.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass von der Debug Logik (6) überwacht wird, ob das Programm während der Programmlaufzeit auf einen Adressbereich (10) eines Stacks (12) des Mikrocontrollers (1) jenseits einer vorgebbaren maximalen Stackgröße (11) zugreift.
8. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass von der Debug Logik (6) überwacht wird, ob während der Programmlaufzeit versucht wird, eine aus einem Flash-Speicher (4) des Mikrocontrollers (1) in einen Random-Access-Speicher (5) des Mikrocontrollers (1) ausgelagerte Code-Sequenz des Programms in dem Flash- Speicher (4) zur Ausführung zu bringen.
9. Steuerelement (4), insbesondere Read-Only-Memory oder Flash-Memory, für einen Mikrocontroller (1) insbesondere eines Steuergeräts (2) eines Kraftfahrzeugs, wobei auf dem Steuerelement (4) ein Programm abgespeichert ist, das auf mindestens einem Mikroprozessor (3) des Mikrocontrollers (1) ablauffähig und zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 8 geeignet ist.
10. Mikrocontroller (1) mit mindestens einem Mikroprozessor (3) und einer Debug Logik (6), wobei auf dem mindestens einen Mikroprozessor (3) ein Programm ablauffähig ist, die Debug Logik (6) während der Programmlaufzeit den Ablauf des Programms überwacht und beim Zugriff auf einen bestimmten Adressbereich (10) eine Ausnahmebedingung (Exception), insbesondere eine Unterbrechung (Interrupt) des Programmablaufs, auslöst, dadurch gekennzeichnet, dass der Mikroprozessor (3) die Debug Logik (6) konfiguriert und der Mikrocontroller (1) Mittel zum Durchlaufen einer Ausnahmebedingungs-Routine (Exception-Routine) nach dem Auslösen einer Ausnahmebedingung während der Programmlaufzeit aufweist.
11. Mikrocontroller (1) nach Anspruch 10, dadurch gekennzeichnet, dass der Mikrocontroller (1) weitere Mittel zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 8 aufweist.
DE10036278A 2000-07-26 2000-07-26 Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik Ceased DE10036278A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10036278A DE10036278A1 (de) 2000-07-26 2000-07-26 Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
US09/910,206 US7712084B2 (en) 2000-07-26 2001-07-20 Method for monitoring a program execution using a debug logic

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10036278A DE10036278A1 (de) 2000-07-26 2000-07-26 Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik

Publications (1)

Publication Number Publication Date
DE10036278A1 true DE10036278A1 (de) 2002-02-07

Family

ID=7650196

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10036278A Ceased DE10036278A1 (de) 2000-07-26 2000-07-26 Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik

Country Status (2)

Country Link
US (1) US7712084B2 (de)
DE (1) DE10036278A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004068346A1 (de) * 2003-01-30 2004-08-12 Robert Bosch Gmbh Steuergerät für ein kraftfahrzeug und kommunikationsverfahren dafür
US8037353B2 (en) 2004-05-18 2011-10-11 Robert Bosch Gmbh Method for operating a system
FR3068149A1 (fr) * 2017-06-26 2018-12-28 Continental Automotive France Procede de surveillance de l’espace libre d’une pile memoire
WO2022228613A1 (de) * 2021-04-28 2022-11-03 Quantum Technologies Ug Gmbh Vorrichtungen und verfahren zur überwachung eines quantencomputers im betrieb

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10229817B4 (de) * 2002-06-28 2007-05-24 Robert Bosch Gmbh Verfahren und Vorrichtung zum Ablegen eines Computerprogramms in einen Programmspeicher eines Steuergeräts
US7219333B2 (en) * 2002-11-22 2007-05-15 Texas Instruments Incorporated Maintaining coherent synchronization between data streams on detection of overflow
US7114104B1 (en) * 2003-02-11 2006-09-26 Compuware Corporation System and method of fault detection in a Unix environment
DE10352172A1 (de) * 2003-11-05 2005-06-09 Robert Bosch Gmbh Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen
US7761874B2 (en) * 2004-08-13 2010-07-20 Intel Corporation Managing processing system power and performance based on utilization trends
US20060048011A1 (en) * 2004-08-26 2006-03-02 International Business Machines Corporation Performance profiling of microprocessor systems using debug hardware and performance monitor
US7539833B2 (en) * 2004-12-06 2009-05-26 International Business Machines Corporation Locating wasted memory in software by identifying unused portions of memory blocks allocated to a program
US8146056B1 (en) * 2005-08-04 2012-03-27 American Megatrends, Inc. Debugging a computer program by interrupting program execution in response to access of unused I/O port
US20080162900A1 (en) * 2006-12-29 2008-07-03 Andre Rolfsmeier System, Method and Apparatus for Observing a Control Device
JP5029245B2 (ja) * 2007-09-20 2012-09-19 富士通セミコンダクター株式会社 プロファイリング方法及びプログラム
US8127181B1 (en) * 2007-11-02 2012-02-28 Nvidia Corporation Hardware warning protocol for processing units
US8407673B2 (en) * 2007-11-27 2013-03-26 International Business Machines Corporation Trace log rule parsing
US7882395B2 (en) * 2008-02-26 2011-02-01 Universal Scientific Industrial Co., Ltd. Debug device for embedded systems and method thereof
CN101539767A (zh) * 2008-03-21 2009-09-23 鸿富锦精密工业(深圳)有限公司 可编程控制器的快速侦错方法
US20090254888A1 (en) * 2008-04-07 2009-10-08 International Business Machines Corporation Debug tours for software debugging
US8762779B2 (en) 2010-01-22 2014-06-24 Via Technologies, Inc. Multi-core processor with external instruction execution rate heartbeat
KR101426983B1 (ko) * 2010-07-07 2014-08-06 엘에스산전 주식회사 Plc의 통신장치 및 방법
KR20120062064A (ko) * 2010-12-06 2012-06-14 현대자동차주식회사 자동차용 임베디드 소프트웨어 동적 분석 장치
US9262302B2 (en) * 2010-12-16 2016-02-16 International Business Machines Corporation Displaying values of variables in a first thread modified by another thread
EP2656227A2 (de) * 2010-12-22 2013-10-30 Intel Corporation Mehrkern- und mehrbuchsensysteme mit einem debugging-komplex
US8639919B2 (en) * 2011-01-18 2014-01-28 Via Technologies, Inc. Tracer configuration and enablement by reset microcode
US8909990B2 (en) 2012-08-04 2014-12-09 Microsoft Corporation Historical software diagnostics using lightweight process snapshots
US9830245B2 (en) 2013-06-27 2017-11-28 Atmel Corporation Tracing events in an autonomous event system
US9256399B2 (en) * 2013-06-27 2016-02-09 Atmel Corporation Breaking program execution on events
US9645870B2 (en) 2013-06-27 2017-05-09 Atmel Corporation System for debugging DMA system data transfer
US10289411B2 (en) * 2013-11-18 2019-05-14 Microsoft Technology Licensing, Llc Diagnosing production applications
US10372590B2 (en) 2013-11-22 2019-08-06 International Business Corporation Determining instruction execution history in a debugger
US9612939B2 (en) 2014-10-29 2017-04-04 Microsoft Technology Licensing, Llc. Diagnostic workflow for production debugging
WO2017127634A1 (en) * 2016-01-22 2017-07-27 Sony Interactive Entertainment Inc Simulating legacy bus behavior for backwards compatibility
TWI682400B (zh) * 2019-03-04 2020-01-11 新唐科技股份有限公司 半導體裝置與資料保護方法
CN111367788A (zh) * 2019-12-09 2020-07-03 许华敏 一种随机执行程序的测试方法
CN116430835B (zh) * 2023-06-13 2023-09-15 力高(山东)新能源技术股份有限公司 一种Cortex-M微控制器的故障存储与分析方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
US5450586A (en) * 1991-08-14 1995-09-12 Hewlett-Packard Company System for analyzing and debugging embedded software through dynamic and interactive use of code markers
US5537536A (en) * 1994-06-21 1996-07-16 Intel Corporation Apparatus and method for debugging electronic components through an in-circuit emulator
US5809293A (en) * 1994-07-29 1998-09-15 International Business Machines Corporation System and method for program execution tracing within an integrated processor
US5630045A (en) * 1994-12-06 1997-05-13 International Business Machines Corporation Device and method for fault tolerant dual fetch and store
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5680620A (en) * 1995-06-30 1997-10-21 Dell Usa, L.P. System and method for detecting access to a peripheral device using a debug register
US5805800A (en) * 1995-11-07 1998-09-08 Fujitsu Limited Apparatus and method for controlling storage medium using security capabilities
JPH1078919A (ja) * 1996-09-05 1998-03-24 Nec Eng Ltd 不正アクセス防止装置
US5770836A (en) * 1996-11-08 1998-06-23 Micro Weiss Electronics Resettable safety circuit for PTC electric blankets and the like
US5983017A (en) * 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
US6282701B1 (en) * 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
SE9801678L (sv) * 1998-05-13 1999-11-14 Axis Ab Datorchip och datoranordning med förbättrad avlusningsförmåga
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
US6397349B2 (en) * 1998-10-13 2002-05-28 Agere Systems Guardian Corp. Built-in self-test and self-repair methods and devices for computer memories comprising a reconfiguration memory device
JP2001101033A (ja) * 1999-09-27 2001-04-13 Hitachi Ltd オペレーティングシステム及びアプリケーションプログラムの障害監視方法
US6463553B1 (en) * 1999-10-01 2002-10-08 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6535811B1 (en) * 1999-11-03 2003-03-18 Holley Performance Products, Inc. System and method for real-time electronic engine control
IL132915A (en) * 1999-11-14 2004-05-12 Networks Assoc Tech Inc Method for secure function execution by calling address validation
US6681384B1 (en) * 1999-12-23 2004-01-20 International Business Machines Corporation Multi-threaded break-point
US6560722B1 (en) * 1999-12-30 2003-05-06 Texas Instruments Incorporated Developing and deploying real-time high-performance applications with DSPs
US6634020B1 (en) * 2000-03-24 2003-10-14 International Business Machines Corporation Uninitialized memory watch
US6658653B1 (en) * 2000-06-08 2003-12-02 International Business Machines Corporation Debugging methods for heap misuse
US6667917B1 (en) * 2001-06-15 2003-12-23 Artisan Components, Inc. System and method for identification of faulty or weak memory cells under simulated extreme operating conditions
JP2003050716A (ja) * 2001-08-06 2003-02-21 Matsushita Electric Ind Co Ltd ソフトウエアデバッガとソフトウエア開発支援システム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004068346A1 (de) * 2003-01-30 2004-08-12 Robert Bosch Gmbh Steuergerät für ein kraftfahrzeug und kommunikationsverfahren dafür
US8037353B2 (en) 2004-05-18 2011-10-11 Robert Bosch Gmbh Method for operating a system
FR3068149A1 (fr) * 2017-06-26 2018-12-28 Continental Automotive France Procede de surveillance de l’espace libre d’une pile memoire
WO2019002746A1 (fr) * 2017-06-26 2019-01-03 Continental Automotive France Procédé de surveillance de l'espace libre d'une pile mémoire
US11544171B2 (en) * 2017-06-26 2023-01-03 Continental Automotive France Method for monitoring the free space of a memory stack
WO2022228613A1 (de) * 2021-04-28 2022-11-03 Quantum Technologies Ug Gmbh Vorrichtungen und verfahren zur überwachung eines quantencomputers im betrieb

Also Published As

Publication number Publication date
US7712084B2 (en) 2010-05-04
US20020073400A1 (en) 2002-06-13

Similar Documents

Publication Publication Date Title
DE10036278A1 (de) Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE102010011658A1 (de) Applikationsplattform und Verfahren zum Betrieb einer Datenverarbeitungseinrichtung mit einer solchen
DE102005018910A1 (de) Verfahren zum Aufrüsten eines mikroprozessorgesteuerten Geräts mit neuem Softwarecode über ein Kommunikationsnetzwerk
EP1612648A2 (de) Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
EP1019819B1 (de) Programmgesteuerte einheit und verfahren zum debuggen derselben
WO2006015945A2 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
EP1362267B1 (de) Verfahren und vorrichtung zum emulieren von steuer- und/oder regelfunktionen eines steuer- oder regelgeräts
EP1262856A2 (de) Programmgesteuerte Einheit
WO2006045754A1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE102005040916A1 (de) Speicheranordnung und Betriebsverfahren dafür
EP3080668A1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE4238099C2 (de) Mikroprozessor mit mehreren Betriebsmoden
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm
EP0791929B1 (de) Elektronisches Gerät und Verfahren zu seiner Duplizierung und Einrichtung zur Datenübertragung zwischen zwei gleichartig aufgebauten elektronischen Geräten
DE102017103214A1 (de) Verfahren und Vorrichtungen zur Verwaltung eines nichtflüchtigen digitalen Informationsspeichers
WO2015124320A1 (de) Dynamisches speicherprogrammierbares steuergerät zum emulieren eines steuergerätes
EP1428105A2 (de) Programmgesteuerte einheit
EP3566398A1 (de) Verfahren und halbleiterschaltkreis zum schützen eines betriebssystems eines sicherheitssystems eines fahrzeugs
DE102020133748B4 (de) Fahrzeugsteuergerät mit synchronem treiber
DE4227784A1 (de) Rechnersystem und verfahren zum beheben eines seitenfehlers
DE102004055051B3 (de) Schneller Systemstart für eingebettete Systeme
WO2004042592A2 (de) Verfahren zur sicheren überprüfung eines speicherbereiches eines mikrocontrollers in einem steuergerät und steuergerät mit einem geschützten mikrocontroller
EP2338111B1 (de) Verfahren und vorrichtung zum testen eines rechnerkerns in einer mindestens zwei rechnerkerne aufweisenden recheneinheit

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final