DE4042263A1 - Verfahren zu erkennung des interruptstatus eines mikroprozessors - Google Patents

Verfahren zu erkennung des interruptstatus eines mikroprozessors

Info

Publication number
DE4042263A1
DE4042263A1 DE19904042263 DE4042263A DE4042263A1 DE 4042263 A1 DE4042263 A1 DE 4042263A1 DE 19904042263 DE19904042263 DE 19904042263 DE 4042263 A DE4042263 A DE 4042263A DE 4042263 A1 DE4042263 A1 DE 4042263A1
Authority
DE
Germany
Prior art keywords
interrupt
circuit
program
psen
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19904042263
Other languages
English (en)
Inventor
Magnus Stefan Richt
Peter Humm
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.)
RICHT STEFAN
Original Assignee
RICHT STEFAN
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 RICHT STEFAN filed Critical RICHT STEFAN
Priority to DE19904042263 priority Critical patent/DE4042263A1/de
Publication of DE4042263A1 publication Critical patent/DE4042263A1/de
Withdrawn 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
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren zur Erkennung des Interruptstatus eines Mikroprozessors nach dem Oberbegriff des Patentanspruchs 1, das den internen Interruptstatus eines Mikroprozessors von außen erkennt. Dies ist speziell für Prozessoren, die keine direkte Signalleitung, die den internen Interruptstatus erkennen lassen, zur Verfügung stellen, von Interesse. Das erfindungsgemäße Verfahren läßt sich vorteilhaft in In- Circuit-Emulatoren, Mikroprozessor-Entwicklungssysteme oder Logikanalysatoren einsetzen. Ein bevorzugtes Ausführungsbeispiel bezieht sich auf Emulatoren für Prozessoren der 8031 Intel Familie.
Bereich der Erfindung
Ein Emulator ist ein Entwicklungswerkzeug, welches den gleichzeitigen Test von Hard- und Software eines zu entwickelten Systems dient. Zu diesem Zweck wird in die Zielhardware anstelle des Prozessors ein Adapter gesteckt, der sämtliche Funktionen des zu emulierenden Prozessors möglichst exakt nachbildet (meist befindet sich der gleiche Prozessor auf den Adapter), und außerdem die Möglichkeit bietet, den Adreßbus, Datenbus und Steuerbus des Prozessors mit Hilfe des Emulators und eines angeschlossenen Terminals o. ä. zu überwachen und eventuell zu beeinflussen.
So ist im allgemeinen die Möglichkeit vorgesehen, den Prozessor nach Erfüllung vorher festgelegter Bedingungen (Breakpoints = z. B. Zugriff auf eine bestimmte Adresse, ein externes Triggersignal ect.) anzuhalten und die normalerweise nicht zugänglichen internen Register zu lesen. Damit erhält der Entwickler Informationen, mit welchen er schnell eventuell Hard- oder Softwarefehler finden kann.
Dafür muß die Hardware des Emulators nach Erkennen einer Haltebedingung (Breakpoint) anstelle des zu testenden Anwenderprogramms beispielsweise ein Programmteil des Emulators einblenden, das die Inhalte der interessanten Register an das Terminal sendet, diese unter Umständen modifiziert und solange eine Endlosschleife ausführt, bis der Anwender den Prozessor wieder starten will. (Diese vom Emulator eingeblendete Programm soll im folgenden "Kommunikationsprogramm" genannt werden, der Zustand nach einem Breakpoint soll "stehende Emulation" genannt werden.) Dann blendet die Hardware des Emulators dieses Kommunikationsprogramm wieder aus, und der Prozessor bearbeitet bis zum nächsten Breakpoint das Anwenderprogramm.
Das Einblenden des Kommunikationsprogramms wird bekannterweise in zwei Schritten erfolgen, da sich dieses i. A. an einer festen Adresse befindet, der Prozessor aber an jeder beliebigen Adresse unterbrochen werden können muß. Deshalb blendet der Emulator nach Erkennen eines Breakpoints zuerst einen Sprungbefehl zu der Adresse ein, ab der dann im zweiten Schritt das eigentliche Kommunikationsprogramm bearbeitet werden soll, welches erst nach Ausführen des Sprungbefehls eingeblendet werden kann.
Dieses Einblenden eines nicht vom Anwender erstellten Programms führt zu Problemen, wenn in dem zu testenden Anwenderprogramm Interruptroutinen verwendet werden. Dies soll im folgenden näher erläutert werden:
Interruptroutinen sind Routinen, die vom Prozessor asynchron zum normalen Programm nach Erfüllung bestimmter Bedingungen aufgerufen werden. Interruptroutinen werden normalerweise verwendet, wenn der Prozessor auf bestimmte Ereignisse (z. B. externes Signal) sofort reagieren soll. Erkennt ein Prozessor eine Interruptanforderung, so verzweigt er nach Beendigung des gerade ausgeführten Befehls zu einer bestimmten Adresse (diese Adresse ist abhängig von der Quelle der Interruptanforderung) bei denen sich die vom Anwender erstellte Interruptroutine befinden muß.
Nach Beendigung der Interruptroutine verzweigt der Prozessor wieder zu der Stelle im Hauptprogramm, an der dieses unterbrochen wurde.
Erscheint eine asynchrone Interruptanforderung zu einem Zeitpunkt, zu dem die Emulation steht, die Hardware des Emulators also anstelle des Anwenderprogramms ein eigenes Programm einblendet, das die Kommunikation des Prozessors mit einem Terminal ermöglicht (s. o.), so findet der Prozessor nach Verzweigen in die Interruptroutine u. U. nicht die vom Anwender vorgesehene Interruptroutine vor, sondern ein i. A. als Interruptroutine unsinniges Programm (der vom Emulator eingeblendete Sprungbefehl oder das Kommunikationsprogramm).
Dies führt meist zum Absturz des Systems. Es zwei Möglichkeiten, dieses Problem zu umgehen, aber für den Anwender keine Einschränkungen bedeuten:
  • 1. Die Abarbeitung von Interruptroutinen wird bei stehender Emulation gesperrt.
  • 2. Die Hardware des Emulators erkennt den Zeitraum, in dem der Prozessor eine Interruptroutine bearbeitet.
Viele Prozessoren liefern jedoch keine direkte Information über ihren internen Interruptstatus (etwa in Form einer Interruptaktiv-Leitung) nach außen, sodaß der Interruptstatus von außen nicht erkennbar ist.
Aufgabe des erfindungsgemäßen Verfahrens, welches vorzugsweise in In-Circuit-Emulatoren eingesetzt werden kann, ist es, den Interruptstatus bei Prozessoren von außen durch Überwachung der Bussignale zu erkennen. Dabei soll das Echtzeitverhalten der Prozessoren nicht beeinflußt werden. Das erfindungsgemäße Verfahren soll auch bei Prozessoren, die keine direkte Information über den Interruptstatus z. B. durch eine "Interrupt-aktiv- Leitung" nach außen geführt haben, funktionieren.
Diese Aufgabe wird durch das in Anspruch 1 beschriebene Verfahren gelöst.
Das erfindungsgemäße Verfahren hat den Vorteil, daß der Interruptstatus des Mikroprozessors erkannt werden kann, ohne daß zusätzliche Eingaben vom Anwender notwendig sind. Es ist nicht notwendig einzelne Interruptvektoren zu sperren oder freizugeben. Der Speicherbereich auf den die Interruptvektoren zeigen ist, wenn einzelne Interrupts nicht verwendet werden, ist frei verfügbar.
Ein weiterer Vorteil ist, daß es bei Anwendung des erfindungsgemäßen Verfahrens in einem In-Circuit-Emulator zu keiner Einschränkung der Emulation kommt. Alle Debug-Funktionen sind uneingeschränkt sowohl innerhalb von Interruptroutinen als auch direkt auf den Interrupteinsprünge weiterhin anwendbar (Single Step, Breakpoints, Snapshots etc.).
Durch eine vorteilhafte Weiterbildung der Erfindung gemäß Anspruch 3 können in Emulatoren, die das Verfahren nach Anspruch 1 und Anspruch 2 einsetzen, bei stehender Emulation Interruptroutinen in Echtzeit abgearbeitet werden. Entsprechend Anspruch 3 wird Schaltungseinrichtung (6) zusätzlich zu Schaltungseinrichtung (1) angeordnet, die abhängig vom Interruptstatus (6), der in Schaltungseinrichtung (1) bestimmt wird, das Monitorprogramm ausblendet, und wieder das Anwenderprogramm einblendet.
Es besteht nach Anspruch 3 die Möglichkeit, bei stehender Emulation während des Zeitraums, in dem der Prozessor eine Interruptroutine bedient, das vom Emulator eingeblendete Programm wieder auszublenden, sodaß der Prozessor ungestört das Interruptprogramm bearbeiten kann. Dies hat den Vorteil:
  • - Dieses Verfahren ermöglicht eine effiziente Art des Testens von Interruptroutinen:
    Bei stehender Emulation, also bei uneingeschränkten Einblick auf alle Register im Prozessor, können die vom Anwender entwickelten Interruptroutinen in Echtzeit, d. h. zur gleichen Zeit und in der gleichen Geschwindigkeit wie später ablaufen. Wird mit Hilfe einer selbständigen Interruptroutine z. B. eine Regelung verwirklicht, so hat der Anwender die Möglichkeit, ohne den Regelkreis unterbrechen zu müssen, bestimmte Parameter zu ändern und ihren Einfluß auf die Regelung zu testen.
