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 monitorprogrammInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
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.
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)
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 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ハ―ドウェア支援ブレ―クポイント・システム |
EP0519348B1 (de) * | 1991-06-19 | 1999-07-28 | Hewlett-Packard Company | Co-Prozessor unterstützende Architektur für einen Prozessor, der keine Zusatzprozessorfähigkeit hat |
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 |
US5355484A (en) * | 1991-08-12 | 1994-10-11 | International Business Machines Corporation | Dynamically established event monitors in event management services of a computer system |
DE69228980T2 (de) * | 1991-12-06 | 1999-12-02 | National Semiconductor Corp., Santa Clara | 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 |
CA2643234C (en) * | 1993-10-29 | 2012-05-15 | Microsoft Corporation | 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 |
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 |
US6175925B1 (en) | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
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)
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)
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 |
US4498135A (en) * | 1982-02-22 | 1985-02-05 | Texas Instruments Incorporated | Microcomputer with accumulator addressing |
US4506322A (en) * | 1982-02-22 | 1985-03-19 | Texas Instruments Incorporated | Read/write memory cell for microcomputer |
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 | デバツク装置 |
EP0159699A3 (de) * | 1984-04-23 | 1988-09-28 | Nec Corporation | Datenverarbeitungsanlage zur Ausführung von Mikroprogrammen entsprechend einer Vielzahl von Systemarchitekturen |
US4635193A (en) * | 1984-06-27 | 1987-01-06 | Motorola, Inc. | Data processor having selective breakpoint capability with minimal overhead |
-
1986
- 1986-10-27 GB GB08625667A patent/GB2197506A/en not_active Withdrawn
-
1987
- 1987-04-01 US US07/033,176 patent/US4866665A/en not_active Expired - Fee Related
- 1987-06-26 FR FR878709053A patent/FR2606903B1/fr not_active Expired - Fee Related
- 1987-07-24 JP JP62185318A patent/JPS63115245A/ja active Pending
- 1987-09-29 DE DE19873732808 patent/DE3732808A1/de not_active Ceased
Patent Citations (1)
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)
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 |
---|---|
US4866665A (en) | 1989-09-12 |
FR2606903A1 (fr) | 1988-05-20 |
JPS63115245A (ja) | 1988-05-19 |
FR2606903B1 (fr) | 1990-09-28 |
GB8625667D0 (en) | 1986-11-26 |
GB2197506A (en) | 1988-05-18 |
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 | |
DE68923888T2 (de) | Speicherprogrammierbare Steuerung mit gespeichertem markierten Quellencode. | |
DE2753062C2 (de) | Einrichtung zur wiederholten Durchführung von Programmschleifen | |
DE69331292T2 (de) | Elektronisches Gerät und Verfahren zur festen Informationsmodifikation | |
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 | |
DE69128908T2 (de) | Verfahren zum Durchführen von erlässlichen Befehlen in einem Rechner | |
DE69033031T2 (de) | Programmierbares Steuergerät | |
DE10026145A1 (de) | Programmierbare Steuereinheit | |
DE2725077A1 (de) | Ueberwachungssystem fuer eine datenverarbeitungsanlage | |
DE4445651A1 (de) | Verfahren zur Steuerung von technischen Vorgängen | |
DE3121046C2 (de) | ||
EP0130269A2 (de) | Speicherprogrammierbare Steuerung | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE3410497A1 (de) | Rechneranordnung | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
DE69032835T2 (de) | Prozedurzustandsdeskriptorsystem für digitale Datenprozessoren | |
DE2500841A1 (de) | Verfolgungseinrichtung | |
DE3104256C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |