JP2004046716A - デバッグ装置 - Google Patents
デバッグ装置 Download PDFInfo
- Publication number
- JP2004046716A JP2004046716A JP2002205802A JP2002205802A JP2004046716A JP 2004046716 A JP2004046716 A JP 2004046716A JP 2002205802 A JP2002205802 A JP 2002205802A JP 2002205802 A JP2002205802 A JP 2002205802A JP 2004046716 A JP2004046716 A JP 2004046716A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- mcu
- execution
- program
- execution result
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
Abstract
【解決手段】シングルステップ命令受信部31がシングルステップの実行命令を受信すると、ターゲットマイコンであるMCU29からプログラムの実行状態に関する情報を取得して実行対象の命令を解析し、その命令の実行結果を模擬して、その実行結果をMCU29に反映する。
【選択図】 図1
Description
【発明の属する技術分野】
この発明は、ターゲットマイコンに実装されるプログラムをデバッグするデバッグ装置及びデバッグプログラムに関するものである。
【0002】
【従来の技術】
図5は従来のデバッグ装置を示す構成図であり、図において、1はターゲットマイコンであるMCU9に実装されるプログラムをデバッグする際にユーザが操作するパソコン、2はパソコン1とコントロールボード3を接続するRS−232CケーブルなどのI/Fケーブル、3はパソコン1から出力される命令にしたがってMCU9を制御するコントロールボード、4はコントロールボード3のMCU、5はコントロールボード3のメモリ、6はコントロールボード3とターゲットボード7を接続するI/Fケーブル、7はターゲットボード、8はエミュレーションボード、9はデバッグ回路を内蔵しているMCUである。
【0003】
図6はMCU9の機能ブロックを示すブロック図であり、図において、11はCPU、12はバスI/F、13は周辺機能実現回路、14はクロック発生回路、15はデバッグ対象のプログラムを格納しているフラッシュメモリ、16はRAM、17はI/Oポート、18はコントロールボード3の指示の下、プログラムのデバッグを行うデバッグ回路である。
【0004】
次に動作について説明する。
MCU9のフラッシュメモリ15に格納されているプログラムの各命令を順番に実行しながらデバッグを行う場合、ユーザがパソコン1を操作してシングルステップの実行命令を発行させる。
【0005】
コントロールボード3のMCU4は、パソコン1からシングルステップの実行命令を受信すると、ターゲットマイコンであるMCU9のデバッグ回路18におけるアドレス比較レジスタA,Bに実行対象命令のプログラムアドレスを格納して(図7を参照)、シングルステップコマンドをMCU9のCPU11に出力する。
【0006】
MCU9のCPU11は、コントロールボード3からシングルステップコマンドを受けると、フラッシュメモリ15に格納されているプログラムの実行を開始する。
MCU9のデバッグ回路18は、CPU11がプログラムの実行を開始すると、そのプログラムアドレスとアドレス比較レジスタA,Bに格納されているプログラムアドレスの比較を開始し、両者の一致を検出すると、割込み信号をCPU11に出力する。
MCU9のCPU11は、デバッグ回路18から割込み信号を受けると、プログラムの実行を停止する。
【0007】
【発明が解決しようとする課題】
従来のデバッグ装置は以上のように構成されているので、ターゲットマイコンであるMCU9がデバッグ回路18を内蔵している場合には、フラッシュメモリ15に格納されているプログラムの各命令を順番に実行しながらデバッグを行うことができるが、MCU9がデバッグ回路18を内蔵していない場合には、プログラムの各命令を順番に実行しながらデバッグを行うことができない課題があった。
なお、ソフトウエア処理によってフラッシュメモリ15に格納されているプログラムの命令を適宜ブレイク命令等に書き換えるようにすれば、MCU9がデバッグ回路18を内蔵していない場合でも、プログラムの各命令を順番に実行しながらデバッグを行うことができるが、フラッシュメモリ15は書換可能回数に制限があるため、現実的な方法ではない。
【0008】
この発明は上記のような課題を解決するためになされたもので、MCUがデバッグ回路を内蔵していない場合でも、プログラムの各命令を順番に実行しながらデバッグを行うことができるデバッグ装置を得ることを目的とする。
【0009】
【課題を解決するための手段】
この発明に係るデバッグ装置は、受信受付手段がシングルステップの実行命令又は実行要求を受けると、ターゲットマイコンからプログラムの実行状態に関する情報を取得して実行対象の命令を解析し、その命令の実行結果を模擬して、その実行結果をターゲットマイコンに反映するようにしたものである。
【0010】
この発明に係るデバッグ装置は、ターゲットマイコンと同一のマイコンを搭載している場合、そのマイコンに命令を実行させるようにしたものである。
【0011】
この発明に係るデバッグ装置は、プログラムの実行状態に関する情報として、プログラムアドレス又は命令コードを取得するようにしたものである。
【0012】
この発明に係るデバッグ装置は、実行結果模擬手段により解析された実行対象の命令が前命令の実行結果を必要とする命令である場合、プログラムの実行状態に関する情報として、前命令の実行結果を取得するようにしたものである。
【0013】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はこの発明の実施の形態1によるデバッグ装置を示す構成図であり、図において、21はターゲットマイコンであるMCU29に実装されるプログラムをデバッグする際にユーザが操作するパソコン、22はパソコン21とコントロールボード23を接続するRS−232CケーブルなどのI/Fケーブル、23はパソコン21から出力される命令にしたがってMCU29を制御するコントロールボード、24はコントロールボード23のMCU、25はMCU29に実装されるプログラムと同一のプログラム等をロードするメモリ、26はコントロールボード23とターゲットボード27を接続するI/Fケーブル、27はターゲットボード、28はエミュレーションボード、29はターゲットマイコンであるMCUである。
【0014】
図2はコントロールボード23のMCU24とターゲットマイコンであるMCU29の内部を示す構成図であり、図において、31はパソコン21からシングルステップの実行命令を受信するシングルステップ命令受信部(受信受付手段)、32はシングルステップ命令受信部31がシングルステップの実行命令を受信すると、プログラムの実行状態に関する情報の転送要求をMCU29に送信して、そのMCU29からプログラムの実行状態に関する情報を受信するデータ送受信部(情報取得手段)である。なお、データ送受信部32は命令シミュレーション部33によるシミュレーション結果をMCU29に送信する実行結果反映手段も構成している。
【0015】
33はデータ送受信部32により取得された実行状態に関する情報から実行対象の命令を解析し、その命令の実行結果を模擬する命令シミュレーション部(実行結果模擬手段)、34はMCU29のデータ送受信部、35はモニタプログラムを実行するCPU、36はモニタプログラムを格納する内蔵メモリ、37はデバッグ対象のプログラムを格納するフラッシュメモリである。
【0016】
次に動作について説明する。
MCU29のフラッシュメモリ37に格納されているプログラムの各命令を順番に実行しながらデバッグを行う場合、ユーザがパソコン21を操作してシングルステップの実行命令を発行させる。
これにより、パソコン21は、シングルステップの実行命令をコントロールボード23のMCU24に送信するが、コントロールボード23のメモリ25にデバッグ対象のプログラムと同一のプログラムが未だロードされていない場合には、デバッグ対象のプログラムと同一のプログラムをコントロールボード23のメモリ25に送信する。
【0017】
MCU24のシングルステップ命令受信部31は、パソコン21からシングルステップの実行命令を受信すると、シングルステップの実行命令をデータ送受信部32に出力する。
MCU24のデータ送受信部32は、シングルステップ命令受信部31からシングルステップの実行命令を受けると、プログラムの実行状態に関する情報の転送要求をMCU29に送信する。
【0018】
MCU29のデータ送受信部34は、MCU24からプログラムの実行状態に関する情報の転送要求を受信すると、CPU35に対してモニタプログラムの実行を要求する。
CPU35は、モニタプログラムの実行を開始すると、フラッシュメモリ37に格納されているプログラムの実行状態の調査を行う。具体的には、図示せぬプログラムカウンタのカウント値を参照して、次に実行する命令のプログラムアドレスを調査し、そのプログラムアドレスをデータ送受信部34に出力する。
データ送受信部34は、CPU35からプログラムの実行状態に関する情報としてプログラムアドレスを受けると、そのプログラムアドレスをMCU24に送信する。
【0019】
MCU24のデータ送受信部32は、MCU29からプログラムアドレスを受信すると、そのプログラムアドレスを命令シミュレーション部33に出力する。MCU24の命令シミュレーション部33は、データ送受信部32からプログラムアドレスを受けると、そのプログラムアドレスをキーにして、メモリ25から次に実行するプログラムの命令を検索する。
この際、実行対象の命令が前命令の実行結果を必要とする命令である場合(例えば、前命令の実行結果にレジスタの格納値を加算する加算命令などが該当する)、データ送受信部32を介して、前命令の実行結果の送信要求をMCU29に送信する。
【0020】
MCU29のCPU35は、データ送受信部34がMCU24から前命令の実行結果の送信要求を受信すると、図示せぬレジスタやメモリに格納されている前命令の実行結果をデータ送受信部34を介してMCU24に送信する。
MCU24の命令シミュレーション部33は、データ送受信部32がMCU29から前命令の実行結果を受信すると、前命令の実行結果を参照して、実行対象の命令の実行結果をシミュレーションする。なお、シミュレーションはMCU29のハードウエア構成等を考慮して実行するが、シミュレーション自体は従来の手法を用いるため詳細な説明を省略する。
【0021】
MCU24のデータ送受信部32は、命令シミュレーション部33のシミュレーション結果である命令の実行結果をMCU29に送信する。
MCU29のCPU35は、データ送受信部34がMCU24から命令の実行結果を受信すると、その実行結果を図示せぬレジスタやメモリに格納することにより、CPU35が自ら命令を実行した場合と同様の状態に設定する。
【0022】
以上で明らかなように、この実施の形態1によれば、シングルステップ命令受信部31がシングルステップの実行命令を受信すると、ターゲットマイコンであるMCU29からプログラムの実行状態に関する情報を取得して実行対象の命令を解析し、その命令の実行結果を模擬して、その実行結果をMCU29に反映するように構成したので、MCU29がデバッグ回路を内蔵していない場合でも、プログラムの各命令を順番に実行しながらデバッグを行うことができる効果を奏する。
【0023】
なお、この実施の形態1では、MCU29がプログラムカウンタのカウント値を参照して、次に実行する命令のプログラムアドレスをMCU24に送信するものについて示したが、プログラムカウンタのカウント値を参照して、次に実行する命令コードを把握し、その命令コードをデータ送受信部34に出力するようにしてもよい。
この場合、MCU24の命令シミュレーション部33は、その命令コードから実行対象の命令を特定する。
【0024】
また、この実施の形態1においては、シングルステップ命令受信部31、データ送受信部32及び命令シミュレーション部33の全てをハードウエアで構成してもよいが、シングルステップ命令受信部31、データ送受信部32及び命令シミュレーション部33の機能を実現するソフトウエア(デバッグプログラム)を用意し、コンピュータであるMCU24が当該デバッグプログラムを実行するようにしてもよい。
【0025】
実施の形態2.
上記実施の形態1では、MCU24の命令シミュレーション部33が命令の実行結果をシミュレーションするものについて示したが、コントロールボード23のMCU24とMCU29が同一のマイコンである場合、命令シミュレーション部33が命令の実行結果をシミュレーションしなくても、単に、その命令を実行すれば、命令の実行結果が得られるので、命令シミュレーション部33が実行対象の命令を実行するようにする。
これにより、簡単に命令の実行結果が得られる効果を奏する。
【0026】
実施の形態3.
上記実施の形態1,2では、コントロールボード23がパソコン21から出力される命令にしたがってMCU29を制御するものについて示したが、パソコン21がコントロールボード23の機能を実現するプログラム等を搭載している場合には、図3に示すように、パソコン21が直接MCU29を制御するようにしてもよい。
この場合、パソコン21は、図2のMCU24のデータ受信部32と命令シミュレーション部33を搭載し、また、ユーザからのシングルステップの実行要求を受け付けるシングルステップ要求受付部(受信受付手段)40を搭載している。
【0027】
なお、この実施の形態3では、シングルステップ要求受付部40、データ送受信部32及び命令シミュレーション部33の全てをハードウエアで構成してもよいが、シングルステップ要求受付部40、データ送受信部32及び命令シミュレーション部33の機能を実現するソフトウエア(デバッグプログラム)を用意し、コンピュータであるパソコン21が当該デバッグプログラムを実行するようにしてもよい。
【0028】
【発明の効果】
以上のように、この発明によれば、受信受付手段がシングルステップの実行命令又は実行要求を受けると、ターゲットマイコンからプログラムの実行状態に関する情報を取得して実行対象の命令を解析し、その命令の実行結果を模擬して、その実行結果をターゲットマイコンに反映するように構成したので、ターゲットマイコンがデバッグ回路を内蔵していない場合でも、プログラムの各命令を順番に実行しながらデバッグを行うことができる効果がある。
【0029】
この発明によれば、ターゲットマイコンと同一のマイコンを搭載している場合、そのマイコンに命令を実行させるように構成したので、簡単に命令の実行結果が得られる効果がある。
【0030】
この発明によれば、プログラムの実行状態に関する情報として、プログラムアドレス又は命令コードを取得するように構成したので、プログラムの実行状態を容易に把握することができる効果がある。
【0031】
この発明によれば、実行結果模擬手段により解析された実行対象の命令が前命令の実行結果を必要とする命令である場合、プログラムの実行状態に関する情報として、前命令の実行結果を取得するように構成したので、前命令の実行結果を必要とする命令でも、命令の実行結果が得られる効果がある。
【図面の簡単な説明】
【図1】この発明の実施の形態1によるデバッグ装置を示す構成図である。
【図2】コントロールボードのMCUとターゲットマイコンであるMCUの内部を示す構成図である。
【図3】この発明の実施の形態3によるデバッグ装置を示す構成図である。
【図4】コントロールボードのMCUとターゲットマイコンであるMCUの内部を示す構成図である。
【図5】従来のデバッグ装置を示す構成図である。
【図6】MCUの機能ブロックを示すブロック図である。
【図7】デバッグ回路の処理を示す説明図である。
【符号の説明】
21 パソコン、22 I/Fケーブル、23 コントロールボード、24 MCU、25 メモリ、26 I/Fケーブル、27 ターゲットボード、28エミュレーションボード、29 MCU(ターゲットマイコン)、31 シングルステップ命令受信部(受信受付手段)、32 データ送受信部(情報取得手段、実行結果反映手段)、33 命令シミュレーション部(実行結果模擬手段)、34 データ送受信部、35 CPU、36 内蔵メモリ、37 フラッシュメモリ、40 シングルステップ要求受付部(受信受付手段)。
Claims (4)
- シングルステップの実行命令又は実行要求を受ける受信受付手段と、上記受信受付手段がシングルステップの実行命令又は実行要求を受けると、ターゲットマイコンからプログラムの実行状態に関する情報を取得する情報取得手段と、上記情報取得手段により取得された実行状態に関する情報から実行対象の命令を解析し、その命令の実行結果を模擬する実行結果模擬手段と、上記実行結果模擬手段により模擬された命令の実行結果を上記ターゲットマイコンに反映する実行結果反映手段とを備えたデバッグ装置。
- 実行結果模擬手段は、ターゲットマイコンと同一のマイコンを搭載している場合、そのマイコンに命令を実行させることを特徴とする請求項1記載のデバッグ装置。
- 情報取得手段は、プログラムの実行状態に関する情報として、プログラムアドレス又は命令コードを取得することを特徴とする請求項1記載のデバッグ装置。
- 情報取得手段は、実行結果模擬手段により解析された実行対象の命令が前命令の実行結果を必要とする命令である場合、プログラムの実行状態に関する情報として、前命令の実行結果を取得することを特徴とする請求項3記載のデバッグ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002205802A JP2004046716A (ja) | 2002-07-15 | 2002-07-15 | デバッグ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002205802A JP2004046716A (ja) | 2002-07-15 | 2002-07-15 | デバッグ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004046716A true JP2004046716A (ja) | 2004-02-12 |
Family
ID=31711006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002205802A Pending JP2004046716A (ja) | 2002-07-15 | 2002-07-15 | デバッグ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004046716A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005284542A (ja) * | 2004-03-29 | 2005-10-13 | Nec Electronics Corp | プログラムデバッグ方法、デバッグプログラムおよびプログラムデバッグ装置 |
-
2002
- 2002-07-15 JP JP2002205802A patent/JP2004046716A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005284542A (ja) * | 2004-03-29 | 2005-10-13 | Nec Electronics Corp | プログラムデバッグ方法、デバッグプログラムおよびプログラムデバッグ装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8180620B2 (en) | Apparatus and method for performing hardware and software co-verification testing | |
US6915416B2 (en) | Apparatus and method for microcontroller debugging | |
US6668339B1 (en) | Microprocessor having a debug interruption function | |
TW200837555A (en) | Debug method | |
CN103713977B (zh) | 一种微处理器ip核比较验证的实现方法 | |
JP4906286B2 (ja) | ソフトウェア開発環境システム | |
JPH0728670A (ja) | 情報処理装置 | |
US20090204384A1 (en) | Debugging device, debugging method and hardware emulator | |
US7711535B1 (en) | Simulation of hardware and software | |
US20080243283A1 (en) | Process Control Simulator and Process Control Simulating Method | |
JP4024026B2 (ja) | 半導体装置および評価装置 | |
JP2004046716A (ja) | デバッグ装置 | |
JPH06214819A (ja) | 情報処理装置及びこの装置の評価システムならびに評価方法 | |
JP2828590B2 (ja) | マイクロプログラム検証方法 | |
KR100200712B1 (ko) | 노-타겟 시스템의 프로그램 디버깅 장치 | |
JP2005353020A (ja) | コンピュータプログラムのシミュレーション方式 | |
JP4562439B2 (ja) | プログラム検証システムおよびプログラム検証システム制御用コンピュータプログラム | |
JPS6349851A (ja) | シミユレ−シヨンシステム | |
JP3085730B2 (ja) | 複合cpuシステムの並列シミュレーション方式 | |
US20070038435A1 (en) | Emulation method, emulator, computer-attachable device, and emulator program | |
van der Wijst | An Accelerator based on the ρ-VEX Processor: an Exploration using OpenCL | |
JP2575025B2 (ja) | インサ−キット・エミュレ−タ | |
JP2002163126A (ja) | デバッグ用cpuに内蔵のイベント検出回路、イベント検出方法および外部周辺回路 | |
JP2808757B2 (ja) | デバッグ用マイクロプロセッサ | |
JP3358123B2 (ja) | コントローラの入出力シミュレート方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050714 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060223 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060310 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20071214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090310 |