JPH10326203A - 複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置 - Google Patents

複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置

Info

Publication number
JPH10326203A
JPH10326203A JP9163127A JP16312797A JPH10326203A JP H10326203 A JPH10326203 A JP H10326203A JP 9163127 A JP9163127 A JP 9163127A JP 16312797 A JP16312797 A JP 16312797A JP H10326203 A JPH10326203 A JP H10326203A
Authority
JP
Japan
Prior art keywords
command
state information
format
target
verification target
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
JP9163127A
Other languages
English (en)
Inventor
Motohide Nishihata
素秀 西畑
Yoshiyuki Iwamura
喜之 岩村
Fumio Sumi
史生 角
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 JP9163127A priority Critical patent/JPH10326203A/ja
Publication of JPH10326203A publication Critical patent/JPH10326203A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 所定のターゲットマシン向けに開発された組
み込みプログラムを、当該ターゲットマシン、当該ター
ゲットマシンのエミュレータマシン、当該ターゲットマ
シンのソフトウェアシミュレータのうち、何れかにおい
てテスト動作させ、これの動作検証を行う 【解決手段】 ハードウェア環境を切り換える旨のコマ
ンドを操作者が入力すると、ターゲットマシン、当該タ
ーゲットマシンのエミュレータマシン、当該ターゲット
マシンのソフトウェアシミュレータが有している記憶資
源のメモリ内容、レジスタ内容の保持値を他の何れかに
転送する。情報を転送後、必要に応じてブレークポイン
ト等のデバッグのための設定情報を他の何れかに再設定
し、他のハードウェア環境でプログラムの実行を再開す
る。これにより現在デバッグ中のハードウェア環境が有
する欠点を他のハードウェア環境の優位点でカバーする
こともできる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、組み込み用途プロ
グラムのデバッグを行うデバッグ装置に関する。
【0002】
【従来の技術】今日の家電製品にとってマイコンシステ
ムは必要不可欠な存在である。家電製品向けのプログラ
ムの開発は、大量生産に耐え得る品質が要求されるの
で、デバッグ作業の徹底が求められる。ここでいうデバ
ッグ作業とは プログラムをハードウェア環境上で動作
させ、その動作時において現れた不具合(バグ)の原因
を追究してこれを修正する作業をいう。
【0003】プログラム(デバッグされるプログラムで
あるから、被デバッグプログラムという)の動作形態に
は、以下の〜のものがある 被デバッグプログラムを家電製品の試作機上で動作さ
せるもの。 被デバッグプログラムを評価ボード上で動作させるも
の。 被デバッグプログラムをホストコンピュ−タ上のシミ
ュレータを用いて模擬動作させるもの。
【0004】のようなハードウェア環境の形態は、プ
ログラムのモニタリングを行なうことを主目的にしたも
のである。プログラムのモニタリングを主目的としたハ
ードウェア環境は『モニタ型』という略称で称呼され
る。モニタ型のハードウェア環境は、ターゲットのマイ
クロコンピュータやマイクロプロセッサの試作機が完成
した際、その動作確認や簡単なデバッグ作業にもっぱら
使用される。
【0005】のようなハードウェア環境の形態は、イ
ンサーキットエミュレータと、様々なデバッグ用ツール
とを用いた高度なデバッグ作業を可能としている。この
ようなハードウェア環境は『ICE(In-Circuit Emulator)
型』という略称で称呼される。のようなハードウェア
環境の形態は、シミュレータ型と呼ばれる。シミュレー
タには、命令レベルのもの、論理レベルのものの二種類
がある。命令レベルソフトウェアシミュレータとは、マ
イクロコンピュータやマイクロプロセッサの命令をホス
トのオペレーティングシステム上のソフトウェアでシミ
ュレーション実行させることによりマイクロコンピュー
タやマイクロプロセッサと同じ実行状態を模擬的に他ホ
スト上に作りだすソフトウェアシステムである。
【0006】論理レベルソフトウェアシミュレータと
は、通常マイクロコンピュータやマイクロプロセッサの
チップの設計に使用され、ハードウェアと同じ動作を他
ホスト上にソフトウェアでシミュレーション実行するも
のである。
【0007】
【発明が解決しようとする課題】ところで上記の3つの
形態のハードウェア環境には、動作検証能力に限界があ
る。モニタ型ハードウェア環境の動作検証能力の限界と
は、モニタリングを前提にしたハードウェア環境である
から、動作検証中にバグが発見されても、その原因を解
析する能力が不充分であり、バグ発生に思うように対処
できない点である。ICE型ハードウェア環境では、トレ
ース機能を用いてプログラム実行の履歴を確認する等の
対処が可能であるが、モニタ型ハードウェア環境では、
メモリを多く用いるトレース機能等は利用できない場合
が多く、操作者は、貧弱な機能を駆使して原因を追求せ
ねばならない。また、ターゲットマシンの使用時の様々
なケースを想定しての動作確認が不充分となる点も軽視
できない。『ターゲットマシンの使用時の様々なケー
ス』の代表的なものには、プログラムの多重割り込み発
生時や、指定時刻での割り込み発生時の動作確認等、割
込発生に関連するものが多い。これらをターゲットマシ
ン上で実現するには、ハードウェアの一部改造等が必要
となるが、現実問題としてこのような改造はそうた易く
行えるものではなく、ターゲットマシンで動作確認でき
る内容は限られてしまう。
【0008】ICE型ハードウェア環境の動作検証能力の
限界とは、所詮ターゲットマシンとは回路構成が違う点
である。即ち、評価ボード上でたとえ完全に動作するに
ように見えても、その動作により出荷OKか否かの最終
判断を下すことはできない。またターゲットマシンの正
規の形態ではないため、周辺機器をも含めた動作検証が
不充分な場合がある。何故なら評価ボードにおける配線
長は、試作機実物のものよりも長い場合があり、この長
さ故に、周辺機器の制御にタイムラグが生じていること
も多々ある。このようなタイムラグのため、ICE型ハー
ドウェア環境における周辺機器をも含めた動作検証は厳
密さに欠けてしまう。
【0009】ソフトウェアシミュレータ型ハードウェア
環境の限界とは、シュミレータ自体がホストコンピュ−
タを利用して動作しているため、プログラムの動作がモ
ニタ型またはICE型よりもかなり鈍くなるという点であ
る。例えば、ICE型やモニタ型のハードウェア環境にお
いて1秒で処理が終了するものが、数分から数十分かか
ってしまう。
【0010】個々ハードウェア環境の動作検証能力の限
界のため、バグ原因作業の究明が捗らない場合、開発者
はバグが発生した当時の状況を別のハードウェア環境に
おいて再現したいと考える。しかし他のハードウェア環
境で再現するには、バグ発生当時のレジスタ、メモリの
保持値を他のハードウェア環境上に設定したり、マイク
ロコンピュータやマイクロプロセッサのプログラムを最
初から実行し直す等の試行錯誤を繰り返す必要がある。
このようにバグ発生当時の状況を再現するために試行錯
誤を繰り返せば、多くの開発時間が無駄に費やされてし
まう。
【0011】本発明の目的は、それぞれが異なる機能を
有するハードウェア環境の長所,短所を互いに補完しあ
えるように、統括して制御することができるデバッグ装
置を提供することである。本発明の別の目的は、開発者
の手間を煩わせることなく、バグ発生時のハードウェア
環境により近い状況を他のハードウェア環境上で再現す
ることができるデバッグ装置を提供することである。
【0012】
【課題を解決するための手段】上記の目的を達成するデ
バッグ装置は、所定のターゲットマシン向けに開発され
た組み込みプログラムを当該ターゲットマシン、当該タ
ーゲットマシンのエミュレータマシン、当該ターゲット
マシンのソフトウェアシミュレータのうち、何れかにお
いてテスト動作させ、これの動作検証を行うデバッグ装
置であって、前記ターゲットマシン、エミュレータマシ
ン、ソフトウェアシミュレータは、組み込みプログラム
の動作状態を示す動作状態情報を有し、動作状態情報の
入出力を固有の様式にて行い、ターゲットマシン、当該
ターゲットマシンのエミュレータマシン、当該ターゲッ
トマシンのソフトウェアシミュレータのうち何れかを動
作検証対象として記憶する動作検証対象記憶手段と、操
作者によるコマンド入力を受け付ける受付手段と、受付
手段が受け付けたコマンド内に所定指示が含まれていれ
ばこれを検出する検出手段と、所定指示が検出される
と、動作検証対象記憶手段に記憶されている動作検証対
象を切換元動作検証対象に指定し、受付手段が受け付け
たコマンドに基づいて前記ターゲットマシン、当該ター
ゲットマシンのエミュレータマシン、当該ターゲットマ
シンのソフトウェアシミュレータのうち切換元動作検証
対象と異なるものを切換先動作検証対象に指定する指定
手段と、切換元及び切換先が指定されると、切換元動作
検証対象から動作状態情報を読み出す読出手段と、読み
出された動作状態情報を、切換先動作検証対象の様式に
変換する変換手段と、動作状態情報が切換先の様式に変
換されれば、様式が変換された動作状態情報を切換先動
作検証対象に設定する設定手段と、動作状態情報が設定
されると、組み込みプログラムの動作を切換先動作検証
対象において再開するよう制御する動作再開手段とを備
えることを特徴としている。
【0013】
【発明の実施の形態】以降デバッグ装置の実施形態につ
いて説明する。本デバッグ装置のハードウェア構成は汎
用コンピュ−タにICE制御ボード22、シリアル転送ポ
ート31を接続して構成される。図1は、本デバッグ装
置の外観図である。家電機器の試作機30はモニタ型の
ハードウェア環境を構築する。モニタ型であるから、組
み込み用途のプログラムが格納されたROMを有し、当
該被デバッグプログラムを試作機30上で動作させるこ
とができる。試作機30における被デバッグプログラム
はホストコンピュ−タ1の管轄下にあり、被デバッグプ
ログラムの動作開始、動作終了は、シリアル回線40を
介したホストコンピュ−タ1からの指示があって初めて
行われる。ホストコンピュ−タ1は試作機30上のメモ
リ、レジスタ等記憶資源のアクセス権も有し、所望のタ
イミングで、試作機30の記憶資源の内容を記憶資源の
状態情報として読み出すことができる。
【0014】評価ボード20は、被デバッグプログラム
を動作させることができる。評価ボード20における被
デバッグプログラムもホストコンピュ−タ1の管轄下に
あり、被デバッグプログラムの動作開始、動作終了は、
パラレル回線28を介したホストコンピュ−タ1からの
指示に従い行う。ホストコンピュ−タ1は評価ボード2
0上のメモリ、レジスタ等記憶資源のアクセス権も有
し、所望のタイミングで、評価ボード20の記憶資源の
内容を記憶資源の状態情報として読み出すことができ
る。
【0015】図2は、デバッグ装置のハードウェア構成
図である。図2に示すように、ホストコンピュ−タ1は
CPU、ディスプレイ、メモリ、ハードディスク、キー
ボードを有する汎用コンピュ−タであり、ICE制御ボー
ド22、シリアル転送ポート31が接続されている。IC
E制御ボード22及びシリアル転送ポート31はそれぞ
れ評価ボード20、試作機30と接続されている。
【0016】試作機30上のマイコンシステムのハード
ウェア構成を図3に示す。図3において試作機30は、
プロセッサ33、メモリ34、周辺I/Oレジスタ群35
が実装されている。プロセッサ33は、被デバッグプロ
グラムを構成する機械語命令を逐一読み出す命令読み出
し回路と、読み出された機械語命令を解読する解読器
と、解読結果が演算命令であると解読結果が下された場
合にその特定演算命令の演算を行う演算器と、レジスタ
群と、命令読み出し回路に命令の読み出し先を指示する
プログラムカウンタとを有する。プロセッサ33は専用
端子39を有し、この専用端子39に所定の指示信号が
出力されると、プロセッサ33は試作機30の動作状態
を示す動作状態情報を読み出し、専用端子39を介して
ホストコンピュ−タ1に出力する。
【0017】メモリ34には、ユーザ空間にモニタリン
グプログラム36と、被デバッグプログラム37と、被
デバッグプログラム37が試作機30内部で作業用に利
用するターゲット内ワークエリア38とが配されてい
る。被デバッグプログラム37は、デバッグの対象とな
る組み込み用途のプログラムであり、試作機30が起動
されるとプロセッサ33により実行される。被デバッグ
プログラム37はモニタリングの対象となるため、モニ
タリング命令が組み込まれている。モニタリング命令と
は、プロセッサ33が専用端子39を介してデータを受
け取ったとき、被デバッグプログラム37からモニタリ
ングプログラム36へと分岐する旨をプロセッサ33に
指示する命令である。
【0018】モニタリングプログラム36は、専用端子
39からのデータの入力待ちをプロセッサ33に行わせ
る。もし専用端子39にデータが入力されると、そのデ
ータに従った動作をプロセッサ33に行わせる。周辺I/
Oレジスタ[i](i=1,2,3・・・n)35は、周辺I/Oの値を保持
するレジスタである。ここで周辺I/Oとは、シリアルイ
ンタフェース、パラレルインタフェース、割り込みコン
トローラ、A/D変換器、D/A変換器、タイマカウン
タなどであり、これらの値が周辺I/Oレジスタに個別に
格納されていることにより、プロセッサ33は任意の周
辺I/Oの値を取り出すことができる。
【0019】評価ボード20上のマイコンシステムのハ
ードウェア構成を図4に示す。図4において評価ボード
20は、プロセッサ33に代えてICEチップ23が取り
付けられ、メモリ24、周辺I/Oレジスタ群25を有す
る。メモリ24は、スーパーバイザ空間と、ユーザ空間
とを有する。スーパーバイザ空間にはスーパバイザプロ
グラム26及びデバッグ情報エリア27が配されてお
り、ユーザ空間には被デバッグプログラム37、ターゲ
ット内ワークエリア38が配されている。
【0020】周辺I/Oレジスタ群25は、周辺I/Oであっ
て、評価ボード20上で動作可能なものの保持値を保持
するレジスタである。スーパバイザプログラム26は、
ブレークポイントを設定するブレークポイント設定ツー
ルと、ICEチップ23が命令を実行する度に、実行された
命令のアドレスを蓄積するトレースツールと、操作者が
定めた所定条件の成立、不成立を監視し、当該成立時に
割り込み信号を発生させる割り込み設定ツールとを有す
る。
【0021】デバッグ情報エリア27は、スーパバイザ
プログラム26がワークエリアとして用いているメモリ
領域であり、前記ブレークポイントの設定先アドレス
と、前記ブレークポイントの動作の有効,無効に関する
ブレークポイント情報と、蓄積された複数の命令アドレ
スからなるトレースデータと、操作者が定めた割り込み
信号発生のための所定条件を示す割込信号発生要件情報
とが格納されている。
【0022】図27(a)は、ブレークポイント設定先
アドレスの一例を示す図である。図中の『BREAK_POINT
[1]=0x0020』は一個目のブレークポイントを0x0020から
始まる所定のサイズの領域に設定する旨を示し、『BREA
K_POINT[2]=0x0250』は二個目のブレークポイントを0x0
250から始まる所定のサイズの領域に設定する旨を示し
ている。『BREAK_POINT[3]=0x0300』は、三個目のブレ
ークポイントを0x0300から始まる所定のサイズの領域に
設定する旨を示している。これらのブレークポイント設
定先アドレスは、これまでのスーパバイザプログラム2
6による被デバッグプログラム37のデバッグ時に、操
作者がコマンドを用いてブレークポイントを設定し、プ
ロセッサ33がスーパバイザプログラム26内のブレー
クポイント設定ツールを実行したためにメモリ24に書
き込まれている。
【0023】図27(b)は、割込信号発生要件の一例
を示す図である。図中の『CONDITION[1]=20cycle,Int
3』は、命令実行が実行時間の単位長の20倍だけ繰り
返された後に、3番の割り込み信号を発生させる旨を示
し、『CONDITION[2]=150cycle,Int5』命令実行が実行時
間の単位長の150倍だけ繰り返された後に、5番の割
り込み信号を発生させる旨を示している。これらの割込
信号発生要件は、これまでの被デバッグプログラム37
のデバッグ時に、操作者が割り込み発生設定操作を行
い、被デバッグプログラム37がスーパバイザプログラ
ム26内の割り込み信号発生ツールを実行したためにメ
モリ24に書き込まれている。
【0024】図27(c)は、トレースデータの一例を
示す図である。図中の『0x0000,0x0001,0x0002,0x0003,
0x0004,0x0005,』は、ICEチップ23が、被デバッグプロ
グラム37内の0アドレスx0000の機械語命令,アドレス0
x0001の機械語命令,アドレス0x0002の機械語命令,アド
レス0x0003の機械語命令を既に実行していることを示し
ている。これらのトレースデータは、これまでのICE型
ハードウェア環境による被デバッグプログラム37のデ
バッグ時に、操作者がTRACEコマンドを入力し、プロセ
ッサ33がスーパバイザプログラム26内のトレースツ
ールを実行したためにメモリ24に書き込まれている。
【0025】ターゲット内ワークエリア38は被デバッ
グプログラムが用いるワークエリアである。図6は、図
1に示したホストコンピュ−タ1の内部階層図である。
ホストコンピュ−タ1の内部階層は、アプリケ−ション
層11、オペレーティングシステム層12、BIOS層1
3、物理層14からなり汎用的なコンピュ−タの階層構
成と何等変わりはない。このような汎用的な階層構成に
おいてアプリケ−ション層11にはシュミレータ10が
存在する。シュミレータ10がアプリケ−ション層11
上に存在するのは、シュミレータ10はオペレーティン
グシステム上で起動するアプリケ−ションプログラムの
一種であることを意味する。ICE制御ボード22及びシ
リアル転送ポート31は物理層14に位置することがわ
かる。ICE制御ボード22については専用のデバイスド
ライバがBIOS層13に存在する(ICE用デバイスドライ
バ21参照)。
【0026】シュミレータ10がアプリケ−ション層1
1上に存在するから、シュミレータ型ハードウェア環境
の窓口は、アプリケ−ション層11となる。デバイスド
ライバ21がBIOS層13上に存在するから、ICE型ハー
ドウェア環境の窓口は、BIOS層13となる。シリアル転
送ポート31が物理層14上に存在するから、モニタ型
ハードウェア環境の窓口は、物理層14となる。
【0027】窓口が互いに異なる階層に存在するため、
各ハードウェア環境にパラメータを受け渡す際には、パ
ラメータを各階層に適した様式に変更ぜねばならない。
またハードウェア環境同士でパラメータの受け渡す際に
は、様式の変換が必要となる。具体的にはシュミレータ
10はアプリケ−ション層11上に存在するアプリケ−
ションプログラムの一種であるから引数様式によりパラ
メータを受け渡しする必要がある。デバイスドライバ2
1はBIOS層13に存在するデバイスドライバであるか
ら、BIOSコマンド様式によりパラメータを受け渡しする
必要がある。シリアル転送ポート31は物理層14に存
在するから、I/Oポートを用いてパラメータを受け渡し
する必要がある。
【0028】ICE型、モニタ型、シュミレータ型という
3つのハードウェア環境を管理するため、本装置は、IC
E型、モニタ型、シュミレータ型にそれぞれ、TARGET1,T
ARGET2,TARGET3という識別子を付しており、また図示し
ない原簿テーブルに現状デバッグ対象に設定されている
ハードウェア環境の識別子を登録している。図7は、ア
プリケ−ション層11の内部においてICE型、モニタ
型、シュミレータ10型のハードウェア環境の統合のた
めに形成された階層を示す図である。
【0029】ターゲット依存層53は、ICE型、モニタ
型、シュミレータ型のハードウェア環境間が用いている
データ様式を引数様式に統一するため階層である。ター
ゲット相互接続層52は、共通様式に統一されたデータ
をICE型、モニタ型、シュミレータ10型が共有し合う
ための階層であり、共有用のワークエリアを含む。
【0030】デバッグ核層51は、いわゆるシンボルデ
バッガのアプリケ−ション部に相当する機能を有する階
層である。ユーザインターフェィス層50は、オペレー
ティングシステム層12の標準入出力ライブラリを用い
てユーザインターフェイスを操作者に提供する階層であ
る。即ち、ユーザインターフェィス層50は、オペレー
ティングシステム層12の標準入出力ライブラリを利用
して、操作者からの指示を仰ぐメッセージをディスプレ
イ2に表示する。コマンドが入力されると、そのコマン
ドの解釈及び実行をデバッグ核層51以下の階層に委ね
る。デバッグ核層51以下の階層が入力されたコマンド
を実行すると、ユーザインターフェィス層50はコマン
ドの実行結果をオペレーティングシステム層12の標準
入出力ライブラリを利用してディスプレイ2に表示す
る。
【0031】図8は、デバッグ核層51、ターゲット相
互接続層52、ターゲット依存層53のそれぞれの階層
にどのようなモジュールが存在するかを示した図であ
る。本図においてデバッグ核層51には、シンボル-ア
ドレスマップ71、コマンドインタプリタ72、及びコ
マンド変換ルーチン73が存在することがわかる。シン
ボル-アドレスマップ71は、シンボルと、アドレスと
の対応関係を示す情報である。ここでシンボルとは、ソ
ースプログラム内で使用されている変数名,ライブラリ
等をいい、シンボル-アドレスマップ71は、これらシ
ンボルが示す変数名がメモリ領域のどのアドレスに対応
しているかを示す。具体的には、シンボル-アドレスマ
ップ71はメモリサイズ、変数の型、ソースコードの一
文が存在する行の行番号と、その行に対応する実行コー
ドのアドレスとを対応づけるライン情報などから構成さ
れる。
【0032】コマンドインタプリタ72は、ユーザイン
ターフェィス層50に対してプログラム開発者が入力し
たコマンドを解析し、その解析内容に従った指示をコマ
ンド変換ルーチン73に通知する。ここでコマンドイン
タプリタ72は、キータイプ入力されたコマンドが図9
に示す体系図内の何れかに該当するものとして解析を行
う。
【0033】図9に記載されているコマンドのうち、ru
nコマンド、stopコマンド、stepコマンド、setBPコマン
ド、clrBPコマンド、SetINTコマンド、readMEMコマン
ド、readREGコマンド、writeMEMコマンド、writeREGコ
マンド、TRACEコマンドは一般的なデバッグ装置向けの
コマンドである。runコマンドは、コマンド発行先に指
定されているハードウェア環境に、被デバッグプログラ
ムの動作開始を指示するコマンドであり、そのオペラン
ドにおいて被デバッグプログラムの動作開始アドレスを
指定させることができる。
【0034】stopコマンドは、コマンド発行先に指定さ
れているハードウェア環境に、被デバッグプログラムの
動作停止を指示するコマンドである。stepコマンドは、
コマンド発行先に指定されているハードウェア環境に、
被デバッグプログラムの命令を一命令ずつ実行する旨を
指示するコマンドであり、そのオペランドにおいて被デ
バッグプログラムの動作開始アドレスを指定させること
ができる。
【0035】setBPコマンドは、コマンド発行先に指定
されているハードウェア環境に、オペランドに指定され
ている被デバッグプログラム内のアドレスへとブレーク
ポイントを設定させる旨を指示するコマンドである。こ
こでいう『ブレークポイント設定』とは、被デバッグプ
ログラム内に所定の割り込み信号を発生させる命令を書
き込むこと、或は、動作停止すべき被デバッグプログラ
ム内のアドレスをプロセッサ内の所定のレジスタに登録
することをいうが、本実施形態では、これらの動作と共
に、割り込み信号発生命令の書き込み先アドレスもハー
ドウェア環境内のメモリに書き込まれる。
【0036】clrBPコマンドは、オペランド『breakNO』
で指示される番号のブレークポイントを発生する旨の割
り込み信号発生命令及び当該命令の書き込み先アドレス
を削除するコマンドである。SetINTコマンドは、オペラ
ンド『CycleNumber』で指定された実行時間(この実行
時間は、実行サイクルの整数倍数で表現されることは留
意されたい。)だけ命令実行が繰り返されたかをハード
ウェア環境に監視させ、もし当該実行時間だけ繰り返さ
れれば、オペランド『intNO.』で指示される番号の割込
信号を発生する旨をハードウェア環境に指示するコマン
ドである。
【0037】readMEMコマンドは、『TARGET』で指示さ
れたハードウェア環境内のオペランド『s_address』『e
_address』で指示された領域の内容を読み出す旨をハー
ドウェア環境に指示する。readREGコマンドは、オペラ
ンド『register』で指示された番号のレジスタの内容を
読み出す旨をハードウェア環境に指示する。
【0038】writeMEMコマンドは、『TARGET』で指示さ
れたハードウェア環境内のオペランド『address』で指
示されたメモリ領域に『value1』で指示された内容を
書き込む旨をハードウェア環境に指示する。writeREGコ
マンドはオペランド『register』で指示された番号のレ
ジスタに『value2』で指示される内容を書き込む旨を
ハードウェア環境に指示する。
【0039】尚readMEMコマンド、readREGコマンド、wr
iteMEMコマンド、writeREGコマンドはオペランドを変数
で指示することも可能である。変数で指示されている場
合は、コマンドインタプリタ72はシンボル-アドレス
マップ71に登録された情報を参照する。このような情
報を参照することにより、変数が存在しているメモリ上
のアドレスまたはレジスタ種別とサイズの特定ができ
る。変数情報取得後、変数の参照コマンドはコマンドイ
ンタプリタ72により、あるアドレスからサイズ分の情
報をメモリから取得またはあるレジスタの値を取得/設
定するというコマンドに置き換えられ、ターゲット相互
接続層52を介してシュミレータ10、モニタ制御層6
1、ICE制御層62の何れかに通知される。
【0040】TRACEコマンドは、ハードウェア環境にお
いて実行された命令のアドレスを蓄積する旨をハードウ
ェア環境に指示する。selectTARGETコマンドは、これま
でコマンド発行先に指定されていたハードウェア環境の
記憶資源の動作状態を他のハードウェア環境に転送する
指示と、デバッグコマンドの発行先を他のハードウェア
環境に切り換える旨の指示とを含むコマンドである。記
憶資源の動作状態を他のハードウェア環境に転送するに
は、ハードウェア環境のターゲット内ワークエリア38
の内容、レジスタの内容、ブレークポイント、割込信号
発生要件情報、周辺I/Oレジスタの内容、トレースデー
タを個別に転送せねばならない。個別転送を実現するた
め、コマンドインタプリタ72は、サブコマンドcopyME
Mコマンド、copyREGコマンド、copyBPコマンド、copyIN
Tコマンド、copyI/Oコマンド、copyTRACE_DATAコマンド
を発行する。
【0041】copyMEMコマンドは、現在デバッグに用い
られているハードウェア環境内のメモリ内容のうち、タ
ーゲット内ワークエリア38の内容をselectTARGETコマ
ンドにより指定された切り換え先へと転送するようター
ゲット相互接続層52に指示する。またcopyMEMコマン
ドは、オペランドに転送範囲の開始アドレス−終了アド
レスを記載することにより任意の領域の転送を指定する
ことが可能であり、また全メモリ空間の転送を指定する
スイッチが設定されることにより、全メモリの値を転送
するよう指定することもできる。
【0042】copyREGコマンドは、現在デバッグに用い
られているハードウェア環境内のレジスタ群の値をsele
ctTARGETコマンドにより指定された切り換え先へと転送
する旨を指示するコマンドである。copyBPコマンドは、
現在デバッグに用いられているハードウェア環境内のメ
モリ内容のうち、ブレークポイントの設定先アドレスを
selectTARGETコマンドにより指定された切り換え先へと
転送する旨を指示するコマンドである。
【0043】copyINTコマンドは、現在デバッグに用い
られているハードウェア環境内のメモリ内容のうち、割
り込み信号の割込信号発生要件を示す情報をselectTARG
ETコマンドにより指定された切り換え先へと転送する旨
を指示するコマンドである。copyI/Oコマンドは、現在
デバッグに用いられているハードウェア環境内の全ての
周辺I/Oレジスタを、selectTARGETコマンドにより指定
された切り換え先へと転送する旨を指示するコマンドで
ある。
【0044】copyTRACE_DATAコマンドは、現在デバッグ
に用いられているハードウェア環境内のメモリ内容のう
ち、トレースデータをselectTARGETコマンドにより指定
された切り換え先への転送をターゲット相互接続層52
に指示する。デバッグ核層51の構成要素の説明を引き
続き行う。コマンド変換ルーチン73は、コマンドイン
タプリタ72が解釈したコマンド及びコマンドインタプ
リタ72が自動発行したコマンドをより下位レベルに変
換する。ここでいう下位レベルへの変換は、コマンドを
関数呼出コードに変換することをいう。
【0045】コマンドインタプリタ72が入力コマンド
をreadMEMコマンド等、状態情報の読み出し命令である
と解釈した際、関数呼出コードTCI_get_mem(adr,lengt
h,unit,image)等の関数呼出コードに変換する。『TCI_g
et_mem』の『TCI』とは、『Target Core Interface』の
略であり、本関数呼出コードがデバッグ核層51とター
ゲット相互接続層52との間で使用されることを意味す
る。即ち、本関数呼出コードは、デバッグ核層51−タ
ーゲット相互接続層52間という局所的な区間でのみ用
いられる関数呼出コードなのである。『TCI_get_mem』
の『get_mem』とは、『メモリの保持値を取得する』と
いう意味である。『adr,length,unit,image』はそれぞ
れが引数である。adrが開始アドレスを示し、lengthが
取得長を示す。unitは、バイト、ワード、ダブルワード
等取得単位を示し、imageはメモリ内容の格納先を示
す。
【0046】これらの意味から判るのは、コマンドイン
タプリタ72が入力コマンドをreadMEMコマンドと解釈
すると、デバッグ核層51からターゲット相互接続層5
2へと関数呼出コードを用いた指示がなされるというこ
とである。読み出し先が試作機30、評価ボード20、
シュミレータ10のうちどのハードウェア環境であるか
を明示していないため、抽象的なレベルにより関数呼出
が規定されていることがわかる。
【0047】コマンドインタプリタ72が入力コマンド
をwriteREGコマンド等、状態情報の書き込み命令である
と解釈した際、関数呼出コードTCI_set_REG(regs,mask)
等の関数呼出コードに変換する。『TCI_set_REG』の『s
et_REG』とは、『レジスタの即値を設定する』という意
味である。『regs,mask』はそれぞれが引数である。reg
sとは、共用ワークエリアにおいて、汎用レジスタ、プ
ログラムカウンタ、状態レジスタ、データレジスタ、ア
ドレスレジスタ等の各種レジスタの値を個別に格納する
配列変数の配列名であり、maskとは、引数regsで指示さ
れる配列変数の要素(レジスタ保持値)のうち、どれを
ハードウェア環境内のプロセッサに設定し、どれをハー
ドウェア環境に設定しないかを示すマスク用のビットパ
ターンである。
【0048】同様にコマンドインタプリタ72が、操作
者が入力したコマンドを『run』『stop』『step』『set
BP』『clrBP』『SetINT』『readREG』『writeMEM』『TR
ACE』と解釈すると、コマンド変換ルーチン73は『TCI
_run』『TCI_stop』『TCI_step』『TCI_setBP』『TCI_c
lrBP』『TCI_SetINT』『TCI_read_REG』『TCI_write_ME
M』『TCI_TRACE』という関数呼出コードに変換してター
ゲット相互接続層52に伝える。
【0049】コマンドインタプリタ72が入力コマンド
をselectTARGETコマンドと解釈した際、自動発行される
copyMEMコマンド〜copyTRACE_DATAコマンドがどのよう
な関数呼出コードに変換されるかを説明する。copyMEM
コマンド〜copyTRACE_DATAコマンドによる状態情報の転
送は二段階の関数呼出コードにより行われる。第1段階
とは、『TCI_get〜』という関数呼出コードにより切換
元に対して記憶資源の状態情報を読み出しを指示するこ
とであり、第2段階とは、『TCI_set〜』という関数呼
出コードにより切換先に対して記憶資源の状態情報の書
き込みを指示することである。
【0050】図13は、変換前のcopyMEMコマンド〜cop
yTRACE_DATAコマンドと、変換後の関数呼出コードTCI_g
et_mem(adr,length,unit,image)〜TCI_set_TD(adr,leng
th,unit,image)の対応関係を示す図である。本図を参照
すると、サブコマンドCopyMEMは、TCI_get_mem(adr,len
gth,unit,image)という関数呼出コードと、TCI_set_mem
(adr,length,unit,image)という関数呼出コードとに変
換されることがわかる。
【0051】関数呼出コードTCI_get_mem(adr,length,u
nit,image)は、切換元の記憶資源のうちターゲット内ワ
ークエリア38の内容を切換元から読み出す旨を指示
し、関数呼出コードTCI_set_mem(adr,length,unit,imag
e)は、切換先の記憶資源のうちターゲット内ワークエリ
ア38に状態情報を設定する旨を指示する。図13にお
いて留意すべきは、関数呼出コードの引数の個数であ
る。
【0052】『CopyReg』から変換された関数呼出コー
ド『TCI_get_reg(regs,mask)』、『TCI_set_reg(regs,m
ask)』のみ、引数が2つであり、それ以外の関数呼出コ
ードは、(adr,length,unit,image)のように引数を4つ
もっている。これは、内容の違いはあるが、『CopyME
M』『CopyBP』『CopyINT』『CopyI/O』が転送を命じて
いるコマンドは、何れも、記憶資源のうち、メモリに関
するものであり(周辺I/Oレジスタ群25、周辺I/Oレジ
スタ群35の内容はメモリを介したアクセスが可能であ
る。)、(adr,length,unit,image)という引数で、アク
セス内容を表現できるからである。
【0053】『CopyBP』における引数について説明す
る。ブレークポイントの形態は各ハードウェア環境で異
なる場合があるが、大多数なものは、被デバッグプログ
ラム内の機械語命令のアドレスを個々に指示するタイプ
である。命令アドレスを個々に指示する場合は、引数(a
dr,length,unit,image)のうち『length,unit』は不用で
ある。しかしハードウェア環境の中には、ブレークポイ
ントを領域で指定できる、いわゆるエリアブレークを利
用可能なものも存在する。このようなエリアブレークが
利用可能なハードウェア環境の接続を前提にしているた
め、本装置は、引数(adr,length,unit,image)により、
ブレークポイントのサイズと、アクセス長の指定を関数
呼出コードの引数内に取り入れている。
【0054】図13における『CopyINT』の引数(cycle,
intkind)について説明する。引数cycleは、命令実行の
実行時間の単位長の整数倍値を示し、intkindは、発生
すべき割り込み信号の信号番号を示す。図8においてタ
ーゲット相互接続層52は、様式変換ルーチン74、ワ
ークエリアコンテンツ解析モジュール75、共用ワーク
エリア77からなる。ここでは、様式変換ルーチン74
及び、共用ワークエリア77について説明し、ワークエ
リアコンテンツ解析モジュール75については後述す
る。
【0055】様式変換ルーチン74は、コマンド変換ル
ーチン73により変換された関数呼出コードをハードウ
ェア環境に依存した様式に変換する。ここでいう『ハー
ドウェア環境に依存した様式』とは、関数呼出コードが
含んでいる呼出先関数名をハードウェア環境を明示した
関数名に書き換えることをいう。ここでサブコマンドCo
pyMemをコマンド変換ルーチン73がTCI_get_mem(adr,l
ength,unit,image)、TCI_set_mem(adr,length,unit,ima
ge)という関数呼出コードに変換したものとする。この
場合様式変換ルーチン74はこれらの関数呼出コードに
含まれている関数名の書き換えを行う。
【0056】先ず様式変換ルーチン74は、TCI_get_me
m(adr,length,unit,image)における『TCI_get_mem』と
いう関数名を切換元を明示した関数名に書き換える。例
えば、切換元がモニタ型であり、切換先がシュミレータ
型である場合に、関数呼出コードTCI_get_mem(adr,leng
th,unit,image)が生成されたものとする。切換元のハー
ドウェア環境はモニタ型であるから、当該関数呼出コー
ドはモニタ型を明示した関数名『MON_get_mem』に書き
換えられ、MON_get_mem(adr,length,unit,image)を得
る。
【0057】続いて様式変換ルーチン74は、TCI_set_
mem(adr,length,unit,image)における『TCI_set_mem』
という関数名を切換先を明示した関数名に書き換える。
切換先のハードウェア環境はシュミレータ型であるか
ら、シュミレータ型を明示した関数名『SIM_set_mem』
に書き換えられる。書き換え結果は、SIM_set_mem(adr,
length,unit,image)となる。関数名を書き換えた後、様
式変換ルーチン74は書き換え後の関数呼出コードを用
いて関数呼出を行う。
【0058】様式変換ルーチン74は同様の書き換え
を、図13に示した全ての関数呼出コードについて行
う。図14は図13に示した全ての関数呼出コードがど
のように書き換えられたかを示す図である。関数名の書
き換えを行う際、様式変換ルーチン74は、切換元及び
切換先がICE型、モニタ型、シュミレータ型の何れであ
るかを識別する。切換元は、現状デバッグ対象に設定さ
れているハードウェア環境であるから、原簿テーブルを
参照して、本ファイルに登録されている識別子を切換元
のハードウェア環境と識別する。切換先は、selectTARG
ETコマンドのオペランドに設定されているハードウェア
環境であるから、様式変換ルーチン74はコマンドイン
タプリタ72からselectTARGETコマンドを受け取り、se
lectTARGETコマンドのオペランドに示されている識別子
を切換先ハードウェア環境を示すものと解釈する。この
ようにして切換元、切換先が決定されると、関数呼出コ
ードの関数名の書き換えを行う。
【0059】共用ワークエリア77は、引数Imageにて
指定された領域Image等、モニタ型、ICE型、シュミレー
タ型のハードウェア環境により共用されるワークエリア
である。ターゲット依存層53は、シュミレータ10、
モニタ制御層61、ICE制御層62からなる。
【0060】シュミレータ10は、図5の構成を有する
アプリケ−ションプログラムである。図5に示すよう
に、シュミレータ10は、プロセッサ模擬ルーチン9
5、メモリ模擬ルーチン96、I/Oレジスタ模擬ルーチ
ン97から構成される。プロセッサ模擬ルーチン95
は、プロセッサ33の機能を模擬する。メモリ模擬ルー
チン96は、メモリ24同様、スーパバイザプログラム
26、デバッグ情報エリア27、被デバッグプログラム
37、ターゲット内ワークエリア38を記憶する。これ
らを記憶しているため、シュミレータ型ハードウェア環
境のバグ解析能力は、ICE型のそれとほぼ対等といえ
る。
【0061】I/Oレジスタ模擬ルーチン97は、周辺I/O
レジスタ群35の機能を模擬する。プロセッサ模擬ルー
チン95、メモリ模擬ルーチン96、I/Oレジスタ模擬
ルーチン97はシュミレータ型を指定した関数呼出コー
ドにより起動する。関数呼出コードSIM_get_mem(adr,le
ngth,unit,image)を用いて様式変換ルーチン74により
呼び出されれば、プロセッサ模擬ルーチン95はメモリ
模擬ルーチン96において開始アドレスadrに格納され
ているデータを、取得長lengthに指定されているサイズ
だけ、取得単位unitにて指定されている単位毎に読み出
す。読み出されると、プロセッサ模擬ルーチン95はデ
ータを共用ワークエリア77において引数imageに指定
されている領域に格納する。
【0062】関数呼出コードSIM_set_mem(adr,length,u
nit,image)を用いて様式変換ルーチン74により呼び出
されれば、プロセッサ模擬ルーチン95は共用ワークエ
リア77において引数imageに指定されている領域のデ
ータをメモリ模擬ルーチン96内の開始アドレスadr以
降の領域に書き込む。書き込み作業は引数lengthに指定
されているサイズだけ、引数unitにて指定されている単
位で行われる。
【0063】モニタ制御層61は、試作機30における
被デバッグプログラムの管轄権及び試作機30上のメモ
リ、レジスタ等記憶資源のアクセス権も有し、所望のタ
イミングで、被デバッグプログラムを動作させ、試作機
30の記憶資源の内容を読み書きする。この読み書きの
制御は、シリアル転送ポート31、シリアル回線40、
専用端子39を介してモニタ制御層61がモニタリング
プログラム36と所定の通信シーケンスを行うことによ
り行われる。これらの通信シーケンスの実行条件とは、
様式変換ルーチン74による関数呼出が行われることで
ある。
【0064】例えばメモリの内容を読み出すための通信
シーケンスは、図15の(2)に示すパケットを、(1)のプ
ロトコルに従って送受信することにより行われる。その
通信シーケンスがなされるのは、モニタ制御層61が関
数呼出コードMON_get_mem(adr,length,unit,image)を用
いて関数呼び出しを行った場合である。図15の(2)に
示した3種のパケット、即ちMEMREADパケット、ACKパケ
ット、DATA1/n〜n/nパケットは何れも8Byte長フィール
ドを有する。
【0065】MEMREADパケットの第0バイトはCMDフィー
ルドであり、コマンドの種別を示すコマンドコードが書
き込まれる。第1バイトはUITフィールドであり、メモ
リからの読み出し単位(バイト、ワード、ダブルワード
がある)をプロセッサに指示する。第2、第3バイト
は、ADRSフィールドであり、読み出すべきメモリデータ
のサイズが書き込まれる。第4〜第7バイトにメモリの
読出先アドレスが書き込まれる。
【0066】ACKパケットは、第0バイトにモニタリン
グプログラム36において発生したエラーの種別を示す
種別コードが書き込まれる。図17は、メモリ内容の読
み出しシーケンスを実行する際のモニタ制御層61の処
理内容を示すフローチャートである。様式変換ルーチン
74が関数呼出コードMON_get_mem(adr,length,unit,im
age)にて関数呼び出しすると、モニタ制御層61は、ス
テップS1においてCMDフィールド,sizeフィールド,ADR
Sフィールド,UITフィールドを設定し、送信パケットを
作成する。この際、どのような内容を各フィールドに書
き込むかであるが、CMDフィールドに対しては、MEMREAD
を示すコードを書き込む。sizeフィールドに対しては、
引数lengthに示されている読み出しサイズを書き込み、
ADRSフィールドに対しては、引数adr に示されている読
み出し先アドレスを書き込む。UITフィールドに対して
は、引数unitに示されている読み出し先アドレスを書き
込む。このようにしてMEMREADパケットを作成すると、
ステップS2においてシリアル回線40を介して、作成
したパケットをモニタリングプログラム36側に送信す
る。送信後、モニタ制御層61は、ステップS3におい
てACKパケットの受信待ちを行う。ACKパケットが送信さ
れれば、ステップS3がYesとなり、ステップS4に移
行する。ステップS4では、モニタ制御層61はACKパ
ケットのERRフィールドをチェックする。もし異常なら
ば、ステップS2に移行してMEMREADパケットの再発行
を行うが、正常ならば、ステップS5において変数iを1
に設定し、ステップS6において引数に指定されたleng
thをDATAパケットサイズ(8byte)で割った数に変数n
を設定する。変数iとは、各DATAパケットに個別に付さ
れた番号を示し、変数nとは、DATAパケットの総数を示
す。
【0067】これらの変数に初期値を設定すると、ステ
ップS7においてモニタ制御層61は受信パケットi(i=
1,2,3,4・・・n)の受信待ちを行う。このように受信待ちを
行っている間にDATAパケットが送信されれば、モニタ制
御層61はこれを受信する。そしてステップS8におい
て受信したDATAパケットのiのDATAフィールドに記載さ
れている8バイトデータを共用ワークエリア77内の引
数imageで指定されている領域に格納する。格納後、ス
テップS9において変数iと変数nとを比較し、もし変数
iと変数nと異なるなら、ステップS10において変数i
をインクリメントしてステップS7に移行する。
【0068】以降、ステップS9がYes、即ち、変数i=
変数nとなるまでステップS7におけるDATAパケットの
受信と、ステップS8における共用ワークエリア77に
対しての8バイトデータの格納とを繰り返す。ステップ
S7〜ステップS10の繰り返しにより、試作機30の
データはシリアル転送ポート31−シリアル回線40−
専用端子39を介して8バイトずつモニタ制御層61に
転送されてゆく。転送された8バイトのデータは共用ワ
ークエリア77における領域imageに蓄積される。この
ような繰り返しがn回行われると、関数呼出コードに引
数lengthで指定したサイズのデータが共用ワークエリア
77のimage領域上に格納される。
【0069】メモリ34上のデータが共用ワークエリア
77上へと読み出されると、これをシュミレータ10及
びICE制御層62に転送することが可能となる。上記の
ようにしてメモリ34上のデータが共用ワークエリア7
7上の領域imageへと読み出された後、様式変換ルーチ
ン74が関数呼出コードSIM_set_mem(adr,length,unit,
image)を用いて関数呼出を行うと、共用ワークエリア7
7において引数imageに格納されているメモリ34のタ
ーゲット内ワークエリア38のデータがメモリ模擬ルー
チン96内の開始アドレスadr以降の領域に書き込まれ
る。
【0070】同様の通信シーケンスを、残りのレジスタ
の内容、ブレークポイント、割込信号発生要件情報、周
辺I/Oレジスタの内容、トレースデータについて繰り返
し、モニタ制御層61は試作機30の記憶資源の状態情
報をメモリ模擬ルーチン96へと転送する。またターゲ
ット内ワークエリア38の内容を試作機30内のメモリ
34に書き込むための通信シーケンスは、図16の(2)
に示すパケットを、(1)のプロトコルに従って送受信す
ることにより行われる。通信シーケンスがなされるの
は、モニタ制御層61が関数呼出コードMON_set_mem(ad
r,length,unit,image)を用いて関数呼び出しを行った場
合である。
【0071】図16の(2)に示した3種のパケット、即
ちMEMWRITEパケット、DATA1〜nパケット、ACK1,2パケッ
トは何れも8Byte長フィールドを有する。MEMWRITEパケ
ットの第0バイトは、CMDフィールドであり、コマンド
の種別を示すコマンドコードが書き込まれる。第1バイ
トはUITフィールドであり、メモリからの読み出し単位
(バイト、ワード、ダブルワードがある)をプロセッサ
に指示する。第2、第3バイトはSIZEフィールドであ
り、読み出すべきターゲット内ワークエリア38データ
のサイズが書き込まれる。第4〜第7バイトはADRSフィ
ールドであり、メモリ34の内容の書込先アドレスが書
き込まれる。
【0072】ACK1パケット,ACK2パケットは、第0バイ
トにモニタリングプログラム36において発生したエラ
ーの種別を示す種別コードが書き込まれる。図18は、
ターゲット内ワークエリア38の内容の読み出しシーケ
ンスを実行する際のモニタ制御層61の処理内容を示す
フローチャートである。
【0073】様式変換ルーチン74が関数呼出コードMO
N_set_mem(adr,length,unit,image)にて関数呼び出しす
ると、モニタ制御層61は、ステップS11においてCM
Dフィールド,sizeフィールド,ADRSフィールドを設定
し、送信パケットを作成する。この際、どのような内容
を各フィールドに書き込むかであるが、CMDフィールド
に対しては、MEMWRITEを示すコードを書き込む。sizeフ
ィールドに対しては、引数lengthに示されているサイズ
を書き込み、ADRSフィールドに対しては、引数adr に示
されている書込先アドレスを書き込む。UITフィールド
に対しては、引数adr に示されている書込先アドレスを
書き込む。
【0074】このようにしてMEMWRITEパケットを作成す
ると、ステップS12においてシリアル回線40を介し
て、作成したパケットをモニタリングプログラム36側
に送信する。送信後、モニタ制御層61は、ステップS
13においてACKパケットの受信待ちを行う。ACKパケッ
トが送信されれば、ステップS13がYesとなり、ステ
ップS14に移行する。ステップS14では、モニタ制
御層61はACK1パケットのERRフィールドをチェックす
る。もし異常ならば、ステップS12に移行してMEMREA
Dパケットの再発行を行うが、正常ならば、ステップS
15において変数jを1に設定し、ステップS16におい
て引数に指定されたlengthをDATAパケットサイズ(8by
te)で割った数に変数nを設定する。変数jとは、各DATA
パケットに個別に付された番号を示し、変数nとは、DAT
Aパケットの送信総数を示す。
【0075】これらの変数に初期値を設定すると、ステ
ップS18において引数imageで指定された領域imageに
格納されているデータのうち、(8*(j-1))バイト目から
(8*j-1)バイト目までの8byteを読み出す。ここでj=1で
あるから、第0バイト目から第7バイト目までのデータ
が読み出され、モニタ制御層61はこれを送信DATAパケ
ットjのDATAフィールドに記載する。記載後、ステップ
S19においてDATAパケットを発行してステップS20
に移行する。ステップS20において変数jと変数nとを
比較し、もし変数jと変数nと異なるなら、ステップS2
1において変数jをインクリメントしてステップS18
に移行する。
【0076】以降、ステップS20がYes、即ち、変数j
=変数nとなるまでステップS18、ステップS19に
おける8バイトデータの送信とを繰り返す。ステップS
18〜ステップS21の繰り返しにより、共用ワークエ
リア77のデータはシリアル転送ポート31、シリアル
回線40、専用端子39を介して8バイトずつメモリ3
4に転送されてゆく。転送された8バイトのデータはメ
モリ34に蓄積される。このような繰り返しがn回行わ
れると、領域imageに格納されているデータがメモリ3
4上に格納される。
【0077】同様の通信シーケンスを、残りのレジスタ
の内容、ブレークポイント、割込信号発生要件情報、周
辺I/Oレジスタの内容、トレースデータについて繰り返
し、モニタ制御層61は共用ワークエリア77の状態情
報を試作機30の記憶資源に格納する。ここで関数呼出
コードMON_set_mem(adr,length,unit,image)を用いて関
数呼出を行う前に予め共用ワークエリア77にシュミレ
ータ10の保持値を書き込んでおけば、共用ワークエリ
ア77上のシュミレータ10及びICE制御層62の保持
値をメモリ34に転送することも可能である。
【0078】ICE制御層62は、評価ボード20におけ
るICEチップ23の制御権を掌握している。即ち、被デバ
ッグプログラムの管轄権及び評価ボード20上のメモ
リ、レジスタ等記憶資源のアクセス権を有する。そし
て、所望のタイミングで、被デバッグプログラムを動作
させ、評価ボード20の記憶資源に共用ワークエリア7
7の内容を書き込ませる。
【0079】上記読み書き制御は、様式変換ルーチン7
4による、ICE型を明示した関数呼出に伴って、ICE制御
層62がデバイスドライバ21にBIOSコマンドを発行す
ることにより行われる。図19は、評価ボード20内の
被デバッグプログラム37の内容を読み出させる際の、
ICE制御層62の制御内容を示す説明図である。ICE制御
層62が関数呼出コードICE_get_mem(adr,length,unit,
image)を用いて関数呼び出しされると、ICE制御層62
はデバイスドライバ21に対して、BIOSコマンド『MEM_
READ(adrs,type,num)』を発行する。
【0080】BIOSコマンドのパラメータについて説明す
る。パラメータadrsは、評価ボード20のワークエリア
のうち、どのアドレスから状態情報を読み出すかを示
し、パラメータtypeは、評価ボード20上での読み出し
単位を示す。引数unitも同内容の読み出し単位を指定し
ているが、評価ボード20で通用している取得単位が異
なる場合がある。その場合、デバイスドライバ21は、
評価ボード20で通用している取得単位にパラメータty
peを設定する。
【0081】パラメータnumは、語数を示す。ここでい
う『語』の語長は、パラメータtypeで指定された取得単
位を意味し、パラメータnumは関数呼出時において、引
数lengthにおいて指定した読み出しサイズを語長unitで
割った数に設定される。以上のようにして、パラメータ
adr,type,numを設定すると、デバイスドライバ21にME
M_READ(adrs,type,num)を発行する。発行後、デバイス
ドライバ21が結果を出力するのを待ち、結果を出力す
ると、その内容を評価ボード20におけるメモリ24の
領域のadrからの値として受け取り、これを共用ワーク
エリア77の引数adrsに指定された領域に格納する。
【0082】図20は、評価ボード20内の被デバッグ
プログラム37に内容を書き込む際の、ICE制御層62
の制御内容を示す説明図である。ICE制御層62が関数
呼出コードICE_set_mem(adr,length,unit,image)を用い
て関数呼び出しされると、ICE制御層62はデバイスド
ライバ21に対して、BIOSコマンド『MEM_WRITE(adrs,t
ype,num)』を発行する。発行後、共用ワークエリア77
内の引数adrに指定されている領域の値を、書き込むべ
き値としてデバイスドライバ21に出力する。
【0083】当該BIOSコマンドのパラメータの内容につ
いて説明する。パラメータadrsは、共用ワークエリア7
7の内容を評価ボード20内のワークエリア38のうち
どのアドレスに書き込むかを示し、パラメータtypeは、
書き込み単位を示す。パラメータnumは、語数を示す。
ここでいう『語』の語長は、評価ボード20内の取得単
位を意味し、関数呼出時において、引数lengthにおいて
指定した書き込みサイズを語長typeで割った数に設定さ
れる。
【0084】以上のようにして、パラメータadr,type,n
umを設定すると、デバイスドライバ21にMEM_WRITE(ad
rs,type,num)を発行する。デバイスドライバ21は、IC
E制御層62が発行したBIOSコマンドに従って、評価ボ
ード20上のアドレス設定用ICE資源、サイズ設定用ICE
資源、動作指定用ICE資源の設定を行う。
【0085】これらのICE用資源を設定する理由は、ICE
チップ23は、これらのICE資源に記述されている内容を
ホストコンピュ−タ1からの指示と解釈して、メモリの
読み書きやブレークポイント設定等の動作を行うからで
ある。BIOSコマンドMEM_READ(adrs,type,num)が発行さ
れればデバイスドライバ21は、第1にパラメータadrs
に指定された値をアドレス設定用ICE資源に設定し、第
2にパラメータnumに設定された値をサイズ設定用ICE資
源に設定する。そして、動作指定用ICE資源にリード動
作を設定する。そうするとICEチップ23は、メモリ24
内の領域のうち、パラメータadrsに指定された内容をnu
mだけ、デバイスドライバ21へと読み出す。デバイス
ドライバ21は読み出された値を評価ボード20内のメ
モリ24の状態情報としてICE制御層62に出力する。
【0086】BIOSコマンドMEM_WRITE(adrs,type,num)が
発行されればデバイスドライバ21は、第1にパラメー
タadrsに指定された値をアドレス設定用ICE資源に設定
し、第2にパラメータnumに設定された値をサイズ設定
用ICE資源に設定する。そして、動作指定用ICE資源にラ
イト動作を設定する。そうしてデバイスドライバ21が
モニタ制御層61から渡された共用ワークエリア77内
の領域imageの値を出力するとICEチップ23は、メモリ2
4内の領域のうち、パラメータadrsに指定された領域に
numだけ、デバイスドライバ21から引き渡された内容
を書き込む。
【0087】以上までの構成要素による本デバッグ装置
の動作について説明する。図12は、ユーザインターフ
ェィス層50により行われるメッセージ表示の一例を示
す図である。デバッグ装置が起動すると、ユーザインタ
ーフェィス層50は先ず、参照符号p1に示すように、
『*ハードウェア環境は{TARGET1}に設定されていま
す。{TARGET1}は{モニタ型}のハードウェア環境で
す。』というメッセージを表示し、『*コマンドを入力
して下さい 』というメッセージと、プロンプトとを表
示してコマンドの入力待ちとなる。
【0088】<『readMEM 0x0100,16』の入力>この状
態で操作者がキーボード3をタイプして『readMEM 0x0
100,16』というコマンドを入力すると、ユーザインター
フェィス層50は、入力されたコマンドをデバッグ核層
51に出力して、当該コマンドの解釈及び実行を委ね
る。コマンド変換ルーチン73は入力されたコマンドを
関数呼出コード『TCI_read_MEM (0x0100,16,byte,imag
e)』に変換して、様式変換ルーチン74に出力する。様
式変換ルーチン74は、関数呼出コードをハードウェア
環境に依存した様式に書き換える。ハードウェア環境は
モニタ型であるから、モニタ型に依存した様式『MON_re
ad_MEM (0x0100,16,byte,image)』に書き換えられる。
【0089】様式変換ルーチン74が関数呼出コードMO
N_get_mem(0x0100,16,byte,image)にて関数呼び出しす
ると、モニタ制御層61は、図17のフローチャートに
従い、試作機30のデータをシリアル転送ポート31−
シリアル回線40−専用端子39を介して8バイトずつ
モニタ制御層61に読み出す。読み出された8バイトの
データは共用ワークエリア77における領域imageに蓄
積される。このような繰り返しがn回行われると、関数
呼出コードに引数lengthで指定したサイズのデータが共
用ワークエリア77のimage領域上に格納される。
【0090】ここで共用ワークエリア77の格納内容
が、『FF FF FF FF FF FF FF FFFF FF FF FF FF FF
FF FF』であると、ユーザインターフェィス層50は、
『*ハードウェア環境{TARGET1}の{0x0100,16}の値
は以下の通りです』という文字列を表示して、操作者が
指定した読出先をエコーバックすると共に、共用ワーク
エリア77の保持値『FF FF FF FF FF FF FF FF FF
FF FF FF FF FFFF FF』を表示する。その後、『*コ
マンドを入力して下さい 』というメッセージを表示し
てコマンドの入力待ちとなる。
【0091】<『writeREG D1,03』の入力>操作者がキ
ーボード3をタイプして『writeREG D1,03』というコマ
ンドを入力すると、ユーザインターフェィス層50は、
入力されたコマンドをデバッグ核層51に出力して、当
該コマンドの解釈及び実行を委ねる。コマンド変換ルー
チン73は入力されたコマンドに従って、共用ワークエ
リア内の配列regsのレジスタD1の要素に03を格納し、関
数呼出コード『TCI_write_REG (regs,mask)』に変換し
て、様式変換ルーチン74に出力する。様式変換ルーチ
ン74は、関数呼出コードをハードウェア環境に依存し
た様式に書き換える。ハードウェア環境はモニタ型であ
るから、モニタ型に依存した様式『MON_write_REG (D1,
03)』に書き換えられる。
【0092】様式変換ルーチン74が関数呼出コードMO
N_write_REG(regs,mask)にて関数呼び出しすると、モニ
タ制御層61は、レジスタ書き込みをプロセッサ33に
指示すると共に即値『03』をシリアル転送ポート31−
シリアル回線40−専用端子39を介して試作機30に
出力する。レジスタ書き込みが命じられたので、プロセ
ッサ33は、当該即値を指示されたレジスタD1に書き込
む。
【0093】その後、正常書き込みを示す信号をプロセ
ッサ33がモニタ制御層61に出力すると、モニタ制御
層61は正常終了を、様式変換ルーチン74−コマンド
変換ルーチン73−コマンドインタプリタ72を介して
ユーザインターフェィス層50に通知する。ユーザイン
ターフェィス層50は『*ハードウェア環境{TARGET
1}の{D1}に値{03}を設定しました』というメッセ
ージによりエコーバックを行った後、プロムプト『>』
を表示して、操作者からの入力待ちになる。
【0094】<『SetBP BP1,0x0123』の入力>操作者が
キーボード3をタイプして『SetBP BP1,0x0123』という
コマンドを入力すると、ユーザインターフェィス層50
は、入力されたコマンドをデバッグ核層51に出力し
て、当該コマンドの解釈及び実行を委ねる。コマンド変
換ルーチン73は入力されたコマンドを関数呼出コード
『TCI_SET_BP (BP1,0x0123)』に変換して、様式変換ル
ーチン74に出力する。様式変換ルーチン74は、関数
呼出コードをハードウェア環境に依存した様式に書き換
える。ハードウェア環境はモニタ型であるから、モニタ
型に依存した様式『MON_SET_BP (BP1,0x0123)』に書き
換えられる。
【0095】様式変換ルーチン74が関数呼出コードMO
N_SET_BP (BP1,0x0123)にて関数呼び出しすると、モニ
タ制御層61は、アドレス『0x0123』にブレークポイン
ト『BP1』を設定する旨をシリアル転送ポート31−シ
リアル回線40−専用端子39を介して試作機30に出
力する。ブレークポイント設定が命じられたので、プロ
セッサ33は、当該アドレス0x0123に、ブレークポイン
トBP1を設定する。
【0096】その後、正常設定を示す信号をプロセッサ
33がモニタ制御層61に出力すると、モニタ制御層6
1は正常終了を、様式変換ルーチン74−コマンド変換
ルーチン73−コマンドインタプリタ72を介してユー
ザインターフェィス層50に通知する。正常設定が通知
されると、ユーザインターフェィス層50は『*ハード
ウェア環境{TARGET1}の{BP1}に値{0x0123}を設定
しました』というメッセージを表示した後、プロムプト
『>』を表示して、操作者からの入力待ちになる。
【0097】<『RUN』の入力>操作者がキーボード3
をタイプして『RUN』というコマンドを入力すると、ユ
ーザインターフェィス層50は、入力されたコマンドを
デバッグ核層51に出力して、当該コマンドの解釈及び
実行を委ねる。コマンド変換ルーチン73は入力された
コマンドを関数呼出コード『TCI_RUN(0x0000)』に変換
して、様式変換ルーチン74に出力する。様式変換ルー
チン74は、関数呼出コードをハードウェア環境に依存
した様式に書き換える。ハードウェア環境はモニタ型で
あるから、モニタ型に依存した様式『MON_RUN (0x000
0)』に書き換えられる。
【0098】様式変換ルーチン74が関数呼出コードMO
N_RUN(0x0000)にて関数呼び出しすると、モニタ制御層
61は、被デバッグプログラム37を実行する旨をシリ
アル転送ポート31−シリアル回線40−専用端子39
を介して試作機30に出力する。プログラム実行が命じ
られたので、プロセッサ33は、被デバッグプログラム
37の実行を開始する。
【0099】プロセッサ33が被デバッグプログラム3
7の実行を開始したので、試作機30は動作を開始す
る。その後、先に設定されたブレークポイントにより、
被デバッグプログラム37の動作が中断すると、プロセ
ッサ33はプログラムが中断した旨を専用端子39−シ
リアル回線40−シリアル転送ポート31を介してモニ
タ制御層61に通知する。
【0100】動作中断を示す信号をプロセッサ33がモ
ニタ制御層61に出力すると、モニタ制御層61は動作
中断を、様式変換ルーチン74−コマンド変換ルーチン
73−コマンドインタプリタ72を介してユーザインタ
ーフェィス層50に通知する。動作中断が通知される
と、ユーザインターフェィス層50は『*{TARGET1}
のプログラムは{0x0123}で中断しました。』というメ
ッセージを表示した後、プロムプト『>』を表示して、
操作者からの入力待ちになる。
【0101】<selectTARGETの入力時の動作>図21〜
図26は、図7及び図8に示したデバッグ装置の内部階
層図に対して、コマンド、関数呼出コード、状態情報の
行き来を加筆した説明図である。そのうち図21は、モ
ニタ型ハードウェア環境におけるプログラムの動作中に
切り換え先をシュミレータ型に規定したSelectTargetコ
マンドが入力された場合の状態情報の行き来を示してい
る。各階層にはこの際に用いられる関数呼出コード、コ
マンドが配置され、これらの間の行き来が矢印にて加筆
されている。図21の説明図と、図30のフローチャー
トを参照しながらselectTARGETコマンドの解読に関連す
るコマンドインタプリタ72の処理内容を説明する。
【0102】モニタ型のハードウェア環境にて動作検証
を行っている際、操作者がキーボード3をキータイプし
て、切換先をシュミレータに規定したselectTARGETコマ
ンドを入力したものとする。図30におけるステップS
81においてユーザインターフェィス層50は図12に
示したプロムプト『>』を表示し、操作者からのコマン
ド入力を待っている。キータイプにより操作者がデバッ
グコマンドを入力すると、ステップS82に移行して、
コマンドインタプリタ72は入力されたコマンドの解析
を行う。解析の結果オペコードが『selectTARGET』なら
ステップS83がYesとなってステップS84に移行
し、現在デバッグに用いているハードウェア環境(以下
『src_target』という)側にプログラム実行の停止を指
示する。そしてステップS85、ステップS86、ステ
ップS87、ステップS88、ステップS89、ステッ
プS90においてコマンドインタプリタ72はcopyMEM
コマンド、copyREGコマンド、copyBPコマンド、copyINT
コマンド、copyI/Oコマンド、copyTRACE_DATAコマンド
を自動発行する(図21の矢印y1参照)。
【0103】copyMEM〜copyTRACE_DATAコマンドの自動
発行が行われると、下位層に位置するコマンド変換ルー
チン73は、自動発行されたコマンドを関数呼出コード
に変換する。サブコマンドCopyMEMは、コマンド変換ル
ーチン73によりTCI_get_mem(adr,length,unit,image)
という関数呼出コードと、TCI_set_mem(adr,length,uni
t,image)という関数呼出コードとに変換される(図21
の矢印y2参照)。サブコマンドCopyRegは、コマンド変
換ルーチン73によりTCI_get_reg(regs,mask)といい関
数呼出コードと、TCI_set_reg(regs,mask)という関数呼
出コードとに変換される。
【0104】様式変換ルーチン74は、コマンド変換ル
ーチン73により変換された関数呼出コードをハードウ
ェア環境に依存した様式に変換する。切換元はモニタ型
に設定され、切換先はシュミレータ型に設定されている
ことから、先ず様式変換ルーチン74は、TCI_get_mem
(adr,length,unit,image)における『TCI_get_mem』とい
う関数名を切換元を明示した関数名に書き換える。切換
元のハードウェア環境はモニタ型であるから、モニタ型
を明示した関数名『MON_get_mem』に書き換え、MON_get
_mem(adr,length,unit,image)を得る(図21の矢印y3
参照)。
【0105】続いて様式変換ルーチン74は、TCI_set_
mem(adr,length,unit,image)における『TCI_set_mem』
という関数名を切換先を明示した関数名に書き換える。
切換先のハードウェア環境はシュミレータ型であるか
ら、シュミレータ型を明示した関数名『SIM_set_mem』
に書き換える。書き換え結果は、SIM_set_mem(adr,leng
th,unit,image)となる(図21の矢印y4参照)。関数名
を書き換えた後、様式変換ルーチン74は関数呼出コー
ドを用いて関数呼出を行う。
【0106】様式変換ルーチン74が関数呼出コードMO
N_get_mem(adr,length,unit,image)にて関数呼び出しす
ると、モニタ制御層61は、図17のフローチャートに
従い、試作機30のデータをシリアル転送ポート31−
シリアル回線40−専用端子39を介して8バイトずつ
モニタ制御層61に読み出す。読み出された8バイトの
データは共用ワークエリア77における領域imageに蓄
積される。このような繰り返しがn回行われると、関数
呼出コードに引数lengthで指定したサイズのデータが状
態情報として共用ワークエリア77のimage領域上に格
納される(矢印T1参照)。
【0107】蓄積された後、様式変換ルーチン74が関
数呼出コードSIM_set_mem(adr,length,unit,image)を用
いて関数呼出を行う。様式変換ルーチン74により呼び
出されれば、共用ワークエリア77において引数image
に指定されている領域のデータを状態情報としてメモリ
模擬ルーチン96内の開始アドレスadr以降の領域に書
き込む(矢印T2参照)。書き込み作業は取得長lengthに
指定されているサイズだけ、取得単位unitにて指定され
ている単位で行われる。このように共用ワークエリア7
7からメモリ模擬ルーチン96への書き込みを行うこと
により試作機30からシュミレータ10へのメモリ内容
の転送が完了する。
【0108】同様の作業をcopyREGコマンド、copyBPコ
マンド、copyINTコマンド、copyI/Oコマンド、copyTRAC
E_DATAコマンドについて行う。そうすると、試作機30
の記憶資源の動作状態がシュミレータ10へと転送され
る。その結果、それまでの試作機30の動作状態がシュ
ミレータ10に継承される。継承後、動作状態情報が設
定されると、プログラムの動作を切換先シュミレータ1
0において再開するよう制御する。
【0109】図22は、モニタ型ハードウェア環境にお
けるプログラムの動作中に切り換え先をICE型に規定し
たSelectTargetコマンドが入力された場合の状態情報の
行き来を示している。本図が図21と異なるのは、ICE
型ハードウェア環境を指定したselectTARGETコマンドが
入力されたため、コマンド変換ルーチン73が生成した
関数呼出コードTCI_SET_mem(adr,length,unit,image)
を様式変換ルーチン74がICE型に依存した様式に書き
換え、この書き換えにより、ICE制御層62が駆動され
た点である。
【0110】駆動されたICE制御層62は、試作機30
内の状態情報が格納された領域imageの内容をBIOSコマ
ンドを用いて評価ボード20内に書き込む(矢印T4参
照)。このようにして、試作機30の状態情報が評価ボ
ード20へと転送され、それまでの試作機30のプログ
ラムの動作が評価ボード20上へと継承される。図23
は、ICE型ハードウェア環境におけるプログラムの動作
中に切り換え先をモニタ型に規定したSelectTargetコマ
ンドが入力された場合の状態情報の行き来を示してい
る。本図が図22と異なるのは、転送元と転送先の関係
が入れ代わっている点である。即ち、転送元がICE型で
あり、転送先がモニタ型なのである。ICE型ハードウェ
ア環境を指定したselectTARGETコマンドが入力されたた
め、コマンド変換ルーチン73が生成した関数呼出コー
ドTCI_GET_mem(adr,length,unit,image)を様式変換ル
ーチン74がICE型に依存した様式に書き換える。この
書き換えにより、ICE制御層62が駆動され、駆動され
たICE制御層62は、評価ボード20内の状態情報をBIO
Sコマンドを用いて共用ワークエリア77内の領域image
内に書き込む(矢印T5参照)。
【0111】一方コマンド変換ルーチン73が生成した
関数呼出コードTCI_SET_mem(adr,length,unit,image)
を様式変換ルーチン74がモニタ型に依存した様式に書
き換える。この書き換えにより、モニタ制御層61が駆
動され、駆動されたモニタ制御層61は、評価ボード2
0内の状態情報が格納された領域imageの内容をシリア
ル回線40を介して試作機30内に書き込む(矢印T6参
照)。このようにして、評価ボード20の状態情報が試
作機30へと転送され、それまでの評価ボード20のプ
ログラムの動作が試作機30上へと継承される。
【0112】図24は、ICE型ハードウェア環境におけ
るプログラムの動作中に切り換え先をシュミレータ型に
規定したSelectTargetコマンドが入力された場合の状態
情報の行き来を示している。本図が図23と異なるの
は、転送先がモニタ型からシュミレータ型に入れ代わっ
ている点である。即ち、転送元がICE型であり、転送先
がシュミレータ型なのである。ICE型ハードウェア環境
を指定したselectTARGETコマンドが入力されたため、コ
マンド変換ルーチン73が生成した関数呼出コードTCI_
GET_mem(adr,length,unit,image)を様式変換ルーチン
74がICE型に依存した様式に書き換える。この書き換
えにより、ICE制御層62が駆動され、駆動されたICE制
御層62は、評価ボード20内の状態情報をBIOSコマン
ドを用いて共用ワークエリア77内の領域image内に書
き込む(矢印T7参照)。
【0113】一方コマンド変換ルーチン73が生成した
関数呼出コードTCI_SET_mem(adr,length,unit,image)
を様式変換ルーチン74がシュミレータ型に依存した様
式に書き換える。この書き換えにより、シュミレータ1
0が駆動され、評価ボード20内の状態情報が格納され
た領域imageの内容をその内部のメモリ模擬ルーチン9
6に書き込む(矢印T8参照)。このようにして、評価ボ
ード20の状態情報がシュミレータ10へと転送され、
それまでの評価ボード20のプログラムの動作がシュミ
レータ10上へと継承される。
【0114】図25は、シュミレータ型ハードウェア環
境におけるプログラムの動作中に切り換え先をモニタ型
に規定したSelectTargetコマンドが入力された場合の状
態情報の行き来を示している。本図が図21と異なるの
は、転送先と転送元とが入れ代わっている点である。即
ち、転送元がシュミレータ型であり、転送先がモニタ型
なのである。モニタ型ハードウェア環境を指定したsele
ctTARGETコマンドが入力されたため、コマンド変換ルー
チン73が生成した関数呼出コードTCI_GET_mem(adr,l
ength,unit,image)を様式変換ルーチン74がシュミレ
ータ型に依存した様式に書き換える。この書き換えによ
り、シュミレータ10が駆動され、駆動されたシュミレ
ータ10は、自身の状態情報を共用ワークエリア77内
の領域image内に書き込む(矢印T9参照)。
【0115】一方コマンド変換ルーチン73が生成した
関数呼出コードTCI_SET_mem(adr,length,unit,image)
を様式変換ルーチン74がモニタ型に依存した様式に書
き換える。この書き換えにより、モニタ制御層61が駆
動され、駆動されたモニタ制御層61は、格納された領
域imageの内容を試作機30内部に書き込む(矢印T10参
照)。このようにして、シュミレータ10の状態情報が
試作機30へと転送され、それまでのシュミレータ10
のプログラムの動作が試作機30上へと継承される。
【0116】図26は、シュミレータ型ハードウェア環
境におけるプログラムの動作中に切り換え先をICE型に
規定したSelectTargetコマンドが入力された場合の状態
情報の行き来を示している。本図が図22と異なるの
は、転送先と転送元とが入れ代わっている点である。即
ち、転送元がシュミレータ型であり、転送先がICE型な
のである。ICE型ハードウェア環境を指定したselectTAR
GETコマンドが入力されたため、コマンド変換ルーチン
73が生成した関数呼出コードTCI_GET_mem(adr,lengt
h,unit,image)を様式変換ルーチン74がシュミレータ
型に依存した様式に書き換える。この書き換えにより、
シュミレータ10が駆動され、駆動されたシュミレータ
10は、自身の状態情報を共用ワークエリア77内の領
域image内に書き込む(矢印T11参照)。
【0117】一方コマンド変換ルーチン73が生成した
関数呼出コードTCI_SET_mem(adr,length,unit,image)
を様式変換ルーチン74がICE型に依存した様式に書き
換える。この書き換えにより、ICE制御層62が駆動さ
れ、駆動されたICE制御層62は、格納された領域image
の内容を評価ボード20内部に書き込む(矢印T12参
照)。このようにして、シュミレータ10の状態情報が
評価ボード20へと転送され、それまでのシュミレータ
10のプログラムの動作が評価ボード20上へと継承さ
れる。
【0118】モニタ型、ICE型、シュミレータ型間のハ
ードウェア環境の任意の切り換えは、以上の図21〜図
26に示した状態情報の受け渡しにより実現される。続
いて、説明を保留したターゲット相互接続層52の残り
の構成要素(ワークエリアコンテンツ解析モジュール7
5)について説明する。ワークエリアコンテンツ解析モ
ジュール75は、各ハードウェア環境が有するメモリの
領域を、ブレークポイントの設定が可能な領域と不可能
な領域とに分割してハードウェア環境毎に管理するブレ
ークポイント管理機能(1)と、各ハードウェア環境がト
レースデータの蓄積に用いることができるメモリサイズ
をハードウェア環境毎に管理するトレースデータ蓄積サ
イズ管理機能(2)と、各ハードウェア環境が割込発生条
件の成立/不成立を監視する能力を有するか否かをハー
ドウェア環境毎に管理する割込発生条件管理機能(3)
と、I/Oマッピング情報の管理機能(4)とを有する。
【0119】ワークエリアコンテンツ解析モジュール7
5が何故ブレークポイント管理機能(1)を有するかであ
るが、これはブレークポイントを割込命令の記入により
行う場合、ブレークポイント設定の可否がICE型、モニ
タ型、シュミレータ型間で異なることを想定しているか
らである。即ち切換元でRAMで構成されブレークポイン
トが設定されていたメモリ空間内の所定領域が、切換先
でROMで構成されている場合、そのブレークポイントを
切換先において設定することは不可能である。このよう
に切換元にて設定可能なブレークポイントが切換先では
不可能となる場合、これを予め操作者に通知しておかな
いと、ハードウェア環境を切り換えた途端にブレークポ
イントが無効になるという現象が発生する。このように
ハードウェア環境の切り換えに伴いブレークポイントが
無効になると、操作者はこれを故障と勘違いする恐れが
有り、不信感を抱かせかねない。そこでワークエリアコ
ンテンツ解析モジュール75にメモリ内のどの領域にブ
レークポイント設定が可能であり、どの領域はブレーク
ポイント設定が不可能であるかを管理させておくのであ
る。図28(a)はブレークポイント管理に用いる管理
情報の一例を示す図である。図中の『START_ADDR1 〜 E
ND_ADDR1』『START_ADDR2 〜 END_ADDR2』『START_ADDR
3 〜 END_ADDR3』は、それぞれがブレークポイント設定
の設定が可能な領域の開始アドレス、終了アドレスを示
している。図中の『VALID_AREA1』,『VALID_AREA2』,
『VALID_AREA3』は、ブレークポイントの設定可能領域
に付されたラベルを示している。
【0120】次にワークエリアコンテンツ解析モジュー
ル75が何故トレースデータ蓄積サイズ管理機能(2)を
有するかであるが、これはトレースデータの蓄積に割り
当ることができるメモリサイズがモニタ型、ICE型、シ
ュミレータ型間で異なることを想定しているからであ
る。即ち切換元がシミュレータであり、切換先がモニタ
である場合、切換元側で蓄積された全てのトレースデー
タをそのまま切換先に転送するのは不可能である。転送
途中で切換先のメモリがオーバーフローし、これまで蓄
積してきたトレースデータの一部が欠落してしまう。こ
のような欠落の可能性は予め操作者に通知しておかない
と、操作者はトレースデータが何の前触れもなく欠落す
るのを見て不信感を抱いてしまう。そこでワークエリア
コンテンツ解析モジュール75はトレースデータの蓄積
に割り当ることができるメモリサイズをハードウェア環
境毎に管理するのである。図28(b)は、トレースデ
ータを蓄積するためのメモリサイズを管理するための管
理情報の一例を示す図である。図中の『target1』『tar
get2』は、各ハードウェア環境の識別名であり、『SPAC
E_FOR_TRACE_DATA MAX 16Kbyte』は、各々のハードウ
ェア環境内においてトレースデータの蓄積に割り当てる
ことができるメモリサイズが16Kbyteであることを示し
ている。
【0121】次にワークエリアコンテンツ解析モジュー
ル75が何故割り込み発生条件管理機能(3)を有するか
であるが、これは割り込み発生条件が成立しているか、
不成立であるかの監視能力の有無がモニタ型、ICE型、
シュミレータ型間で異なることを想定しているからであ
る。例えば、割り込み発生条件が命令の実行時間であ
り、切換元及び切換先がシミュレータ、モニタであるも
のとする。この場合切換元側では命令実行のカウントを
ソフトウェアにより実現すれば良いから割り込み発生条
件の成立を監視することができる。これに対して切換先
側では命令実行のカウントは、特別のハードウェアの改
造を行わない限り実現することは不可能である。もしそ
のような改造がなされていない場合、切換先では割り込
み発生条件の成立を監視することは不可能となるので、
切換先では何時まで立っても割り込み発生条件が発生し
ないという現象が表れる。このように割り込み発生条件
が成立しない場合は前もって操作者に通知しておかない
と、操作者に不信感を抱せてしまう。そこでワークエリ
アコンテンツ解析モジュール75は割り込み発生条件の
監視能力の有無をハードウェア環境毎に管理するのであ
る。図28(c)は、ハードウェア環境毎の監視能力を
管理するための管理情報の一例を示す図である。図中の
『target1』『target2』は、各ハードウェア環境の識別
名であり、『CYCLE_NUMBER_COUNT VALID』は、対応す
る識別情報のハードウェア環境において、プロセッサの
サイクル数のカウントが可能である旨を示し、『CYCLE_
NUMBER_COUNT INVALID』は、対応する識別情報のハー
ドウェア環境において、プロセッサのサイクル数のカウ
ントが不可能である旨を示す。
【0122】次にワークエリアコンテンツ解析モジュー
ル75が何故I/Oマッピング情報の管理機能を有するか
であるが、これは周辺I/Oの実装状況がモニタ型、ICE
型、シュミレータ型間で異なることを想定しているから
である。即ち切換先がシミュレータであり、切換元がモ
ニタであるものとする。この場合、切換元では、ハード
ウェア調整等の進捗が遅れている等の理由により、周辺
I/Oが一部しか動作していないが、切換先側では実行環
境をソフトウェアにより仮想的に作成しているため全周
辺I/Oを動作させることができる。この状態のままI/Oの
状態情報を転送すると、切換先の周辺I/Oには、一部無
効な値が格納されてしまう。そこでワークエリアコンテ
ンツ解析モジュール75はハードウェア環境毎にどの周
辺I/Oが動作可能であり、どの周辺I/Oが動作不可能であ
るかを個別に管理するのである。
【0123】ワークエリアコンテンツ解析モジュール7
5により管理されるI/Oマッピング情報の一例を図29
に示す。I/Oマッピング情報とは、切換元ハードウェア
環境において周辺I/Oレジスタの値が存在しない場合
に、切換先のハードウェア環境にどのような値を設定す
れば良いかを示す情報である。図中の『I/O_REGISTER_A
DDR1』は、一個目の周辺I/Oレジスタを示し、『PSW=STA
TUS1 0x1F』は、切換先のハードウェア環境においてプ
ロセッサのPSWレジスタ値が『STATUS1』である場合に一
個目の周辺I/Oレジスタに『0x1F』を設定する旨を示し
ている。また『PSW=STATUS2 0x2A』は、切換先のハー
ドウェア環境においてプロセッサのPSWレジスタの値が
『STATUS2』である場合に一個目の周辺I/Oレジスタに
『0x2A』を設定する旨を示している。更に『PSW=STATUS
3 0x3B』は、切換先のハードウェア環境においてプロ
セッサのPSWレジスタの値が『STATUS3』である場合に一
個目の周辺I/Oレジスタに『0x3B』を設定する旨を示し
ている。
【0124】続いてselectTARGETコマンドの拡張型コマ
ンドについて説明する。図10は拡張型コマンドのうち
3つの代表的なものを示している。ここでいうselectTA
RGETコマンドの拡張とは、selectTARGETコマンドの発行
に所定の条件を与えたという意味であり、図10におけ
る3つのコマンドはselectTARGETコマンド発行の条件が
それぞれ異なる。
【0125】IFBreakコマンドは、現在デバッグに用い
られているハードウェア環境に被デバッグプログラムの
実行を指示し、もし当該実行がBreakNOで指定されたブ
レークポイントにより停止すれば、ターゲット相互接続
層52にハードウェア環境の切り換えを行うようSelect
TARGETを自動発行する。TargetASSIGNコマンドは、オペ
ランドでTABLE*にて指定した割り当てにてハードウェア
環境を切り換えるようターゲット相互接続層52に命じ
るコマンドである。図11は、TargetASSIGNコマンドに
より指定されるテーブルの一例であり、ハードウェア環
境切換の割り当てをターゲット相互接続層52に指示す
るようフォーマットが規定されている。本フォーマット
では、先頭アドレス、終了アドレスの一組毎に切り換え
を望むハードウェア環境を指定できるようになってい
る。図11では先頭アドレス、終了アドレスの組みを最
大n個の羅列することができ、それぞれの組み毎に異な
るハードウェア環境を切り換え先に規定できる。
【0126】Switch()コマンドは、ハードウェア環境t
arget0の変数varの値に応じてハードウェア環境を切り
換えることをターゲット相互接続層52に命じるコマン
ドである。case'*1'は、変数 varの値が*1である場
合を想定しており、このときはハードウェア環境target
1が起動される。case'*2'は、変数 varの値が*2で
ある場合を想定しており、このときはハードウェア環境
target2が起動される。
【0127】続いて、図10に示したselectTARGETコマ
ンドの3つの拡張コマンドが入力された場合のコマンド
インタプリタ72の処理を図31〜図33のフローチャ
ートを参照しながら説明する。ユーザインターフェィス
層50に対して操作者が『TargetASSIGN』コマンドを入
力したとする。この場合図30のステップS83がNoと
なり、図31のステップS71に移行する。ステップS
71においてコマンドインタプリタ72はオペコードが
TargetASSIGNであるかを判定する。この場合コマンドの
オペコードが合致するので、ステップS72においてTA
BLE*で指定されたテーブルを常駐させる。常駐後、ステ
ップS73においてテーブルにおける各開始アドレス
[i](i=1,2・・・n)にブレークポイントを設定する。設定
後、ステップS74において被デバッグプログラムを実
行させる。実行させると、ステップS75において被デ
バッグプログラムがブレークしたかを監視し、ブレーク
した場合はステップS76においてブレークしたアドレ
スが開始アドレス[i](i=1,2,3・・・n)のうち、何れに対応
するかを判定する。何れかに該当すると判定すると、ス
テップS77において開始アドレス[i]に対応するハー
ドウェア環境に切り換える旨のSelectTARGETを自動発行
する。
【0128】次にユーザインターフェィス層50に対し
て操作者が『IFBreak』コマンドを入力したとする。こ
の場合図30のステップS83がNoとなり、ステップS
71に移行するが、図31のステップS71においても
Noとなり、ステップS91に移行する。ステップS91
においてコマンドインタプリタ72は、入力されたコマ
ンドのオペコードがIFBreakであるかを判定する。この
場合Yesとなり、ステップS92に移行して、オペラン
ドで指定された『BreakNO』『SelectTARGET target』を
常駐させる。その後、ステップS93において被デバッ
グプログラムを実行させる。実行させると、ステップS
94において被デバッグプログラムがブレークしたかを
判定し、もしブレークしたなら、ステップS96におい
てブレークしたアドレスがブレークポイント[i](i=1,2,
3・・・n)のうち、何れのBreakNOに対応するかを判定す
る。対応するものを判定すると、ステップS97におい
てSelectTARGETを自動発行する。
【0129】ユーザインターフェィス層50に対して操
作者が『Switch(var)』コマンドを入力したとする。こ
の場合図30のステップS83がNoとなり、ステップS
71に移行するが、図31のステップS71においても
Noとなり、ステップS91に移行する。ステップS91
においてもNoとなりステップS100へと進行する。ス
テップS100ではオペコードがSwitch(var)であるか
が判定され、この場合はそうであるのでステップS10
1に移行する。ステップS101では、コマンドインタ
プリタ72は変数『var』をメモリアドレスmem_adr(va
r)に変換するようデバッグ核層51に指示し、変換後ス
テップS102において指定された『target0』のハー
ドウェア環境に変数adr(var)のメモリデータの読み出し
を指示する。指示後、ステップS103において読み出
しされたメモリデータがcasei(i=1,2,3,4,5・・・n)の何れ
かの内容と一致するかを判定し、一致する場合は、ステ
ップS104においてTARGET[i]に切り換える旨のSelec
tTARGETを自動発行する。
【0130】以上のように本実施形態によれば、select
TARGETコマンド入力という手軽な操作により、操作者は
デバッグ中のどのような状況においても、思い通りにハ
ードウェア環境を切り換えることができる。そのためバ
グが発生した状況を他のハードウェア環境で再現する手
間に煩わされることなく、別のハードウェア環境にてそ
のバグの発生原因を追究することができ、貴重な開発時
間を有効に活用することができる。
【0131】特にバグが発生したデバッグ装置が解析機
能に乏しいモニタである場合、そのバグ原因を追究をIC
Eやシミュレータ等解析機能が豊富な実行環境に切り換
えることができ、原因解明までの時間がより短縮され
る。上記実施形態に基づいて説明してきたが、現状にお
いて最善の効果が期待できるシステム例として提示した
に過ぎない。本発明は、その要旨を逸脱しない範囲で変
更実施することができる。ハードウェア環境の切り換え
を意図したであればどのようなシステムに適用できるこ
とはいうまでもない。以下(a)(b)(c)・・・・に示
すような変更実施が可能である。
【0132】(a)本実施形態では、スーパーバイザプ
ログラムをメモリに配したが、デバッグ核層51内に存
在させる構成にしても良い。またターゲット相互接続層
52は、デバッグ核層51内に存在する構成にしても良
い。 (b)以上の説明では、ICE型ハードウェア環境がブレ
ークポイント、トレース設定、割り込み設定を有してい
る場合について記述したが、切換先がブレークポイン
ト、トレース設定、割り込み設定のうち何れかの機能が
利用できない場合、利用できる機能の設定情報のみを切
換先に設定するようにしてもよい。
【0133】(c)以上の説明では、ターゲット内ワー
クエリア38の内容を全て切換先へと転送しているが、
前回の転送分からの変更分のみを転送することにより転
送負荷を軽減しても良い。この場合スタック領域と、外
部変数領域の内容のバックアップをデバッグ核層51或
はターゲット相互接続層52に記憶させておく。そして
もしselectTARGETコマンド入力によりハードウェア環境
切り換えが指示されれば、そのバックアップしておいた
記憶内容と、これから転送すべき記憶内容とを比較して
変更された部分を検出し、変更があった部分のみを転送
するのである。この場合、変更されたメモリ領域を記憶
しておけば良いが、変更されたメモリ領域を含む領域を
保存するようにしてもよい。
【0134】(d)(c)において変更されたメモリ領
域をハードウェア環境の切替時に一括して転送する応用
例を示したが、ハードウェア環境がメモリ内容を変更す
る毎に、変更された内容を別のハードウェア環境に転送
してもよい。この場合、一方のハードウェア環境を他の
ハードウェア環境に切替る際にメモリ内容の転送が発生
しないので、ハードウェア環境の切り換えがより高速に
なる。
【0135】(e)さらに、以上の説明では、変更され
たメモリ領域を記憶し、記憶されたメモリ領域を切換先
に転送しているが、さらに変更されたレジスタの値を記
憶するようにし、記憶されたレジスタの値を切換元から
切換先に転送するようにしてもよい。この場合、変更さ
れたレジスタの値のみを転送するので、全てのレジスタ
を転送する場合と比較してハードウェア環境切り換えが
より高速となる。
【0136】(f)被デバッグプログラムのブレーク時
にハードウェア環境を切り換えるコマンドを示したが、
ハードウェア環境がエリアブレークを使用できる時に
は、エリアブレークによるハードウェア環境の切替を実
現してもよい。ここで、エリアブレークとは、あるアド
レス領域にハードウェア環境がアクセスした時、実行中
のプログラムを停止させる機能をさす。この場合、現在
のプログラムの命令読み出し先がどの先頭アドレスと最
終アドレスの範囲内にあるかを調べ、その範囲内に対応
したプログラムを実行する。
【0137】(g)本実施形態では、変数の値に応じて
ハードウェア環境を切り換えるというコマンドを示した
が、パラメータの値に応じてハードウェア環境を切り換
えるというコマンドを設けてハードウェア環境の切り換
えを実現してもよい。 (h)ハードウェア環境の切換指示と、割込信号発生を
監視する旨の指示と、切換先に規定すべきハードウェア
環境の指示とをコマンド内に配置し、これらの指示をコ
マンドインタプリタ72が解読して、解読結果に基づい
てハードウェア環境の切り換えを行わせてもよい。本デ
バッグ装置がこのような構成のコマンドよりハードウェ
ア環境の切り換えを行うことにより、操作者は特定の割
込信号発生時の被デバッグプログラムの動作を他のハー
ドウェア環境において観測することができる。
【0138】(i)ハードウェア環境の切換指示と、ハ
ードウェア環境内の所定メモリ或はレジスタの内容の書
き換えを監視する旨の指示と、切換先に指定すべき第2
のハードウェア環境の指示とをコマンド内に配し、これ
らの指示をコマンドインタプリタ72が解読して、解読
結果に基づいてハードウェア環境の切り換えを行わせて
もよい。本デバッグ装置がこのような構成のコマンドよ
りハードウェア環境の切り換えを行うことにより、操作
者は特定メモリ或はレジスタの書き換え時の被デバッグ
プログラムの動作を他のハードウェア環境において観測
することができる。
【0139】(j)ハードウェア環境の切換指示と、操
作者が複数のハードウェア環境にどの実行予定時刻を対
応付けたかを示す対応表とをコマンド内に配し、これら
の指示をコマンドインタプリタ72が解読して、解読結
果に基づいてハードウェア環境の切り換えを行わせても
よい。 (k)デバッグ情報を、メモリ24及びメモリ模擬ルー
チン96上に配置する構成を示したが、これらをデバッ
グ核層51〜ターゲット相互接続層52上に配置しても
よい。このように配置した場合、ターゲット依存層53
内のモニタ制御層61、ICE制御層62、シミュレータ
からデバッグ情報を読み出す処理は実質不用となり、コ
マンド変換ルーチン73による関数呼出コードTCI_get_
mem、TCI_get_reg、TCI_get_BPの発行は行わなくてもよ
い。
【0140】
【発明の効果】以上説明したようにデバッグ装置は、所
定のターゲットマシン向けに開発された組み込みプログ
ラムを当該ターゲットマシン、当該ターゲットマシンの
エミュレータマシン、当該ターゲットマシンのソフトウ
ェアシミュレータのうち、何れかにおいてテスト動作さ
せ、これの動作検証を行うデバッグ装置であって、前記
ターゲットマシン、エミュレータマシン、ソフトウェア
シミュレータは、組み込みプログラムの動作状態を示す
動作状態情報を有し、動作状態情報の入出力を固有の様
式にて行い、ターゲットマシン、当該ターゲットマシン
のエミュレータマシン、当該ターゲットマシンのソフト
ウェアシミュレータのうち何れかを動作検証対象として
記憶する動作検証対象記憶手段と、操作者によるコマン
ド入力を受け付ける受付手段と、受付手段が受け付けた
コマンド内に所定指示が含まれていればこれを検出する
検出手段と、所定指示が検出されると、動作検証対象記
憶手段に記憶されている動作検証対象を切換元動作検証
対象に指定し、受付手段が受け付けたコマンドに基づい
て前記ターゲットマシン、当該ターゲットマシンのエミ
ュレータマシン、当該ターゲットマシンのソフトウェア
シミュレータのうち切換元動作検証対象と異なるものを
切換先動作検証対象に指定する指定手段と、切換元及び
切換先が指定されると、切換元動作検証対象から動作状
態情報を読み出す読出手段と、読み出された動作状態情
報を、切換先動作検証対象の様式に変換する変換手段
と、動作状態情報が切換先の様式に変換されれば、様式
が変換された動作状態情報を切換先動作検証対象に設定
する設定手段と、動作状態情報が設定されると、組み込
みプログラムの動作を切換先動作検証対象において再開
するよう制御する動作再開手段とを備えるので、プログ
ラム開発者の指定によりハードウェア環境を切り換えな
がら、被デバッグプログラムのデバッグを行うことがで
きるので、各々のハードウェア環境の欠点を他のハード
ウェア環境の優位点が補う形でプログラムを実行するこ
とができ、効率のよいプログラムのデバッグを行なうこ
とができる。
【0141】例えばあるハードウェア環境がシミュレー
タにより構成されるものであり、解析機能を豊富に持ち
ながらも試作機のハードウェア環境を利用しているハー
ドウェア環境と比較して膨大な実行時間を要する場合
は、途中までの被デバッグプログラムの実行を試作機の
ハードウェア環境に行わせ、肝心のバグ原因解析をシミ
ュレータの豊富な機能を用いて行わせることができる。
【0142】数十回、数百回の被デバッグプログラム実
行につき一回発生するという発生頻度が非常に低いバグ
の原因追究時に、シミュレータの解析機能を用いたい場
合、本来ならシミュレータにより被デバッグプログラム
の実行を数十回、数百回繰り返させる必要がある。しか
し上記のようなハードウェア環境の切り換えを利用すれ
ば、試作機のハードウェア環境に数十回、数百回の被デ
バッグプログラムの繰り返しを行わせ、シミュレータを
バグ原因の追究のみに用いることができる。このように
ハードウェア環境の切り換えを応用すれば、数十回、数
百回の被デバッグプログラムの実行が早く行え、尚且つ
豊富な解析機能が利用できるのでデバッグ作業に要する
時間が大きく短縮される。
【0143】更にこの切り換えは、コマンド発行という
手軽な操作であるので、操作者はデバッグ中のどのよう
な状況においても、思い通りに行える。そのためバグが
発生した状況を他のデバッグ装置で再現する手間に煩わ
されることなく、別の実行環境にてそのバグの発生原因
を追究することができ、貴重な開発時間を有効に活用す
ることができる。
【0144】またその切り換えは、バグ発生当時の保持
値を他のハードウェア環境に設定し、マイクロコンピュ
ータやマイクロプロセッサのプログラムを最初から実行
し直すという煩わしさを伴わずに行われるので、貴重な
開発時間を有効に活用できる。また、前記ターゲットマ
シンは、動作状態情報の入出力を第1の様式にて行い、
前記エミュレータマシンは、動作状態情報の入出力を第
2の様式にて行い、前記ソフトウェアシミュレータは、
動作状態情報の入出力を第3の様式にて行い、前記変換
手段は、切換元がターゲットマシンであり切換先がソフ
トウェアシミュレータであれば、第1の様式を有する動
作状態情報を第3の様式に変換する第1変換部と、切換
元がエミュレータマシンであり切換先がソフトウェアシ
ミュレータであれば、第2の様式を有する動作状態情報
を第3の様式に変換する第2変換部とを備え、前記設定
手段は、動作状態情報が第3の様式に変換されれば、動
作状態情報をソフトウェアシミュレータに設定する第1
設定部を備えるように構成してもよい。この構成では、
たとえ動作状態情報の入出力が3つの様式を用いて行わ
れていても、ターゲットマシン、エミュレータマシンは
動作状態情報を相互にやりとりすることができる。
【0145】また、上記のように構成されたデバッグ装
置における前記変換手段は、切換元がソフトウェアシミ
ュレータであり切換先がターゲットマシンであれば、第
3の様式を有する動作状態情報を第1の様式に変換する
第3変換部と、切換元がソフトウェアシミュレータであ
り切換先がエミュレータマシンであれば、第3の様式を
有する動作状態情報を第2の様式に変換する第4変換部
とを備え、前記設定手段は、動作状態情報が第1の様式
に変換されれば、動作状態情報をターゲットマシンに設
定する第2設定部と、動作状態情報が第2の様式に変換
されれば、動作状態情報をエミュレータマシンに設定す
る第3設定部とを備えるように構成してもよい。この構
成では、たとえ動作状態情報の入出力が3つの様式を用
いて行われていても、ターゲットマシン、エミュレータ
マシンは動作状態情報を相互にやりとりすることができ
る。
【0146】また前記変換手段は、切換元がターゲット
マシンであり切換先がエミュレータマシンであれば、第
1変換部を制御して、第1の様式を有する動作状態情報
を第3の様式に変換させ、変換後、第4変換部を制御し
て、第3の様式を有する動作状態情報を第2の様式に変
換させる第1制御部と、切換元がエミュレータマシンで
あり切換先がターゲットマシンであれば、第2変換部を
制御して、第2の様式を有する動作状態情報を第3の様
式に変換させ、変換後、第3変換部を制御して、第3の
様式を有する動作状態情報を第1の様式に変換させる第
2制御部とを備えるように構成してもよい。この構成で
は、たとえ動作状態情報の入出力が3つの様式を用いて
行われていても、ターゲットマシン、エミュレータマシ
ンは動作状態情報を相互にやりとりすることができる。
【0147】また前記エミュレータ内部のプロセッサと
第1回線により接続され、第1の様式に変換された動作
状態情報の入出力を行うシリアル転送ポートと、ターゲ
ットマシン内部のインサーキットエミュレータマシンと
第2回線により接続され、第2の様式に変換された動作
状態情報の入出力を行うエミュレータマシンドライバ部
とを備えるように構成してもよい。
【0148】またターゲットマシン、エミュレータマシ
ン、ソフトウェアシミュレータが有するレジスタ及びメ
モリを、有効値が格納されているものと、無効値が格納
されているものとに分類して管理する記憶資源管理手段
と、読出手段により切換元動作検証対象から動作状態情
報が読み出されると、記憶資源管理手段の管理内容を参
照して、読み出された動作状態情報に含まれている無効
値をデフォルト値に書き換える書換手段とを備え、前記
変換手段は、無効値がデフォルト値に書き換えられた動
作状態情報を、切換先動作検証対象の様式に変換するよ
うに構成してもよい。この構成によれば、プログラム開
発者がハードウェア環境を切替る際、動作状態情報に含
まれていた無効な値をデフォルト値に書き換えるので、
スムーズなプログラムのデバッグを行うことができる。
【0149】加えて、切換先、切換元においてレジスタ
の実装状態が異なっていても、その差違している部分に
予め定めた値を設定することができる。故に周辺機器レ
ジスタの制御を含む被デバッグプログラムのデバッグも
行うことが可能になる。またターゲットマシン、エミュ
レータマシン、ソフトウェアシミュレータが有するメモ
リにおいて、ブレークポイントの設定が可能な領域と、
不可能な領域とに分割して管理する設定可否領域管理手
段と、動作状態情報が変換されると、設定可否領域管理
手段を参照して、ブレークポイントが切換先動作検証対
象においても同様に設定することができるか否かを判定
する判定手段と、切換先動作検証対象においてブレーク
ポイントが設定できない場合、切換先ではブレークポイ
ントが設定できない旨を操作者に通知する通知手段とを
上記構成に付加してもよい。
【0150】この構成によれば、これまで切換元側で使
用しつ続けていたブレークポイントのうち一部が切換先
において使用不可能となる場合、切替後は該ブレークポ
イントが使えないことをプログラム開発者に察知させる
ことができる。ここで各動作検証対象が蓄積できるアド
レスの最大量を管理する最大量管理手段と、動作状態情
報が変換されると、最大量管理手段におけるアドレスの
最大量を参照して切換先動作検証対象における命令アド
レス群の蓄積量を認識する認識手段と、蓄積量を認識す
ると、切換先動作検証対象のアドレス蓄積量と、切換先
動作検証対象とのアドレス蓄積量の違いを操作者に通知
する通知手段とを上記構成に付加してもよい。
【0151】この構成によれば、これまで切換元側で蓄
積され続けていたトレースデータのうち一部が切換先に
おいて欠落する場合、その欠落部に注意する旨をプログ
ラム開発者に察知させることができる。
【図面の簡単な説明】
【図1】本実施形態におけるデバッグ装置の外観図であ
る。
【図2】本実施形態におけるデバッグ装置のハードウェ
ア構成を示す構成図である。
【図3】モニタ型ハードウェア環境の構成を示す図であ
る。
【図4】ICE型ハードウェア環境の構成を示す図であ
る。
【図5】シュミレータ型ハードウェア環境の構成を示す
図である。
【図6】デバッグ装置の階層構造を示す図である。
【図7】アプリケ−ション層11内部の階層構造を示す
図である。
【図8】アプリケ−ション層11内部の各階層に含まれ
ている構成要素を示す図である。
【図9】本実施形態のデバッグ装置において用いること
ができるデバッグコマンドの体系図である。
【図10】本実施形態のデバッグ装置において用いるこ
とができるselectTARGETコマンドの拡張コマンドを示す
図である。
【図11】ハードウェア環境切り換えを規定するテーブ
ルのフォーマットを示す図である。
【図12】ユーザインターフェィス層50によるデバッ
グ作業時のディスプレイ2の表示例である。
【図13】変換前のcopyMEMコマンド〜copyTRACE_DATA
コマンドと、変換後の関数呼出コードTCI_get_mem(adr,
length,unit,image)〜TCI_get_TD(adr,length,unit,ima
ge)の対応関係を示す図である。
【図14】図13に示した全ての関数呼出コードがどの
ように書き換えられたかを示す図である。
【図15】ターゲット内ワークエリア38の内容を読み
出す際、モニタ制御層61と試作機30との間でなされ
る通信プロトコル及び当該通信プロトコルに用いられる
パケットを示す説明図である。
【図16】ターゲット内ワークエリア38に内容を書き
込む際、モニタ制御層61と試作機30との間でなされ
る通信プロトコル及び当該通信プロトコルに用いられる
パケットを示す説明図である。
【図17】ターゲット内ワークエリア38の内容を読み
出す際、モニタ制御層61が行う処理のフローチャート
である。
【図18】ターゲット内ワークエリア38に内容を書き
込む際、モニタ制御層61が行う処理のフローチャート
である。
【図19】ICE型ハードウェア環境の内容を読み出す
際、ICE制御層62及びICE用デバイスドライバが行う処
理の説明図である。
【図20】ICE型ハードウェア環境に内容を書き込む
際、ICE制御層62及びICE用デバイスドライバが行う処
理の説明図である。
【図21】モニタ型からシュミレータ型へと状態情報が
転送される様子を示す説明図である。
【図22】モニタ型からICE型へと状態情報が転送され
る様子を示す説明図である。
【図23】ICE型からモニタ型へと状態情報が転送され
る様子を示す説明図である。
【図24】ICE型からシュミレータ型へと状態情報が転
送される様子を示す説明図である。
【図25】シュミレータ型からモニタ型へと状態情報が
転送される様子を示す説明図である。
【図26】シュミレータ型からICE型へと状態情報が転
送される様子を示す説明図である。
【図27】(a)ブレークポイント設定先アドレスの一
例を示す図である。 (b)割り込み信号発生要件の一例を示す図である。 (c)トレースデータの一例を示す図である。
【図28】(a)ブレークポイント管理機能(1)のため
の管理情報の一例を示す図である。 (b)トレースデータ蓄積サイズ管理機能(2)のための
管理情報の一例を示す図である。 (c)割り込み発生条件管理機能(3)のための管理情報
の一例を示す図である。
【図29】I/Oマッピング情報の管理機能(4)のための管
理情報の一例を示す図である。
【図30】本実施形態のselectTARGETコマンド実行時の
デバッグ装置の処理内容を示すフローチャートである。
【図31】本実施形態のTargetASSIGNコマンド実行時の
デバッグ装置の処理内容を示すフローチャートである。
【図32】本実施形態のIFBreakコマンド実行時のデバ
ッグ装置の処理内容を示すフローチャートである。
【図33】本実施形態のSwitch(var)実行時のデバッグ
装置の処理内容を示すフローチャートである。
【符号の説明】
1 ホストコンピュ−タ 2 ディスプレイ 3 キーボード 10 シュミレータ 11 アプリケ−ション層 12 オペレーティングシステム層 13 BIOS層 14 物理層 20 評価ボード 21 デバイスドライバ 22 制御ボード 24 メモリ 25 レジスタ群 26 スーパバイザプログラム 27 デバッグ情報エリア 28 パラレル回線 30 試作機 31 シリアル転送ポート 33 プロセッサ 34 メモリ 35 周辺I/Oレジスタ群 36 モニタリングプログラム 37 被デバッグプログラム 38 ターゲット内ワークエリア 39 専用端子 40 シリアル回線 50 ユーザインターフェィス層 51 デバッグ核層 52 ターゲット相互接続層 53 ターゲット依存層 61 モニタ制御層 62 ICE制御層 72 コマンドインタプリタ 73 コマンド変換ルーチン 74 様式変換ルーチン 75 ワークエリアコンテンツ解析モジュール 77 共用ワークエリア 95 プロセッサ模擬ルーチン 96 メモリ模擬ルーチン 97 レジスタ模擬ルーチン

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 所定のターゲットマシン向けに開発され
    た組み込みプログラムを当該ターゲットマシン、当該タ
    ーゲットマシンのエミュレータマシン、当該ターゲット
    マシンのソフトウェアシミュレータのうち、何れかにお
    いてテスト動作させ、これの動作検証を行うデバッグ装
    置であって、 前記ターゲットマシン、エミュレータマシン、ソフトウ
    ェアシミュレータは、組み込みプログラムの動作状態を
    示す動作状態情報を有し、動作状態情報の入出力を固有
    の様式にて行い、 ターゲットマシン、当該ターゲットマシンのエミュレー
    タマシン、当該ターゲットマシンのソフトウェアシミュ
    レータのうち何れかを動作検証対象として記憶する動作
    検証対象記憶手段と、 操作者によるコマンド入力を受け付ける受付手段と、 受付手段が受け付けたコマンド内に所定指示が含まれて
    いればこれを検出する検出手段と、 所定指示が検出されると、動作検証対象記憶手段に記憶
    されている動作検証対象を切換元動作検証対象に指定
    し、受付手段が受け付けたコマンドに基づいて前記ター
    ゲットマシン、当該ターゲットマシンのエミュレータマ
    シン、当該ターゲットマシンのソフトウェアシミュレー
    タのうち切換元動作検証対象と異なるものを切換先動作
    検証対象に指定する指定手段と、 切換元及び切換先が指定されると、切換元動作検証対象
    から動作状態情報を読み出す読出手段と、 読み出された動作状態情報を、切換先動作検証対象の様
    式に変換する変換手段と、 動作状態情報が切換先の様式に変換されれば、様式が変
    換された動作状態情報を切換先動作検証対象に設定する
    設定手段と、 動作状態情報が設定されると、組み込みプログラムの動
    作を切換先動作検証対象において再開するよう制御する
    動作再開手段とを備えることを特徴とするデバッグ装
    置。
  2. 【請求項2】 前記ターゲットマシンは、動作状態情報
    の入出力を第1の様式にて行い、前記エミュレータマシ
    ンは、動作状態情報の入出力を第2の様式にて行い、前
    記ソフトウェアシミュレータは、動作状態情報の入出力
    を第3の様式にて行い、 前記変換手段は、 切換元がターゲットマシンであり切換先がソフトウェア
    シミュレータであれば、第1の様式を有する動作状態情
    報を第3の様式に変換する第1変換部と、 切換元がエミュレータマシンであり切換先がソフトウェ
    アシミュレータであれば、第2の様式を有する動作状態
    情報を第3の様式に変換する第2変換部とを備え、 前記設定手段は、 動作状態情報が第3の様式に変換されれば、動作状態情
    報をソフトウェアシミュレータに設定する第1設定部を
    備えることを特徴とする請求項1記載のデバッグ装置。
  3. 【請求項3】 前記デバッグ装置において前記変換手段
    は、 切換元がソフトウェアシミュレータであり切換先がター
    ゲットマシンであれば、第3の様式を有する動作状態情
    報を第1の様式に変換する第3変換部と、 切換元がソフトウェアシミュレータであり切換先がエミ
    ュレータマシンであれば、第3の様式を有する動作状態
    情報を第2の様式に変換する第4変換部とを備え、 前記設定手段は、 動作状態情報が第1の様式に変換されれば、動作状態情
    報をターゲットマシンに設定する第2設定部と、 動作状態情報が第2の様式に変換されれば、動作状態情
    報をエミュレータマシンに設定する第3設定部とを備え
    ることを特徴とする請求項2記載のデバッグ装置。
  4. 【請求項4】 前記デバッグ装置において前記変換手段
    は、 切換元がターゲットマシンであり切換先がエミュレータ
    マシンであれば、第1変換部を制御して、第1の様式を
    有する動作状態情報を第3の様式に変換させ、 変換後、第4変換部を制御して、第3の様式を有する動
    作状態情報を第2の様式に変換させる第1制御部と、 切換元がエミュレータマシンであり切換先がターゲット
    マシンであれば、第2変換部を制御して、第2の様式を
    有する動作状態情報を第3の様式に変換させ、変換後、
    第3変換部を制御して、第3の様式を有する動作状態情
    報を第1の様式に変換させる第2制御部とを備えること
    を特徴とする請求項3記載のデバッグ装置。
  5. 【請求項5】 前記デバッグ装置は、 エミュレータ内部のプロセッサと第1回線により接続さ
    れ、第1の様式に変換された動作状態情報の入出力を行
    うシリアル転送ポートと、 ターゲットマシン内部のインサーキットエミュレータマ
    シンと第2回線により接続され、第2の様式に変換され
    た動作状態情報の入出力を行うエミュレータマシンドラ
    イバ部とを備えることを特徴とする請求項4記載のデバ
    ッグ装置。
  6. 【請求項6】 前記動作状態情報は、動作検証対象内の
    レジスタの保持値と、メモリの保持値とからなることを
    特徴とする請求項5記載のデバッグ装置。
  7. 【請求項7】 前記メモリの保持値は、 プロセッサに動作停止を指示するブレークポイント、 組み込みプログラムを構成する命令のうち、実行された
    命令のアドレスからなるトレースデータ、 操作者が定めた所定条件を有し、当該成立時に割り込み
    信号を発生させる割込設定情報の何れかであることを特
    徴とする請求項6記載のデバッグ装置。
  8. 【請求項8】 前記デバッグ装置は更に、 ターゲットマシン、エミュレータマシン、ソフトウェア
    シミュレータが有するレジスタ及びメモリを、有効値が
    格納されているものと、無効値が格納されているものと
    に分類して管理する記憶資源管理手段と、 読出手段により切換元動作検証対象から動作状態情報が
    読み出されると、記憶資源管理手段の管理内容を参照し
    て、読み出された動作状態情報に含まれている無効値を
    デフォルト値に書き換える書換手段とを備え、 前記変換手段は、 無効値がデフォルト値に書き換えられた動作状態情報
    を、切換先動作検証対象の様式に変換することを特徴と
    する請求項7記載のデバッグ装置。
  9. 【請求項9】 前記デバッグ装置は更に、 ターゲットマシン、エミュレータマシン、ソフトウェア
    シミュレータが有するメモリにおいて、ブレークポイン
    トの設定が可能な領域と、不可能な領域とに分割して管
    理する設定可否領域管理手段と、 動作状態情報が変換されると、設定可否領域管理手段を
    参照して、ブレークポイントが切換先動作検証対象にお
    いても同様に設定することができるか否かを判定する判
    定手段と、 切換先動作検証対象においてブレークポイントが設定で
    きない場合、切換先ではブレークポイントが設定できな
    い旨を操作者に通知する通知手段とを備えることを特徴
    とする請求項7記載のデバッグ装置。
  10. 【請求項10】 前記デバッグ装置は更に、 各動作検証対象が蓄積できるアドレスの最大量を管理す
    る最大量管理手段と、 動作状態情報が変換されると、最大量管理手段における
    アドレスの最大量を参照して切換先動作検証対象におけ
    る命令アドレス群の蓄積量を認識する認識手段と、 蓄積量を認識すると、切換先動作検証対象のアドレス蓄
    積量と、切換先動作検証対象とのアドレス蓄積量の違い
    を操作者に通知する通知手段とを備えることを特徴とす
    る請求項7記載のデバッグ装置。
  11. 【請求項11】 前記デバッグ装置は更に、 各動作検証対象が割り込み発生条件の成立、不成立を監
    視する能力を有するか否かを動作検証対象毎に管理する
    監視能力管理手段と、 動作状態情報が切換先の様式に変換されると、切換先動
    作検証対象が当該条件の成立を監視する能力を有するか
    否かを判定する判定手段と、 能力を有さない場合、切換先動作検証対象には、成立、
    不成立を監視する能力がない旨を操作者に通知する通知
    手段とを備えることを特徴とする請求項7記載のデバッ
    グ装置。
  12. 【請求項12】 前記デバッグ装置は更に、 受付手段が受け付けたコマンド内に所定指示が含まれて
    いない場合、同コマンドに割込信号発生を監視する旨の
    指示が含まれていればこれを解読する第1解読手段と、 同コマンドに発生した割込信号の信号番号と、当該番号
    に応じた切換先が含まれていればこれを解読する第2解
    読手段と、 監視する旨の指示が解読されると、現在動作中の切換元
    の動作検証対象における割込信号発生を監視する監視手
    段と、 監視中割込信号が発生すると、その割込信号が解読され
    た信号番号に合致するかを判定する判定手段とを備え、 前記読出手段は、 信号番号と合致すると、切換元動作検証対象から動作状
    態情報を読み出すことを特徴とする請求項7記載のデバ
    ッグ装置。
  13. 【請求項13】 前記デバッグ装置は更に、 受付手段が受け付けたコマンドに所定指示が含まれてい
    ない場合、同コマンド内に所定メモリ或はレジスタの内
    容書き換えを監視する旨の指示が含まれていればこれを
    解読する第1解読手段と、 同コマンドに、内容書き換えが発生した場合に切り換え
    るべき切換先の指示が含まれていればこれを解読する第
    2解読手段と、 書き換えを監視する旨の指示が含まれていると、動作状
    態情報内の所定メモリ或はレジスタの内容の書き換えを
    監視する監視手段とを備え、 前記読出手段は、 切換先動作検証対象が規定されれば、動作状態情報を読
    み出し、 前記変換手段は、 読み出された動作状態情報を、コマンドに含まれていた
    切換先動作検証対象の様式に変換することを特徴とする
    請求項7記載のデバッグ装置。
  14. 【請求項14】 前記デバッグ装置は更に、 受付手段が受け付けたコマンドに所定指示が含まれてい
    ない場合、動作検証対象の切換指示が含まれていればこ
    れを解読する第1解読手段と、 操作者が組み込みプログラム内の複数の領域にどの動作
    検証対象を割り当てるべきかを示す割当表が同コマンド
    に含まれていれば、これを解読する第2解読手段と、 切換元動作検証対象における領域間の移動タイミングを
    検出する旨の指示が同コマンドに含まれていればこれを
    解読する第3解読手段と、 監視させる旨の指示が解読されると、切換元動作検証対
    象内の組み込みプログラムにおける複数領域間の移動を
    監視する監視手段とを備え、 前記指定手段は、 移動の監視中、複数領域間の移動が確認されると、領域
    に対応づけられた動作検証対象を切換先動作検証対象に
    規定する切換先規定部とを備え、 前記読出手段は、 切換先動作検証対象が規定されれば、切換元動作検証対
    象から動作状態情報を読み出すことを特徴とする請求項
    7記載のデバッグ装置。
  15. 【請求項15】 前記デバッグ装置は更に、 受付手段が受け付けたコマンド内に所定指示が含まれて
    いない場合に動作検証対象の切換指示が含まれていれば
    これを解読する第1解読手段と、 前記組み込みプログラム中で使用される変数がとり得る
    複数の値域に操作者がどの動作検証対象を割り当てたか
    を示す割当表が同コマンドに含まれていればこれを解読
    する第2解読手段と、 組み込みプログラムにおける所定変数の値の変化を参照
    する旨の指示が同コマンドに含まれていればこれを解読
    する第3解読手段と、 変化を参照する旨が解読されると、変数に対応するレジ
    スタ或はメモリの保持値が区分された複数値域のうち、
    何れに該当するかを判定する判定手段とを備え、 前記指定手段は、 判定された領域に対応づけられた動作検証対象を切換先
    動作検証対象に規定する切換先規定部を備え、 前記読出手段は、 切換先動作検証対象が規定されれば、切換元動作検証対
    象から動作状態情報を読み出すことを特徴とする請求項
    7記載のデバッグ装置。
  16. 【請求項16】 前記デバッグ装置は、 受付手段が受け付けたコマンド内に所定指示が含まれて
    いない場合、前記組み込みプログラム中で使用されるパ
    ラメータがとり得る複数の値域に操作者がどの動作検証
    対象を割り当てたかを示す割当表が同コマンドに含まれ
    ていればこれを解読する第1解読手段と、 組み込みプログラムにおける所定パラメータの値を参照
    する旨の指示が同コマンド内に含まれていればこれを解
    読する第2解読手段と、 現在のパラメータの値の変化が検出されると、変化後の
    値が区分された複数領域のうち、何れに該当するかを判
    定する判定手段とを備え、 前記指定手段は、 判定された値域に対応づけられた動作検証対象を切換先
    動作検証対象に規定する切換先規定部を備え、 前記読出手段は、 切換先動作検証対象が規定されれば、切換元動作検証対
    象から動作状態情報を読み出すことを特徴とする請求項
    7記載のデバッグ装置。
  17. 【請求項17】 前記デバッグ装置は、 受付手段が受け付けたコマンド内に所定指示が含まれて
    いない場合、操作者が複数の動作検証対象にどの実行予
    定時刻を対応付けたかを示す対応表が同コマンド内に含
    まれていればこれを解読する第1解読手段と、 現在時刻を計時する計時手段とを備え、 前記指定手段は、 計時されている現在時刻が実行予定時刻に到達すると、
    その動作検証対象を切り替え先に規定する切換先規定部
    を備え、 前記読出手段は、 切換先動作検証対象が規定されれば、切換元動作検証対
    象から動作状態情報を読み出すことを特徴とする請求項
    7記載のデバッグ装置。
JP9163127A 1996-06-19 1997-06-19 複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置 Pending JPH10326203A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9163127A JPH10326203A (ja) 1996-06-19 1997-06-19 複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP15784196 1996-06-19
JP8-157841 1997-03-28
JP9-78420 1997-03-28
JP7842097 1997-03-28
JP9163127A JPH10326203A (ja) 1996-06-19 1997-06-19 複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置

Publications (1)

Publication Number Publication Date
JPH10326203A true JPH10326203A (ja) 1998-12-08

Family

ID=27302708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9163127A Pending JPH10326203A (ja) 1996-06-19 1997-06-19 複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置

Country Status (1)

Country Link
JP (1) JPH10326203A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007510992A (ja) * 2003-11-10 2007-04-26 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 制御システムをシミュレーションおよび検証するためのシミュレーションシステムおよびコンピュータにより実施される方法
EP1850232A3 (en) * 2006-04-27 2010-03-24 Panasonic Corporation Simulator
JP2010140240A (ja) * 2008-12-11 2010-06-24 Renesas Electronics Corp プロセッサ、マルチプロセッサ、及び、デバッグ方法
JP2019054869A (ja) * 2017-09-19 2019-04-11 株式会社大一商会 遊技機
JP2019054868A (ja) * 2017-09-19 2019-04-11 株式会社大一商会 遊技機
JP2022056500A (ja) * 2020-09-30 2022-04-11 株式会社日立ソリューションズ シミュレーション方法およびシミュレーションプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007510992A (ja) * 2003-11-10 2007-04-26 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 制御システムをシミュレーションおよび検証するためのシミュレーションシステムおよびコンピュータにより実施される方法
EP1850232A3 (en) * 2006-04-27 2010-03-24 Panasonic Corporation Simulator
JP2010140240A (ja) * 2008-12-11 2010-06-24 Renesas Electronics Corp プロセッサ、マルチプロセッサ、及び、デバッグ方法
JP2019054869A (ja) * 2017-09-19 2019-04-11 株式会社大一商会 遊技機
JP2019054868A (ja) * 2017-09-19 2019-04-11 株式会社大一商会 遊技機
JP2022056500A (ja) * 2020-09-30 2022-04-11 株式会社日立ソリューションズ シミュレーション方法およびシミュレーションプログラム

Similar Documents

Publication Publication Date Title
EP0814404B1 (en) Debugging apparatus for debugging a program
CN117422026B (zh) 一种基于risc-v架构的处理器验证系统
CN110046479B (zh) 一种基于安卓操作系统的链接库文件反调试方法及装置
CN100555218C (zh) 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
US8566644B1 (en) System and method for debugging a target computer using SMBus
CN104050080B (zh) 用户态调试linux内核的方法及系统
CN114064458B (zh) 接口可扩展的通用性的jtag调试方法及系统
WO2013007068A1 (zh) 一种面向硬件设备功能的自动测试系统及方法
US7363544B2 (en) Program debug method and apparatus
TWI900793B (zh) 儲存系統、儲存設備以及儲存設備的操作方法
CN118467340A (zh) Uefi bios的即时调试方法、系统、存储介质及设备
CN113282439A (zh) eMMC测试方法、装置、可读存储介质及电子设备
CN110347639B (zh) 片上系统及其操作方法
WO2011109971A1 (zh) 微控制器在线调试电路及方法、微控制器
Gatliff Embedding with gnu: the gdb remote serial protocol
CN113311931B (zh) 一种方便iap的双复位向量8位mcu架构及其方法
EP0942371B1 (en) Debugging method for a microcomputer
CN100403275C (zh) 应用于固件程序除错的微处理器与方法
CN118427094A (zh) 嵌入式系统模糊测试方法、系统、设备及存储介质
CN112052132B (zh) 通过sdio接口调试外挂芯片的方法、装置、设备和介质
CN111752845B (zh) 一种调试工具及其调试方法和系统
US6560698B1 (en) Register change summary resource
JP2003281076A (ja) Dmaコントローラの不正アクセス検出装置、不正アクセス検出方法およびそのプログラム
Shilaskar et al. Post Silicon Validation for I2C (SMBUS) Peripheral
CN119739614B (zh) 一种芯片调试系统