JP2000284984A - Debug system and information storage medium - Google Patents

Debug system and information storage medium

Info

Publication number
JP2000284984A
JP2000284984A JP11092427A JP9242799A JP2000284984A JP 2000284984 A JP2000284984 A JP 2000284984A JP 11092427 A JP11092427 A JP 11092427A JP 9242799 A JP9242799 A JP 9242799A JP 2000284984 A JP2000284984 A JP 2000284984A
Authority
JP
Japan
Prior art keywords
information
address
branch destination
target system
absolute branch
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.)
Granted
Application number
JP11092427A
Other languages
Japanese (ja)
Other versions
JP3711438B2 (en
Inventor
Makoto Kudo
真 工藤
Tsutomu Nakayama
力 中山
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP09242799A priority Critical patent/JP3711438B2/en
Publication of JP2000284984A publication Critical patent/JP2000284984A/en
Application granted granted Critical
Publication of JP3711438B2 publication Critical patent/JP3711438B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

PROBLEM TO BE SOLVED: To realize real time trace on mass production chips with a small number of terminals, and to attain trace even when an absolute branch instruction is executed continuously or with short intervals. SOLUTION: This system 20 is a debug system for outputting status information indicating the execution state of a CPU 12 and the trace information of a target system to device an absolute branch destination address and output them. In this case, this system includes a trace information generating part 27 which generates trace information by specifying a part other than one part of the absolute branch destination addresses based on at least one of information related with an address area in which a program to be executed by the target system is present and the status information received from the target system at the time of receiving one part of the absolute branch destination addresses from the target system.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、デバッグシステム
及びデバッグシステムに用いる情報記憶媒体に関する。
The present invention relates to a debugging system and an information storage medium used for the debugging system.

【0002】[0002]

【背景技術及び発明が解決しようとする課題】近年、ゲ
ーム装置、カーナビゲーションシステム、プリンタ、携
帯情報端末などの電子機器に組み込まれ、高度な情報処
理を実現できるマイクロコンピュータに対する需要が高
まっている。このような組み込み型のマイクロコンピュ
ータは、通常、ターゲットシステムと呼ばれるユーザボ
ードに実装される。このターゲットシステムを動作させ
るソフトウェアの開発を支援するためにICE(In-Cir
cuit Emulator)と呼ばれるソフトウェア開発支援ツー
ルが広く使用されている。
2. Description of the Related Art In recent years, there has been an increasing demand for microcomputers that are incorporated in electronic devices such as game machines, car navigation systems, printers, and personal digital assistants, and that can implement advanced information processing. Such an embedded microcomputer is usually mounted on a user board called a target system. In order to support the development of software that operates this target system, ICE (In-Cir
A software development support tool called cuit emulator) is widely used.

【0003】さて、このようなICEとしては、従来、
図1に示すようなCPU置き換え型と呼ばれるICEが
主流を占めていた。このCPU置き換え型ICEでは、
デバッグ時にターゲットシステム300からマイクロコ
ンピュータ302を取り外し、その代わりにデバッグツ
ール304のプローブ306を接続する。そして、この
デバッグツール304に、取り外したマイクロコンピュ
ータ302の動作をエミュレートさせる。また、このデ
バッグツール304に、トレース情報の取得やデバッグ
のために必要な種々の処理を行わせる。
[0003] Conventionally, such ICE has been
An ICE called a CPU replacement type as shown in FIG. 1 occupied the mainstream. In this CPU replacement type ICE,
At the time of debugging, the microcomputer 302 is detached from the target system 300, and a probe 306 of the debugging tool 304 is connected instead. Then, the debug tool 304 emulates the operation of the detached microcomputer 302. Also, the debug tool 304 performs various processes necessary for acquiring and debugging trace information.

【0004】しかしながら、このCPU置き換え型IC
Eでは、マイクロコンピュータ302の内部動作周波数
が上がるとプローブ306やトレース情報を格納するバ
ッファで生じる信号の遅延によりリアルタイムトレース
が困難になる。
However, this CPU replacement type IC
In E, when the internal operating frequency of the microcomputer 302 increases, real-time tracing becomes difficult due to a delay of a signal generated in the probe 306 or a buffer for storing trace information.

【0005】このような問題を解決するために量産チッ
プ上でリアルタイムトレースを可能にするシステムの開
発が行われている。このとき、トレース情報としてアド
レスバス等の情報をリアルタイムにトレースバッファに
格納しようとすると数十本の専用端子が必要となる。こ
こにおいて、係る端子はデバッグ時のみ必要な物で、エ
ンドユーザーにとっては不要なものであるから、より少
ないほうが好ましい。
In order to solve such a problem, a system which enables real-time tracing on a mass-produced chip has been developed. At this time, if information such as an address bus is to be stored in the trace buffer in real time as trace information, several tens of dedicated terminals are required. Here, such terminals are necessary only at the time of debugging and are unnecessary for the end user.

【0006】そこで、本出願人はリアルタイムトレース
を実現するためのトレース情報を専用4端子に出力し、
このトレース情報からリアルタイムトレースを可能にす
るシステムを開発している。
Therefore, the present applicant outputs trace information for realizing a real-time trace to four dedicated terminals,
We are developing a system that enables real-time tracing from this trace information.

【0007】具体的には毎クロック毎にCPUの実行ス
テータス情報を3端子に出力し、また絶対分岐命令等に
より絶対分岐が発生すると続く27クロックサイクルで
分岐先のPC値をシリアルに1端子に出力する。絶対分
岐命令とはプログラムの実行中にレジスタの値等によっ
て分岐先のアドレスが決まる命令であり、命令コードか
らは分岐先を判断することができない命令である。従っ
て絶対分岐命令が発生するとプログラムの命令コードか
ら分岐先が分からないため分岐先のPC値を出力するこ
とでトレースが可能となる。
More specifically, CPU execution status information is output to three terminals every clock, and when an absolute branch is generated by an absolute branch instruction or the like, the PC value of the branch destination is serially output to one terminal in the next 27 clock cycles. Output. An absolute branch instruction is an instruction whose branch destination address is determined by the value of a register or the like during the execution of a program, and whose instruction cannot determine the branch destination. Therefore, when an absolute branch instruction is generated, it is not possible to know the branch destination from the instruction code of the program, so that it is possible to trace by outputting the PC value of the branch destination.

【0008】ところが前記PC値をシリアルに1端子に
出力しているため、絶対分岐命令が連続又は数命令間隔
で実行されると、PC値の情報が途中で途切れてしまい
トレースができないという問題点があった。
However, since the PC value is serially output to one terminal, if the absolute branch instruction is executed consecutively or at intervals of several instructions, the information of the PC value is interrupted on the way and trace cannot be performed. was there.

【0009】本発明は、以上のような技術的課題に鑑み
てなされたものであり、その目的とするところは、少な
い端子で量産チップ上でのリアルタイムトレースを実現
し、絶対分岐命令が連続又は短い間隔で実行されてもト
レース可能なデバッグシステム及び情報記憶媒体を提供
することにある。
The present invention has been made in view of the above technical problems, and an object of the present invention is to realize a real-time trace on a mass-produced chip with a small number of terminals and to execute an absolute branch instruction continuously or An object of the present invention is to provide a debug system and an information storage medium that can be traced even when executed at short intervals.

【0010】[0010]

【課題を解決するための手段】本発明は、CPUの実行
状態を表すステータス情報と絶対分岐先アドレスを分割
して出力するターゲットシステムのトレース情報を出力
するデバッグシステムであって、ターゲットシステムか
ら分割された絶対分岐先アドレスとステータス情報を受
け取る手段と、ターゲットシステムから絶対分岐先アド
レスの一部を受け取った場合に、ターゲットシステムが
実行するプログラムが存在するアドレス領域に関する情
報及びターゲットシステムから受けとったステータス情
報の少なくとも一方に基づき、前記絶対分岐先アドレス
の一部以外の部分を特定してトレース情報を生成するト
レース情報生成手段と、を含むことを特徴とする。
SUMMARY OF THE INVENTION The present invention is a debug system for outputting trace information of a target system which divides and outputs status information indicating an execution state of a CPU and an absolute branch destination address. Means for receiving the extracted absolute branch destination address and status information, and, when a part of the absolute branch destination address is received from the target system, information on an address area where a program to be executed by the target system exists and status received from the target system Trace information generating means for generating trace information by specifying a part other than a part of the absolute branch destination address based on at least one of the information.

【0011】また本発明に係る情報記憶媒体は前記手段
を実現するための情報を含むことを特徴とする。
Further, an information storage medium according to the present invention is characterized in that it contains information for realizing the above means.

【0012】絶対分岐先のアドレス情報を分割して出力
するとは、例えば絶対分岐先のアドレスを1又は数ビッ
トずつシリアルに出力するような場合をいう。
The division and output of the address information of the absolute branch destination means, for example, a case where the address of the absolute branch destination is serially output one or several bits at a time.

【0013】またプログラムが存在するアドレス領域に
関する情報とは、例えばマップのアドレス割り当て情報
等である。またアドレスとしてとりうるビット数からプ
ログラムが存在するアドレス領域を特定できる場合は、
その情報でもよい。例えば16ビットアドレスならば6
4kバイトのアドレス領域が指定可能であるので、プロ
グラムが存在するアドレス領域を0〜64kバイトとす
ることができる。
The information related to the address area where the program exists is, for example, address assignment information of a map. If the address area where the program exists can be specified from the number of bits that can be taken as the address,
That information may be used. For example, if it is a 16-bit address, 6
Since an address area of 4 kbytes can be specified, the address area where the program exists can be set to 0 to 64 kbytes.

【0014】またプログラムが存在するアドレス領域に
関する情報はデバッグシステム内に予め有していてもよ
いし、トレース情報生成に際して受け取るようにしても
よい。
The information on the address area where the program exists may be stored in the debug system in advance, or may be received when generating trace information.

【0015】ターゲットシステムから絶対分岐先アドレ
スが分割して出力される場合には、短い間隔で絶対分岐
が発生すると、先の絶対分先アドレスを全部出力し終わ
る前に新たな絶対分岐先が出力され、絶対分岐先のアド
レスの一部しか受け取れない場合がある。
In the case where the absolute branch destination address is divided and output from the target system, if an absolute branch occurs at a short interval, a new absolute branch destination is output before all the previous absolute destination addresses have been output. In some cases, only part of the absolute branch destination address can be received.

【0016】本発明によればこのような場合でも、ター
ゲットシステムが実行するプログラムが存在するアドレ
ス領域に関する情報及びターゲットシステムから受けと
ったステータス情報の少なくとも一方に基づき、前記絶
対分岐先アドレスの一部以外の部分を特定してトレース
情報を生成することができる。
According to the present invention, even in such a case, based on at least one of the information relating to the address area where the program to be executed by the target system exists and the status information received from the target system, other than a part of the absolute branch destination address The trace information can be generated by specifying the part.

【0017】本発明のデバッグシステムは、ステータス
情報と絶対分岐先アドレスという少ないデバッグ情報か
らでも通常のICE等と同様のトレース情報が作成可能
であるため、ターゲットシステムのデバッグ用端子の削
減を可能にし、ターゲットシステムのコスト削減に貢献
できるという効果も有する。
The debug system of the present invention can generate trace information similar to that of a normal ICE or the like from a small amount of debug information such as status information and an absolute branch destination address. This also has the effect of contributing to cost reduction of the target system.

【0018】本発明のデバッグシステムは、前記トレー
ス情報生成手段が、受け取った絶対分岐先のアドレス情
報の一部を下位ビットとする候補アドレス群を抽出し、
当該候補アドレス群の中から絶対分岐先のアドレスを特
定することを特徴とする。
In the debugging system according to the present invention, the trace information generating means may extract a candidate address group having a part of the received absolute branch destination address information as lower bits,
An absolute branch destination address is specified from the candidate address group.

【0019】また本発明に係る情報記憶媒体は前記手段
を実現するための情報を含むことを特徴とする。
The information storage medium according to the present invention is characterized by including information for realizing the above means.

【0020】本発明のように受け取った絶対分岐先のア
ドレス情報の一部を下位ビットとする候補アドレス群を
抽出する事により、可能性のある絶対分岐先のアドレス
を候補アドレス群に絞り込むことができ、より効率よく
絶対分岐先の特定を行うことができる。
By extracting a candidate address group in which a part of the received address information of the absolute branch destination is set to the lower bits as in the present invention, the addresses of the potential absolute branch destinations can be narrowed down to the candidate address group. It is possible to specify the absolute branch destination more efficiently.

【0021】本発明のデバッグシステムは、前記トレー
ス情報生成手段が、ターゲットシステムから受け取った
ステータス情報の配列と、候補アドレス群に含まれる所
与の候補アドレスが指すプログラムの機械語命令列から
予測されるステータス情報の配列と比較して絶対分岐先
のアドレス情報を特定することを特徴とする。
In the debugging system according to the present invention, the trace information generating means predicts from an array of status information received from the target system and a machine language instruction sequence of a program indicated by a given candidate address included in the candidate address group. The address information of the absolute branch destination is specified by comparing with an array of status information.

【0022】また本発明に係る情報記憶媒体は前記手段
を実現するための情報を含むことを特徴とする。
Further, an information storage medium according to the present invention is characterized by including information for realizing the above means.

【0023】ここにおいてターゲットシステムが実行す
るプログラムの機械語命令列を把握するための情報と
は、2進法や16進法で表された機械語の命令コード列
でもよいし、機械語の命令コード列をニーモニックコー
ドで表した命令コード列でもよい。少なくともターゲッ
トシステムのCPUが実行する機械語の命令列が把握で
きるものであればよい。なお、ターゲットシステムが実
行するプログラムの機械語命令列を把握するための情報
は予めデバッグシステム内に保持しておいてもよいし、
後で取得してもよい。
Here, the information for grasping a machine language instruction sequence of a program executed by the target system may be a machine language instruction code sequence expressed in a binary or hexadecimal system, or may be a machine language instruction sequence. An instruction code string in which the code string is represented by a mnemonic code may be used. It is sufficient if at least the machine language instruction sequence executed by the CPU of the target system can be grasped. Note that information for grasping a machine language instruction sequence of a program executed by the target system may be held in the debug system in advance,
You may get it later.

【0024】候補アドレス群に含まれるアドレスが絶対
分岐先アドレスである場合には、ターゲットシステムか
ら受け取ったステータス情報の配列と、候補アドレス群
に含まれるアドレスが指すプログラムの機械語命令列か
ら予測されるステータス情報の配列とが一致するはずで
ある。従ってこれらを比較して、一致していなければ当
該アドレスは絶対分岐先のアドレスではないと判断する
ことができる。
If the address included in the candidate address group is an absolute branch destination address, the address is predicted from the array of status information received from the target system and the machine language instruction sequence of the program indicated by the address included in the candidate address group. Should match the status information array. Therefore, by comparing these, if they do not match, it can be determined that the address is not an address of an absolute branch destination.

【0025】このようにすることで本発明では、絶対分
岐先のアドレス情報の一部しか受け取れない場合でも絶
対分岐先のアドレスをより正確に特定してトレース情報
を生成することができる。
In this way, according to the present invention, even when only a part of the address information of the absolute branch destination can be received, the address of the absolute branch destination can be specified more accurately to generate the trace information.

【0026】本発明のデバッグシステムは、前記ステー
タス情報として、ターゲットシステムのCPUの実行状
態が通常命令実行、絶対分岐命令実行、相対分岐命令実
行のいずれに属するかを判別するための情報を含むこと
を特徴とする。
[0026] The debugging system of the present invention may include, as the status information, information for determining whether the execution state of the CPU of the target system belongs to execution of a normal instruction, execution of an absolute branch instruction, or execution of a relative branch instruction. It is characterized by.

【0027】また本発明に係る情報記憶媒体は前記手段
を実現するための情報を含むことを特徴とする。
[0027] The information storage medium according to the present invention is characterized by containing information for realizing the above means.

【0028】ここにおいて、相対分岐命令とはプログラ
ム中に明示的に記述されたアドレスに分岐する命令であ
り、ソースコードから分岐先を判断可能な命令である。
また絶対分岐命令とはプログラムの実行中にレジスタの
値によって分岐先のアドレスが決まる命令であり、ソー
スコードからは分岐先を判断することができない命令で
ある。通常命令とは、命令のアドレス順に実行される命
令である。この3種類のいずれに属するかを示す情報及
び絶対分岐先のアドレス情報が得られると、実行プログ
ラムの機械語命令列の情報と照らし合わせることにより
トレースを行うことが可能となる。このためわずか3本
という少ない端子から受け取った情報からでもリアルタ
イムトレースを行うことができる。
Here, the relative branch instruction is an instruction for branching to an address explicitly described in a program, and is an instruction capable of determining a branch destination from a source code.
An absolute branch instruction is an instruction whose branch destination address is determined by the value of a register during execution of a program, and cannot be determined from a source code. A normal instruction is an instruction executed in the order of instruction addresses. When the information indicating which of the three types belongs to and the address information of the absolute branch destination are obtained, it is possible to perform tracing by comparing the information with the information of the machine language instruction sequence of the execution program. Therefore, real-time tracing can be performed from information received from as few as three terminals.

【0029】本発明は、絶対分岐先のアドレス情報を分
割して出力するターゲットシステムのトレース情報を生
成するデバッグシステムであって、前記ターゲットシス
テムから絶対分岐先のアドレス情報の一部を受けとる手
段と、プログラムが存在するアドレス領域に関する情報
に基づき受け取った絶対分岐先のアドレス情報の一部以
外の部分を特定する手段と、を含むことを特徴とする。
According to the present invention, there is provided a debugging system for generating trace information of a target system which divides and outputs address information of an absolute branch destination, wherein the means receives a part of the address information of the absolute branch destination from the target system. Means for specifying a part other than a part of the absolute branch destination address information received based on the information on the address area where the program exists.

【0030】また本発明に係る情報記憶媒体は前記手段
を実現するための情報を含むことを特徴とする。
The information storage medium according to the present invention is characterized by including information for realizing the above means.

【0031】絶対分岐先のアドレス情報を分割して出力
するとは、例えば絶対分岐先のアドレスを1又は数ビッ
トずつシリアルに出力するような場合をいう。
The division and output of the address information of the absolute branch destination means, for example, the case where the address of the absolute branch destination is serially output one or several bits at a time.

【0032】本発明によれば、短い間隔で絶対分岐が発
生して絶対絶対分先アドレスの一部しか受け取れない場
合でも、絶対分岐先のアドレスを特定してトレース情報
を生成する。このため絶対分岐命令が連続してプログラ
ムカウンタの一部の情報しか得ることができない場合で
もトレース情報の生成を行うことができる。
According to the present invention, even when an absolute branch occurs at short intervals and only a part of the absolute absolute destination address can be received, the address of the absolute branch destination is specified to generate trace information. Therefore, even when the absolute branch instruction can continuously obtain only a part of the information of the program counter, the trace information can be generated.

【0033】また本発明のデバッグシステムは少ないデ
バッグ情報からでも通常のICE等と同様のトレース情
報が作成可能であるため、ターゲットシステムのデバッ
グ用端子の削減を可能にし、ターゲットシステムのコス
ト削減に貢献できるという効果も有する。
Further, since the debug system of the present invention can generate trace information similar to that of a normal ICE or the like from a small amount of debug information, it is possible to reduce the number of debug terminals of the target system and contribute to the cost reduction of the target system. It also has the effect of being able to.

【0034】[0034]

【発明の実施の形態】以下、本発明の好適な実施形態に
ついて図面を用いて詳細に説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention will be described below in detail with reference to the drawings.

【0035】1.本実施形態の構成の概要 まず本実施形態の構成について図2を用いて説明する。1. First, the configuration of the present embodiment will be described with reference to FIG.

【0036】図2に示すように、デバッグ対象となるタ
ーゲットシステムであるマイクロコンピュータ10は、
CPU(中央処理ユニット)12、実行情報出力部1
4、内部メモリ16を含む。
As shown in FIG. 2, the microcomputer 10, which is a target system to be debugged,
CPU (central processing unit) 12, execution information output unit 1
4, including the internal memory 16.

【0037】ここで実行情報出力部16は、リアルタイ
ムトレースを実現するための実行情報を専用4端子に出
力する。具体的には毎クロック毎にCPUの命令実行ス
テータス情報を3端子(DST[2:0])に出力し、
PC絶対分岐実行が発生すると続く27クロックサイク
ルで分岐先のPC値(DPCO)をシリアルに1端子に
出力する。
Here, the execution information output section 16 outputs execution information for realizing a real-time trace to four dedicated terminals. Specifically, the CPU outputs command execution status information to three terminals (DST [2: 0]) every clock,
When the PC absolute branch execution occurs, the branch destination PC value (DPCO) is serially output to one terminal in the next 27 clock cycles.

【0038】また内部メモリ16にはターゲットシステ
ムで実行されるプログラム等が記憶されている。
The internal memory 16 stores programs executed by the target system.

【0039】また本実施形態のデバッグシステム20
は、ターゲットであるマイクロコンピュータに直接接続
されるデバッグツール21と、当該デバッグツールと接
続されたホストコンピュータ23で構成されている。
The debugging system 20 of the present embodiment
Is composed of a debug tool 21 directly connected to a target microcomputer, and a host computer 23 connected to the debug tool.

【0040】デバッグツール21は実行情報取得部2
2,ターゲットメモリ書き込み部28を含み、ホストコ
ンピュータ23はプログラム情報記憶部26、トレース
情報生成部27,プログラム情報書き込み部29を含ん
でいる。
The debug tool 21 executes the execution information acquisition unit 2
2, including a target memory writing unit 28, and the host computer 23 includes a program information storage unit 26, a trace information generation unit 27, and a program information writing unit 29.

【0041】実行情報取得部22は、3ビットのDST
[2:0]と、分岐先のPC(プログラムカウンタ)値
を表すDPCOを内部のトレースメモリ24に格納す
る。トレース範囲が指定されている場合には、その範囲
のDST[2:0]とDPCOをトレースメモリに格納
する。
The execution information acquisition section 22 has a 3-bit DST
[2: 0] and the DPCO representing the PC (program counter) value of the branch destination are stored in the internal trace memory 24. If a trace range is specified, DST [2: 0] and DPCO in that range are stored in the trace memory.

【0042】なお分岐先PCは下位ビットから1ビット
ずつシリアルに出力されるため、全ビット出力される前
に新たな絶対分岐が発生すると、絶対分岐先のアドレス
情報の一部しかを受けとれないことになる。
Since the branch destination PC is serially output one bit at a time from the lower bit, if a new absolute branch occurs before all bits are output, only a part of the address information of the absolute branch destination can be received. Will be.

【0043】ターゲットメモリ書き込み部28は、ター
ゲットシステムの内部メモリ16にプログラムをロード
したり、ターゲットシステムのメモリのプログラムを書
き換えたりする機能を有し、TXD/RXDライン(双
方向通信ライン)を介してマイクロコンピュータ10の
内部メモリ14に書き込むデータを送信する。
The target memory writing unit 28 has a function of loading a program into the internal memory 16 of the target system and rewriting a program of the memory of the target system, and transmits the program via a TXD / RXD line (bidirectional communication line). Then, data to be written to the internal memory 14 of the microcomputer 10 is transmitted.

【0044】プログラム情報記憶部26は、ターゲット
システムの内部メモリ16に記憶されたプログラムと同
一のプログラムの機械語コード列を記憶する。
The program information storage section 26 stores a machine language code sequence of the same program as the program stored in the internal memory 16 of the target system.

【0045】トレース情報生成部27は、ターゲットシ
ステムから絶対分岐先アドレスの一部を受け取った場合
に、ターゲットシステムが実行するプログラムが存在す
るアドレス領域に関する情報及びターゲットシステムか
ら受けとったステータス情報の少なくとも一方に基づ
き、前記絶対分岐先アドレスの一部以外の部分を特定し
てトレース情報を生成する処理を行う。さらに受け取っ
た絶対分岐先のアドレス情報の一部を下位ビットとする
候補アドレス群を抽出し、ターゲットシステムから受け
取ったステータス情報の配列と、候補アドレス群に含ま
れる所与の候補アドレスにより特定される機械語コード
列から予測されるステータス情報の配列と比較して絶対
分岐先のアドレス情報を特定する処理を行う。
When a part of the absolute branch destination address is received from the target system, the trace information generation unit 27 performs at least one of information on an address area where a program to be executed by the target system exists and status information received from the target system. Based on the above, a process for generating trace information by specifying a part other than a part of the absolute branch destination address is performed. Further, a candidate address group having a part of the received address information of the absolute branch destination as lower bits is extracted, and specified by an array of status information received from the target system and a given candidate address included in the candidate address group. A process for specifying the address information of the absolute branch destination by comparing the array of the status information predicted from the machine language code string is performed.

【0046】また当該デバッグシステムが有しているタ
ーゲットシステムの実行開始アドレス及びターゲットの
CPUで実行されるプログラムの機械語コード列に基づ
き絶対分岐命令発生以前のトレース情報を生成する処理
を行う。
Further, a process for generating trace information before the occurrence of an absolute branch instruction is performed based on the execution start address of the target system of the debug system and the machine language code sequence of the program executed by the target CPU.

【0047】またメモリに蓄積されたステータス情報が
トリガポイントにマッチしていることを示している場合
には、当該デバッグシステムが有しているトリガポイン
トアドレス及びターゲットが実行するプログラムの機械
語コード列に基づき、絶対分岐命令発生以前のトレース
情報を生成する処理を行う。
If the status information stored in the memory indicates that the trigger point matches, the trigger point address of the debug system and the machine language code sequence of the program executed by the target , A process of generating trace information before the occurrence of the absolute branch instruction is performed.

【0048】前記メモリに蓄積されたステータス情報が
絶対分岐発生を示していた場合には、当該絶対分岐発生
が割り込み発生によるものか否かを、プログラムの機械
語コード列に基づき判別してトレース情報を生成する処
理を行う。
When the status information stored in the memory indicates the occurrence of an absolute branch, whether or not the occurrence of the absolute branch is caused by the occurrence of an interrupt is determined based on a machine language code sequence of the program to determine the trace information. Is performed.

【0049】またトレース情報生成に際しては、プログ
ラム情報記憶部26に記憶されたプログラムの機械語コ
ード列を用いる。
When generating trace information, a machine language code sequence of a program stored in the program information storage unit 26 is used.

【0050】プログラム情報書き込み部29は、ターゲ
ットシステムのメモリにロードしたプログラムと同一の
プログラムを前記プログラム情報記憶部26にロードし
たり、ターゲットシステムのメモリに記憶されているプ
ログラムコードを読み出して前記プログラム情報記憶部
26に書き込んだり、前記プログラム情報記憶部26に
記憶されたプログラムをターゲットシステムのプログラ
ムと同内容になるよう書き換えたりする処理を行う。
The program information writing section 29 loads the same program as the program loaded into the memory of the target system into the program information storage section 26 or reads out the program code stored in the memory of the target system to read the program. A process of writing to the information storage unit 26 or rewriting a program stored in the program information storage unit 26 to have the same content as the program of the target system is performed.

【0051】2.ターゲットシステムが出力するステー
タス情報の内容 図3はDST[2:0]の出力値(以下DST情報とい
う)とCPUの命令実行状態の関係を表した図である。
ここにおいてPC相対分岐命令とはプログラム中に明示
的に記述されたアドレスに分岐する命令であり、命令コ
ードから分岐先を判断可能である。またPC絶対分岐命
令とはプログラムの実行中にレジスタの値によって分岐
先のアドレスが決まる命令であり、命令コードからは分
岐先を判断することができない。
2. Contents of Status Information Output by Target System FIG. 3 is a diagram showing a relationship between an output value of DST [2: 0] (hereinafter referred to as DST information) and a CPU instruction execution state.
Here, the PC relative branch instruction is an instruction that branches to an address explicitly described in the program, and the branch destination can be determined from the instruction code. A PC absolute branch instruction is an instruction whose branch destination address is determined by the value of a register during execution of a program, and the branch destination cannot be determined from the instruction code.

【0052】従って本実施の形態ではPC絶対分岐命令
が発生すると分岐先のPC値(DPCO)を出力するこ
とでトレースを可能としている。
Therefore, in the present embodiment, when a PC absolute branch instruction is generated, tracing is enabled by outputting the PC value (DPCO) of the branch destination.

【0053】即ちマイクロプロセッサが命令をアドレス
の順番に実行している時(DST情報が000又は10
0である場合)には、プログラムカウンタがどこまで進
んだか分かるのでプログラムの命令コードからトレース
が可能である。また、マイクロプロセッサがPC相対分
岐命令を実行した時(DST情報が001又は101で
ある場合)にも、プログラムの命令コードから分岐先が
分かるのでトレースが可能である。
That is, when the microprocessor is executing instructions in the order of addresses (DST information is 000 or 10).
If it is 0), it is possible to know how far the program counter has advanced, so that tracing is possible from the instruction code of the program. Also, when the microprocessor executes the PC relative branch instruction (when the DST information is 001 or 101), the branch destination can be known from the instruction code of the program, so that tracing is possible.

【0054】しかし、マイクロプロセッサがPC絶対分
岐命令を実行した時(DST情報が010又は110で
ある場合)には、プログラムの命令コードから分岐先が
分からないため、DST情報のみではトレースができな
い。そこで、係る場合に分岐先のPC値(DPCO)を
出力することでトレースを可能としているのである。
However, when the microprocessor executes the PC absolute branch instruction (when the DST information is 010 or 110), it is not possible to trace only with the DST information because the branch destination is not known from the instruction code of the program. Therefore, in such a case, tracing is enabled by outputting the PC value (DPCO) of the branch destination.

【0055】3.分岐先アドレスを特定するための処理 ターゲットシステムは、前記PC値をシリアルに1端子
に出力しているので、絶対分岐命令が連続又は数命令間
隔で実行されると、PC値の情報が途中で途切れてしま
いトレースができないという問題点があった。
3. Process for specifying branch destination address Since the target system outputs the PC value serially to one terminal, when the absolute branch instruction is executed continuously or at intervals of several instructions, the PC value information is output in the middle. There was a problem that it was interrupted and tracing was not possible.

【0056】そこで本実施の形態では、PC値の一部の
情報しかえることが出来ない場合でも後述するマップ情
報と前記DST情報に基づき絶対分岐の分岐先PC値を
特定できるように、トレース情報生成部27は以下に説
明するような分岐先アドレスを特定するための処理を行
っている。
Therefore, in the present embodiment, even when only a part of the PC value can be obtained, the trace information of the absolute branch can be specified based on the map information described later and the DST information. The generation unit 27 performs a process for specifying a branch destination address as described below.

【0057】図4(A)(B)は絶対分岐先のアドレス
を特定するための候補アドレス群の抽出について説明す
るための図である。
FIGS. 4A and 4B are diagrams for explaining the extraction of a group of candidate addresses for specifying the address of the absolute branch destination.

【0058】図4(A)の310は、DPCO信号から
得られたPC値の情報を16進数で表したものである。
PC値は下位のビットから1ビットずつ27ビット出力
されるが、この間に新たな絶対分岐が発生したら、そこ
で新たな絶対分岐先のPC値が出力されるため、先に出
力されていたPC値はそこで途切れてしまう。
Numeral 310 in FIG. 4A indicates hexadecimal information of the PC value obtained from the DPCO signal.
The PC value is output 27 bits, one bit at a time, starting from the lower bit. If a new absolute branch occurs during this time, the PC value of the new absolute branch destination is output there. Is interrupted there.

【0059】310は下位12ビット分の情報312で
PC値が途切れてしまい、上位のビット情報314、3
16が得られていない状態である。このような場合、先
頭の4ビット316(16進コードなので1桁)を0と
すると絶対分岐先の候補となるPC値は216=6553
6個となる(図4(A)320参照)。従って、実際の
PC値を特定することは困難である。
Reference numeral 310 denotes information 1212 corresponding to the lower 12 bits, in which the PC value is interrupted.
16 is not obtained. In such a case, if the first four bits 316 (one digit since it is a hexadecimal code) are set to 0, the PC value which is a candidate for an absolute branch destination is 2 16 = 6553.
The number is six (see 320 in FIG. 4A). Therefore, it is difficult to specify the actual PC value.

【0060】そこで本実施の形態では、図4(B)に示
すようにターゲットシステムのCPUが接続されている
メモリのマップ情報330を、デバッグシステムのパラ
メタファイル340に格納しておく。マップ情報330
とはプログラムが存在するアドレスに関する情報であ
り、例えばマップ情報330は、ターゲットのCPUに
RAM1、IROM、RAM2が接続されており、RA
M1の0−7FF番地、IROMの80000−80F
FF番地、RAM2の90000−9FFFF番地にプ
ログラムが格納されていることを示している。
Therefore, in this embodiment, as shown in FIG. 4B, the map information 330 of the memory to which the CPU of the target system is connected is stored in the parameter file 340 of the debug system. Map information 330
Is information on an address where a program exists. For example, in the map information 330, the RAM1, the IROM, and the RAM2 are connected to the target CPU.
Address 0-7FF of M1, 80000-80F of IROM
This indicates that the program is stored at the address FF, address 90000-9FFFF of the RAM2.

【0061】PC値の下位12ビットの情報が図4
(A)と同じく802番地であるとすると、RAM1の
中には候補はなく、IROMでは80802番地が候補
となり、RAM2では90802〜9F802の16個
が候補となり、全部で候補数は17となる(図4(B)
の340参照)。
The information of the lower 12 bits of the PC value is shown in FIG.
Assuming that the address is 802 as in (A), there is no candidate in the RAM1, the address 80802 is a candidate in the IROM, the 16 candidates 90802 to 9F802 are the candidates in the RAM2, and the total number of candidates is 17 ( FIG. 4 (B)
340).

【0062】図5(A)〜(C)はマップ情報から抽出
した候補群からの絶対分岐先のアドレスを特定する処理
について説明するための図である。図5(A)は、トレ
ースメモリ24に格納されている絶対分岐命令実行以降
のDST情報350を示している。
FIGS. 5A to 5C are diagrams for explaining the process of specifying the address of the absolute branch destination from the candidate group extracted from the map information. FIG. 5A shows the DST information 350 stored in the trace memory 24 after the execution of the absolute branch instruction.

【0063】図5(B)は、マップ情報により特定され
た候補群の一つである80802番地以降の命令コード
360と当該命令コードの命令の種類370と当該命令
コードが実行された場合に出力されるであろうDST情
報380を表している。
FIG. 5B shows an instruction code 360 after address 80802, which is one of the candidate groups specified by the map information, an instruction type 370 of the instruction code, and an output when the instruction code is executed. Represents the DST information 380 that will be generated.

【0064】また、図5(C)は、マップ情報により特
定された候補群の一つである90802番地以降の命令
コード390と当該命令コードの命令の種類400と当
該命令コードが実行された場合に出力されるであろうD
ST情報410を表している。他の候補群についても図
5(B)(C)と同様に出力が予想されるであろうDS
T情報列を生成して、図5(A)のトレースメモリ24
のDST情報350と比較処理を行う。そして同じであ
れば、当該候補が分岐先アドレスとして特定される。こ
こでは、図5(B)の80802番地以降の命令実行に
より出力されるDST情報列が図5(A)のトレースメ
モリ34のDST情報350と一致するので、8080
2番地を分岐先アドレスとして特定する。
FIG. 5C shows the case where the instruction code 390 at address 90802 or later, which is one of the candidate groups specified by the map information, the instruction type 400 of the instruction code and the instruction code are executed. Will be output to
The ST information 410 is shown. The output of the other candidate groups will be expected similarly to FIGS. 5B and 5C.
A T information sequence is generated, and the trace memory 24 shown in FIG.
Is compared with the DST information 350 of FIG. If they are the same, the candidate is specified as the branch destination address. Here, since the DST information sequence output by executing the instruction after the address 80802 in FIG. 5B matches the DST information 350 in the trace memory 34 in FIG.
Address 2 is specified as a branch destination address.

【0065】図6、図7、図8は、絶対分岐が短い間隔
で発生しDPCOからプログラムカウンタ値が全ビット
出力されない場合に分岐先アドレスを特定する処理の動
作例を示すフローチャート図である。
FIGS. 6, 7 and 8 are flowcharts showing an operation example of the processing for specifying the branch destination address when the absolute branch occurs at short intervals and the program counter value is not output from all bits from the DPCO.

【0066】まず図6を用いて不完全PC値の解析処理
の全体の流れについて説明する。
First, the overall flow of the incomplete PC value analysis process will be described with reference to FIG.

【0067】不完全PC値の解析処理の開始にあたり、
まず候補PC値(ulWorkPc)、候補数(ulExpectNum)
の初期設定を行う(ステップS10)。
At the start of the incomplete PC value analysis process,
First, the candidate PC value (ulWorkPc) and the number of candidates (ulExpectNum)
(Step S10).

【0068】そしてループA(ステップS20〜S4
0)でパラメタファイルでマップ情報を定義してあるメ
モリの個数分、マップ情報を利用した候補PC検索処理
(ステップS30)を行う。例えば図4(B)において
は、パラメタファイル340において、RAM1、IR
OM、RAM2の3つのメモリのマップ情報が定義され
ているので、3回候補PC値検索処理を行うことにな
る。この候補PC値検索処理で、候補PC値(ulWorkP
c)、候補数(ulExpectNum)が更新される。
Then, the loop A (steps S20 to S4)
In step 0), a candidate PC search process using map information is performed for the number of memories for which map information is defined in the parameter file (step S30). For example, in FIG. 4B, in the parameter file 340, RAM1, IR
Since the map information of the three memories OM and RAM2 is defined, the candidate PC value search processing is performed three times. In this candidate PC value search process, the candidate PC value (ulWorkP
c) The number of candidates (ulExpectNum) is updated.

【0069】ループAが終了すると、設定された候補数
(ulExpectNum)が1か否か判断する。そして候補数(u
lExpectNum)=1であれば、1つのPC値に特定された
と判断し、候補PC値特定処理で更新された候補PC値
(ulWorkPc)を、実際にCPUが実行したアドレスと
し、トレースデータの生成処理を行う(ステップS5
0、S60)。
When the loop A ends, it is determined whether or not the set number of candidates (ulExpectNum) is one. And the number of candidates (u
If lExpectNum) = 1, it is determined that one PC value has been specified, and the candidate PC value (ulWorkPc) updated in the candidate PC value specification processing is set as the address actually executed by the CPU, and the trace data generation processing is performed. (Step S5)
0, S60).

【0070】次に図7を用いて、マップ情報を利用した
候補PC検索処理(図6のステップS30)の詳細な処
理例について説明する。
Next, a detailed processing example of the candidate PC search processing using the map information (step S30 in FIG. 6) will be described with reference to FIG.

【0071】マップ情報で定義されたメモリの先頭アド
レスをDPCO信号の出力ビット数だけ右にシフトした
ものを、開始アドレス(ulMapTopAddr)にセットする。
また、マップ情報で定義されたメモリの終了アドレスを
DPCO信号の出力ビット数だけ右にシフトしたもの
を、終了アドレス(ulMapBottomAddr)にセットする。
The start address (ulMapTopAddr) obtained by shifting the top address of the memory defined by the map information to the right by the number of output bits of the DPCO signal is set.
Also, the end address of the memory defined by the map information, which is shifted to the right by the number of output bits of the DPCO signal, is set to the end address (ulMapBottomAddr).

