DE3732808A1 - Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm - Google Patents

Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm

Info

Publication number
DE3732808A1
DE3732808A1 DE19873732808 DE3732808A DE3732808A1 DE 3732808 A1 DE3732808 A1 DE 3732808A1 DE 19873732808 DE19873732808 DE 19873732808 DE 3732808 A DE3732808 A DE 3732808A DE 3732808 A1 DE3732808 A1 DE 3732808A1
Authority
DE
Germany
Prior art keywords
address
command
program
monitor
user
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
DE19873732808
Other languages
English (en)
Inventor
Iain Haswell-Smith
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.)
Burr Brown Ltd
Original Assignee
Burr Brown Ltd
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 Burr Brown Ltd filed Critical Burr Brown Ltd
Publication of DE3732808A1 publication Critical patent/DE3732808A1/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

Description

Die Erfindung betrifft "Monitorprogramme", die einem Benutzer erlauben, Unterbrechungspunkte (break points) in einem Benutzerprogramm zu definieren, in dem Fehler gesucht werden sollen oder das analysiert werden soll. Damit ist der Benutzer in der Lage, in Schritten oder auf andere Weise durch das Benutzerprogramm voranzuge­ hen und die Inhalte der Prozessorregister an ausgewähl­ ten, programmierten Unterbrechungspunkten zu bestimmen.
Programme, die Monitorprogramme oder einfach "Monitoren" genannt werden, werden weithin in Computersystemen be­ nutzt, um die Ingenieure in die Lage zu versetzen, Pro­ gramme zu "debuggen" (Fehlersuche) oder zu analysieren. Ein Monitor erlaubt dem Ingenieur typischerweise, "Moni­ torkommandos" über ein Terminal in den Monitor einzuge­ ben. Die Monitorkommandos sind ein Befehlssatz, der nor­ malerweise aus Kommandos von ein bis drei Buchstaben be­ steht. Solche Monitorkommandos befähigen den Benutzer, bestimmte Variablen des Mikroprozessors oder bestimmte Speicherplätze in einem Speicher, der von dem Mikro­ prozessor benutzt wird, zu überprüfen und zu verändern.
Beispielsweise ist ein typisches Kommando "zeige Daten­ speicher an". Wenn dieses mit einem numerischen Adreß­ wert über ein Terminal eingegeben wird, weist es das Monitorprogramm an, den Inhalt einer bestimmten Anzahl von Speicherplätzen auf dem Bildschirm des Terminals an­ zuzeigen, wobei mit der angegebenen numerischen Adresse begonnen wird. Ein anders typisches Kommando ist "ver­ ändere Register". Dadurch können die Inhalte eines be­ stimmten Registers des Mikroprozessors überprüft und verändert werden. Der Monitorbefehlssatz umfaßt ebenso Kommandos, die dem Benutzer erlauben, ein Benutzerpro­ gramm in den Speicher zu laden, dieses Benutzerprogramm auszuführen und das Benutzerprogramm an einer bestimm­ ten Stelle seiner Ausführung anzuhalten, um die Auswir­ kung des Benutzerprogramms auf die Register des Mikro­ prozessors und jeden beliebigen relevanten Speicher­ platz zu überprüfen.
Zum Anhalten der Ausführung eines Benutzerprogramms wird ein programmierter Unterbrechungspunkt an die bestimmte Stelle in dem Speicher gesetzt, an der die Unterbrechung gewünscht wird. Der programmierte Unterbrechungspunkt veranlaßt den Mikroprozessor, die Ausführung des Be­ nutzerprogramms zu stoppen, alle laufenden Werte seiner Register in einem bestimmten Speicherbereich zu spei­ chern, der für die ausschließliche Benutzung durch den Monitor reserviert ist, und dann mit der Ausführung des Monitorprogramms zu beginnen.
Der typische Betriebsablauf ist folgendermaßen. Nach dem Einschalten des Mikroprozessorsystems starter das System automatisch mit der Ausführung eines residenten Monitorprogramms. Dies gestattet die Eingabe von Moni­ torkommandos über ein Terminal. Durch Benutzung der Mo­ nitorkommandos kann der Benutzer ein Benutzerprogramm in den Speicher des Systems eingeben und dieses an einer bestimmten Adresse starten. Der Benutzer kann dann alle relevanten Mikroprozessorregister auf diejenigen Werte voreinstellen, die für den Beginn der Ausführung des Be­ nutzerprogramms erforderlich sind. Insbesondere wird da­ bei der Zähler des Benutzerprogramms auf denjenigen Adressenwert gesetzt, der dem Beginn des Benutzerpro­ gramms entspricht. (Der Benutzerprogrammzähler enthält die Adresse des Speicherplatzes, der den nächsten Benut­ zerbefehl enthält, der von dem Mikroprozessor ausgeführt werden soll, wenn er ein Benutzerprogramm abarbeitet.) Der Benutzer kann dann einen programmgesteuerten Unter­ brechungspunkt in das Benutzerprogramm einfügen, indem er das "setze Unterbrechungspunkt"-Kommando benutzt. Der programmgesteuerte Unterbrechungspunkt wird dann an der bestimmten Speicherplatzadresse innerhalb des Benutzer­ programms eingesetzt, an der der Benutzer das Programm an­ halten will, wenn es ausgeführt wird.
Nach Initialisierung aller relevanten Register und Spei­ cherplätze (unter Benutzung der verfügbaren Monitorkom­ mandos, während der Mikroprozessor das Monitorprogramm ablaufen läßt) kann der Benutzer ein "Monitorablauf­ kommando" eingeben. Dies veranlaßt den Mikroprozessor, die Ausführung des Monitorprogramms abzubrechen und die Ausführung des Benutzerprogramms von dem angegebenen Anfangswert des Benutzerprogrammzählers aus zu beginnen. Der Mikroprozessor setzt die Ausführung des Benutzer­ programms so lange fort, bis ein programmgesteuerter Unterbrechungspunkt erreicht wird. An diesem Punkt un­ terbricht der Mikroprozessor die Ausführung des Benut­ zerprogramms, speichert alle seine Registerwerte in ei­ nem reservierten Speicherbereich und beginnt erneut mit der Ausführung des Monitorprogramms. Das einzige Ver­ fahren, durch das ein Benutzerprogramm angehalten wer­ den kann und das Monitorprogramm gestartet werden kann, ist es, einen Unterbrechungspunkt in dem Benutzer­ programm zu setzen.
Um dies zu erreichen, ersetzt das "setze Unterbrechungs­ punkt"-Monitorkommando einen Befehl in dem Benutzer­ programm mit einem Fangbefehl an der Adresse eines jeden gewünschten, programmgesteuerten Unterbrechungs­ punkts und speichert die ersetzten Benutzerprogrammbe­ fehle zwischen. Das "Monitorablauf"-Kommando läßt dann das Benutzerprogramm ablaufen, bis der erste Unterbre­ chungspunkt, d. h. der erste Fangbefehl, erreicht wird. Dieser zeigt auf einen Verzweigungsbefehl aus zwei Wor­ ten, der dasjenige Unterprogramm des Monitors abruft, das die programmgesteuerten Unterbrechungspunkte behan­ delt, und ersetzt jeden Fangbefehl durch den Benutzer­ befehl, der früher von dem Fangbefehl ersetzt worden ist. Der Monitor zeigt ebenfalls automatisch auf dem Bildschirm des Terminals die Inhalte aller Register des Prozessors zu dem Zeitpunkt an, an dem der Programm­ zähler des Prozessors auf den Fangbefehl des Unterbre­ chungspunktes zeigte.
Die Fehlersuche in einem Benutzerprogramm umfaßt die Prüfung, daß das Benutzerprogramm genau die erwartete Reihenfolge der Operationen ausführt, die es wunschge­ mäß durchführen soll. Im Idealfall müßten alle Register des Prozessors und jeder Speicherplatz, die von dem Benutzerprogramm beeinflußt werden, nach jedem Be­ fehl des Benutzerprogramms, den der Prozessor ausführt, überprüft werden, ob sie die erwünschten Werte enthalten. In der Praxis ist das wegen der Länge der meisten Pro­ gramme nicht durchführbar, und die ganzen Variablen des Programms werden nur an bestimmten, sorgfältig aus­ gewählten Punkten innerhalb des Benutzerprogramms über­ prüft, an denen Unterbrechungspunkte definiert werden.
Wenn ein Problem auftritt, ist es oft wünschenswert, den Benutzerbefehl oder die Benutzerbefehle einzugrenzen, die das Problem verursachen. Dies kann durch wiederhol­ tes Neudefinieren der Positionen der programmgesteuer­ ten Unterbrechungspunkte bewirkt werden, so daß diese dann enger beieinander in dem Benutzerprogramm liegen. Auf diese Weise liegen immer kleinere Schritte zwischen den einzelnen Unterbrechungspunkten, wenn das Benutzer­ programm abläuft. Im Grenzfall wird ein Satz von Unter­ brechungspunkten definiert, die an aufeinanderfolgenden Plätzen in dem Benutzerprogramm liegen, und zwar in dem Bereich, wo angenommen wird, daß ein falscher Benutzer­ programmcode existiert. Das Benutzerprogramm wird dann laufengelassen, bis der erste Unterbrechungspunkt er­ reicht wird. Die Programmvariablen werden geprüft. Das Benutzerprogramm wird dann vom ersten zum zweiten Un­ terbrechungspunkt ablaufen gelassen. In Wirklichkeit wird dann nur noch ein weiterer Benutzerbefehl ausge­ führt und die Programmvariablen erneut überprüft. Die­ ser Prozeß wird wiederholt.
Jeder Monitor erlaubt jedoch nur eine bestimmte Höchst­ zahl von Unterbrechungspunkten (typischerweise vier bis zehn). Daher muß der Unterbrechungspunkt neu definiert werden, wenn der Benutzer wünscht, die Ein-Schritt-Aus­ führung des Benutzerprogramms über den letzten Unter­ brechungspunkt in dem Benutzerprogramm hinaus fortzu­ setzen.
Die meisten Monitoren, die in einem System laufen, das einen Mikroprozessor benutzt, dessen Befehlssatz einen Fangbefehl umfaßt, haben einen "Einzelschritt-Befehl", der es auf einfache Weise erlaubt, ein Benutzerprogramm einen Befehl nach dem anderen ablaufen zu lassen. Der Betriebsablauf eines Monitor-Einzelschrittkommandos ist wie folgt. Der Monitor überprüft den Befehlscode in dem Speicher, dessen Adresse durch den Wert des Benutzer­ programmzählers gegeben ist. Dies ist der Befehlscode, den das Benutzerprogramm als erstes ausführen wird, wenn das Monitorablaufkommando ausgeführt wird. Der Moni­ tor decodiert den Befehlscode, um die Länge des gesamten Befehls festzustellen (z. B. ein Wort oder zwei Worte), und setzt dann einen Fangbefehl in den nächsten Speicher­ platz direkt danach (nachdem zuerst der Benutzerbefehl an dieser Stelle gespeichert wurde). Auf diese Weise setzt der Monitor wirksam einen Unterbrechungspunkt di­ rekt nach dem nächsten Benutzerbefehl, der gerade aus­ geführt werden soll. Der Monitor führt dann einen Run­ befehl (Programmablaufbefehl) als Teil des Einzel­ schrittkommandos aus. Der Benutzerprogrammbefehl wird ausgeführt und der Programmzähler wird auf den Speicher­ adressenwert heraufgesetzt, der den Fangbefehl enthält. Der Fangbefehl wird ausgeführt. Dadurch wird das Benut­ zerprogramm angehalten und das Monitorprogramm aufgeru­ fen. Das Monitorprogramm speichert alle Werte des Pro­ zessorregisters und ersetzt den Fangbefehl durch den ur­ sprünglich, gespeicherten Benutzerbefehl. Der Benutzer­ programmzähler enthält nun den Adreßwert des Speicher­ platzes des nächsten Benutzerprogrammbefehls. Daher kann der Benutzer nun erneut ein weiteres Einzelschrittkomman­ do ausführen, um wieder genau einen Schritt vorwärtszu­ gehen. Dieser Prozeß benutzt einfach einen Unterbre­ chungspunkt, der stets vorsichtig einen Befehl voraus in dem Benutzerprogramm angebracht wird.
Einige Benutzerbefehle benötigen eine leichte Abwandlung des obenerwähnten Betriebsablaufs, wenn ein Einzel­ schrittkommando des Monitors ausgeführt wird. Man stelle sich beispielsweise den Fall vor, daß der als nächstes auszuführende Benutzerbefehl ein bedingter Verzweigungs­ befehl ist, wie das durch die Speicherkarte der Fig. 5 dargestellt ist. Wenn die bedingte Verzweigung 90 aus­ geführt wird, verzweigt das Benutzerprogramm entweder zur Adresse 1005 oder zur Adresse 1006, wie die Bezugs­ zeichen 91 und 92 anzeigen, in Abhängigkeit von dem Wert eines Zeichenbits, das vorher gesetzt worden ist. Daher muß nicht nur ein Fangbefehl an den Speicherplatz 1005 gesetzt werden (nachdem zuerst der Benutzerbefehl dort gespeichert wurde), sondern es muß auch ein weiterer Fangbefehl an die Adresse 1006 geschrieben werden, der durch das Bezugszeichen 92 bezeichnet ist. Auf diese Wei­ se wird auf jeden Fall als nächstes ein Fangbefehl aus­ geführt, unabhängig davon, in welche Richtung der Ver­ zweigungsbefehl abzweigt.
Fig. 5 zeigt auch, warum typischerweise nur Mikroprozes­ soren, die einen Fangbefehl in ihrem Befehlssatz haben, in der Lage sind, ein Einzelschrittmonitorkommando zur Verfügung zu stellen. Man betrachte den Fall, daß ein "rufe Unterprogramm"-Befehl anstelle des Fangbefehls ver­ wendet wird. Der Befehl "rufe Unterprogramm" ist ein Zwei-Wort-Befehl. Obwohl auf diese Weise ein Unterbre­ chungspunkt am Platz 1005 der Fig. 5 durch Einsetzen des Befehlscodes des Aufrufbefehls am Platz 1005 und durch Einsetzen des Arguments dieses Befehlscodes am Platz 1006 eingesetzt werden könnte, würde das Argument durch den Befehlscode des Aufrufbefehls des zweiten Unterbre­ chungspunkts überschrieben werden, wenn dieser bei 1006 eingesetzt würde. Sein Argument befände sich dann an Platz 1007. Die Ausführung des ersten Befehlscodes eines Aufrufbefehls am Platz 1005 würde dann einen Fehler in dem Monitor verursachen. Dieses Problem entsteht nicht, wenn der Fangbefehl zur Implementierung des Einzel­ schrittmonitorkommandos verwendet wird, da es sich bei ihm um einen Einzelwortbefehl handelt.
Viele der üblicherweise verwendeten Mikroprozessoren be­ sitzen eine Vielzahl von Fangbefehlen in ihren Befehls­ sätzen, wobei jeder dieser Fangbefehle auf einen anderen vorbestimmten Platz zeigt. Neuerdings werden jedoch Hochgeschwindigkeits- und Hochleistungsmikroprozessoren für bestimmte Anwendungsfälle, wie z. B. digitale Signal­ verarbeitung mit hoher Geschwindigkeit, verwendet, die einen sog. "begrenzten Befehlssatz" haben. Einige dieser Mikroprozessoren enthalten jedoch keine Fangbefehle, wäh­ rend andere, wie z. B. der Texas Instruments TMS 32020, nur einen Fangbefehl in ihrem Befehlssatz besitzen. Ob­ wohl dieser einzelne Befehl dazu verwendet werden könn­ te, ein Monitorprogramm für ein digitales Signalverarbei­ tungssystem mit dem TMS 32020 zu schreiben, würde dies dazu führen, daß dieser Fangbefehl nicht mehr für die Programme verfügbar wäre, die von den Systemen ausgeführt werden sollten. Es wäre daher sehr wünschenswert, wenn es möglich wäre, ein wirksames Monitorprogramm für ein TMS 32020-System vorzusehen, wobei trotzdem der gesamte beschränkte Befehlssatz für den Benutzer verfügbar bleibt.
Es ist somit Aufgabe der Erfindung, ein Monitorprogramm für ein Mikroprozessorsystem vorzusehen, das keine Fang­ befehle benutzt.
Es ist eine weitere Aufgabe der Erfindung, ein wirkungs­ volles Monitorprogramm für ein System mit einem TMS 32020- Mikroprozessor oder einem Mikroprozessor, der nur einen Fangbefehl aufweist, vorzusehen, wobei der gesamte be­ grenzte Befehlssatz des Mikroprozessors für Benutzer­ programme zur Verfügung steht.
Es ist eine weitere Aufgabe der Erfindung, ein Monitor­ programm für ein System mit einem Mikroprozessor mit be­ grenztem Befehlssatz vorzusehen, das möglichst wenig verfügbaren Speicherplatz benötigt, um die gewünschten Programmüberwachungsfunktionen zu erzielen, und gleich­ zeitig so wenig Zeit wie möglich zur Ausführung der ge­ wünschten Programmüberwachungsfunktionen benötigt.
Kurz gesagt, sieht die Erfindung in Übereinstimmung mit einer Ausführungsform ein Monitorprogramm vor, das ohne die Verwendung von Fangbefehlen arbeitet und trotzdem Fehler durch das Überschreiben des Arguments eines Unter­ brechungspunktbefehls durch den Befehlscode eines ande­ ren Unterbrechungspunktbefehls vermeidet, wenn programm­ gesteuerte Unterbrechungspunkte an aufeinanderfolgenden Adressen eines Benutzerprogramms definiert werden. In der beschriebenen Ausführungsform der Erfindung ist ein Monitorprogramm in einem digitalen Signalverarbeitungs­ system mit einem Mikroprozessor mit begrenztem Befehls­ satz, wie einem TMS 32020 16-Bit-Mikroprozessor, vorge­ sehen, der nur einen Fangbefehl in seinem Befehlssatz umfaßt. Für jede gewünschte Unterbrechungspunktadresse in dem Benutzerprogramm ersetzt der Monitor bei der Aus­ führung seines ersten Ablaufkommandos den Befehl aus dem Benutzerprogramm an der gewünschten Unterbrechungspunkt­ adresse durch den Befehlscode eines Aufrufbefehls. Eben­ so ersetzt er den nachfolgenden Befehl mit dem Argument oder der Adresse, die von dem Aufrufbefehl aufgerufen werden soll. Der Monitor speichert außerdem die beiden ersetzten Benutzerbefehle zwischen. Unter Benutzung des Monitors kann der Benutzer dann das Benutzerprogramm automatisch laufenlassen, bis der erste Aufrufbefehl an der ersten Adresse eines programmgesteuerten Unterbre­ chungspunktes angetroffen wird, und erhält die Adresse des Abschnitts der Monitorroutine, die programmgesteuer­ te Unterbrechungspunkte behandelt. Der Monitor speichert außerdem die Adresse des ersten Unterbrechungspunktes, d. h. den laufenden Inhalt des Programmzählers und die anderen Register des Mikroprozessors auf einem Stack (Stapel) und springt zu dem Abschnitt der Monitorroutine, der die Unterbrechungspunkte behandelt. Das Monitor­ unterprogramm zur Behandlung der Unterbrechungspunkte ersetzt dann den ersten Aufrufbefehl und sein Argument durch die zwei Benutzerbefehle, die ursprünglich ersetzt wurden, und zeigt die Inhalte aller Mikroprozessorregi­ ster zu dem Zeitpunkt an, an dem der Programmzähler des Prozessors die Adresse des ersten Unterbrechungspunktes antraf. Das Monitorprogramm kehrt dann an seinen Anfang zurück, um auf das nächste Monitorkommando zu warten. Wenn ein neues "Monitorablauf"-Kommando eingegeben wird, läßt der Monitor das Benutzerprogramm von dem letzten programmgesteuerten Unterbrechungspunkt an bis zu dem nächsten laufen, an dem der vorige Ablauf wiederholt wird. Um zu verhindern, daß der Befehlscode eines zwei­ ten Aufrufbefehls, der eingefügt wird, um einen zweiten Unterbrechungspunkt an einer zweiten Adresse zu defi­ nieren, das Argument eines ersten Aufrufbefehls über­ schreibt, das dazu dient, den ersten programmgesteuerten Unterbrechungspunkt an einer Adresse zu definieren, die unmittelbar dem zweiten Unterbrechungspunkt vorausgeht, wird der Abschnitt des Monitorprogramms, der die Unter­ brechungspunkte behandelt, in einer Speicheradresse an­ gebracht, die einen Wert besitzt, der dem Befehlscode der Aufrufbefehle entspricht. Dann führt die Ausführung des Monitorprogramms auch dann dazu, daß der Abschnitt des Monitors aufgerufen wird, der Unterbrechungspunkte behandelt, wenn das Argument eines ersten Aufrufbefehls, der einen ersten Unterbrechungspunkt definiert, von dem Befehlscode eines zweiten Aufrufbefehls überschrieben wird, der einen zweiten Unterbrechungspunkt an der nächstfolgenden Adresse nach dem ersten Unterbrechungs­ punkt definiert.
Die Erfindung soll nun anhand der Zeichnun­ gen näher erläutert werden; es zeigt
Fig. 1 ein Blockschaltbild einer digitalen Si­ gnalverarbeitungseinrichtung, die das Monitorprogramm der vorliegenden Erfindung enthält;
Fig. 2 ein Diagramm zur Erläuterung eines Ab­ schnitts der Speicherkarte des Mikroprozessors, der in Fig. 1 enthalten ist, das dazu dient, die Funktion eines typischen Monitorprogramms nach dem Stand der Technik zu erklären, das einen Fangbefehl benutzt;
Fig. 3 eine auszugsweise Speicherkarte des Mikro­ prozessors, der in Fig. 1 enthalten ist, zur Erläuterung verschiedener Probleme, die auftreten, wenn ein Aufruf­ befehl anstelle des Fangbefehls zur Implementierung ei­ nes Monitorprogramms verwendet wird;
Fig. 4 eine auszugsweise Speicherkarte des Mikro­ prozessors in dem System der Fig. 1 zur Erläuterung des Aufbaus des Monitorprogramms der vorliegenden Erfin­ dung;
Fig. 5 ein Speicherkartenbild, das dazu dient, bestimmte Probleme zu beschreiben, die durch die Erfin­ dung gelöst wurden.
Bevor das Monitorprogramm der vorliegenden Erfindung im Detail beschrieben wird, wird es sinnvoll sein, zunächst kurz den Aufbau des digitalen Signalprozessors 1 ent­ sprechend der Fig. 1 zu beschreiben, der das Monitor­ programm der beschriebenen Ausführungsform der Erfindung enthält. Die digitale Signalverarbeitungsschaltung 1 umfaßt einen standardisierten VME-Bus 2, der durch Da­ tenbusleitungen 3 mit einer Übertragungseinrichtung 4 verbunden ist. Diese ist wiederum durch einen lokalen Datenbus 5 und Übertragungseinrichtungen 6 und 21 mit einem Mikroprozessor-Datenbus 8 und einem globalen Daten­ bus 19 verbunden. Der Bus 2 ist durch eine Schaltung 30, einen lokalen Adreßbus 32, einen Puffer 33 und einen Puf­ fer 38 mit dem Mikroprozessor-Adreßbus 34 und dem globa­ len Adreßbus 37 verbunden. Der oben beschriebene TMS- 32020-Mikroprozessor 9, das lokale RAM (Schreib/Lese- Speicher) 10, das PROM (programmierbarer Festwertspei­ cher) 12 und das RAM 13 sind mit dem Adreßbus 34 und dem Datenbus 8 verbunden. Das Monitor-EPROM (elektrisch programmierbarer Festwertspeicher) 11, das das Monitor­ programm der vorliegenden Erfindung speichert, ist eben­ falls mit dem Adreßbus 34 und dem Datenbus 8 verbunden.
Ein globales RAM 20 ist durch einen Puffer 39 und eine Übertragungseinrichtung 22 mit dem I/O-Bus 23 und durch die Puffer 36 bzw. 18 mit dem Adreßbus 34 und dem Daten­ bus 8 verbunden. Die I/O (Eingabe/Ausgabe)-Schnittstel­ lensteuerschaltung 26 steuert die Kommunikation zwischen dem I/O-Bus 23, der Ausgabeschnittstelle 27 und der Ein­ gabeschnittstelle 28.
Die oben beschriebene Ausführungsform eines digitalen Signalprozessors muß digitale Signalverarbeitungsfunk­ tionen für hohe Geschwindigkeit bei maximaler Geschwin­ digkeit und mit einem Minimum an Speicherverbrauch vor­ sehen. Es ist daher wünschenswert, daß das Monitorpro­ gramm von Block 11 so wenig wie möglich Speicherplatz benötigt sowohl in dem EPROM 11 als auch in dem lokalen RAM 10 im Betrieb und trotzdem die Überwachungsaufgaben des Programms mit einer angemessenen Geschwindigkeit ausführen kann.
Die Schnittstellen-Decodierungsschaltung 35 erlaubt dem Mikroprozessor 9 den Zugriff auf eine Terminal­ schnittstelle 15, die eine konventionelle RS 232C-Schnitt­ stelle sein kann. Dadurch wird es dem Benutzer möglich, Programmüberwachungskommandos in den digitalen Signal­ prozessor 1 einzugeben und einfach Unterbrechungspunkte zu definieren, wie dies im folgenden erläutert wird.
Um die Funktion der Erfindung zu verstehen, wird es nütz­ lich sein, noch genauer zu verstehen, wie ein typisches Monitorprogramm des Standes der Technik in dem System der Fig. 1 implementiert werden würde. In Fig. 2 umfaßt die Speicherkarte 45 des TMS 32020-Mikroprozessors 9 ei­ nen Benutzerprogrammabschnitt 46, der mit der hexadezima­ len Adresse 2000 beginnt. (Alle Adressen, die hier in den Beispielen gegeben werden, sind in hexadezimaler Notation.) Das typische Monitorprogramm befindet sich im Abschnitt 47 der Speicherkarte 45, beginnend mit der Adresse E000. Das Monitorprogramm umfaßt einen Hauptteil 47 A und einen Abschnitt 47 B zur Behandlung der Unterbre­ chungspunkte, der mit der Adresse E020 beginnt. Der Ab­ schnitt 47 B zur Bearbeitung der Unterbrechungspunkte (break points) geht bis zu einem Speicherplatz 56, der den Befehl CE26 (RETURN) enthält.
Ein typisches Verfahren zum Setzen der programmierten Un­ terbrechungspunkte (break points) und zum Laufenlassen eines typischen Monitorprogramms des Standes der Technik in dem System von Fig. 1 wird als nächstes beschrieben werden. Zuerst wird der Mikroprozessor nach dem Einschal­ ten eine Adresse 0000 ausgeben, um die erste Instruktion zu holen. Nachdem die Adresse 0000 normalerweise zufälli­ ge Daten enthalten wird, wenn der Mikroprozessor 9 ein­ geschaltet wird, ist eine Decodierungsschaltung vorge­ sehen, um die Adresse 0000 in die Adresse zu übersetzen, die die erste Adresse im ROM (Festwertspeicher) ist. In diesem Fall ist das die Adresse E000. Der Speicherplatz E000 enthält einen Verzweigungsbefehl mit dem Befehls­ code FF80, wie durch das Bezugszeichen 110 in Fig. 2 be­ zeichnet. Das "Argument" des BRANCH-Befehls, d. h. die Adresse, zu der das Programm verzweigen wird, wenn die Bedingung des Verzweigungsbefehls erfüllt ist, ist un­ ter der Adresse E001 enthalten und ist auf die Adresse E002 gesetzt. Dies ist die Adresse des ersten Befehls des Monitorprogramms. Diese Technik sorgt dafür, daß das System automatisch in das Monitorprogramm kommt, nachdem es eingeschaltet worden ist. Dies ist jedoch für den weiteren Betrieb des Systems oder des Monitorprogramms nicht weiter wichtig.
Nach dem Einschalten des Systems wird der Benutzer, der das Monitorprogramm betreiben will, verschiedene, pro­ grammierte Unterbrechungspunkte in dem Benutzerprogramm, das in dem Abschnitt 46 der Speicherkarte 45 gespei­ chert ist, definieren. Wie obenerwähnt, nutzen die ty­ pischen Monitorprogramme des Standes der Technik Fang­ befehle in den Monitorprogrammen, um die programmierten Unterbrechungspunkte zu setzen. Ein Fangbefehl ist ein Ein-Wort-Befehl, der einen festgelegten Vektor enthält. Wenn der Fangbefehl von dem Mikroprozessor 9 angetrof­ fen wird, springt er zu der Adresse, auf die der Fang­ befehl zeigt.
Zur Benutzung des typischen Monitorprogramms, das be­ schrieben wird, definiert der Benutzer zuerst alle ge­ wünschten Unterbrechungspunkte in dem Benutzerprogramm mittels eines "setze Unterbrechungspunkt an Adresse"- Monitorbefehls. Relevante Register des Mikroprozessors werden ebenfalls gesetzt, indem das geeignete Monitor­ kommando "verändere Register" verwendet wird. Insbeson­ dere wird der Programmzähler auf den Adressenwert ge­ setzt, an dem das Benutzerprogramm beginnt. Zu diesem Zweck kann der Benutzer die Adressen der programmierten Unterbrechungspunkte ausdrucken lassen, an denen er die Inhalte aller der verschiedenen Register des Mikro­ prozessors 9 wissen will. Dazu wird ein Monitorbefehl "zeige Unterbrechungspunkte" verwendet.
Dann gibt der Benutzer ein "Monitor ablaufen"-Kommando an das System. Die Ausführung des Monitorablaufbefehls führt dazu, daß der Befehl an der Adresse eines jeden Unterbrechungspunktes durch einen Fangbefehl ersetzt wird. Gleichzeitig wird jeder ersetzte Benutzerbefehl zwischengespeichert. Die Ausführung des Monitorablauf­ befehls veranlaßt dann das Monitorprogramm, in das Be­ nutzerprogramm einzutreten, das in dem Abschnitt 46 der Speicherkarte der Fig. 2 gespeichert ist, um dieses ab­ laufen zu lassen. Das Benutzerprogramm wird an der Adresse 2000 begonnen. Die Befehle des Benutzerprogramms werden abgearbeitet, bis die Adresse des ersten Unter­ brechungspunkts angetroffen wird. In dem Beispiel der Fig. 2 sind die Adressen 2000 und 2001 so dargestellt, daß sie die Instruktion 5500 enthalten. Dies ist der "no op" (keine Funktion)-Befehl des TMS 32020. Dies dient jedoch nur der Vereinfachung der Darstellung. In der Praxis kann eine große Anzahl von verschiedenen Befehlen ausgeführt worden sein, bevor die Adresse des ersten Unterbrechungspunktes angetroffen wird. In dem vorlie­ genden Beispiel wird angenommen, daß die Adresse des ersten Unterbrechungspunktes 2002 ist. Sie enthält in Fig. 2 den Befehl CE1E, den Befehlscode für den Fang­ befehl des TMS 32020.
Dieser Befehl veranlaßt den Mikroprozessor, von der Adresse 2002 zu der Adresse 1E zu springen. Dies ist der voreingestellte Vektor, zu dem der Fangbefehl stets springt, wen er von dem TMS 32020-Mikroprozessor ausge­ führt wird. Der Pfeil 51 in Fig. 2 bezeichnet diesen Sprung von dem Fangbefehl an Adresse 2002. Der Speicher­ platz 1E des Programmspeichers enthält den Befehlscode FF80. Dies ist der Befehlscode für einen Verzweigungs­ befehl. Der Verzweigungsbefehl ist ein Zwei-Wort-Befehl, dessen Argument in der nächsten darauffolgenden Adresse, nämlich der Adresse 1F, enthalten ist. In diesem Bei­ spiel ist das Argument dieses Verzweigungsbefehls die Adresse E020 des Einstiegspunktes des Abschnitts 47 B des Monitorprogramms, der die Unterbrechungspunkte ab­ wickelt.
Wie durch den Pfeil 54 in Fig. 2 angegeben, springt der Mikroprozessor dann an die Adresse E020. Das Monitor­ programm rettet dann die Inhalte von seinen ganzen Regi­ stern in den Stack. (Es gibt zwei Arten von "Stack". Die erste Art ist die des Stacks, der in dem Mikroprozessor­ chip enthalten ist. Bei dem TMS 32020 besteht dieser Stack aus vier Registern, die dazu benutzt werden können, vier verschiedene Werte nach Wunsch zu speichern. Eine zweite Form von Stack ist ein bestimmter Speicherbe­ reich außerhalb des Mikroprozessors, der dazu reserviert ist, damit der Mikroprozessor dort bestimmte Variablen abspeichern kann. Logischerweise kann diese zweite Form von Stack so groß wie gewünscht sein, vorausgesetzt, es ist genügend Speicherplatz vorhanden. Wenn das Monitor­ programm durch einen programmgesteuerten Unterbrechungs­ punkt läuft, speichert der Monitor alle Werte der Mikroprozessorregister im Speicher [der zweiten Form von Stack]. Dies bedeutet, daß ein Monitorbefehl, wie "zeige Register an", diesen Speicherbereich liest und den Inhalt davon anzeigt. Wenn das "run"-Kommando des Monitors ausgeführt wird, um ein Benutzerprogramm aus­ zuführen, läßt der Monitor die ganzen gespeicherten Re­ gisterwerte von dem Speicher zurück in den Prozessor einschließlich des vorher gespeicherten Programmzähler­ standes. Dann startet er die Ausführung des Benutzer­ programms von dem zurückgespeicherten Wert des Programm­ zählers aus. Der SPV 120-Monitor benutzt nur eines der Register des internen Stacks innerhalb des Mikroprozes­ sors. Dieses Hin- und Herschieben aller Mikroprozessor­ registerwerte zwischen dem Mikroprozessor und dem Spei­ cher, wenn ein Benutzerprogramm oder ein Monitorprogramm angehalten oder gestartet wird, ist in der Technik als "Kontext-Umschalten" bekannt.)
Der Monitor führt dann die Befehle des Abschnitts der Monitorroutine zur Behandlung von Unterbrechungspunkten aus, beginnend mit der Adresse E020, und ersetzt den Fangbefehl am Speicherplatz 2002 durch den Benutzerbe­ fehl, der ursprünglich an dieser Adresse abgespeichert war. Er zeigt die gespeicherten Inhalte aller Mikro­ prozessorregister entsprechend der Unterbrechungsstelle 2002 an. Der Monitor kehrt dann an den Anfang seines Hauptabschnitts 47 A zurück und erwartet das nächste Mo­ nitorkommando. Der hier beigefügte Anhang A enthält ei­ ne Liste von Monitorkommandos für den Monitor, der in dem EPROM 11 enthalten ist. Dies ist ein typischer Satz von Monitorbefehlen.
Wenn das nächste Monitorkommando ein Monitorlaufwerk (d. h. "führe Programm aus") ist, springt der Mikroprozes­ sor an die Stelle 2003 des Benutzerprogramms und setzt die Ausführung des Benutzerprogramms fort, bis der nächste Unterbrechungspunkt angetroffen wird. Von diesem Punkt an wiederholt sich die oben beschriebene Prozedur.
Wie obenerwähnt, würde die Benutzung eines typischen Monitors, wie gerade beschrieben, in dem System der Fig. 1 mit einem TMS 32020-Mikroprozessor dem Benutzer die Möglichkeit nehmen, einen Fangbefehl in irgendeinem Benutzerprogramm zu verwenden, da der TMS 32020 nur den einen Fangbefehl kennt, der in dem Monitorprogramm ver­ wendet wird.
In Übereinstimmung mit der vorliegenden Erfindung wird ein Monitorprogramm vorgesehen, das den Fangbefehl nicht benutzt und stattdessen einen Aufrufbefehl verwendet.
Es wird angenommen, daß noch niemand ein Monitorprogramm in einem System vorgesehen hat, das auf dem TMS 32020- Mikroprozessor mit beschränktem Befehlssatz aufgebaut ist, da es unerwünscht ist, dem Benutzer die Möglichkit zur Ausführung von Fangbefehlen zu nehmen, und da der andere Befehl des Befehlssatzes des TMS 32020, der ver­ wendet werden könnte (ein Aufrufbefehl), zwei Speicher­ worte erfordert. Dadurch würde die Menge an Speicher­ platz, die zur Definition von Unterbrechungspunkten er­ forderlich ist, verdoppelt und damit würde die Menge an Speicherplatz, die zur Abspeicherung von Benutzer­ befehlen benötigt wird, die in dem Benutzerprogramm er­ setzt werden müssen, um die Unterbrechungspunkte zu de­ finieren, ebenfalls verdoppelt.
Als nächstes wird mit der Speicherkarte 45 A der Fig. 3 ein Monitorprogramm beschrieben, das Aufrufbefehle an­ stelle von Fangbefehlen enthält, um damit die gewünsch­ ten programmierten Unterbrechungspunkte in dem zu über­ wachenden Benutzerprogramm zu definieren. In der Spei­ cherkarte 45 A der Fig. 3 ist das Benutzerprogramm im Abschnitt 46 enthalten, das Monitorprogramm ist im Ab­ schnitt 47 enthalten und besteht aus einem Hauptab­ schnitt 47 A und einem Abschnitt 47 B zur Bearbeitung der Unterbrechungspunkte. Wie bei dem typischen Monitor­ programm, das im Hinblick auf Fig. 2 beschrieben wurde, zeigt Fig. 3 no-op (keine Funktion)-Befehle, um damit beliebige Befehle zu bezeichnen, die in dem Benutzer­ programm enthalten sein könnten. Es wird angenommen, daß der erste gewünschte Unterbrechungspunkt, der von dem Monitorprogramm in das Benutzerprogramm eingesetzt werden soll, bei Adresse 2002 liegt. Die Adresse 2002 enthält FE80; das ist der Befehlscode für den Aufrufbe­ fehl. Der nächste Speicherplatz, 2003, enthält die Adresse E020, an der in das Unterprogramm 47 B zur Be­ handlung der Unterbrechungspunkte eingetreten wird. Der Pfeil 67 zeigt, wie der Mikroprozessor 9 von der Adresse 2003 zur Adresse E020, dem Eintrittspunkt für die Moni­ torroutine zur Behandlung von Unterbrechungspunkten springt.
Man erkennt leicht, daß die ursprünglichen Benutzerbe­ fehle an den beiden Adressen 2002 und 2003 zwischenge­ speichert werden müssen, damit das Monitorprogramm den Unterbrechungspunkt am Speicherplatz 2002 des Benutzer­ programms definieren kann.
Hier sollte es offensichtlich sein, daß ein Monitorpro­ gramm, das die Unterbrechungspunkte mittels Aufrufbefeh­ len definiert, anstatt Fangbefehle zu verwenden, die Routine 47 B zur Bearbeitung von Unterbrechungspunkten direkt von dem Argument des eingefügten Aufrufbefehls aus betreten wird. Dabei darf aber der nächste Unterbre­ chungspunkt nicht an dem Speicherplatz 2003 definiert sein. Wenn nämlich ein zweiter Unterbrechungspunkt an der Adresse 2003 definiert werden sollte, würde sein FE80-Befehlscode das Argument E020 des ersten Break­ point-Befehls überschreiben, dessen Befehlscode sich an der Adresse 2002 befindet. Daher liegt der nächstge­ legene Unterbrechungspunkt, der definiert werden kann, bei Adresse 2004, an der der Befehlscode FE80, der durch das Bezugszeichen 69 in Fig. 3 bezeichnet wird, gezeigt ist. Sein Argument E020 wird an der Adresse 2005 einge­ fügt; dadurch werden die ursprünglichen Befehle an die­ sen Stellen ersetzt. Um das oben beschriebene Problem weiter zu erläutern, wird angenommen, daß ein dritter Unterbrechungspunkt an der nächsten Adresse 2005 ge­ wünscht wird. Zur Definition dieses Break points auf die weiter oben beschriebene Weise wird das Argument E020 des zweiten Aufrufbefehls, das durch das Bezugszeichen 70 bezeichnet wird, durch den Befehlscode FE80 des drit­ ten Aufrufbefehls, der durch das Bezugszeichen 71 be­ zeichnet wird, überschrieben. Der Pfeil 80 bezeichnet diese Zerstörung der Monitoradresse, die der zweite Auf­ rufbefehl aufrufen sollte.
Wenn das Benutzerprogramm später durch das Monitorpro­ gramm laufengelassen wird, wird das Programm daher nicht an die Monitoradresse E020 springen, wenn der zweite Break point 69 angetroffen wird, sondern es wird statt­ dessen zu einer anderen Adresse FE80 springen, wenn der Programmzähler 2005 erreicht. Dadurch entstehen Be­ triebsfehler.
Um dieses Problem zu lösen, wird die Anordnung verwendet, wie sie in der Speicherkarte 45 B der Fig. 4 dargestellt ist. Dabei wird in Übereinstimmung mit der vorliegenden Erfindung der Abschnitt 47 B des Monitors zur Bearbei­ tung von Break points an der Stelle FE80 anstatt E020 betreten. Dann kann das Argument des Aufrufbefehls, nämlich FE80, mit seinem Operationscode gleichgesetzt werden. Dann enthält die erste Adresse 2002 eines Unter­ brechungspunktes den Aufrufbefehlscode FE80, und sein Argument FE80 ist in Adresse 2003 enthalten. Dies ver­ anlaßt das Monitorprogramm, das Unterprogramm 47 B zur Behandlung von Unterbrechungspunkten an Adresse FE80 aufzurufen.
Wenn ein zweiter Break point an der Adresse 2004 durch den Aufrufbefehl-Befehlscode FE80 definiert wird, wie durch Bezugszeichen 69 A bezeichnet, wird sein Argument FE80, das durch das Bezugszeichen 70 A bezeichnet wird, in Adresse 2005 geschrieben. Wenn ein dritter Unterbre­ chungspunkt an der Adresse 2005 durch den Operations­ code FE80 des Aufrufbefehls definiert wird, wie durch das Bezugszeichen 71 A bezeichnet, wird das Argument 70 A überschrieben (wie durch den Pfeil 80 A bezeichnet) durch den FE80-Befehlscode 71 A des Aufrufbefehls, der den dritten Break point an der Adresse 2005 definiert. Dies geschieht, bevor das Benutzerprogramm und die Subroutine 47 B zur Behandlung der Unterbrechungspunkte jemals ausge­ führt werden. Wenn jedoch das Benutzerprogramm abläuft und der Aufrufbefehl am Speicherplatz 2004 ausgeführt wird, wird der Abschnitt 47 B des Monitors zur Behandlung der Break points korrekt an der Adresse FE80 betreten, da das Argument des zweiten Aufrufbefehls dem Operati­ onscode gleicht, mit dem es überschrieben worden ist.
Normalerweise setzt und löscht das Monitorprogramm alle Unterbrechungspunkte auf einmal. Betrachtet man jedoch einen Benutzer, der zwei Break points in das Benutzer­ programm an den Speicherplätzen 2004 und 2005 eingesetzt hat (durch Ausführung des "setze Break point"-Befehls), so ist der laufende Wert des Zählers des Benutzerpro­ gramms, der in dem Speicherstack des Monitors enthalten ist, 2003. Die Unterbrechungspunkte wurden noch nicht wirklich physikalisch in das Benutzerprogramm eingefügt, aber die Benutzerbefehle an den Speicherplätzen 2004, 2005 und 2006 wurden abgespeichert (durch Ausführung des Befehls "setze Unterbrechungspunkt"). Die Adressen zum Einsetzen eines Break points (2004 und 2005) wurden ebenfalls abgespeichert. Der Benutzer gibt nun das "RUN"- Kommando ein, um sein Programm ablaufen zu lassen. Eine "Kontext-Umschaltung" wird durchgeführt, d. h. alle Werte der Benutzerregister werden von dem Speicherstack des Monitors in den Mikroprozessor geladen. Als nächstes werden alle programmgesteuerten Break points in das Be­ nutzerprogramm hineingeschrieben. Das bedeutet, daß der Code FE80 an die Speicherplätze 2004, 2005 und 2006 ge­ schrieben wird. Dann läßt man das Benutzerprogramm ab­ laufen. Der erste Unterbrechungspunkt wird erreicht und die Steuerung wird an den Monitor zurückgegeben. Der Monitor löscht dann alle Break points, d. h. er ersetzt den Code FE80 an den Speicherplätzen 2004, 2005 und 2006 durch die originalen Benutzerkommandos. Der Be­ nutzer kann dann das RUN-Kommando erneut eingeben.
Daraufhin werden erneut die ganzen Werte der Benutzer­ register von dem Speicherstack in den Mikroprozessor geladen. Jetzt steht jedoch das Programmzählerregister auf 2004. Wenn der Monitor jetzt alle Break points in das Benutzerprogramm schreibt, würde ein erster Break point an dieser Adresse wiederum sofort ausgeführt. Das Benutzerprogramm wäre nicht in der Lage, über den Spei­ cherplatz 2004 hinaus vorzudringen. In diesem Fall schreibt der Monitor jedoch nur einen zweiten Break point am Speicherplatz 2005 physikalisch in das Benut­ zerprogramm. Wenn der zweite Unterbrechungspunkt am Platz 2005 erreicht ist und die Steuerung an den Moni­ tor zurückgegeben wird, löscht der Monitor dann die ganzen Break points durch Wiedereinsetzen der ursprüng­ lichen Benutzerbefehle, wie üblich.
Auf diese Weise setzt oder löscht der Monitor im allge­ meinen alle Break points in einem Ablauf. Wenn jedoch irgendein Platz eines Break points gleich dem laufen­ den Wert des Benutzerprogrammzählers oder dem laufenden Wert des Benutzerprogrammzählers minus Eins ist, wird dieser spezielle Break point nicht gesetzt. (Diese Ausführungsweise wurde freiwillig gewählt und war nicht notwendig. In mancher Hinsicht könnte es verständlich sein, auf dem Standpunkt zu stehen, daß ein Break point immer das Benutzerprogramm an seinem Beginn anhalten wird, wenn ein Benutzer versucht, es zu starten, wäh­ rend die Startanweisung des Benutzerprogramms einen Break point enthält.)
Man beachte, daß ausschließlich der Aufrufbefehl auf die Weise benutzt werden kann, wie es oben beschrieben wird, um programmierte Break points zu definieren. Der Grund liegt darin, daß bei der Ausführung des Aufrufbe­ fehls der laufende Wert des Programmzählers des Mikro­ prozessors auf den Hardwarestack geschrieben wird, der in dem TMS 32020-Mikroprozessor enthalten ist. Das Argu­ ment des Aufrufbefehls wird ann in den Programmzähler des Mikroprozessors eingelesen, so daß das Programm mit der Ausführung der aufgerufenen Subroutine beginnen kann. Man beachte jedoch, daß der ursprüngliche Wert des Programmzählers abgespeichert worden ist. Am Ende des Unterprogramms wird ein Return-Befehl ausgeführt. Dies veranlaßt den Mikroprozessor, den abgespeicherten Programmzählerinhalt aus dem Stack zu holen und ihn in das Programmzählerregister zurückzuladen, so daß das Programm seine Ausführung an genau dem Punkt fortset­ zen kann, an dem es das Unterprogramm aufgerufen hat. Das ist wichtig, wenn das Unterprogramm, das aufgerufen wird, Teil des Monitorprogramms ist. Dies bedeutet, daß das Monitorprogramm jetzt weiß, wo in dem Benutzer­ programm die Subroutine aufgerufen wurde, da es den Stack überprüfen kann, um den gespeicherten Programm­ zählerstand zu erkennen. Andere Anweisungen, wie der Verzweigungsbefehl, veranlassen nicht, daß der laufende Zählerstand hardwaremäßig auf dem Mikroprozessor abge­ speichert wird.
Das oben beschriebene Monitorprogramm hat den Vorteil, daß es dem Benutzerprogramm erlaubt, den gesamten, be­ schränkten Befehlssatz des TMS 32020-Prozessors zu nut­ zen, und verhindert gleichzeitig Fehler beim Monitor­ betrieb, wenn programmierte Unterbrechungspunkte an aufeinanderfolgenden Adressen des Benutzerprogramms ge­ wünscht werden. Beispielsweise könnte ein Benutzer­ programm einen Fangvektor benutzen, indem es ihn initialisiert, so daß er auf den Monitor zeigt. Damit kann der Benutzer, wenn er es wünscht, diesen Fangbe­ fehl in seinem Programm wie einen programmgesteuerten Unterbrechungspunkt benutzen, der dazu führt, daß die Steuerung von dem ablaufenden Benutzerprogramm an den Monitor übergeben wird. Der Benutzer kann jedoch ebenso den Fangbefehl für seine eigenen Zwecke benutzen, z. B. zum Aufruf eines Unterprogramms, indem der die Adresse des Fangvektors so verändert, daß sie auf seine eigene Subroutine zeigt.
Dies ist besonders wichtig für die Implementation eines Einzelschrittkommandos des Monitors. Wie oben beschrie­ ben, erlaubt ein Einzelschrittkommando des Monitors, daß jeder Befehl des Benutzerprogramms einzeln ausge­ führt werden kann. Normalerweise kann dieses Monitor­ kommando nicht in Programmen vorgesehen werden, wenn die Monitorprogramme auf einem Mikroprozessor laufen, dessen Befehlssatz keinen Fangbefehl enthält.
Wenn der Befehlssatz des Mikroprozessors einen Fang­ befehl enthält, wird der Fangbefehl normalerweise dazu benutzt, das Einzelschritt-Monitorkommando zu implemen­ tieren. Auf diese Weise wird der Benutzer daran gehin­ dert, den Fangbefehl in seinem Benutzerprogramm zu ver­ wenden.
Für die Erfindung sind bedeutsam die Abschnitte 10 bis 15, 31 und 35 der Speicherkarte in den Fig. 1 bis 5.

Claims (12)

1. Verfahren zur Überwachung der Ausführung eines Benutzerprogramms durch einen Prozessor ohne Benutzung von Fangbefehlen, gekennzeichnet durch die folgenden Schritte:
  • (a) Definieren eines ersten programmierten Unter­ brechungspunktes an einer ersten Adresse in dem Benut­ zerprogramm durch
    • 1. Zwischenspeicherung der Befehle an der ersten Adresse und der Adresse, die unmittelbar auf die erste Adresse folgt,
    • 2. Schreiben des Befehlscodes eines ersten Aufrufbefehls in die erste Adresse und Schreiben des Befehlscodes des ersten Aufrufbefehls in die Adresse, die unmittelbar auf die erste Adresse folgt, wobei auf diese Weise das Argument des ersten Aufrufbefehls sei­ nem Befehlscode gleicht;
  • (b) Ausführen des Benutzerprogramms bis zum Er­ reichen der ersten Adresse und Ausführung des Befehls­ codes des ersten Aufrufbefehls;
  • (c) Springen zu einer Adresse, die dem op-Code entspricht und die als Argument des ersten Aufrufbe­ fehls dient, und Eintreten in ein Monitorunterprogramm in dieser Adresse;
  • (d) Ausführung des Monitorunterprogramms durch
    • 1. Abspeichern des Programmzählers und der Inhalte der anderen Register des Prozessors entsprechend dem ersten programmierten Unterbrechungspunkt,
    • 2. Ersetzen des ersten und zweiten Befehls an der ersten Adresse und der Adresse, die unmittelbar darauf folgt, und
    • 3. Anzeige des gespeicherten Programmzählers und der gespeicherten Inhalte der anderen Register ent­ sprechend dem ersten Unterbrechungspunkt.