Im folgenden wird das Verfahren nach Anspruch 1 beschrieben.
Die Schaltungseinrichtung (1) mit dem Bus des Mikroprozessors oder Mikroprozessorsystemes, dessen Interruptstatus bestimmt werden soll, verbunden. Aufgrund der Signale, die zu einem gegebenen Zeitpunkt entweder/und an Daten- (2) und/oder Adreß- (3) und/oder Steuerbus (4) anliegen, wird erfindungsgemäß in der Schaltungseinrichtung (1) in Verbindung mit den Signalen, die zu früheren Zeitpunkten an o. g. Bussen angelegen sind, unter der Annahme eines normalen Programmablaufs, eine Vorhersage erstellt, was der Prozessor als nächsten Befehl ausführen wird. Durch das Nichtübereinstimmen der Vorhersage mit dem tatsächlichen Programmablauf erkennt Schaltungseinrichtung (1) erfindungsgemäß einen Einsprung in eine Interruptroutine.
Im erfindungsgemäßen Verfahren erkennt Schaltungseinrichtung (1) entsprechend Anspruch 2 ebenfalls das Interruptende beispielsweise durch Decodieren eines bestimmten Befehls für den Interruptrücksprung. Durch den Vergleich der Anzahl der Interrupteinsprünge und Aussprünge wird die Schachtelungstiefe bei verschachtelten Interruptroutinen bestimmt und somit der Interruptstatus der überwachten Prozessors ermittelt.
In einer vorteilhaften Weiterbildung der Erfindung kann Schaltungseinrichtung (1) und/oder Schalteinrichtung (6) durch einen oder mehrere programmierbare Logikbaustein(e) ausgeführt werden. Bevorzugterweise wird eine Logikschaltung eingesetzt werden, die im eingebauten Zustand um oder neu programmiert werden kann. Ein vorteilhafter Baustein könnte ein FPGA (Fuse Programmable Gate Array) beispielsweise der Firma Xilinx sein. Die logische Verknüpfung wird hier seriell in den Logikbaustein beim Power/Up geladen, da sie flüchtig ist. Diese Eigenschaft kann genutzt werden, um verschiedene logische Verknüpfungen entsprechend den verschiedenen unterstützten Prozessoren beispielsweise durch eine programmgesteuerte Einrichtung zu laden.
Insbesondere bei Einsatz in einem Logikanalysator kann durch die Weiterbildung der Erfindung erreicht werden, daß Schaltungseinrichtung (1) im eingebauten Zustand mehrere Prozessoren unterstützen kann.
In einer vorteilhafte Weiterbildung der Erfindung wird die in Schaltungseinrichtung (1), die bevorzugterweise wie in o. g. Weiterbildung ausgeführt sein kann, ermittelte Schachtelungstiefe in einen Verfolgungs- oder Trace-Speicher geschrieben. In einer weiteren vorteilhaften Weiterbildung der Erfindung wird Schaltungseinrichtung (1) dazu verwendet, um die Aufzeichnung in den Verfolgungsspeicher steuern.
Es zeigt
Fig. 1 das erfindungsgemäße Verfahren nach Anspruch 1
Fig. 2 Weiterbildung des erfindungsgemäßen Verfahrens nach Anspruch 3
Fig. 3 das bevorzugte Ausführungsbeispiel einer Anordnung zur Durchführung des erfindungsgemäßen Verfahrens.
Das erfindungsgemäße Verfahren soll anhand eines bevorzugten Ausführungsbeispiels einer Vorrichtung zur Durchführung des o. g. Verfahrens erläutert werden.
Es bezieht sich auf Prozessoren der Intel 8031 Familie. Zum Verständnis des Ausführungsbeispiels muß kurz der Buszyklus der Prozessoren der Intel 8031 Familie erläutert werden:
Ein Maschinenzyklus besteht aus 12 CPU-Taktperioden. Während jedes Maschinenzyklus erzeugt der Prozessor zwei Zugriffe auf den externen Programmspeicher (PSEN-Zyklus- Program Storage Enabel). (Nur bei einem Zugriff auf einen externen Datenspeicher werden zwei PSEN-Zyklen ausgelassen, dies ist hier aber nicht wichtig.) Ein PSEN-Zyklus besteht aus zwei Phasen:
Zuerst wird am Adreßbus der Inhalt des internen Programmzählers angelegt, anschließend wird das dieser Adresse zugeordnete Byte über den Datenbus in den Prozessor geholt.
Die Ausführzeit der einzelnen Befehle des Intel 8031 Prozessors beträgt entweder 1, 2 oder 4 Maschinenzyklen, 2, 4, oder 8 PSEN-Zyklen. Die Länge der einzelnen Befehle sind entweder 1, 2 oder 3 Byte. Mit jedem PSEN- Zyklus wird ein Byte aus dem externen Programmspeicher geholt. (d. h. ein 3-Byte-Befehl muß mindestens 2 Maschinenzyklen dauern.)
Der Prozessor erzeugt also meist mehr PSEN-Zyklen als eigentlich nötig. Nur Befehle, die 2 Byte lang sind und 1 Maschinenzyklus dauern, benötigen keine überflüssigen PSEN-Zyklen.
Es ist wichtig zu erwähnen, daß der Prozessor überflüssige PSEN-Zyklen nach außen zwar erzeugt, die geholten Daten intern aber nicht verarbeitet werden. Nach jedem PSEN-Zyklus, dessen Daten vom Prozessor verarbeitet wurden, wird der interne Programmzähler zunächst um eins erhöht, damit beim nächsten PSEN-Zyklus das nächste Byte des Programms geholt werden kann. (Nur wenn der Prozessor einen Sprungbefehl ausführt, wird vor dem 1. PSEN-Zyklus des nächsten Befehls die durch den Sprungbefehl erzeugte Adresse in den Programmzähler geladen.)
Nach jedem überflüssigen PSEN-Zyklus, dessen Daten vom Prozessor nicht verarbeitet werden, bleibt der interne Programmzähler hingegen unverändert, sodaß beim nächsten (evtl. wieder überflüssigen) PSEN-Zyklus wieder die selbe Adresse anliegen wird.
Erkennt der Prozessor eine Interruptanforderung, so blendet die Hardware des Prozessors nach Beendigung des gerade ausgeführten Befehls intern einen Unterprogrammaufruf zu der der Interruptquelle zugeordneten Einsprungsadresse ein.
Extern aber erzeugt er vier PSEN-Zyklen (der interne Unterprogrammaufruf dauert 2 Maschinenzyklen). Der erste dieser 4 Zyklen holt den Inhalt des Bytes, dessen Adresse in dem durch den Interrupt noch unveränderten Programmzähler steht.
Da der Prozessor dieses Byte aber nicht verarbeiten kann, da er intern gerade einen Unterprogrammaufruf bearbeitet, ist dieser PSEN-Zyklus aber ein überflüssiger PSEN- Zyklus, d. h. der Programmzähler wird nicht um eins erhöht. Deshalb wird beim folgenden zweiten PSEN-Zyklus die selbe Adresse ausgegeben.
Dies ist der einzigste Fall, bei dem der erste und zweite PSEN-Zyklus eines Befehls die selbe Adresse generieren: Wird ein Befehl ausgeführt, (d. h. nicht durch den internen Unterprogrammaufruf, der durch eine Interruptanforderung erzeugt wird, unterbrochen) so ist der 1. PSEN-Zyklus nicht überflüssig, der interne Programmzähler wird also um eins erhöht. (Wird der Programmzähler durch einen Sprungbefehl verändert, so geschieht dies erst nach dem 2. PSEN-Zyklus des Befehls.)
Das heißt die Adresse des 1. PSEN-Zyklus und des 2. PSEN- Zyklus unterscheiden sich immer um den Wert 1, es sei denn, der Prozessor hat eine Interruptanforderung erkannt (s. o.). Dann sind die Adressen des 1. und 2. PSEN-Zyklus gleich.
Hier setzt nun das erfindungsgemäße Verfahren ein: Die oben erläuterte Vorhersage ist in diesem Fall die Tatsache, daß sich normalerweise die Adresse zwischen ersten und zweiten PSEN-Zyklus um genau den Wert 1 erhöht. Trifft das nicht zu, so hat der Prozessor gerade einen Interrupt erkannt.
Um zu entscheiden, ob ein bestimmter PSEN-Zyklus ein 1. PSEN-Zyklus, bzw. ein 2. PSEN-Zyklus ist, werden der Daten (7) und Steuerbus den gesamten Programmablauf ab dem Zeitpunkt, bei dem der Prozessor gestartet wurden (Reset) überwacht.
Die Erfindung wird nun anhand des bevorzugten Ausführungsbeispieles beschrieben.
Fig. 1 zeigt das bevorzugte Ausführungsbeispiel.
Der Datenbus (7) ist auf die Decodiereinrichtung (8), welche hier beispielsweise aus einem programmierbaren Speicher besteht, geführt. Erfindungsgemäß wird bei jedem 1. PSEN-Zyklus (der erste PSEN-Zyklus nach einem Reset ist ein 1. PSEN-Zyklus) anhand des am Datenbus (7) anliegenden Opcodes festgestellt, wie lang (d. h. wieviele PSEN-Zyklen) dieser Befehl dauert. Dies geschieht mit dem programmierbaren Speicher (8). Der Speicher ordnet jedem der 256 Opcodes einen Wert zwischen 2 und 8 zu, der der Länge des Befehls entspricht.
Dieser Wert erscheint beispielsweise binär codiert auf 3 Datenleitungen (9) des Speicher (8), mit denen der Zähler (10) geladen wird. Dieser wird anschließend mit jedem PSEN-Zyklus um eins erniedrigt. Erreicht der Zähler den Wert Null, so generiert er an dessen Ausgang (11) einen Impuls, der dem 1. PSEN-Zyklus entspricht, und gleichzeitig zum erneuten Laden des Zählers (10) verwendet wird.
Der Zähler (10) erzeugt ein weiteres Signal (12), das dem 2. PSEN-Zyklus entspricht.
Der Adreßbus (13) wird mit dem 1. PSEN in den Zwischenspeicher (14) und mit dem 2. PSEN in den Zwischenspeicher (15) geladen. Die Ausgänge der beiden Zwischenspeicher (14) und (15) sind auf den Eingang eines Komparators (16) geführt, der die Interrupt-Leitung (17) aktiviert, falls beide Werte gleich sind. Die Interrupt-Leitung (17) ist genau dann aktiv, wenn der Prozessor eine Interruptroutine bearbeiten wird. Da ohne Interruptanforderung sich die Adressen des 1. und 2. PSEN-Zyklus immer genau um den Wert 1 unterscheiden, genügt es, bei diesem Vergleich nur die Adreßleitung mit dem niederwertigsten Bit A0 heranzuziehen. Dies reduziert den Aufwand der Hardware, die für diesen Zweck gebaut werden muß. Das Ende der Interruptroutine ist im Fall des 8031 Prozessors einfach zu erkennen, da der 8031 einen speziellen Befehl (Reti) für das Beenden eines Interrupts vorsieht. Dies erfolgt mit Speicher (8). Eine Interrupt-Ende-Leitung (18) ist von Speicher (8) auf den Abwärts-Eingang des Aufwärts/Abwärts-Zählers (19) geführt.
Die Interrupt-Leitung (17) ist auf den Aufwärts-Eingang von Zähler (19) geführt. Ist der Zählerstand von Zähler (19) größer als 0, bearbeitet der überwachte Prozessor gerade einen Interrupt, ist der Zählerstand 0 wird keine Interruptroutine bearbeitet. Die Ausgang (20) ist aktiv, wenn der überwachte Prozessor eine Interruptroutine abarbeitet. Er wird in einem erfindungsgemäßen Emulator verwendet, um bei stehender Emulation entsprechend Anspruch 3 das Anwenderprogramm einzublenden, wenn eine Interruptanforderung auftritt.