【0072】例えば図4(A)(B)で説明したように
DPCO信号の出力が12ビットである場合(図4
(A)の312参照)には、RAM2の先頭アドレス9
0000を12ビットだけ右にシフトした00090を
開始アドレス(ulMapTopAddr)にセットする。またRA
M2の最後尾アドレス9FFFFを12ビットだけ右に
シフトした0009Fを終了アドレス(ulMapBottomAdd
r)にセットする。なお、先頭アドレス90000、最
後尾アドレス9FFFFは16進数で表記しているた
め、一桁で4ビット分のDPCO信号を表している。
For example, when the output of the DPCO signal is 12 bits as described with reference to FIGS.
(See 312 of (A)).
The start address (ulMapTopAddr) is set to 00990, which is 0000 shifted right by 12 bits. Also RA
The end address (ulMapBottomAdd) of 0009F obtained by shifting the last address 9FFFF of M2 to the right by 12 bits is added.
Set to r). Since the first address 90000 and the last address 9FFFF are represented by hexadecimal numbers, each digit represents a 4-bit DPCO signal.

【0073】そしてループBで開始アドレス(ulMapTop
Addr)から終了アドレス(ulMapBottomAddr)まで以下
の処理を繰り返す(ステップS120〜S170)。例
えば図4(B)の場合、00090から0009Fまで
16回繰り返すことになる。
Then, in loop B, the start address (ulMapTop
The following processing is repeated from Addr) to the end address (ulMapBottomAddr) (steps S120 to S170). For example, in the case of FIG. 4B, the repetition is performed from 00990 to 0009F 16 times.

【0074】まず、開始アドレス(ulMapTopAddr)をD
PCO信号の出力ビット数だけ左にシフトしたものに、
DPCOから得られた出力中のPC値を足したものを処
理対象PC値(ulPC)にセットする(ステップS13
0)。
First, the start address (ulMapTopAddr) is set to D
To the left shifted by the number of output bits of the PCO signal,
The sum of the output PC values obtained from the DPCO is set as the processing target PC value (ulPC) (step S13).
0).

【0075】そして命令コード上で処理対象PC値(ul
PC)以降の命令値を取り出すためのワークアドレス(un
WorkAddr)に処理対象PC値(ulPC)をセットする(ス
テップS140)。
Then, the PC value to be processed (ul
Work address (un
The processing target PC value (ulPC) is set in WorkAddr (step S140).

【0076】例えば図4(B)において、最初の開始ア
ドレス(ulMapTopAddr)をは、00090である。従っ
てこれをDPCO信号の出力ビット数である12ビット
だけ左にシフトさせると09000となる。これにDP
COから得られた出力中のPC値である000802を
足した090802が処理対象PC値(ulPC)としてセ
ットされる。
For example, in FIG. 4B, the first start address (ulMapTopAddr) is 00990. Therefore, if this is shifted to the left by 12 bits which is the number of output bits of the DPCO signal, it becomes 09000. This is DP
090802, which is obtained by adding the PC value 000802 in the output obtained from the CO, is set as the processing target PC value (ulPC).

【0077】そして処理対象PC値(ulPC)に対してD
ST情報を利用したPC値特定処理を行う(ステップS
150)。
Then, for the processing target PC value (ulPC), D
Perform PC value identification processing using ST information (step S
150).

【0078】そして次のループに備えて、開始アドレス
(ulMapTopAddr)を更新しておく(ステップS16
0)。図4(B)では開始アドレス(ulMapTopAddr)が
更新されて00091となる。
Then, in preparation for the next loop, the start address (ulMapTopAddr) is updated (step S16).
0). In FIG. 4B, the start address (ulMapTopAddr) is updated to 00901.

【0079】次に図8を用いて、DST情報を利用した
PC値特定処理(図7のステップS150)の詳細な処
理例について説明する。
Next, a detailed example of the PC value specifying process using the DST information (step S150 in FIG. 7) will be described with reference to FIG.

【0080】ループCでDPCO信号の出力ビット数だ
け以下の処理を繰り返す(ステップS210〜S25
0)。本実施の形態では1クロック毎にDPCOが1ビ
ット出力されるので絶対分岐命令が発生してから概ねD
PCO信号の出力ビット数だけそれ以降の命令が実行さ
れているため、DPCO信号の出力ビット数だけそれ以
降の命令の実行状態を表すDST情報がトレースメモリ
に格納されることになるからである。
In the loop C, the following processing is repeated by the number of output bits of the DPCO signal (steps S210 to S25)
0). In the present embodiment, one bit of the DPCO is output every clock, so that approximately DCO is generated after an absolute branch instruction is generated.
This is because the subsequent instructions are executed by the number of output bits of the PCO signal, so that the DST information indicating the execution state of the subsequent instructions by the number of output bits of the DPCO signal is stored in the trace memory.

【0081】例えば図4(B)ではDPCO信号の出力
ビット数が12ビットであるので、ステップS220か
らS240までの処理が12回繰り返されることにな
る。
For example, in FIG. 4B, since the number of output bits of the DPCO signal is 12 bits, the processes from steps S220 to S240 are repeated 12 times.

【0082】まず比較対象DSTコード(ucKindCode)
に、ワークアドレス(unWorkAddr)が指すプログラム上
の命令コードを実行した場合に出力されるであろうDS
T信号を代入する(ステップS220)。例えば図5
(B)においてワークアドレス1(362)は分岐無し
命令であるaddを指しているので、分岐無し命令が実行
された場合に出力されるであろうDST情報’000’
を比較対象DSTコード(ucKindCode)に代入する。
First, the DST code to be compared (ucKindCode)
The DS that will be output when the instruction code on the program indicated by the work address (unWorkAddr) is executed
The T signal is substituted (step S220). For example, FIG.
In (B), since the work address 1 (362) points to the add instruction which is a non-branch instruction, the DST information '000' which will be output when the non-branch instruction is executed.
Is substituted for the DST code (ucKindCode) to be compared.

【0083】そしてトレースメモリ上の対応するDST
信号と前記比較対象DSTコードと(ucKindCode)比較
して一致していなければ当該処理対象PC値は求める絶
対分岐先のPC値ではないとしてループCを抜ける(ス
テップS230)。
Then, the corresponding DST in the trace memory
If the signal and the comparison target DST code are compared (ucKindCode) and they do not match, it is determined that the processing target PC value is not the PC value of the absolute branch destination to be obtained, and the process exits the loop C (step S230).

【0084】一致している場合には命令コード上の次の
命令コードを取り出すために、ワークアドレス(unWork
Addr)を次の命令コード位置に位置づける(ステップS
240)。αは次の命令に移行するための命令サイズで
ある。例えば図5(B)において1命令が2バイトの場
合、ワークアドレス1(362)からワークアドレス2
(364)に位置づける。
If they match, the work address (unWork
Addr) at the next instruction code position (step S
240). α is an instruction size for shifting to the next instruction. For example, in FIG. 5B, when one instruction is 2 bytes, the work address 1 (362) to the work address 2
(364).

【0085】そしてDPCO信号の出力ビット数だけル
ープCが実行された場合には、候補PC値以降の命令コ
ードが実行された場合のDST信号とトレースメモリに
格納されたDST信号がすべて一致したことになるの
で、当該処理対象PC値(ulPC)が求める絶対分岐先の
アドレスであるとして、処理対象PC値(ulPC)を候補
PC値(ulWorkPc)にセットする。また候補数(ulExpe
ctNum)をインクリメントする(ステップS260)。
When the loop C is executed by the number of output bits of the DPCO signal, the DST signal when the instruction code after the candidate PC value is executed and the DST signal stored in the trace memory all match. Therefore, the processing target PC value (ulPC) is set to the candidate PC value (ulWorkPc), assuming that the processing target PC value (ulPC) is the address of the absolute branch destination to be obtained. The number of candidates (ulExpe
ctNum) is incremented (step S260).

【0086】4.ターゲットシステムを停止させること
なくトレース機能を実現するための処理 本実施の形態ではターゲットシステムの実行を停止させ
ることなくトレース情報を生成するために、ターゲット
システムの内部メモリに記憶されたプログラムの機械語
命令列(以下プログラム情報という)をホストコンピュ
ータのプログラム情報記憶部26に記憶させている。
[0086] 4. Processing for Realizing Trace Function without Stopping Target System In this embodiment, in order to generate trace information without stopping execution of the target system, machine language of a program stored in an internal memory of the target system is used. The instruction sequence (hereinafter referred to as program information) is stored in the program information storage unit 26 of the host computer.

【0087】このようにする事により、例えばトレース
メモリ上のDST信号と比較する前記比較対象DSTコ
ード(ucKindCode)にを、プログラム情報記憶部26に
記憶されたプログラム情報から作成することができる。
従ってトレース情報を生成する際にターゲットシステム
の内部メモリ16を読む必要がないので、ターゲットシ
ステムの実行を停止させることなくトレース情報を生成
することができる。
By doing so, for example, the DST code (ucKindCode) to be compared with the DST signal on the trace memory can be created from the program information stored in the program information storage unit 26.
Therefore, it is not necessary to read the internal memory 16 of the target system when generating the trace information, so that the trace information can be generated without stopping the execution of the target system.

【0088】また、ターゲットシステムの内部メモリ1
6を読む必要がないのでトレース情報生成のための処理
時間を大幅に短縮することができる。
The internal memory 1 of the target system
6 does not need to be read, so that the processing time for generating trace information can be greatly reduced.

【0089】本実施の形態ではターゲットシステムの内
部メモリ16に記憶されたプログラム情報であってトレ
ースに使うものをホストコンピュータのプログラム情報
記憶部26に記憶させるために、プログラム情報書き込
み部29は以下のような処理を行っている。
In the present embodiment, the program information writing unit 29 stores the program information stored in the internal memory 16 of the target system, which is used for tracing, in the program information storage unit 26 of the host computer. Such processing is performed.

【0090】図9はターゲットシステムの内部メモリに
プログラムをロードする場合の動作例を説明するための
フローチャート図である。
FIG. 9 is a flowchart for explaining an operation example when a program is loaded into the internal memory of the target system.

【0091】本実施の形態ではターゲットシステムの内
部メモリにプログラムをロードする際に、当該プログラ
ムのトレース予定がある場合にはターゲットシステムの
内部メモリにロードしたプログラム内容をプログラム情
報記憶部に書き込む(ステップS310、S320、S
330)。
In this embodiment, when a program is loaded into the internal memory of the target system, if there is a trace of the program, the program content loaded into the internal memory of the target system is written into the program information storage unit (step S310, S320, S
330).

【0092】図10は、ターゲットシステムの内部のプ
ログラムを書き換える場合の動作例を説明するためのフ
ローチャート図である。
FIG. 10 is a flowchart for explaining an operation example when rewriting a program in the target system.

【0093】本実施の形態ではターゲットシステムの内
部メモリのプログラムを書き換える際に、当該プログラ
ムのトレース予定がある場合には前記プログラム情報記
憶部に記憶されたプログラムの対応箇所をターゲットシ
ステムのプログラムと同内容に書き換える(ステップS
410、S420、S430)。
In this embodiment, when a program in the internal memory of the target system is rewritten, if a trace of the program is scheduled, the corresponding portion of the program stored in the program information storage unit is made the same as the program of the target system. Rewrite to contents (Step S
410, S420, S430).

【0094】図11は、プログラムをロードせずに、既
にターゲットシステムの内部メモリにある場合の動作例
について説明するためのフローチャート図である。
FIG. 11 is a flow chart for explaining an operation example in the case where the program is already loaded in the internal memory of the target system without loading the program.

【0095】当該プログラムのトレースを行う場合に
は、マップ情報からプログラムが格納されているメモリ
のスタートアドレスとエンドアドレスを特定する(ステ
ップS510、S520)。そしてターゲットシステム
の内部メモリのスタートアドレス、エンドアドレスで特
定されている内容を読み込み、プログラム情報記憶部に
書き込む(ステップS530)。
When tracing the program, the start address and the end address of the memory storing the program are specified from the map information (steps S510 and S520). Then, the contents specified by the start address and the end address of the internal memory of the target system are read and written into the program information storage unit (step S530).

【0096】5.絶対分岐命令発生以前のプログラムカ
ウンタ解析処理 図12は絶対分岐命令発生以前のプログラムカウンタ解
析処理について説明するための図である。図12は、タ
ーゲットシステムで命令i1、i2、…が実行されて、
そのステータス情報DST1〜DST12がトレースメ
モリに蓄積されている様子を表している。本実施の形態
ではターゲットシステムは絶対分岐命令を実行するまで
プログラムカウンタ値を出力しないので、命令i9が実
行されるまでプログラムカウンタ値は出力されない。従
って絶対分岐発生以前に実行された命令i1〜命令i8
については、実行位置の特定ができずトレース情報が作
成できないという問題点があった。
[0096] 5. FIG. 12 is a diagram for explaining a program counter analysis process before the generation of an absolute branch instruction. FIG. 12 shows that the instructions i1, i2,...
This shows how the status information DST1 to DST12 are stored in the trace memory. In the present embodiment, since the target system does not output the program counter value until the absolute branch instruction is executed, the program counter value is not output until the instruction i9 is executed. Therefore, the instructions i1 to i8 executed before the occurrence of the absolute branch
However, there was a problem that the execution position could not be specified and trace information could not be created.

【0097】そこで本実施の形態では、トレースメモリ
に蓄積された先頭ステータス情報DST1に対応する命
令実行の際のプログラムカウンタを特定するために以下
のような構成を採用している。
Therefore, in the present embodiment, the following configuration is employed to specify the program counter at the time of executing the instruction corresponding to the head status information DST1 stored in the trace memory.

【0098】すなわち、範囲指定トレースを行わない場
合には、例えばプログラムの実行開始位置を指定して実
行させる際に、デバッグシステムで実行開始アドレスを
取得しておく。そしてトレースメモリに上書きしないオ
ーバーライト無しモードにおいて、ターゲットシステム
から出力されるステータス情報を蓄積する。
That is, when the range designation tracing is not performed, the execution start address is acquired by the debug system, for example, when the execution start position of the program is designated and executed. Then, in the no overwrite mode in which the trace memory is not overwritten, status information output from the target system is accumulated.

【0099】ここにおいて、範囲指定トレースを行わな
い場合には、ターゲットシステムは実行したすべての命
令についてステータス情報であるDST情報を出力す
る。従ってトレースメモリの先頭に蓄積されているDS
T情報DST1は、前記実行開始アドレスに対応する命
令が出力したものと特定できる。
Here, when the range designation tracing is not performed, the target system outputs DST information as status information for all executed instructions. Therefore, the DS stored at the top of the trace memory
The T information DST1 can be specified as output by the instruction corresponding to the execution start address.

【0100】また本実施の形態のターゲットシステムは
先頭アドレスとエンドアドレスをトリガアドレスとして
セットすることにより、先頭アドレスからエンドアドレ
スまでの命令に対応したステータス情報のみを出力させ
る範囲指定トレースを行うことができる。このときデバ
ッグシステムで、ターゲットシステムにセットしたトリ
ガアドレスをあらかじめ取得しておく。
The target system according to the present embodiment can perform a range designation trace for outputting only status information corresponding to instructions from the start address to the end address by setting the start address and the end address as trigger addresses. . At this time, the trigger address set in the target system is acquired in advance by the debug system.

【0101】係る範囲指定トレースを行う場合には、ト
レースメモリの先頭に蓄積されているDST情報DST
1は、先頭アドレスとして指定したトリガアドレスに対
応する命令が出力したものと特定できる。
When performing such range designation tracing, the DST information DST stored at the head of the trace memory is used.
1 can be specified as the one output by the instruction corresponding to the trigger address specified as the start address.

【0102】図13は、トレースメモリに蓄積されてい
る最も古いデータ出力時のプログラムカウンタを解析す
る処理の動作例を表したフローチャート図である。
FIG. 13 is a flowchart showing an example of the operation of analyzing the program counter at the time of outputting the oldest data stored in the trace memory.

【0103】範囲指定トレースを行う場合には、候補P
C(ulPC)に先頭アドレスであるトリガアドレス1を
セットする(ステップS610、S620)。
When performing the range designation trace, the candidate P
The trigger address 1 which is the head address is set in C (ulPC) (steps S610 and S620).

【0104】また範囲指定トレースを行わない場合でト
レースメモリにオーバーライトしない場合には、候補P
C(ulPC)にトレース開始直前のプログラムカウンタ
値をセットする(ステップS630、S640)。な
お、トレース開始直前のプログラムカウンタ値には、こ
れから実行する命令のアドレス値がセットされている。
When the range designation tracing is not performed and the trace memory is not overwritten, the candidate P
The program counter value immediately before the start of the trace is set in C (ulPC) (steps S630 and S640). Note that the address value of the instruction to be executed is set in the program counter value immediately before the start of the trace.

【0105】そして候補PC(ulPC)を、トレースメ
モリの最も古いステータス情報に対応した命令のアドレ
ス値として、トレース情報を生成する(ステップS65
0)。
Then, trace information is generated using the candidate PC (ulPC) as the address value of the instruction corresponding to the oldest status information in the trace memory (step S65).
0).

【0106】6.ハードウエア割り込みの判別処理 図14は、絶対分岐命令実行を示すステータス情報が命
令実行によるものかハードウエア割り込みによるものか
を判別する処理について説明するための図である。
6. FIG. 14 is a diagram for explaining a process of determining whether status information indicating execution of an absolute branch instruction is due to instruction execution or hardware interrupt.

【0107】図14の1410に示すようにトレースメ
モリに格納されているステータス情報が絶対分岐命令の
実行を示すものである場合には、通常の絶対分岐命令実
行によるものである場合とハードウエア割り込みによる
ものである場合がある。
As shown at 1410 in FIG. 14, when the status information stored in the trace memory indicates the execution of an absolute branch instruction, the status information is based on the execution of a normal absolute branch instruction and the hardware interrupt In some cases.

【0108】そこで本実施の形態では、プログラム情報
記憶部に記憶されているプログラムの機械語命令列の情
報と比較して、前記ステータス情報が通常の絶対分岐命
令実行によるものであるかハードウエア割り込みによる
ものであるかを判別している。
Therefore, in this embodiment, the status information is compared with the information of the machine language instruction sequence of the program stored in the program information storage unit to determine whether the status information is due to execution of a normal absolute branch instruction or a hardware interrupt. Is determined.

【0109】トレースメモリに格納されているトレース
情報に対応する命令の機械語命令列がi1、i2…とす
ると、1410のステータス情報が通常の絶対分岐命令
実行によるものである場合には対応する機械語命令は1
420のi3となる。このi3が絶対分岐命令でない場
合には、1410のステータス情報は通常の絶対分岐命
令実行によるものでなくハードウエア割り込みによるも
のであることが判別できることになる。
Assuming that the machine language instruction sequence of the instruction corresponding to the trace information stored in the trace memory is i1, i2,..., If the status information of 1410 is based on the execution of a normal absolute branch instruction, the corresponding machine Word instruction is 1
420, i3. If this i3 is not an absolute branch instruction, it is possible to determine that the status information in 1410 is not due to a normal execution of an absolute branch instruction but to a hardware interrupt.

【0110】図15は、絶対分岐命令実行を示すステー
タス情報が命令実行によるものかハードウエア割り込み
によるものかを判別する処理の動作例について説明する
ためのフローチャート図である。
FIG. 15 is a flowchart for explaining an operation example of a process for determining whether status information indicating execution of an absolute branch instruction is due to instruction execution or hardware interrupt.

【0111】トレースメモリに蓄積されているDST情
報の個数だけループAの処理を行う(ステップS710
〜S760)。
The processing of loop A is performed by the number of DST information stored in the trace memory (step S710)
To S760).

【0112】DST情報が絶対分岐命令の実行を示して
いる場合には、まず当該DST情報出力の際のプログラ
ムカウンタが示すアドレスを解析する(ステップS72
0,S730)。そして、解析結果のプログラムカウン
タが示すアドレスの命令コードが絶対分岐命令でない場
合にはハードウエア割り込み発生箇所とし、データに登
録する(ステップS740,S750)。
If the DST information indicates the execution of the absolute branch instruction, first, the address indicated by the program counter at the time of outputting the DST information is analyzed (step S72).
0, S730). If the instruction code at the address indicated by the program counter of the analysis result is not an absolute branch instruction, it is determined as a hardware interrupt occurrence location and registered in the data (steps S740 and S750).

【0113】7.ターゲットシステムとデバッグツール
の構成例 図16に本実施形態のマイクロコンピュータ及びデバッ
グシステムの詳細な構成例を示す。図16に示すよう
に、マイクロコンピュータ1020は、CPU102
2、BCU(バス制御ユニット)1026、内部メモリ
(ミニモニタROM1042及びミニモニタRAM10
44以外の内部ROM及び内部RAM)1028、クロ
ック生成部1030、ミニモニタ部1040(第1のモ
ニタ手段)、実行情報出力部1050を含む。
7. Configuration Example of Target System and Debug Tool FIG. 16 shows a detailed configuration example of the microcomputer and the debug system of the present embodiment. As shown in FIG. 16, the microcomputer 1020 includes a CPU 102
2. BCU (bus control unit) 1026, internal memory (mini monitor ROM 1042 and mini monitor RAM 10)
44, an internal ROM and an internal RAM other than 44), a clock generator 1030, a mini monitor 1040 (first monitor means), and an execution information output unit 1050.

【0114】ここでCPU1022は、種々の命令の実
行処理を行うものであり、内部レジスタ1024を含
む。内部レジスタ1024は、汎用レジスタであるR0
〜R15や、特殊レジスタであるSP(スタックポイン
タレジスタ)、AHR(積和結果データの上位レジス
タ)、ALR(積和結果データの下位レジスタ)などを
含む。
Here, the CPU 1022 performs an execution process of various instructions, and includes an internal register 1024. The internal register 1024 is a general-purpose register R0
R15, special registers SP (stack pointer register), AHR (upper register of product-sum result data), ALR (lower register of product-sum result data), and the like.

【0115】BCU1026はバスを制御するものであ
る。例えば、CPU1022に接続されるハーバードア
ーキテクチャのバス1031や、内部メモリ1028に
接続されるバス1032や、外部メモリ1036に接続
される外部バス1033や、ミニモニタ部1040、実
行情報出力部1050などに接続される内部バス103
4の制御を行う。
The BCU 1026 controls the bus. For example, it is connected to a Harvard architecture bus 1031 connected to the CPU 1022, a bus 1032 connected to the internal memory 1028, an external bus 1033 connected to the external memory 1036, a mini monitor unit 1040, an execution information output unit 1050, and the like. Internal bus 103
4 is performed.

【0116】またクロック生成部1030は、マイクロ
コンピュータ1020内で使用される各種のクロックを
生成するものである。クロック生成部1030はBCL
Kを介して外部のデバッグツール1060にもクロック
を供給している。
The clock generation unit 1030 generates various clocks used in the microcomputer 1020. The clock generation unit 1030 uses the BCL
A clock is also supplied to the external debug tool 1060 via K.

【0117】ミニモニタ部1040は、ミニモニタRO
M1042、ミニモニタRAM1044、制御レジスタ
1046、SIO1048を含む。
The mini-monitor unit 1040 has a mini-monitor RO
M1042, mini monitor RAM 1044, control register 1046, and SIO1048.

【0118】ここで、ミニモニタROM1042には、
ミニモニタプログラムが格納される。本実施形態では、
このミニモニタプログラムは、GO、リード、ライトな
どのシンプルでプリミティブなコマンドの処理のみを行
うようになっている。このため、ミニモニタROM42
のメモリ容量を例えば256バイト程度に抑えることが
でき、オンチップデバッグ機能を持たせながらマイクロ
コンピュータ1020を小規模化できるようになる。
Here, in the mini monitor ROM 1042,
The mini monitor program is stored. In this embodiment,
This mini-monitor program is designed to process only simple and primitive commands such as GO, read, and write. For this reason, the mini monitor ROM 42
The memory capacity of the microcomputer 1020 can be reduced to, for example, about 256 bytes, and the microcomputer 1020 can be downsized while having an on-chip debugging function.

【0119】ミニモニタRAM1044には、デバッグ
モードへの移行時に(ユーザプログラムのブレーク発生
時に)、CPU1022の内部レジスタ1024の内容
が退避される。これにより、デバッグモードの終了後に
ユーザプログラムの実行を適正に再スタートできるよう
になる。また内部レジスタの内容のリード等を、ミニモ
ニタプログラムが持つプリミティブなリードコマンド等
で実現できるようになる。
The contents of the internal register 1024 of the CPU 1022 are saved in the mini monitor RAM 1044 when shifting to the debug mode (when a break occurs in the user program). As a result, the execution of the user program can be properly restarted after the end of the debug mode. Also, the reading of the contents of the internal register can be realized by a primitive read command or the like of the mini monitor program.

【0120】制御レジスタ1046は、各種のデバッグ
処理を制御するためのレジスタであり、ステップ実行イ
ネーブルビット、ブレークイネーブルビット、ブレーク
アドレスビット、トレースイネーブルビットなどを有す
る。ミニモニタプログラムにより動作するCPU102
2が制御レジスタ1046の各ビットにデータをライト
したり、各ビットのデータをリードすることで、各種の
デバッグ処理が実現される。
The control register 1046 is a register for controlling various debugging processes, and has a step execution enable bit, a break enable bit, a break address bit, a trace enable bit, and the like. CPU 102 operated by a mini monitor program
2 writes data to each bit of the control register 1046 or reads data of each bit, whereby various debugging processes are realized.

【0121】SIO1048は、マイクロコンピュータ
1020の外部に設けられたデバッグツール1060と
の間でデータを送受信するためのものである。SIO1
048とデバッグツール1060との間は、TXD/R
XD(データ送受信ライン)で接続されている。
The SIO 1048 is for transmitting and receiving data to and from a debug tool 1060 provided outside the microcomputer 1020. SIO1
048 and the debugging tool 1060, TXD / R
They are connected by XD (data transmission / reception line).

【0122】実行情報出力部1050は、リアルタイム
トレース機能を実現するためのものであり、CPUの実
行状態を表すステータス情報であるDST情報(DST
[2:0])及びPC絶対分岐が発生した際の分岐先の
PC(プログラムカウンタ)値(DPCO)を実行情報
として専用4端子を介して外部に出力する。
The execution information output unit 1050 is for realizing a real-time trace function, and is DST information (DST information) which is status information indicating the execution state of the CPU.
[2: 0]) and the PC (program counter) value (DPCO) at the branch destination when the PC absolute branch occurs is output as execution information to the outside via the dedicated four terminals.

【0123】実行情報出力部1050とデバッグツール
1060との間は、CPU1022の命令実行のステー
タス情報を出力する3本のDST[2:0]と、絶対分
岐先のPC(プログラムカウンタ)値をシリアルに1ビ
ットずつ出力する1本のDPCOという4本のラインで
接続されている。
Between the execution information output unit 1050 and the debug tool 1060, three DST [2: 0] for outputting status information of the instruction execution of the CPU 1022 and the PC (program counter) value of the absolute branch destination are serially transmitted. Are connected by four lines, one DPCO, which outputs one bit at a time.

【0124】デバッグツール1060はメインモニタ部
1062、実行情報取得部1064を含み、パーソナル
コンピュータ等により実現されるホストシステム106
6に接続される。
The debug tool 1060 includes a main monitor unit 1062 and an execution information acquisition unit 1064, and includes a host system 106 realized by a personal computer or the like.
6 is connected.

【0125】メインモニタ部106は、ホストシステム
1066から入力されるデバッグコマンドをプリミティ
ブコマンドに変換(分解)するための処理を行う。そし
て、メインモニタ部1062が、プリミティブコマンド
の実行を指示するデータをミニモニタ部1040に送信
すると、ミニモニタ部1040が、指示されたプリミテ
ィブコマンドを実行するための処理を行うことになる。
The main monitor 106 performs processing for converting (decomposing) a debug command input from the host system 1066 into a primitive command. Then, when the main monitor unit 1062 transmits data instructing the execution of the primitive command to the mini monitor unit 1040, the mini monitor unit 1040 performs a process for executing the designated primitive command.

【0126】また、実行情報取得部1064は、3ビッ
トのDST[2:0]と、分岐先のPC(プログラムカ
ウンタ)値を表すDPCOを内部のトレースメモリ11
04に格納する。トレース範囲が指定されている場合に
は、その範囲のDST[2:0]とDPCOをトレース
メモリに格納する。
The execution information acquisition unit 1064 stores the 3-bit DST [2: 0] and the DPCO representing the PC (program counter) value of the branch destination in the internal trace memory 11.
04. If a trace range is specified, DST [2: 0] and DPCO in that range are stored in the trace memory.

【0127】次に本実施の形態で、デバッグシステムか
らマイクロコンピュータの内部メモリにプログラムをロ
ードしたり、内部メモリの情報を書き換える構成につい
て説明する。
Next, in this embodiment, a configuration for loading a program from the debug system to the internal memory of the microcomputer and rewriting information in the internal memory will be described.

【0128】図17に示すように、本実施形態では、マ
イクロコンピュータ1020が、CPU(中央処理ユニ
ット)1022及び本実施形態の要部であるミニモニタ
部(第1のモニタ手段)1040を含む。また、マイク
ロコンピュータ1020の外部にはメインモニタ部(第
2のモニタ手段)1062が設けられている。ここでメ
インモニタ部1062は、例えばホストコンピュータ1
066などが発行したデバッグコマンドをプリミティブ
コマンドに変換(分解)するための処理を行う。また、
ミニモニタ部1040は、メインモニタ部1062との
間でデータを送受信する。そして、ミニモニタ部104
0は、実行するプリミティブコマンドを、メインモニタ
部1062からの受信データに基づいて決定し、プリミ
ティブコマンドを実行するための処理を行う。
As shown in FIG. 17, in the present embodiment, the microcomputer 1020 includes a CPU (central processing unit) 1022 and a mini monitor unit (first monitor means) 1040 which is a main part of the present embodiment. Further, a main monitor unit (second monitor unit) 1062 is provided outside the microcomputer 1020. Here, the main monitor unit 1062 is, for example, the host computer 1
066 is converted (disassembled) into a primitive command. Also,
The mini monitor unit 1040 transmits and receives data to and from the main monitor unit 1062. Then, the mini monitor unit 104
0 determines the primitive command to be executed based on the data received from the main monitor unit 1062, and performs processing for executing the primitive command.

【0129】ここで、メインモニタ部1062の変換処
理の対象となるデバッグコマンドとしては、プログラム
ロード、GO、ステップ実行、メモリライト、メモリリ
ード、内部レジスタライト、内部レジスタリード、ブレ
ークポイント設定、ブレークポイント解除などのコマン
ドを考えることができる。メインモニタ部1062は、
これらの多様で複雑なデバッグコマンドを、例えばG
O、ライト(デバッグモード時におけるメモリマップ上
の所与のアドレスへのライト)、リード(メモリマップ
上の所与のアドレスからのリード)などの、シンプルで
プリミティブなコマンドに変換する処理を行う。このよ
うにすることで、ミニモニタ部1040の処理を行うミ
ニモニタプログラムの命令コードサイズを格段に小さく
することができる。
Here, the debug commands to be converted by the main monitor unit 1062 include program load, GO, step execution, memory write, memory read, internal register write, internal register read, breakpoint setting, breakpoint Commands such as release can be considered. The main monitor unit 1062 is
These various and complex debug commands, for example G
O, Write (write to a given address on the memory map in the debug mode), Read (read from a given address on the memory map), etc., are converted into simple and primitive commands. By doing so, the instruction code size of the mini-monitor program that performs the processing of the mini-monitor unit 1040 can be significantly reduced.

【0130】これにより、デバッグシステムからマイク
ロコンピュータの内部メモリにプログラムをロードした
り、内部メモリの情報を書き換えることができる。すな
わちターゲットシステムであるマイクロコンピュータに
プログラムロードを行う場合や、メモリライトを行う場
合には、ホストコンピュータから、これらのデバッグコ
マンドを発行することになる。
As a result, a program can be loaded from the debug system into the internal memory of the microcomputer, and information in the internal memory can be rewritten. That is, when a program is loaded to the microcomputer as the target system or when a memory write is performed, these debug commands are issued from the host computer.

【0131】8.プリミティブコマンドへの変換 図18(A)(B)(C)(D)に、各種のデバッグコ
マンドをプリミティブコマンドへ変換する処理について
模式的に示す。
8. Conversion to Primitive Command FIGS. 18A, 18B, 18C, and 18D schematically show a process of converting various debug commands to primitive commands.

【0132】例えば図18(A)に示すように、(AD
D・・・、SUB・・・、AND・・・、OR・・・、
XOR・・・、LD.W・・・)という12バイトのプ
ログラムを80010h番地にロードするというデバッ
グコマンドが発行されたとする。この場合、このプログ
ラムロードコマンドは、ライト(80010h、ADD
・・・、SUB)、ライト(80014h、AND・・
・、OR・・・)、ライト(80018h、XOR・・
・、LD.W・・・)という3つのプリミティブなライ
トコマンドに変換される。即ち、ミニモニタプログラム
が、この3つのプリミティブなライトコマンドを実行す
ることで、プログラムロードコマンドが実現されるよう
になる。
For example, as shown in FIG.
D ..., SUB ..., AND ..., OR ...,
XOR ..., LD. Assume that a debug command has been issued to load the 12-byte program W.) into address 80010h. In this case, the program load command is a write (80010h, ADD
..., SUB), light (80014h, AND ...)
..., OR ...), light (80018h, XOR ...)
・, LD. W ...) are converted into three primitive write commands. That is, the mini-monitor program executes the three primitive write commands, thereby realizing the program load command.

【0133】また図18(B)に示すようにステップ実
行コマンドというデバッグコマンドが発行されたとす
る。すると、このステップ実行コマンドは、図16の制
御レジスタ1046のステップ実行イネーブルビットへ
のライトコマンドとGOコマンドに変換される。即ち、
ミニモニタプログラムが、このプリミティブなライトコ
マンドとGOコマンドを実行することで、ステップ実行
コマンドが実現されるようになる。
Assume that a debug command called a step execution command is issued as shown in FIG. Then, the step execution command is converted into a write command to the step execution enable bit of the control register 1046 in FIG. 16 and a GO command. That is,
The step execution command is realized by the mini-monitor program executing the primitive write command and GO command.

【0134】また図18(C)に示すように内部レジス
タリードコマンドというデバッグコマンドが発行された
とする。すると、この内部レジスタリードコマンドは、
メモリマップ上のミニモニタRAM44(内部レジスタ
の内容の退避先)からのリードコマンドに変換される。
即ち、ミニモニタプログラムが、このプリミティブなリ
ードコマンドを実行することで、内部レジスタリードコ
マンドが実現されるようになる。内部レジスタライトコ
マンド、メモリリードコマンド、メモリライトコマンド
も同様にして実現される。
It is also assumed that a debug command called an internal register read command has been issued as shown in FIG. Then, this internal register read command is
This is converted into a read command from the mini monitor RAM 44 (a save destination of the contents of the internal register) on the memory map.
That is, when the mini-monitor program executes the primitive read command, the internal register read command is realized. The internal register write command, the memory read command, and the memory write command are realized in the same manner.

【0135】また図18(D)に示すようにトリガアド
レスをブレークポイントとして設定するブレークポイン
ト設定コマンドというデバッグコマンドが発行されたと
する。すると、このブレークポイント設定コマンドは、
制御レジスタ1046のブレークイネーブルビット及び
ブレークアドレスビットへのライトコマンドに変換され
る。即ち、ミニモニタプログラムが、このプリミティブ
なライトコマンドを実行することで、ブレークポイント
設定コマンドが実現されるようになる。
It is also assumed that a debug command called a breakpoint setting command for setting a trigger address as a breakpoint has been issued as shown in FIG. Then, this breakpoint setting command is
It is converted into a write command to the break enable bit and the break address bit of the control register 1046. That is, when the mini-monitor program executes the primitive write command, the breakpoint setting command is realized.

【0136】このように本実施形態では、複雑で多様な
デバッグコマンドが、プリミティブでシンプルなリー
ド、ライト、GOコマンドに変換される。そして、ミニ
モニタプログラムは、このプリミティブなリード、ライ
ト、GOコマンドを実行するだけでよいため、ミニモニ
タプログラムの命令コードサイズは非常に小さくなる。
この結果、ミニモニタROM1042のメモリ容量も小
さくでき、小さなハードウェア規模でオンチップデバッ
グ機能を実現できるようになる。
As described above, in this embodiment, complicated and various debug commands are converted into primitive and simple read, write, and GO commands. Since the mini-monitor program only needs to execute the primitive read, write, and GO commands, the instruction code size of the mini-monitor program becomes very small.
As a result, the memory capacity of the mini monitor ROM 1042 can be reduced, and the on-chip debugging function can be realized with a small hardware scale.

【0137】9.デバッグツールの構成例 図19にデバッグツール1060の構成例を示す。9. Configuration Example of Debug Tool FIG. 19 shows a configuration example of the debug tool 1060.

【0138】CPU1090は、ROM1108に格納
されるプログラムを実行したり、デバッグツール106
0の全体の制御を行うものである。送受信切替部109
2は、データの送信と受信とを切り替えるためのもので
ある。クロック制御部1094は、CPU1090のS
CLK端子、アドレスアップカウンタ1100、トレー
スメモリ1104に供給するクロックを制御するもので
ある。このクロック制御部1094には、マイクロコン
ピュータ1020(SIO1048)からのBCLKが
入力される。クロック制御部1094は周波数検出回路
1095、分周回路1096を含む。周波数検出回路1
095は、BCLKの周波数が属する周波数範囲を検出
して、その結果を制御レジスタ1098に出力する。ま
た分周回路1096での分周比は制御レジスタ1098
により制御される。即ちCPU1090により実行され
るメインモニタプログラム(メインモニタROM110
に格納)が、制御レジスタ1098からBCLKの周波
数範囲を読み出す。そして、メインモニタプログラム
は、この周波数範囲に応じた最適な分周比を決定し、こ
の分周比を制御レジスタ1098に書き込む。そして、
分周回路1096は、この分周比でBCLKを分周して
SMC2を生成し、CPU1090のSCLK端子に出
力する。
The CPU 1090 executes a program stored in the ROM 1108,
0 is to be controlled overall. Transmission / reception switching unit 109
Reference numeral 2 is for switching between transmission and reception of data. The clock control unit 1094 controls the S
It controls the clock supplied to the CLK terminal, the address up counter 1100, and the trace memory 1104. BCLK from the microcomputer 1020 (SIO 1048) is input to the clock control unit 1094. The clock control unit 1094 includes a frequency detection circuit 1095 and a frequency division circuit 1096. Frequency detection circuit 1
095 detects the frequency range to which the frequency of BCLK belongs, and outputs the result to the control register 1098. The dividing ratio in the dividing circuit 1096 is determined by the control register 1098.
Is controlled by That is, a main monitor program (main monitor ROM 110) executed by the CPU 1090
Reads the frequency range of BCLK from the control register 1098. Then, the main monitor program determines an optimum frequency division ratio according to the frequency range, and writes the frequency division ratio into the control register 1098. And
The frequency dividing circuit 1096 divides BCLK by this frequency dividing ratio to generate SMC2, and outputs it to the SCLK terminal of the CPU 1090.

【0139】アドレスアップカウンタ1100は、トレ
ースメモリのアドレスをカウントアップするためのもの
である。セレクタ1102は、ライン1122(アドレ
スアップカウンタ1100が出力するアドレス)とライ
ン1124(アドレスバス1120からのアドレス)の
いずれかを選択し、トレースメモリ1104のアドレス
端子にデータを出力する。またセレクタ1106は、ラ
イン1126(図16の実行情報出力部1050の出力
であるDST[2:0]、DPCO)とライン1128
(データバス1118)のいずれかを選択し、トレース
メモリ1104のデータ端子にデータを出力したり、デ
ータ端子からデータを取り出す。
Address up counter 1100 is for counting up the address of the trace memory. The selector 1102 selects one of the line 1122 (the address output from the address up counter 1100) and the line 1124 (the address from the address bus 1120), and outputs data to the address terminal of the trace memory 1104. The selector 1106 is connected to the line 1126 (DST [2: 0], DPCO which is the output of the execution information output unit 1050 in FIG. 16) and the line 1128
(Data bus 1118), and outputs data to the data terminal of the trace memory 1104 or retrieves data from the data terminal.

【0140】ROM1108はメインモニタROM11
10(図16のメインモニタ部1062に相当)を含
み、メインモニタROM1110には、メインモニタプ
ログラムが格納される。このメインモニタプログラム
は、図18(A)〜図18(D)で説明したように、デ
バッグコマンドをプリミティブコマンドに変換するため
の処理を行う。RAM1112は、CPU1090のワ
ーク領域となるものである。
A ROM 1108 is a main monitor ROM 11
10 (corresponding to the main monitor 1062 in FIG. 16), and the main monitor ROM 1110 stores a main monitor program. This main monitor program performs processing for converting a debug command into a primitive command as described with reference to FIGS. 18A to 18D. The RAM 1112 is a work area of the CPU 1090.

【0141】RS232Cインターフェース1114、
パラレルインターフェース1116は、図16のホスト
コンピュータ1066とのインターフェースとなるもの
であり、ホストシステム1066からのデバッグコマン
ドはこれらのインターフェースを介してCPU1090
に入力されることになる。クロック生成部1118は、
CPU1090を動作させるクロックなどを生成するも
のである。
An RS232C interface 1114,
The parallel interface 1116 serves as an interface with the host computer 1066 shown in FIG. 16, and a debug command from the host system 1066 receives a CPU 1090 via these interfaces.
Will be entered. The clock generation unit 1118
A clock for operating the CPU 1090 is generated.

【0142】次に本実施形態でのリアルタイムトレース
処理について簡単に説明する。本実施形態では、図16
のCPU1022の命令実行のステータス情報を表す3
ビットのDST[2:0]と、分岐先のPC値を表すD
PCOをトレースメモリ1104に蓄える。そして、ト
レースメモリ1104に蓄えられたデータと、ホストコ
ンピュータ1066のプログラム情報記憶部に記憶され
たユーザプログラムの機械語命令列の情報とに基づい
て、トレースデータを生成する。このようにすること
で、マイクロコンピュータ1020とデバッグツール1
060との間の接続ラインの本数を少なくしながら、リ
アルタイムトレース機能を実現することが可能になる。
Next, the real-time trace processing in this embodiment will be briefly described. In the present embodiment, FIG.
Indicating status information of the instruction execution of the CPU 1022
Bit DST [2: 0] and D representing the PC value of the branch destination
The PCO is stored in the trace memory 1104. Then, trace data is generated based on the data stored in the trace memory 1104 and the information of the machine language instruction sequence of the user program stored in the program information storage unit of the host computer 1066. By doing so, the microcomputer 1020 and the debug tool 1
The real-time tracing function can be realized while reducing the number of connection lines to 060.

【0143】ユーザプログラム実行モードにおいては、
ライン1122が選択され、セレクタ1102を介して
アドレスアップカウンタ1100の出力がトレースメモ
リ1104のアドレス端子に入力される。また、ライン
1126が選択され、セレクタ1106を介してDST
[2:0]、DPCOがトレースメモリ1104のデー
タ端子に入力される。ここでアドレスアップカウンタ1
100には、まず最初に、データバス1118、アドレ
スバス1120を用いてCPU1090により図20
(A)に示すようなスタートアドレスが設定される。ま
たアドレスアップカウンタ1100のST/SP(開始
/停止)端子には、トレース範囲を特定するDST
[2]のラインが接続される。そして図20(B)に示
すように、DST[2]のラインに第1のパルス130
が入力されると、アドレスアップカウンタ1100のア
ドレスアップカウントが開始する。そして、DST
[2]のラインに第2のパルス132が入力されると、
アドレスアップカウンタ1100のアドレスアップカウ
ントが停止し、トレース動作が停止する。このようにし
て、所望のトレース範囲でのデータ(DST[2:
0]、DPCO)をトレースメモリ1104に蓄えるこ
とが可能になる。
In the user program execution mode,
The line 1122 is selected, and the output of the address up counter 1100 is input to the address terminal of the trace memory 1104 via the selector 1102. Also, the line 1126 is selected, and the DST is
[2: 0], the DPCO is input to the data terminal of the trace memory 1104. Here, address up counter 1
20. First, the CPU 1090 uses the data bus 1118 and the address bus 1120 as shown in FIG.
A start address is set as shown in FIG. A ST / SP (start / stop) terminal of the address up counter 1100 has a DST for specifying a trace range.
The line [2] is connected. Then, as shown in FIG. 20B, the first pulse 130 is applied to the line of DST [2].
Is input, the address up counter 1100 starts address up counting. And DST
When the second pulse 132 is input to the line [2],
The address up-count of the address up counter 1100 stops, and the trace operation stops. Thus, the data (DST [2:
0], DPCO) can be stored in the trace memory 1104.

【0144】一方、ユーザプログラム実行モードからデ
バッグモードに移行すると、ライン1124が選択さ
れ、セレクタ1102を介してアドレスバス1120か
らのアドレスがトレースメモリ1104のアドレス端子
に入力される。またライン1128が選択され、セレク
タ1106を介してトレースメモリ1104からのデー
タがデータバス1118に出力される。これにより、ト
レースメモリ1104に蓄えられたデータ(DST
[2:0]、DPCO)を、デバッグモード時にCPU
1090(メインモニタプログラム)が読み出すことが
可能になる。そして、読み出されたデータとユーザープ
ログラムの機械語命令列の情報とに基づいて、トレース
データを生成することが可能になる。
On the other hand, when the mode shifts from the user program execution mode to the debug mode, the line 1124 is selected, and the address from the address bus 1120 is input to the address terminal of the trace memory 1104 via the selector 1102. The line 1128 is selected, and data from the trace memory 1104 is output to the data bus 1118 via the selector 1106. As a result, the data (DST) stored in the trace memory 1104
[2: 0], DPCO) in debug mode
1090 (main monitor program) can be read. Then, it is possible to generate trace data based on the read data and the information of the machine language instruction sequence of the user program.

【0145】なお、本発明は本実施形態に限定されず、
本発明の要旨の範囲内で種々の変形実施が可能である。
Note that the present invention is not limited to this embodiment,
Various modifications can be made within the scope of the present invention.

【0146】例えば本実施の形態では、デバッグシステ
ムの機能を実現する手段がデバッグツールとホストコン
ピュータに分散して設けられている場合を例にとり説明
したががこれに限られない。デバッグツールとホストコ
ンピュータのいずれか一方にすべて機能を実現する手段
を設けてデバッグシステムを実現するようにしてもよ
い。
For example, in the present embodiment, the case where the means for realizing the function of the debug system is provided separately in the debug tool and the host computer has been described, but the present invention is not limited to this. A means for implementing all functions may be provided in one of the debug tool and the host computer to implement the debug system.

【0147】また本実施の形態では、ターゲットシステ
ムから分岐先のPC値が1ビットずつシリアルに出力さ
れる場合を例にとり説明したがこれに限られない。分岐
先PC出力用の端子を数ビット分用意しておいて数ビッ
トずつシリアルに出力するような場合でもよい。
In the present embodiment, the case where the PC value of the branch destination is serially output bit by bit from the target system has been described as an example, but the present invention is not limited to this. A terminal for outputting a branch destination PC for several bits may be prepared and serially output for several bits.

【0148】また本実施の形態では二つのトリガアドレ
スで範囲指定トレースを行う場合を例にとり説明したが
これに限られない。例えば、トリガポイントが一つまた
が3つ以上設定されている場合でもよいし、トリガポイ
ントによって範囲指定を行わない場合でもよい。
In the present embodiment, the case where the range designation trace is performed by using two trigger addresses has been described as an example, but the present invention is not limited to this. For example, one or three or more trigger points may be set, or a range may not be specified by a trigger point.

【0149】またマイクロコンピュータやデバッグツー
ルの構成も本実施形態で説明したものに限定されず、種
々の変形実施が可能である。
The configurations of the microcomputer and the debug tool are not limited to those described in the present embodiment, and various modifications can be made.

【図面の簡単な説明】[Brief description of the drawings]

【図1】CPU置き換え型のICEの例を示す図であ
る。
FIG. 1 is a diagram illustrating an example of a CPU replacement type ICE.

【図2】本実施形態の構成について説明するための図で
ある。
FIG. 2 is a diagram for describing a configuration of the present embodiment.

【図3】DST[2:0]の出力値とCPUの命令実行
状態の関係を表した図である。
FIG. 3 is a diagram illustrating a relationship between an output value of DST [2: 0] and an instruction execution state of a CPU.

【図4】図4(A)、図4(B)は絶対分岐先のアドレ
スを特定するための候補アドレス群の抽出について説明
するための図である。
FIGS. 4A and 4B are diagrams for explaining extraction of a candidate address group for specifying an address of an absolute branch destination;

【図5】図5(A)〜図5(C)はマップ情報から抽出
した候補群からの絶対分岐先のアドレスの特定処理につ
いて説明するための図である。
FIGS. 5A to 5C are diagrams for explaining a process of specifying an address of an absolute branch destination from a candidate group extracted from map information;

【図6】絶対分岐が短い間隔で発生しDPCOからプロ
グラムカウンタ値が全ビット出力されない場合に分岐先
アドレスを特定する処理の動作例を示すフローチャート
図である。
FIG. 6 is a flowchart illustrating an operation example of a process of specifying a branch destination address when an absolute branch occurs at a short interval and a program counter value is not output in all bits from the DPCO.

【図7】絶対分岐が短い間隔で発生しDPCOからプロ
グラムカウンタ値が全ビット出力されない場合に分岐先
アドレスを特定する処理の動作例を示すフローチャート
図である。
FIG. 7 is a flowchart illustrating an operation example of a process of specifying a branch destination address when an absolute branch occurs at a short interval and a program counter value is not output in all bits from the DPCO.

【図8】絶対分岐が短い間隔で発生しDPCOからプロ
グラムカウンタ値が全ビット出力されない場合に分岐先
アドレスを特定する処理の動作例を示すフローチャート
図である。
FIG. 8 is a flowchart illustrating an operation example of a process of specifying a branch destination address when an absolute branch occurs at short intervals and a program counter value is not output in all bits from the DPCO.

【図9】ターゲットシステムの内部メモリにプログラム
をロードする場合の動作例を説明するためのフローチャ
ート図である。
FIG. 9 is a flowchart for explaining an operation example when a program is loaded into the internal memory of the target system.

【図10】ターゲットシステムの内部のプログラムコー
ドを書き換える場合の動作例を説明するためのフローチ
ャート図である。
FIG. 10 is a flowchart for explaining an operation example when rewriting a program code in a target system.

【図11】プログラムをロードせずに、既にターゲット
システムの内部メモリにある場合の動作例について説明
するためのフローチャート図である。
FIG. 11 is a flowchart for explaining an operation example in a case where a program is already loaded in an internal memory of a target system without being loaded;

【図12】絶対分岐命令発生以前のプログラムカウンタ
解析処理について説明するための図である。
FIG. 12 is a diagram for describing a program counter analysis process before the occurrence of an absolute branch instruction.

【図13】トレースメモリに蓄積されている最も古いデ
ータ出力時のプログラムカウンタを解析する処理の動作
例を表したフローチャート図である。
FIG. 13 is a flowchart illustrating an operation example of a process of analyzing a program counter at the time of outputting the oldest data stored in the trace memory.

【図14】絶対分岐命令実行を示すステータス情報が命
令実行によるものかハードウエア割り込みによるものか
を判別する処理について説明するための図である。
FIG. 14 is a diagram illustrating a process of determining whether status information indicating the execution of an absolute branch instruction is due to instruction execution or a hardware interrupt.