2. Verfahren nach Anspruch 1, gekennzeichnet durch Definition einer Vielzahl von zusätzlichen, programmier­ ten Unterbrechungspunkten in Übereinstimmung mit Schritt (a) an einer Vielzahl von zusätzlichen Adressen vor Ausführung des Schrittes (b).
3. Verfahren nach Anspruch 2, dadurch gekennzeich­ net, daß der Prozessor ein Mikroprozessor ist, der nur einen Fangbefehl in einem Befehlssatz besitzt, so daß ein Benutzer jetzt die Ausführung des Benutzerprogramms durch den Prozessor auch dann überwachen kann, wenn das Benutzerprogramm Fangbefehle enthält.
4. Verfahren nach Anspruch 3, dadurch gekennzeich­ net, daß Schritt (a) aufgrund der Eingabe eines Moni­ torbefehls "definiere Unterbrechungspunkt an Adresse" in den Prozessor mittels eines Terminals ausgeführt wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeich­ net, daß nach Schritt (d) der weitere Schritt eingefügt wird, das Monitorunterprogramm so zu betreiben, daß es an einen Speicherplatz zurückkehrt, an dem es ein neues Monitorablaufkommando erwartet, und aufgrund eines neuen Monitorablaufkommandos, das von einem Benutzer über das Terminal eingegeben wird, die Schritte (b) bis (d) wie­ derholt, um das Benutzerprogramm weiter abzuarbeiten, bis eine zweite Adresse erreicht wird, an der ein zwei­ ter programmierter Unterbrechungspunkt definiert ist.
6. System zur Überwachung der Ausführung eines Be­ nutzerprogramms durch einen Prozessor ohne Benutzung von Fangbefehlen, gekennzeichnet durch:
  • (a) eine Vorrichtung zur Definition eines ersten programmierten Unterbrechungspunktes an einer ersten Adres­ se (2002) in dem Benutzerprogramm;
  • (b) eine Vorrichtung, die den Prozessor (9) da­ zu veranlaßt, den Befehlscode (FE80) eines ersten Auf­ rufbefehls in die erste Adresse (2002) zu schreiben;
  • (c) eine Vorrichtung, die den Prozessor (9) ver­ anlaßt, den Befehlscode (FE80) des ersten Aufrufbefehls in die Adresse (2003) zu schreiben, die unmittelbar auf die erste Adresse (2002) folgt, so daß das Argument des ersten Aufrufbefehls seinem Befehlscode (FE80) ent­ spricht;
  • (d) eine Vorrichtung, die den Prozessor (9) ver­ anlaßt, die Befehle an der ersten Adresse (2002) und der Adresse (2003), die unmittelbar auf die erste Adresse (2002) folgt, zwischenzuspeichern;
  • (e) eine Vorrichtung, die den Prozessor (9) ver­ anlaßt, das Benutzerprogramm abzuarbeiten, bis die erste Adresse (2002) erreicht ist, und eine Vorrichtung, die den Prozessor (9) veranlaßt, den Befehlscode (FE80) des ersten Aufrufbefehls auszuführen;
  • (f) eine Vorrichtung zur Speicherung eines Moni­ torunterprogramms (47 B) an einer Adresse (FE80), die dem Befehlscode (FE80) des ersten Aufrufbefehls ent­ spricht;
  • (g) eine Vorrichtung, die den Prozessor (9) ver­ anlaßt, an eine Adresse (FE80) zu springen, die dem Be­ fehlscode (FE80) in dem Argument des ersten Aufrufbe­ fehls entspricht, damit er ins Monitorunterprogramm (47 B) an dieser Adresse (FE80) eintritt;
  • (h) eine Vorrichtung, die den Prozessor (9) ver­ anlaßt, den ersten Befehl auszuführen, den Programm­ zähler und die Inhalte der anderen Register des Prozes­ sors (9) entsprechend dem ersten programmierten Unter­ brechungspunkt zu speichern und den ersten und den zwei­ ten Befehl an der ersten Adresse (2002) und der Adresse (2003), die unmittelbar darauf folgt, zu ersetzen; und
  • (i) eine Vorrichtung zur Anzeige des gespeicher­ ten Programmzählers und der gespeicherten Inhalte der anderen Register entsprechend dem ersten Unterbrechungs­ punkt.
