DE10036278A1 - Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik - Google Patents
Verfahren zur Überwachung eines Programmablaufs mittels einer Debug LogikInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software 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.
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.
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.
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.
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.
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)
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)
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)
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 | ソフトウエアデバッガとソフトウエア開発支援システム |
-
2000
- 2000-07-26 DE DE10036278A patent/DE10036278A1/de not_active Ceased
-
2001
- 2001-07-20 US US09/910,206 patent/US7712084B2/en not_active Expired - Fee Related
Cited By (6)
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 |