Claims (8)

1. Verfahren zur Erkennung des Interruptstatus von Mikroprozessoren dadurch gekennzeichnet, daß eine Schaltungseinrichtung den Bus (Adreß- (1) und/oder Daten- (3) und/oder Steuerbus (4) eines Mikroprozessors überwacht, und unter Voraussetzung des normalen Programmablaufes Voraussagen bezüglich des zukünftigen Programmablaufes macht und bei Nichterfüllung dieser Voraussagen einen Interrupteinsprung erkennt.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Schalteinrichtung (1) ebenfalls das Interruptende erkennt und die Schachtelungstiefe bei verschachtelten Interruptanforderungen durch Vergleich der Interrupteinsprünge mit Interruptaussprünge ermittelt.
3. Anordnung zur Durchführung des Verfahrens nach Anspruch 1, dadurch gekennzeichnet, daß zusätzlich zu Schalteinrichtung (1) eine Schalteinrichtung (5) angeordnet wird, die das Ergebnis von Schaltung (1) verwendet, und bei stehender Emulation das Anwenderprogramm einblendet, wenn ein Interrupteinsprung erfolgt, und wieder ausblendet wenn alle Interruptanforderungen bedient werden.
4. Anordnung zur Durchführung des Verfahrens nach Anspruch 1-3, dadurch gekennzeichnet, daß Schaltung (1) durch einen programmierbaren Logik-Baustein ausgeführt ist, der im eingebauten Zustand umprogrammiert werden kann.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die in Schaltung (1) ermittelte Schachtelungstiefe der Interruptroutinen zusätzlich zu den Signalen von Adreß- und/oder Daten und/oder Steuerbus in einen Speicher geschrieben werden.
6. Verfahren nach Anspruch 1-3 und Anspruch 5, dadurch gekennzeichnet, daß die Aufzeichnung in den Speicher durch die Schachtelungstiefe der Interruptroutinen gesteuert wird.
7. Anordnung zur Durchführung des Verfahrens nach Anspruch 1 für die Prozessoren der Intel 8051 Familie, dadurch gekennzeichnet, daß Schaltung (1) ein Interrupteinsprung dadurch erkennt, daß die Adressen zum Zeitpunkt des vorhergesagten Op Code Fetches mit den Adressen des darauffolgenden Zyklusses verglichen werden, und bei Übereinstimmung ein Interrupt erkannt wird.
8. Anordnung zur Durchführung des Verfahrens nach Anspruch 1 und Anspruch 2 für die Prozessoren der Intel 8051 Familie, dadurch gekennzeichnet, daß Schaltung (1) so ausgeführt ist, daß bei Auftreten eines speziellen Befehles (RETI) das Ende einer laufenden Interruptanforderung erkannt wird.
DE19904042263 1990-12-31 1990-12-31 Verfahren zu erkennung des interruptstatus eines mikroprozessors Withdrawn DE4042263A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19904042263 DE4042263A1 (de) 1990-12-31 1990-12-31 Verfahren zu erkennung des interruptstatus eines mikroprozessors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19904042263 DE4042263A1 (de) 1990-12-31 1990-12-31 Verfahren zu erkennung des interruptstatus eines mikroprozessors

Publications (1)

Publication Number Publication Date
DE4042263A1 true DE4042263A1 (de) 1992-07-02

Family

ID=6421706

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19904042263 Withdrawn DE4042263A1 (de) 1990-12-31 1990-12-31 Verfahren zu erkennung des interruptstatus eines mikroprozessors

Country Status (1)

Country Link
DE (1) DE4042263A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4447876A (en) * 1981-07-30 1984-05-08 Tektronix, Inc. Emulator control sequencer
DE3429112A1 (de) * 1984-08-03 1986-02-06 Siemens AG, 1000 Berlin und 8000 München Verfahren und schaltungsanordnung zur generierung von steuerinformationen aus statussignalen eines mirkroprozessors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4447876A (en) * 1981-07-30 1984-05-08 Tektronix, Inc. Emulator control sequencer
DE3429112A1 (de) * 1984-08-03 1986-02-06 Siemens AG, 1000 Berlin und 8000 München Verfahren und schaltungsanordnung zur generierung von steuerinformationen aus statussignalen eines mirkroprozessors

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US-Firmenschrift der Intel Corp., "The 8086 Family User's Manual", Oktober 1989, S.2/1, 2/29,2/30 *

Similar Documents

Publication Publication Date Title
DE3242502C2 (de)
DE3903835C2 (de)
DE69908682T2 (de) Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor
EP0368190B1 (de) Verfahren zur Beobachtung des zeitlichen Ablaufs eines von einem Rechnersystem ausgeführten Objektprogrammes und Beobachtungswerkzeug zur Durchführung dieses Verfahrens
EP2962205B1 (de) Mehrkern-prozessorsystem mit fehleranalysefunktion
EP0011685A1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
EP1019819B1 (de) Programmgesteuerte einheit und verfahren zum debuggen derselben
DE69815006T2 (de) Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE102009058652A1 (de) Verfahren zur Beeinflussung eines Steuergerätes und Manipulationseinheit
EP1565825A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
EP0671031B1 (de) Mikrorechner mit überwachungsschaltung
EP3080668A1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm
DE68924507T2 (de) Verfahren und Gerät zur Markierung von Emulationsanalysezuständen.
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE102011110151A1 (de) Halbleitervorrichtung und Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung
DE4042263A1 (de) Verfahren zu erkennung des interruptstatus eines mikroprozessors
EP2287742B1 (de) Programmgesteuerte Einheit
EP2634700A1 (de) Verfahren und Entwicklungsumgebung zur Überwachung eines ablaufenden Programms
DE69311207T2 (de) Steuereinheit oder Programmierbare Steuerung
DE19945940C2 (de) Verfahren und Vorrichtung zur Bearbeitung bedingter Sprungbefehle in einem Prozessor mit PIPELINE-Rechnerarchitektur
DE3431304C2 (de)
EP1594063B1 (de) Verfahren zum Überprüfen von Steuerungsprogrammen
DE2939194A1 (de) Verfahren und schaltungsanordnung zum ueberwachen des ordnungsgemaessen ablaufs eines programms

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8139 Disposal/non-payment of the annual fee