7. System nach Anspruch 6, dadurch gekennzeichnet, daß die Definitionsvorrichtung eine Vielzahl von zusätz­ lichen, programmierten Unterbrechungspunkten in Über­ einstimmung mit Schritt (a) an einer Vielzahl von zu­ sätzlichen Adressen definiert, bevor das Benutzerpro­ gramm ausgeführt wird.
8. System nach Anspruch 7, dadurch gekennzeichnet, daß der Prozessor (9) ein Mikroprozessor ist, der nur einen Fangbefehl in seinem Befehlssatz enthält, so daß der Benutzer jetzt trotzdem die Ausführung eines Be­ nutzerprogramms durch den Prozessor (9) überwachen kann, wenn das Benutzerprogramm Fangbefehle umfaßt.
9. System nach Anspruch 8, dadurch gekennzeichnet, daß ein Terminal mit dem Prozessor (9) verbunden ist, um die Eingabe eines Monitorbefehls "definiere Unter­ brechungspunkt an Adresse" und eines Einzelschritt- Monitorbefehls in den Prozessor (9) zu bewirken.
10. System nach Anspruch 9, gekennzeichnet durch eine Vorrichtung, die das Monitorunterprogramm (47 B) nach der Anzeige dazu veranlaßt, an einen Speicherplatz zu­ rückzukehren, an dem das Monitorunterprogramm (47 B) ei­ nen neuen Monitorlaufbefehl erwartet, und eine Vorrich­ tung, die aufgrund eines neuen Monitorlaufbefehls, der von einem Benutzer über das Terminal eingegeben wurde, das Benutzerprogramm abarbeitet, bis eine zweite Adresse erreicht wird, an der ein zweiter programmgesteuerter Unterbrechungspunkt definiert ist.
11. Verfahren zur Überwachung der Ausführung eines Benutzerprogramms durch einen Prozessor ohne Benutzung von Fangbefehlen, gekennzeichnet durch folgende Schrit­ te:
  • (a) Definition einer Vielzahl von programmierten Unterbrechungspunkten an einer Vielzahl von vorgewähl­ ten Adressen in dem Benutzerprogramm;
  • (b) Speicherung der Anweisungen in dem Benutzer­ programm an jeder der vorgewählten Adressen und an den Adressen, die jeweils jeder vorgewählten Adresse un­ mittelbar folgen;
  • (c) Speicherung des Wertes einer jeden vorge­ wählten Adresse;
  • (d) Schreiben des Befehlscodes eines Aufrufbe­ fehls in jeder der vorausgewählten Adressen und der Adressen, die unmittelbar einer dieser Adressen folgen, so lange diese vorgewählte Adresse nicht gleich dem laufenden Wert des Programmzählers des Benutzerprogramms ist;
  • (e) Ausführung des Benutzerprogamms, bis ein nächster der Unterbrechungspunkte angetroffen wird, und Abspeichern des Programmzählers und des Inhalts der anderen Register des Programms entsprechend diesem Unterbrechungspunkt;
  • (f) Schreiben einer jeden gespeicherten Anweisung in ihre ursprüngliche Adresse; und
  • (g) Anzeigen des abgespeicherten Programmzählers und der Registerinhalte.