【図15】絶対分岐命令実行を示すステータス情報が命
令実行によるものかハードウエア割り込みによるものか
を判別する処理の動作例について説明するためのフロー
チャート図である。
FIG. 15 is a flowchart for explaining an operation example of a process of determining whether status information indicating absolute branch instruction execution is due to instruction execution or hardware interrupt.

【図16】マイクロコンピュータ、デバッグシステムの
構成例を示す機能ブロック図である。
FIG. 16 is a functional block diagram illustrating a configuration example of a microcomputer and a debugging system.

【図17】本実施の形態におけるデバッグコマンドの実
行処理について説明するための図である。
FIG. 17 is a diagram for explaining a debug command execution process according to the present embodiment;

【図18】図18(A)〜図18(D)は、デバッグコ
マンドをプリミティブコマンドへ変換(分解)する処理
について説明するための図である。
FIGS. 18A to 18D are diagrams for explaining a process of converting (decomposing) a debug command into a primitive command.

【図19】デバッグツールの詳細な構成例を示す機能ブ
ロック図である。
FIG. 19 is a functional block diagram illustrating a detailed configuration example of a debug tool.

【図20】DST[2]とトレース範囲の関係を示す図
である。
FIG. 20 is a diagram showing a relationship between DST [2] and a trace range.

【符号の説明】[Explanation of symbols]

10 マイクロコンピュータ 12 CPU(中央処理ユニット) 14 実行情報出力部 16 内部メモリ 20 デバッグシステム 22 実行情報取得部 24 トレースメモリ 26 プログラム情報記憶部 27 トレース情報生成部 28 ターゲットメモリ書き込み部 29 プログラム情報書き込み部 1020 マイクロコンピュータ 1022 CPU 1024 内部レジスタ 1026 BCU 1028 内部メモリ 1030 クロック生成部 1036 外部メモリ 1040 ミニモニタ部 1042 ミニモニタROM 1044 ミニモニタRAM 1046 制御レジスタ 1048 SIO 1050 実行情報出力部 1060 デバッグツール 1062 メインモニタ部 1064 実行情報取得部 1066 ホストコンピュータ 1090 CPU 1092 送受信切替部 1094 クロック制御部 1095 周波数検出部 1096 分周回路 1098 制御レジスタ 1100 アドレスアップカウンタ 1102 セレクタ 1104 トレースメモリ 1106 セレクタ 1108 ROM 1110 外部モニタROM 1112 RAM 1114 RS232Cインターフェース 1116 パラレルインターフェース 1118 クロック生成部 Reference Signs List 10 microcomputer 12 CPU (central processing unit) 14 execution information output unit 16 internal memory 20 debug system 22 execution information acquisition unit 24 trace memory 26 program information storage unit 27 trace information generation unit 28 target memory writing unit 29 program information writing unit 1020 Microcomputer 1022 CPU 1024 Internal register 1026 BCU 1028 Internal memory 1030 Clock generation unit 1036 External memory 1040 Mini monitor unit 1042 Mini monitor ROM 1044 Mini monitor RAM 1046 Control register 1048 SIO 1050 Execution information output unit 1060 Debug tool 1062 Main monitor unit 1064 Execution information acquisition unit 1066 Host computer 1090 CPU 1092 Transmission / reception off Part 1094 clock control unit 1095 frequency detector 1096 frequency divider 1098 control register 1100 address up counter 1102 selector 1104 trace memory 1106 selector 1108 ROM 1110 external monitor ROM 1112 RAM 1114 RS232C interface 1116 parallel interface 1118 clock generator

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】 CPUの実行状態を表すステータス情報
と絶対分岐先アドレスを分割して出力するターゲットシ
ステムのトレース情報を出力するデバッグシステムであ
って、 ターゲットシステムから分割された絶対分岐先アドレス
とステータス情報を受け取る手段と、 ターゲットシステムから絶対分岐先アドレスの一部を受
け取った場合に、ターゲットシステムが実行するプログ
ラムが存在するアドレス領域に関する情報及びターゲッ
トシステムから受けとったステータス情報の少なくとも
一方に基づき、前記絶対分岐先アドレスの一部以外の部
分を特定してトレース情報を生成するトレース情報生成
手段と、 を含むことを特徴とするデバッグシステム。
1. A debug system for outputting trace information of a target system which divides and outputs status information indicating an execution state of a CPU and an absolute branch destination address, wherein the absolute branch destination address and the status are divided from the target system. Means for receiving information, when receiving a part of the absolute branch destination address from the target system, based on at least one of information on an address area where a program to be executed by the target system exists and status information received from the target system, Trace information generating means for generating trace information by specifying a part other than a part of the absolute branch destination address.
【請求項2】 請求項1において、 前記トレース情報生成手段が、 受け取った絶対分岐先のアドレス情報の一部を下位ビッ
トとする候補アドレス群を抽出し、当該候補アドレス群
の中から絶対分岐先のアドレスを特定することを特徴と
するデバッグシステム。
2. The trace information generating means according to claim 1, wherein said trace information generating means extracts a candidate address group having a part of the received address information of the absolute branch destination as a lower bit, and extracts the absolute branch destination from the candidate address group. A debugging system characterized by specifying an address of a debugger.
【請求項3】 請求項1乃至2のいずれかにおいて、 前記トレース情報生成手段が、 ターゲットシステムから受け取ったステータス情報の配
列と、候補アドレス群に含まれる所与の候補アドレスに
より特定されるプログラムの機械語命令列から予測され
るステータス情報の配列と比較して絶対分岐先のアドレ
ス情報を特定することを特徴とするデバッグシステム。
3. The program according to claim 1, wherein said trace information generating means includes an array of status information received from a target system and a program specified by a given candidate address included in a candidate address group. A debugging system characterized in that address information of an absolute branch destination is specified by comparing with an array of status information predicted from a machine language instruction sequence.
【請求項4】 請求項1乃至3のいずれかにおいて、 前記ステータス情報として、ターゲットシステムのCP
Uの実行状態が通常命令実行、絶対分岐命令実行、相対
分岐命令実行のいずれに属するかを判別するための情報
を含むことを特徴とするデバッグシステム。
4. The system according to claim 1, wherein the status information includes a CP of a target system.
A debug system comprising information for determining whether the execution state of U belongs to execution of a normal instruction, execution of an absolute branch instruction, or execution of a relative branch instruction.
【請求項5】 絶対分岐先のアドレス情報を分割して出
力するターゲットシステムのトレース情報を生成するデ
バッグシステムであって、 前記ターゲットシステムから絶対分岐先のアドレス情報
の一部を受けとる手段と、 プログラムが存在するアドレス領域に関する情報に基づ
き受け取った絶対分岐先のアドレス情報の一部以外の部
分を特定する手段と、を含むことを特徴とするデバッグ
システム。
5. A debug system for generating trace information of a target system that divides and outputs address information of an absolute branch destination, wherein the means receives a part of the address information of the absolute branch destination from the target system, and a program. Means for specifying a part other than a part of the address information of the absolute branch destination received based on the information on the address area where the data exists.
【請求項6】 CPUの実行状態を表すステータス情報
と絶対分岐先アドレスを分割して出力するターゲットシ
ステムのトレース情報を出力するデバッグシステムを制
御するためのコンピュータが読みとり可能な情報記憶媒
体であって、 ターゲットシステムから分割された絶対分岐先アドレス
とステータス情報を受け取る手段と、 ターゲットシステムから絶対分岐先アドレスの一部を受
け取った場合に、ターゲットシステムが実行するプログ
ラムが存在するアドレス領域に関する情報及びターゲッ
トシステムから受けとったステータス情報の少なくとも
一方に基づき、前記絶対分岐先アドレスの一部以外の部
分を特定してトレース情報を生成するトレース情報生成
手段と、 を実現するために必要な情報を含むことを特徴とする情
報記憶媒体。
6. A computer-readable information storage medium for controlling a debug system which outputs status information indicating an execution state of a CPU and trace information of a target system which divides and outputs an absolute branch destination address. Means for receiving the absolute branch destination address and status information divided from the target system, and information and a target relating to an address area where a program to be executed by the target system exists when a part of the absolute branch destination address is received from the target system. Trace information generating means for generating trace information by specifying a part other than a part of the absolute branch destination address based on at least one of the status information received from the system; and Characteristic information storage medium.
【請求項7】 請求項6において、 前記トレース情報生成手段が、 受け取った絶対分岐先のアドレス情報の一部を下位ビッ
トとする候補アドレス群を抽出し、当該候補アドレス群
の中から絶対分岐先のアドレスを特定するために必要な
情報を含むことを特徴とする情報記憶媒体。
7. The trace information generating means according to claim 6, wherein said trace information generating means extracts a candidate address group having a part of the received address information of the absolute branch destination as lower bits, and extracts the absolute branch destination from the candidate address group. An information storage medium containing information necessary for specifying an address of the information.
【請求項8】 請求項6乃至7のいずれかにおいて、 前記トレース情報生成手段が、 ターゲットシステムから受け取ったステータス情報の配
列と、候補アドレス群に含まれる所与の候補アドレスに
より特定されるプログラムの機械語命令列から予測され
るステータス情報の配列と比較して絶対分岐先のアドレ
ス情報を特定するために必要な情報を含むことを特徴と
する情報記憶媒体。
8. The program according to claim 6, wherein the trace information generating means includes an array of status information received from the target system and a program specified by a given candidate address included in a candidate address group. An information storage medium including information necessary for specifying address information of an absolute branch destination by comparing with an array of status information predicted from a machine language instruction sequence.
【請求項9】 請求項6乃至8のいずれかにおいて、 前記ステータス情報として、ターゲットシステムのCP
Uの実行状態が通常命令実行、絶対分岐命令実行、相対
分岐命令実行のいずれに属するかを判別するために必要
な情報を含むことを特徴とする情報記憶媒体。
9. The target system according to claim 6, wherein the status information includes a CP of a target system.
An information storage medium comprising information necessary for determining whether the execution state of U belongs to execution of a normal instruction, execution of an absolute branch instruction, or execution of a relative branch instruction.
【請求項10】 絶対分岐先のアドレス情報を分割して
出力するターゲットシステムのトレース情報を生成する
デバッグシステムを制御するためのコンピュータが読み
とり可能な情報記憶媒体であって、 前記ターゲットシステムから絶対分岐先のアドレス情報
の一部を受けとる手段と、 プログラムが存在するアドレス領域に関する情報に基づ
き受け取った絶対分岐先のアドレス情報の一部以外の部
分を特定する手段と、 を実現するために必要な情報を含むことを特徴とする情
報記憶媒体。
10. A computer-readable information storage medium for controlling a debug system for generating trace information of a target system that divides and outputs address information of an absolute branch destination, wherein the absolute branch from the target system is performed. Means for receiving a part of the previous address information, and means for specifying a part other than a part of the absolute branch destination address information received based on the information on the address area where the program exists, necessary information for realizing: An information storage medium comprising:
JP09242799A 1999-03-31 1999-03-31 Debug system and information storage medium Expired - Fee Related JP3711438B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09242799A JP3711438B2 (en) 1999-03-31 1999-03-31 Debug system and information storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09242799A JP3711438B2 (en) 1999-03-31 1999-03-31 Debug system and information storage medium

Publications (2)

Publication Number Publication Date
JP2000284984A true JP2000284984A (en) 2000-10-13
JP3711438B2 JP3711438B2 (en) 2005-11-02

Family

ID=14054148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09242799A Expired - Fee Related JP3711438B2 (en) 1999-03-31 1999-03-31 Debug system and information storage medium

Country Status (1)

Country Link
JP (1) JP3711438B2 (en)

Also Published As

Publication number Publication date
JP3711438B2 (en) 2005-11-02

Similar Documents

Publication Publication Date Title
JP3684831B2 (en) Microcomputer, electronic equipment and debugging system
US6668339B1 (en) Microprocessor having a debug interruption function
US6094730A (en) Hardware-assisted firmware tracing method and apparatus
US6289300B1 (en) Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
US5630102A (en) In-circuit-emulation event management system
US6662314B1 (en) Microcomputer including program for rewriting data in an internal flash memory
JPH10214201A (en) Microcomputer
JPH11282720A (en) Microcomputer, electronic equipment and debug system
US6708289B1 (en) Microcomputer, electronic equipment and debugging system
JP2002202900A (en) Debug device
US6760864B2 (en) Data processing system with on-chip FIFO for storing debug information and method therefor
US20060075310A1 (en) Microcomputer and trace control method capable of tracing desired task
JP3775462B2 (en) Debug system and information storage medium
JPH1078887A (en) Debug system and debug method
JPH11282714A (en) Information processor and electronic equipment
JP3741187B2 (en) Debug system and information storage medium
JP2003263339A (en) Debug function-incorporated microcomputer
JP2000284984A (en) Debug system and information storage medium
US20040015885A1 (en) Emulator and emulation method
CN114546746A (en) Chip debugging method and device, electronic equipment and storage medium
JP3741182B2 (en) Microcomputer, electronic equipment and debugging system
US20230314513A1 (en) In-circuit emulator device
JP2005251217A (en) Microcomputer, electronic apparatus and debugging system
JP2004038464A (en) Microcomputer with built-in debugging function
US6854047B2 (en) Data storage device and data transmission system using the same

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050623

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050801

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080826

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100826

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130826

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees