JP2000293402A - マイクロプロセッサおよびデバッグ方法 - Google Patents

マイクロプロセッサおよびデバッグ方法

Info

Publication number
JP2000293402A
JP2000293402A JP11101062A JP10106299A JP2000293402A JP 2000293402 A JP2000293402 A JP 2000293402A JP 11101062 A JP11101062 A JP 11101062A JP 10106299 A JP10106299 A JP 10106299A JP 2000293402 A JP2000293402 A JP 2000293402A
Authority
JP
Japan
Prior art keywords
monitor
program
interrupt
address
memory
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.)
Pending
Application number
JP11101062A
Other languages
English (en)
Inventor
Takao Yamamoto
崇夫 山本
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP11101062A priority Critical patent/JP2000293402A/ja
Publication of JP2000293402A publication Critical patent/JP2000293402A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 ユーザメモリの不安定さに左右され難く、高
速にモニタプログラムを実行するデバッグシステムを提
供することを目的とする。 【解決手段】 モニタ割り込みベースレジスタを備え、
モニタリセット後は、信頼性の高いデバッグインターフ
ェースを介してモニタプログラムを実行し、ユーザメモ
リの診断後に、モニタプログラムをユーザメモリにダウ
ンロードし、モニタ割り込みベースレジスタによってモ
ニタ割り込みベースアドレスを変更し、以降は、高速な
ユーザメモリ上のモニタプログラムを実行するようにす
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、モニタプログラム
を実行することによってユーザプログラムのデバッグを
効率良く行なう、マイクロプロセッサおよびデバッグ方
法に関する。
【0002】
【従来の技術】従来のデバッグ装置が、特開平8-255096
号公報に開示されている。
【0003】図3に、従来のマイクロプロセッサを備え
る従来のデバッグ装置を示す。この従来例は一般にROM
モニタと呼ばれるデバッグシステムである。
【0004】図3において、1は、マイクロプロセッ
サ、2はシリアルインターフェース、4は、ホストコンピ
ュータ、6は、モニタプログラム、7は、メモリ、8は、I
/Oデバイス、100はユーザターゲットシステムをそれぞ
れ示す。
【0005】この従来例は、ターゲットシステム100上
にホストコンピュータ4と接続するためのシリアルイン
ターフェース2を用意して、メモリ7中にモニタプログラ
ム6を格納しておく。マイクロプロセッサ1は、このモニ
タプログラム6を実行し、メモリ7などをアクセスする。
さらに、ソフトウェアブレイク命令などを使用して、ユ
ーザープログラムの実行制御を行なう。
【0006】モニタプログラム6の格納方法には、ROMエ
ミュレータを使う方法や、マイクロプロセッサ1を停止
させ、シリアルインターフェース2とDMA機能によって、
ホストコンピュータからモニタプログラム6をメモリ7に
ダウンロードするなどの方法がある。
【0007】この従来例のデバッグシステムの動作フロ
ーチャートを図5に示す。図5において、11は、初期化
ステップ、12は、デバッガ実行ステップ、13は、ユーザ
プログラムへの移行ステップ、14は、ユーザプログラム
実行状態をそれぞれ示す。
【0008】(初期化ステップ11) モニタリセットに
よって、マイクロプロセッサ1は、モニタリセットハン
ドラのアドレスにジャンプする。ここでは、モニタリセ
ットハンドラのアドレスにはモニタプログラム6があ
り、そこにモニタリセットハンドラとして、システムの
初期化コードが存在する。したがって初期化ステップ11
が実行されることになる。
【0009】(デバッガ実行ステップ12) モニタプロ
グラム6は、デバッグのためのプログラムを実行する。
これは、例えば、ユーザプログラムの実行開始アドレス
の設定、ブレークポイントの設定、メモリおよびレジス
タの読み出しまたは設定である。また、ユーザからのデ
バッグコマンド待ちである。
【0010】(ユーザプログラムへの移行ステップ13)
モニタプログラム6は、設定を終えると、ユーザプロ
グラムの実行開始アドレスにジャンプし、ユーザプログ
ラム実行状態になる。
【0011】ユーザプログラム実行状態で、例えばブレ
ークポイント命令の実行によるモニタ例外や、外部端子
入力によるモニタ割り込みが発生すると、デバッガ実行
ステップ12に戻る。このとき、マイクロプロセッサ1
は、モニタ割り込みまたは例外アドレスに対応した特定
のアドレスへジャンプする。そのアドレスには、モニタ
プログラム6が割り付けられていて、その特定アドレス
からプログラムを実行することによりデバッガ実行ステ
ップ12にふたたび入る。
【0012】このようなステップを実行することによっ
てデバッグシステムは、ユーザプログラムをデバッグす
ることができる。
【0013】しかし、従来例では、モニタプログラム6
をユーザが使用するメモリ7で実行するために、ユーザ
ターゲットシステム100のメモリ7の動作が完全でない場
合に、モニタプログラム6の実行自身が安定して動作し
ない場合がある。
【0014】また、図4に、デバッグ装置の他の従来例
を示す。図4において、3はデバッグインターフェース
を示し、5は、デバッグモジュールを示す。他の構成要
素は図3の同符号のものと同一である。デバッグインタ
ーフェース3は、マイクロプロセッサ1と直接内蔵インタ
ーフェースで接続される。さらに、デバッグモジュール
5と接続される。モニタプログラム6は、デバッグモジュ
ール5の中に配置される。
【0015】マイクロプロセッサ1は、モニタプログラ
ム6を実行する要求を受けた時、つまりモニタ割り込み
や例外が発生した時に、デバッグインターフェース3に
アクセスし、デバッグインターフェース3が、そのアク
セスをデバッグモジュール5に対して行ない、モニタプ
ログラム6のフェッチや、ユーザターゲットシステム100
の資源のモニタ結果や設定値を受け渡しする。
【0016】この従来例では、モニタプログラム6をユ
ーザが使用するメモリ7ではなく、デバッグ専用のデバ
ッグモジュール5に置くことによって、図3で説明し
た、ユーザターゲットシステム100のメモリ7の動作が完
全でない場合でも、モニタプログラム6の実行を安定し
て行なうことができる。また、この従来例も図5に示し
た動作フローチャートで説明した動作と同様の動作を行
なう。
【0017】しかし、この従来例では、マイクロプロセ
ッサ1の中にデバッグインターフェース3を搭載し、直接
デバッグモジュール5と端子接続するために、接続する
端子数が多くなってコストが増加するか、少ない端子で
接続するために、モニタプログラム6の実行速度が遅く
なってしまう場合がある。
【0018】
【発明が解決しようとする課題】以上説明したように、
モニタプログラムをユーザターゲットシステム上のメモ
リに配置することによって、デバッグを行なう従来のデ
バッグシステムでは、ユーザターゲットシステムの影響
によってデバッグシステム自身の動作が左右される問題
がある。
【0019】また、マイクロプロセッサがデバッグモジ
ュールと直接接続するデバッグインターフェースを持
ち、そのデバッグモジュール内に配置されるモニタプロ
グラムを実行するように構成されたデバッグシステムに
おいては、端子数の増加または、端子数の不足による接
続経路の細さによるモニタプログラム実行の遅さによ
り、デバッグシステムを用いたデバッグの効率に悪影響
を与えるという問題がある。
【0020】
【課題を解決するための手段】この課題を解決するため
本発明のマイクロプロセッサは、デバッグのためにモニ
タプログラムを実行し、モニタリセット後に外部からモ
ニタプログラムを供給するインターフェース手段と、ユ
ーザープログラムの実行中にモニタプログラムへ移行す
るための割り込みまたは例外が発生したときにジャンプ
する割り込みベクタのベースアドレスを保持する手段を
備えたことを特徴とする。
【0021】また本発明のデバッグ方法は、上記のマイ
クロプロセッサを備え、少なくとも、モニタリセット後
に実行されるモニタプログラムによってシステム初期診
断を行なうステップと、初期診断が正常であれば、モニ
タプログラムをマイクロプロセッサが直接アクセス可能
なメモリにロードするステップと、モニタ割り込みのベ
ースアドレスを、前記メモリにロードしたモニタプログ
ラムの中のモニタ割り込みハンドラのベースアドレスに
設定するステップとを有することを特徴とする。
【0022】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図1から図2を用いて、説明する。
【0023】図1は本発明の実施の形態におけるデバッ
グシステムのブロック図である。図1において、1は、
マイクロプロセッサ、3は、デバッグインターフェー
ス、5は、デバッグモジュール、6、6'は、モニタプログ
ラム、7は、メモリ、8は、I/Oデバイス、9は、モニタ割
り込みベースレジスタ、10は、デバッグインターフェー
ス3とデバッグモジュールの接続線をそれぞれ示してい
る。
【0024】ユーザターゲットシステム100は、主にマ
イクロプロセッサ1、メモリ7、I/O 8から構成され、メ
モリ7上のユーザプログラムをマイクロプロセッサ1が実
行して、メモリ7やI/O 8をアクセスすることによって機
能するシステムである。
【0025】また、マイクロプロセッサ1は、デバッグ
インターフェース3を内蔵し、特定のアドレス空間(例
えば、0xfffff000-0xffffffff。0xは16進数を表す。以
下同様。)がデバッグインターフェース3に割り付けら
れる。デバッグインターフェース3は外部のデバッグモ
ジュール5と接続され、マイクロプロセッサ1は、デバッ
グインターフェース3を介してデバッグモジュール5をア
クセスすることができる。
【0026】マイクロプロセッサ1は、2種類の割り込み
または例外を処理する。ひとつは、デバッグに必要なモ
ニタ割り込みまたはモニタ例外であり、もうひとつは、
ユーザプログラムが必要とするユーザ割り込みまたはユ
ーザ例外である。ここでは、例外または割り込みを区別
する必要がないので、これ以降、割り込みという場合
は、例外も含むことにする。モニタ割り込みの典型的な
例は、ブレークポイント命令の実行によって発生する割
り込みである。また、ユーザ割り込みの典型的な例は、
タイマなどのI/Oデバイスからの割り込みである。
【0027】モニタ割り込みが発生すると、プロセッサ
1は、モニタ割り込みベースレジスタ9の保持する、モニ
タ割り込みベクタのベースアドレスにジャンプする。そ
して、モニタプログラム6または6'を実行する。モニタ
プログラムは、デバッグに必要な動作、例えば、ユーザ
プログラムのスタートアドレスの設定、ユーザプログラ
ムのデータの設定/読み出し、ブレークポイントの設定
などを行ない、ユーザプログラムにジャンプする。これ
によって、ユーザプログラムのデバッグを行なうことが
可能になる。
【0028】このように構成されるデバッグシステムに
おいて、図2を用いて、その動作を説明する。図2は、デ
バッグシステムの動作フローチャートである。図2にお
いて、11は、初期化ステップ、12は、モニタプログラム
によるデバッガ実行ステップ、13は、ユーザプログラム
への移行ステップ、14は、ユーザプログラム実行状態、
15は、システム初期診断ステップ、16は、モニタプログ
ラム6のメモリ7へのロードステップ、17は、モニタ割り
込みのベースアドレスを変更するステップをそれぞれ示
す。
【0029】(初期化ステップ11)デバッグリセットに
よって、モニタ割り込みベースレジスタ9は、デバッグ
インターフェース3を介してデバッグモジュール5内のモ
ニタプログラム6のモニタ割り込みベクタのアドレスを
指すように、例えば0xfffff000 に初期化される。した
がって、マイクロプロセッサ1は、モニタ割り込みベー
スレジスタ9の指すデバッグリセットハンドラのアドレ
ス 0xfffff000 にジャンプする。ここでは、デバッグ
リセットハンドラのアドレス 0xfffff000 にはデバッ
グモジュール5内のモニタプログラム6があり、そこにデ
バッグリセットハンドラとして、システムの初期化コー
ドが存在する。したがって初期化ステップ11が実行され
る。
【0030】(システム初期診断ステップ15)モニタプ
ログラム6は、ユーザターゲットシステム100の初期診断
を行なう。ここで、メモリ7へのアクセスを診断する。
もし、この初期診断ステップ15で、NGの場合、例えば、
ユーザターゲットシステム100の誤動作によって、例え
ばアクセスタイムアウトなどが検出された場合、モニタ
割り込みベースレジスタ9は、デバッグモジュール5を指
しているので、モニタプログラム6内のアクセスタイム
アウトの処理ハンドラが動作し、(図2のNG方向の)デ
バッガ実行ステップ12に移行する。
【0031】また、システム初期診断がOKの場合は、モ
ニタプログラム6のメモリ7へのロードステップに移行す
る。
【0032】(モニタプログラムのメモリへのロードス
テップ16)モニタプログラム6は、メモリ7上の特定のア
ドレス、例えば 0x8000f000 にモニタプログラム6と
同等の機能を持つモニタプログラム6'をダウンロードす
る。
【0033】(モニタ割り込みのベースアドレスを変更
するステップ17)次に、モニタプログラム6は、ダウン
ロードしたモニタプログラム6'の中のモニタ割り込みハ
ンドラのベースアドレス 0x8000f000 を、モニタ割り
込みベースレジスタ9に設定し、デバッガ実行ステップ1
2へ移行する。
【0034】(デバッガ実行ステップ12)モニタプログ
ラム6は、デバッグのためのプログラムを実行する。こ
れは、例えば、ユーザプログラムの実行開始アドレスの
設定、ブレークポイントの設定、メモリおよびレジスタ
の読み出しまたは設定である。また、ユーザからのデバ
ッグコマンド待ちである。
【0035】(ユーザプログラムへの移行ステップ13)
モニタプログラム6は、設定を終えると、ユーザプログ
ラムの実行開始アドレスにジャンプし、ユーザプログラ
ム実行状態になる。
【0036】ユーザプログラム実行状態で、例えばブレ
ークポイント命令の実行によるモニタ例外や、外部端子
入力によるモニタ割り込みが発生すると、デバッガ実行
ステップ12に戻る。このとき、マイクロプロセッサ1
は、モニタ割り込みベースアドレスレジスタ9に設定さ
れたアドレスをベースアドレスとしてモニタ割り込みに
対応した特定のアドレスへジャンプする。そのアドレス
には、モニタプログラム6'が割り付けられていて、その
特定アドレスからプログラムを実行することによりデバ
ッガ実行ステップに入る。
【0037】したがって、モニタプログラム6のメモリ7
へのロード後に、モニタ割り込みベースレジスタ9に、
設定されたアドレスにしたがって、モニタ割り込みが発
生した時に、実行されるモニタプログラムのフェッチす
る場所を変えることが可能になる。ここでは、モニタリ
セット後は、比較的低速ではあるがユーザターゲットシ
ステム100に左右されにくい接続線10を介してモニタプ
ログラム6を実行し、システム初期診断ステップ15によ
って、メモリ7のアクセスが確認された後に、接続線10
よりも高速なメモリバスを使用してモニタプログラム6'
を実行するようにすることができる。
【0038】また、デバッグシステムの信頼性の観点か
ら、モニタ割り込みベースレジスタ9は、モニタプログ
ラムの実行状態でのみ設定を変更できるようにするべき
である。
【0039】また、モニタプログラムの実行において、
ユーザプログラムの動作の影響を排除するために、モニ
タ割り込みベースレジスタ9に設定される値から特定の
範囲をユーザプログラムからアクセス不可能にすると、
デバッグシステムの信頼性を向上させる。アクセス不可
能にする方法としては、例えばモニタ例外を発生させれ
ば良い。また、アクセス不可能にする範囲を設定するレ
ジスタがあっても良い。
【0040】なお、本発明の説明においては、モニタプ
ログラム6'をユーザが使用するメモリ7にダウンロード
しているが、マイクロプロセッサからバスアクセス可能
なメモリであれば良く、本発明を限定するものではな
い。
【0041】以上のように、モニタリセット後は、信頼
性の高いデバッグインターフェースを介してデバッグモ
ジュール内のモニタプログラムを実行し、システム初期
診断ステップと、ユーザターゲットシステム内のメモリ
へ、モニタプログラムをダウンロードするステップと、
モニタ割り込みのベースアドレスを変更するステップを
実行することによって、それ以降のデバッガ実行は、ユ
ーザターゲットシステム内の診断済みのメモリからモニ
タプログラムをフェッチして行なうことによって、ユー
ザターゲットシステムのメモリシステムが不安定な場合
でも、デバッグでき、ユーザターゲットシステムのメモ
リシステムが安定した場合には、高速にモニタプログラ
ムを実行することが可能となるので、ユーザへの応答速
度を速くすることができるので、ユーザのデバッグ効率
を落さないことができる。
【0042】
【発明の効果】モニタプログラム起動時には、安定して
いるインターフェース手段からモニタプログラムを供給
して動作させることによって、デバッグの信頼性を高
め、システム初期診断後には、モニタプログラムをメモ
リ上にロードして動作させることによって、モニタプロ
グラムの動作速度を向上することができ極めて有効であ
る。
【図面の簡単な説明】
【図1】本発明の第一の実施の形態におけるデバッグシ
ステムのブロック図
【図2】図1に示す本発明の第一の実施の形態によるデ
バッグシステムの動作フローチャート
【図3】従来方式のデバッグシステムを構成する主要部
分の概略ブロック図
【図4】従来方式のデバッグシステムを構成する主要部
分の概略ブロック図
【図5】従来方式のデバッグシステムの動作フローチャ
ート
【符号の説明】
1 マイクロプロセッサ 3 デバッグインターフェース 9 モニタ割り込みベースレジスタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 デバッグのためにモニタプログラムを実
    行し、モニタリセット後に外部からモニタプログラムを
    供給するインターフェース手段と、ユーザープログラム
    の実行中にモニタプログラムへ移行するための割り込み
    または例外が発生したときにジャンプする割り込みベク
    タのベースアドレスを保持する手段を備えたことを特徴
    とするマイクロプロセッサ。
  2. 【請求項2】 請求項1記載のマイクロプロセッサを備
    え、少なくとも、モニタリセット後に実行されるモニタ
    プログラムによってシステム初期診断を行なうステップ
    と、初期診断が正常であれば、モニタプログラムをマイ
    クロプロセッサが直接アクセス可能なメモリにロードす
    るステップと、モニタ割り込みのベースアドレスを、前
    記メモリにロードしたモニタプログラムの中のモニタ割
    り込みハンドラのベースアドレスに設定するステップと
    を有することを特徴とするデバッグ方法。
  3. 【請求項3】 前記割り込みの処理開始アドレスをベー
    スアドレスとして、特定されるメモリ領域に対するユー
    ザのアクセスにより例外が発生することを特徴とする請
    求項1記載のマイクロプロセッサ。
JP11101062A 1999-04-08 1999-04-08 マイクロプロセッサおよびデバッグ方法 Pending JP2000293402A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11101062A JP2000293402A (ja) 1999-04-08 1999-04-08 マイクロプロセッサおよびデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11101062A JP2000293402A (ja) 1999-04-08 1999-04-08 マイクロプロセッサおよびデバッグ方法

Publications (1)

Publication Number Publication Date
JP2000293402A true JP2000293402A (ja) 2000-10-20

Family

ID=14290637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11101062A Pending JP2000293402A (ja) 1999-04-08 1999-04-08 マイクロプロセッサおよびデバッグ方法

Country Status (1)

Country Link
JP (1) JP2000293402A (ja)

Similar Documents

Publication Publication Date Title
US5574892A (en) Use of between-instruction breaks to implement complex in-circuit emulation features
US20050216895A1 (en) Method and apparatus for remote debugging of kernel and application software
JP2002041326A (ja) プログラムのテスト及びデバッギングが容易な中央処理装置
JPH011039A (ja) インサーキット・エミュレータ
US20100153786A1 (en) Processor, multiprocessor, and debugging method
US7100088B2 (en) Computer system equipped with a BIOS debugging card
EP0588473B1 (en) Method and apparatus for emulating the environment of a microprocessor
WO2009144892A1 (ja) デバイスエミュレーション支援装置、デバイスエミュレーション支援方法、デバイスエミュレーション支援回路及び情報処理装置
JP2513417B2 (ja) 情報処理装置
US7203819B2 (en) Program processing device
JPH07120338B2 (ja) 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ
KR19980079596A (ko) 멀티 프로세서 시스템의 프로세서 정지 상태 구현 방법 및 장치
JP2000293402A (ja) マイクロプロセッサおよびデバッグ方法
JP2003122594A (ja) 半導体装置および評価装置
US6098183A (en) Method of debugging in a computer system
KR100303307B1 (ko) 실시간 오퍼레이팅 시스템에서 디버깅동작을 위한 다운로드장치 및 방법
JP2010015364A (ja) マルチプロセッサシステム及び情報処理装置
JPH06103109A (ja) データプロセッサ、及びこれを用いるデバッグ装置
JP3449812B2 (ja) 制御用電子装置
JP2679591B2 (ja) エミュレーションチップ及びインサーキットエミュレー タ
US7194401B2 (en) Configuration for in-circuit emulation of a program-controlled unit
JPS6152747A (ja) マイクロプロセツサ
JPH02135545A (ja) デバッガの実行制御処理方式
US9342359B2 (en) Information processing system and information processing method
JP3046492B2 (ja) コンピュータシステム