12. System zur Überwachung der Ausführung eines Be­ nutzerprogramms durch einen Prozessor ohne Benutzung von Fangbefehlen, gekennzeichnet durch:
  • (a) eine Vorrichtung zur Definition einer Viel­ zahl von programmierten Unterbrechungspunkten an einer Vielzahl von vorher ausgewählten Adressen in dem Be­ nutzerprogramm;
  • (b) eine Vorrichtung zum Abspeichern der Befehle in dem Benutzerprogramm an jeder der vorherbestimmten Adressen und an der Adresse, die unmittelbar auf jede vorher ausgewählte Adresse folgt;
  • (c) eine Vorrichtung zur Speicherung des Wertes einer jeden der vorher ausgewählten Adressen;
  • (d) eine Vorrichtung zum Schreiben des Befehls­ codes eines Aufrufbefehls in jede der vorher ausgewähl­ ten Adressen und in die Adresse, die dieser Adresse un­ mittelbar folgt, ausgenommen, daß die vorher ausgewähl­ te Adresse gleich dem laufenden Wert des Programmzäh­ lers des Benutzerprogramms ist;
  • (e) eine Vorrichtung zur Ausführung des Benutzer­ programms, bis ein nächster der Unterbrechungspunkte er­ reicht wird, und zur Speicherung des Programmzählerstan­ des und des Inhalts der anderen Register des Programms, die diesem Unterbrechungspunkt entsprechen;
  • (f) eine Vorrichtung zum Schreiben einer jeden gespeicherten Instruktion an ihre ursprüngliche Adresse;
  • (g) eine Vorrichtung zur Anzeige des gespeicher­ ten Programmzählerstandes und der Registerinhalte.
DE19873732808 1986-10-27 1987-09-29 Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm Ceased DE3732808A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB08625667A GB2197506A (en) 1986-10-27 1986-10-27 Providing and handling break points in a software monitor

Publications (1)

Publication Number Publication Date
DE3732808A1 true DE3732808A1 (de) 1988-05-26

Family

ID=10606376

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19873732808 Ceased DE3732808A1 (de) 1986-10-27 1987-09-29 Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm

Country Status (5)

Country Link
US (1) US4866665A (de)
JP (1) JPS63115245A (de)
DE (1) DE3732808A1 (de)
FR (1) FR2606903B1 (de)
GB (1) GB2197506A (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127103A (en) * 1987-10-14 1992-06-30 North American Philips Corporation Real-time tracing of dynamic local data in high level languages in the presence of process context switches
JP2982875B2 (ja) * 1987-12-28 1999-11-29 株式会社日立製作所 スレーブ制御装置
JPH01241636A (ja) * 1988-03-17 1989-09-26 Internatl Business Mach Corp <Ibm> データ処理システム
GB2217061A (en) * 1988-03-23 1989-10-18 Benchmark Technologies Data processing system debugging
US5121489A (en) * 1988-08-02 1992-06-09 International Business Machines Corporation Tracing method for identifying program execution paths using a trace points bit map with one-to-one correspondence with embedded trace points
US5067073A (en) * 1988-08-02 1991-11-19 International Business Machines Corporation Embedded tracing method for identifying program executed paths
JPH02199548A (ja) * 1988-11-09 1990-08-07 Asea Brown Boveri Ag 電算機系で作成されるオブジエクト・プログラムの時間経過を観察する方法とこの方法を実行する観測器具
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
US5327567A (en) * 1989-11-16 1994-07-05 Texas Instruments Incorporated Method and system for returning emulated results from a trap handler
US5109504A (en) * 1989-12-29 1992-04-28 Texas Instruments Incorporated Graphics program adaptor
US5050168A (en) * 1989-12-29 1991-09-17 Paterson Timothy L Test coverage analyzer
JP2777496B2 (ja) * 1991-02-28 1998-07-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法
US5239642A (en) * 1991-04-02 1993-08-24 Motorola, Inc. Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices
US5333304A (en) * 1991-05-03 1994-07-26 International Business Machines Corporation Method and apparatus for software application evaluation utilizing compiler applications
JP2505950B2 (ja) * 1991-05-13 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション ハ―ドウェア支援ブレ―クポイント・システム
DE69229657T2 (de) * 1991-06-19 1999-12-02 Hewlett Packard Co Co-Prozessor unterstützende Architektur für einen Prozessor, der keine Zusatzprozessorfähigkeit hat
US5355484A (en) * 1991-08-12 1994-10-11 International Business Machines Corporation Dynamically established event monitors in event management services of a computer system
US5237684A (en) * 1991-08-12 1993-08-17 International Business Machines Corporation Customized and versatile event monitor within event management services of a computer system
US5305454A (en) * 1991-08-12 1994-04-19 International Business Machines Corporation Notification of event handlers in broadcast or propagation mode by event management services in a computer system
US5625821A (en) * 1991-08-12 1997-04-29 International Business Machines Corporation Asynchronous or synchronous operation of event signaller by event management services in a computer system
DE69228980T2 (de) * 1991-12-06 1999-12-02 Nat Semiconductor Corp Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
JP2513417B2 (ja) * 1993-07-05 1996-07-03 日本電気株式会社 情報処理装置
US5784552A (en) * 1993-07-28 1998-07-21 Digital Equipment Corporation Debugging a computer program by simulating execution forwards and backwards in a main history log and alternative history logs
CA2134059C (en) * 1993-10-29 2009-01-13 Charles Simonyi Method and system for generating a computer program
US5485574A (en) * 1993-11-04 1996-01-16 Microsoft Corporation Operating system based performance monitoring of programs
US6263488B1 (en) * 1993-12-03 2001-07-17 International Business Machines Corporation System and method for enabling software monitoring in a computer system
JPH07182182A (ja) * 1993-12-21 1995-07-21 Mitsubishi Electric Corp システムコール情報採取装置
US5471526A (en) * 1994-02-28 1995-11-28 Telefonaktiebolaget L M Ericsson (Publ.) Tracing with keys and locks on a telecommunication network
US5615371A (en) * 1994-04-28 1997-03-25 Nec Corporation Debug processing system for user programs
US5528753A (en) * 1994-06-30 1996-06-18 International Business Machines Corporation System and method for enabling stripped object software monitoring in a computer system
US5687375A (en) * 1994-10-14 1997-11-11 International Business Machines Corporation Debugging of High Performance Fortran programs with backup breakpoints
US6026236A (en) * 1995-03-08 2000-02-15 International Business Machines Corporation System and method for enabling software monitoring in a computer system
US5678003A (en) * 1995-10-20 1997-10-14 International Business Machines Corporation Method and system for providing a restartable stop in a multiprocessor system
US5758061A (en) * 1995-12-15 1998-05-26 Plum; Thomas S. Computer software testing method and apparatus
US5826005A (en) * 1996-03-22 1998-10-20 Sun Microsystems, Inc. System and method for diagnosing computer program faults through the provision of program probe points and referenceable diagnostic program probes
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6205550B1 (en) * 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
GB9626401D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Diagnostic procedures in an integrated circuit device
JPH10214203A (ja) * 1997-01-29 1998-08-11 Nec Corp 情報処理装置
US6314562B1 (en) * 1997-09-12 2001-11-06 Microsoft Corporation Method and system for anticipatory optimization of computer programs
US6106571A (en) * 1998-01-29 2000-08-22 Applied Microsystems Corporation Relocatable instrumentation tags for testing and debugging a computer program
US6249907B1 (en) 1998-03-24 2001-06-19 International Business Machines Corporation Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program
US6182208B1 (en) * 1998-08-14 2001-01-30 Lucent Technologies, Inc. System for debugging (N) break points by dividing a computer program to (n+1) regions each contains no break point and using two registers to define the start and end addresses of each region
EP0992906B1 (de) * 1998-10-06 2005-08-03 Texas Instruments Inc. Vorrichtung und Verfahren für einen Software-Haltepunkt während eines Verzögerungsschlitzes
JP2001147837A (ja) * 1999-11-18 2001-05-29 Fujitsu Ltd プログラムトレース装置及び記憶媒体
US6948095B2 (en) * 2000-04-20 2005-09-20 Stmicroelectronics Limited Methods and apparatus for dynamically loading a file on a target computer system
GB0009943D0 (en) * 2000-04-20 2000-06-07 Sgs Thomson Microelectronics Operating a computer system
US7644394B2 (en) * 2001-11-30 2010-01-05 International Business Machines Corporation Object-oriented creation breakpoints
US7398519B2 (en) * 2001-11-30 2008-07-08 International Business Machines Corporation Inheritance breakpoints for use in debugging object-oriented computer programs
CA2383832A1 (en) * 2002-04-24 2003-10-24 Ibm Canada Limited-Ibm Canada Limitee System and method for intelligent trap analysis
US7290081B2 (en) * 2002-05-14 2007-10-30 Stmicroelectronics, Inc. Apparatus and method for implementing a ROM patch using a lockable cache
DE10352172A1 (de) * 2003-11-05 2005-06-09 Robert Bosch Gmbh Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen
US7652995B2 (en) * 2003-12-19 2010-01-26 International Business Machines Corporation Autonomic reassociation of clients in a wireless local area network
CN102096629B (zh) * 2009-12-14 2013-09-25 华为技术有限公司 经过性断点设置、调试方法和装置
CN108874570B (zh) * 2017-05-10 2022-02-18 鸿秦(北京)科技有限公司 一种cpu程序跑飞的鉴别方法、装置及soc系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4080650A (en) * 1976-07-28 1978-03-21 Bell Telephone Laboratories, Incorporated Facilitating return from an on-line debugging program to a target program breakpoint

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3415981A (en) * 1967-10-10 1968-12-10 Rca Corp Electronic computer with program debugging facility
US3551659A (en) * 1969-05-05 1970-12-29 Charles O Forsythe Method for debugging computer programs
CA1004363A (en) * 1972-02-28 1977-01-25 Edward Dillingham Method and means for reading numerals
US3987420A (en) * 1973-12-28 1976-10-19 Ing. C. Olivetti & C., S.P.A. Electronic computer with equipment for debugging operative programs
US4028663A (en) * 1974-06-05 1977-06-07 Bell Telephone Laboratories, Incorporated Digital computer arrangement for high speed memory access
JPS5428248B2 (de) * 1974-10-21 1979-09-14
US4205370A (en) * 1975-04-16 1980-05-27 Honeywell Information Systems Inc. Trace method and apparatus for use in a data processing system
US4074353A (en) * 1976-05-24 1978-02-14 Honeywell Information Systems Inc. Trap mechanism for a data processing system
JPS547252A (en) * 1977-06-20 1979-01-19 Hitachi Ltd Program control system
FR2428284A1 (fr) * 1978-06-07 1980-01-04 Ibm France Systeme de selection de circuit d'interface prioritaire
US4558412A (en) * 1978-12-26 1985-12-10 Honeywell Information Systems Inc. Direct memory access revolving priority apparatus
US4308581A (en) * 1979-09-28 1981-12-29 Motorola Inc. Single step system for a microcomputer
JPS5666971A (en) * 1979-11-05 1981-06-05 Dainippon Screen Mfg Co Ltd Picture data compressing method
FR2482331B1 (fr) * 1980-05-06 1986-03-21 Thomson Csf Mat Tel Procede d'arbitration centralisee, et arbitreur centralise pour systeme multiprocesseur
JPS5798053A (en) * 1980-12-11 1982-06-18 Mitsubishi Electric Corp Device for debagging
US4453214A (en) * 1981-09-08 1984-06-05 Sperry Corporation Bus arbitrating circuit
JPS5851388A (ja) * 1981-09-22 1983-03-26 Ricoh Co Ltd 方向コ−ド割付け方法
FR2513407B1 (fr) * 1981-09-24 1987-01-16 Finger Ulrich Systeme d'arbitrage des demandes d'acces de plusieurs processeurs a des ressources communes, par l'intermediaire d'un bus commun
US4525860A (en) * 1982-01-04 1985-06-25 At&T Bell Laboratories Character recognition arrangement
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4506322A (en) * 1982-02-22 1985-03-19 Texas Instruments Incorporated Read/write memory cell for microcomputer
US4498135A (en) * 1982-02-22 1985-02-05 Texas Instruments Incorporated Microcomputer with accumulator addressing
US4586131A (en) * 1982-02-22 1986-04-29 Texas Instruments Incorporated Microcomputer having data move circuits for within-memory shift of data words
US4536839A (en) * 1982-03-30 1985-08-20 Mai Basic Four, Inc. Memory request arbitrator
JPS59111561A (ja) * 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
JPS59174955A (ja) * 1983-03-25 1984-10-03 Fujitsu Ltd 情報処理装置の分岐命令デバツグ方式
JPS6024653A (ja) * 1983-07-21 1985-02-07 Fujitsu Ltd デバツク装置
US4691278A (en) * 1984-04-23 1987-09-01 Nec Corporation Data processor executing microprograms according to a plurality of system architectures
US4635193A (en) * 1984-06-27 1987-01-06 Motorola, Inc. Data processor having selective breakpoint capability with minimal overhead

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4080650A (en) * 1976-07-28 1978-03-21 Bell Telephone Laboratories, Incorporated Facilitating return from an on-line debugging program to a target program breakpoint

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Puttkammer, Hans-Peter, Debug-Monitor für PC: Werkzeug für Einsteiger und Profis in: Elektronik 2/24.1.1986, S. 89-92 *

Also Published As

Publication number Publication date
JPS63115245A (ja) 1988-05-19
GB8625667D0 (en) 1986-11-26
US4866665A (en) 1989-09-12
FR2606903A1 (fr) 1988-05-20
GB2197506A (en) 1988-05-18
FR2606903B1 (fr) 1990-09-28

Similar Documents

Publication Publication Date Title
DE3732808A1 (de) Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm
EP1146432B1 (de) Umkonfigurierungs-Verfahren für programmierbare Bausteine während der Laufzeit
DE4331703C2 (de) Elektronische Einrichtung
DE2753062C2 (de) Einrichtung zur wiederholten Durchführung von Programmschleifen
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2718110A1 (de) Datenverarbeitungseinheit
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
DE3507584C2 (de)
DE4411389C2 (de) Programmierbare Steuereinheit und Betriebsverfahren
DE4106164A1 (de) Verfahren zum suchen und beseitigen von programmfehlern durch ausfuehren eines blockmodenlaufes
DE4223454A1 (de) Datenuebertragungssystem fuer eine digitale signalverarbeitungsvorrichtung
DE10026145A1 (de) Programmierbare Steuereinheit
DE2725077A1 (de) Ueberwachungssystem fuer eine datenverarbeitungsanlage
DE4445651A1 (de) Verfahren zur Steuerung von technischen Vorgängen
DE3121046C2 (de)
DE3323824A1 (de) Speicherprogrammierbare steuerung
DE2245284A1 (de) Datenverarbeitungsanlage
DE3410497A1 (de) Rechneranordnung
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE2500841A1 (de) Verfolgungseinrichtung
DE3104256C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection