[go: up one dir, main page]

JP2978841B2 - Emulation method for in-circuit emulator - Google Patents

Emulation method for in-circuit emulator

Info

Publication number
JP2978841B2
JP2978841B2 JP9156112A JP15611297A JP2978841B2 JP 2978841 B2 JP2978841 B2 JP 2978841B2 JP 9156112 A JP9156112 A JP 9156112A JP 15611297 A JP15611297 A JP 15611297A JP 2978841 B2 JP2978841 B2 JP 2978841B2
Authority
JP
Japan
Prior art keywords
emulation
cpu
program
break
microprocessor
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.)
Expired - Fee Related
Application number
JP9156112A
Other languages
Japanese (ja)
Other versions
JPH10333934A (en
Inventor
昌 七尾
宏一 高橋
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.)
NIPPON DENKI AISHII MAIKON SHISUTEMU KK
Original Assignee
NIPPON DENKI AISHII MAIKON SHISUTEMU KK
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 NIPPON DENKI AISHII MAIKON SHISUTEMU KK filed Critical NIPPON DENKI AISHII MAIKON SHISUTEMU KK
Priority to JP9156112A priority Critical patent/JP2978841B2/en
Publication of JPH10333934A publication Critical patent/JPH10333934A/en
Application granted granted Critical
Publication of JP2978841B2 publication Critical patent/JP2978841B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Description

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

【0001】[0001]

【発明の属する技術分野】本発明はマイクロプロセッサ
に組み込まれるユーザプログラムの開発等に用いられる
インサーキットエミュレータにおけるエミュレーション
方法に関し、特にフラッシュメモリ、E2PROM等を
有するマイクロプロセッサの動作等インサーキットエミ
ュレータのエミュレーション用CPUで直接エミュレー
トできない動作のエミュレーション方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an emulation method in an in-circuit emulator used for developing a user program incorporated in a microprocessor, and more particularly to emulation of an in-circuit emulator such as operation of a microprocessor having a flash memory, an E2PROM, and the like. The present invention relates to an emulation method for an operation that cannot be directly emulated by a CPU.

【0002】[0002]

【従来の技術】特定の目的に使用されるデバイスとして
出荷されるマイクロプロセッサに搭載されるユーザプロ
グラムの開発に当たっては、一般に当該マイクロプロセ
ッサのCPUを動作させてその機能をチェックすること
が困難なため、マイクロプロセッサのCPUに対応する
エミュレーション用CPUと、エミュレーションを制御
する制御用CPU、所要メモリ、またエミュレーション
のための各種ファームウェアを用意した、インサーキッ
トエミュレータを用いて、マイクロプロセッサのCPU
の動作をエミュレートし、ユーザプログラムの機能の検
証が行われる。
2. Description of the Related Art In developing a user program mounted on a microprocessor shipped as a device used for a specific purpose, it is generally difficult to operate a CPU of the microprocessor and check its functions. An emulation CPU corresponding to the microprocessor CPU, a control CPU for controlling the emulation, a required memory, and various firmware for the emulation are prepared.
Is emulated, and the function of the user program is verified.

【0003】この場合、例えばマイクロプロセッサのC
PUをスタンバイ状態にする場合や、マイクロプロセッ
サに組込まれたフラッシュメモリをマイクロプロセッサ
のCPU自身が書き換えるセルフ書き込みを行わせる場
合などは、前者では、エミュレーション用CPU自体を
スタンバイ状態にしてしまうと所要のエミュレーション
データが得られないし、後者ではインサーキットエミュ
レータがフラッシュメモリや書き込み処理を行うハード
ウェアを備えていないため、その動作をハードウェアで
直接エミュレートすることができない。このため、ソフ
トウェアによるエミュレーションが行われる。以下、従
来のインサーキットエミュレータに用意された、フラッ
シュメモリのセルフ書き込み動作のエミュレーション機
能を例にとり、このソフトウェアによるエミュレーショ
ンについて説明する。
In this case, for example, a microprocessor C
When the PU is in the standby state or when the flash memory incorporated in the microprocessor is to be subjected to self-writing in which the CPU itself of the microprocessor rewrites, the former requires the emulation CPU itself to be in the standby state. No emulation data is obtained, and in the latter case, the operation cannot be directly emulated by hardware because the in-circuit emulator does not have a flash memory or hardware for performing write processing. Therefore, emulation by software is performed. Hereinafter, emulation by this software will be described by taking an example of an emulation function of a self-writing operation of a flash memory provided in a conventional in-circuit emulator.

【0004】マイクロプロセッサでのフラッシュメモリ
のセルフ書き込み動作は通常、プログラム開発を行うユ
ーザが、ユーザプログラム内で自由に呼び出すことが可
能なセルフ書き込み用サブプログラム(以降、ブートプ
ログラムと呼ぶ。)を用意し、呼び出されたブートプロ
グラムが、フラッシュメモリ書き換えのためのファーム
ウェア(以降、フラッシュファームと呼ぶ。)を指定さ
れたエントリアドレスに従って呼び出すことによって行
われる。
In a self-writing operation of a flash memory in a microprocessor, a user who develops a program usually prepares a self-writing subprogram (hereinafter referred to as a boot program) that can be freely called in a user program. Then, the called boot program calls the firmware for rewriting the flash memory (hereinafter referred to as a flash firmware) in accordance with the designated entry address.

【0005】呼び出されたフラッシュファームでは、ブ
ートプログラムによって指定された書き込みアドレスと
書き込みデータに従って、特定の特殊機能レジスタ(以
降、特殊機能レジスタをSFR、特定の特殊機能レジス
タを特定SFRと呼ぶ。)に対してフラッシュメモリ書
き換え要求を行う。このことで、書き込みアドレスへの
データの書き込みが開始される。
In the called flash firmware, a specific special function register (hereinafter, a special function register is referred to as an SFR and a specific special function register is referred to as a specific SFR) is specified according to a write address and write data specified by a boot program. In response, a flash memory rewrite request is issued. Thus, writing of data to the write address is started.

【0006】しかし、マイクロプロセッサでは、書き込
みアドレスへのデータの書き込み処理をマイクロプロセ
ッサ自身で行うことが可能だが、インサーキットエミュ
レータのハードウェアには、フラッシュメモリへのデー
タの書き込み処理機能が搭載されてないため、特定SF
Rに対してフラッシュメモリ書き換え要求が発行されて
も、書き込みアドレスへのデータの書き込みを行うこと
ができない。そこでインサーキットエミュレータでは、
フラッシュファーム内で特定SFRに対して、フラッシ
ュメモリ書き換え命令が発行された場合には、インサー
キットエミュレータのエミュレーション用CPU上で動
作する制御用プログラム(以降、ALTプログラムと呼
ぶ。)によって、書き込みアドレスへのデータの書き込
みを行うことで、フラッシュメモリのセルフ書き込みの
ソフトウェアによるエミュレーションを実現している。
However, a microprocessor can perform a process of writing data to a write address by itself, but the hardware of an in-circuit emulator has a function of processing data to be written to a flash memory. No specific SF
Even if a flash memory rewrite request is issued to R, data cannot be written to the write address. So in the in-circuit emulator,
When a flash memory rewrite instruction is issued to a specific SFR in the flash firmware, a control program (hereinafter, referred to as an ALT program) operating on an emulation CPU of an in-circuit emulator moves to a write address. The emulation of the flash memory by self-writing software is realized by writing the data.

【0007】このため、フラッシュファーム内で特定S
FRに対して、フラッシュメモリ書き換え命令が発行さ
れた場合には、ユーザプログラム内で動作しているフラ
ッシュファームをブレークさせて、エミュレーション用
CPUの制御をユーザプログラムからALTプログラム
に移行させる必要がある。この制御の移行を行うため、
従来技術では次のような処理を行っていた。
For this reason, the specific S
When a flash memory rewrite instruction is issued to the FR, it is necessary to break the flash firmware operating in the user program and shift the control of the emulation CPU from the user program to the ALT program. To perform this control transition,
In the prior art, the following processing was performed.

【0008】フラッシュファームは、フラッシュメモリ
書き換え要求として特定SFRに対して書き込み動作を
行うが、この特定SFRはユーザには非公開のSFRで
あることから、この特定SFRに対して書き込み動作が
行われるのは、フラッシュメモリ書き換え要求に限られ
る。一方、インサーキットエミュレータには、エミュレ
ーション用CPUのアドレスバス、データバスを監視す
るイベント検出器が設けられており、例えばエミュレー
ションのブレークのためのイベントとしてユーザの設定
する特定のバスサイクル条件がユーザプログラムの実行
中に出現した場合に、直ちにエミュレーション用CPU
の実行処理を中断し制御を制御用CPUに移行させるバ
ス検出機能が備わっている。よって、この特定SFRに
対するデータの書き込み動作を、バス検出機能で検出さ
れるイベントとして設定し、これを検出させることで、
セルフ書き込みエミュレーション処理をALTプログラ
ムに開始させるきっかけ(以降、トリガと呼ぶ。)を発
生させることとし、これによりALTプログラムが、書
き込みアドレスへのデータの書き込みを行い、その後制
御をフラッシュファームに戻すことでフラッシュメモリ
のセルフ書き込みのエミュレーションを実現していた。
The flash firmware performs a write operation on a specific SFR as a flash memory rewrite request. Since the specific SFR is an SFR that is not disclosed to the user, the write operation is performed on the specific SFR. This is limited to flash memory rewrite requests. On the other hand, the in-circuit emulator is provided with an event detector for monitoring the address bus and the data bus of the emulation CPU. For example, a specific bus cycle condition set by the user as an event for emulation break is set in the user program. Emulation CPU when it appears during execution of
A bus detection function is provided for interrupting the execution process and performing control transfer to the control CPU. Therefore, by setting the data write operation to this specific SFR as an event detected by the bus detection function, and by detecting this,
A trigger to start the self-write emulation process in the ALT program (hereinafter referred to as a trigger) is generated, whereby the ALT program writes data to a write address, and then returns control to the flash firmware. Emulation of self-writing of flash memory was realized.

【0009】図8および図9はそれぞれ、このフラッシ
ュメモリのセルフ書き込みのエミュレーションの際の、
従来技術における制御の移行処理を示す変遷図およびフ
ローチャートである。図8および図9を参照して、フラ
ッシュメモリのセルフ書き込みのエミュレーションにあ
たっては、まず、制御用CPU802上で動作する制御
プログラム(以降、エクゼキュータと呼ぶ。)805に
て、予め、トリガとなるべきフラッシュファーム807
中の特定SFRのデータ書き込み動作をイベント検出条
件として設定(ステップ808、901)した後、ユー
ザプログラムの実行が開始され(ステップ809、90
2)、エクゼキュータのコマンド処理(ステップ81
0)によりプログラム制御がALTプログラムを経て
(ステップ811)ユーザプログラム803に復帰し、
フラッシュメモリのセルフ書き込みのためのブートプロ
グラム806の実行が開始される(ステップ812、9
02)。
FIG. 8 and FIG. 9 respectively show the emulation of self-writing of the flash memory.
FIG. 9 is a transition diagram and a flowchart showing a control transfer process according to the related art. Referring to FIGS. 8 and 9, in emulation of self-writing of the flash memory, first, a control program (hereinafter, referred to as an executor) 805 operating on the control CPU 802 preliminarily sets a flash to be used as a trigger. Farm 807
After setting the data write operation of the specific SFR therein as the event detection condition (steps 808 and 901), the execution of the user program is started (steps 809 and 90).
2), Executor command processing (step 81)
0), the program control returns to the user program 803 via the ALT program (step 811),
The execution of the boot program 806 for self-writing in the flash memory is started (steps 812 and 9).
02).

【0010】ブートプログラム806は、フラッシュメ
モリのセルフ書き込みのための前処理として、書き換え
対象となるアドレスや書き換えデータを同一メモリ空間
内のエリアへ予め設定する(ステップ813、90
3)。
The boot program 806 sets an address to be rewritten and rewrite data in an area in the same memory space in advance as preprocessing for self-writing in the flash memory (steps 813 and 90).
3).

【0011】この後、ブートプログラム806は、ユー
ザプログラム803のモジュールであるフラッシュファ
ーム807をコールし(ステップ814、904)、処
理を移行させる(ステップ905)。処理が移行したフ
ラッシュファーム807は、ブートプログラム806が
予め用意した設定データを基に、フラッシュメモリのセ
ルフ書き込みを行うため、特定SFRへ、1バイトライ
ト、ブロックイレース等に対応したコマンド番号を書き
込む(ステップ906)。この書き込みにより、予めス
テップ808で設定しておいたイベントブレークが発生
し(ステップ907)、フラッシュファーム807はブ
レークする(ステップ815、907)。これにより、
ユーザプログラム803によるエミュレーションが中断
され(ステップ908)、処理がALTプログラム80
4を経由し、エクゼキュータ805に移行(ステップ9
09)する。
Thereafter, the boot program 806 calls the flash firmware 807 which is a module of the user program 803 (steps 814 and 904), and shifts the processing (step 905). The flash firmware 807 to which the processing has been shifted writes a command number corresponding to 1-byte write, block erase, or the like to a specific SFR in order to perform self-writing of the flash memory based on the setting data prepared in advance by the boot program 806 ( Step 906). By this writing, an event break previously set in step 808 occurs (step 907), and the flash firmware 807 breaks (steps 815 and 907). This allows
Emulation by the user program 803 is interrupted (step 908), and the processing is terminated by the ALT program 80.
4 and move to Executor 805 (Step 9)
09).

【0012】検出されたイベントブレークのブレーク要
因は、エクゼキュータ805にて、フラッシュメモリの
セルフ書き込みエミュレーション用に設定したトリガで
あるか否かの判断を行い(ステップ816、910)、
イベントブレークのブレーク要因がフラッシュメモリの
セルフ書き込みエミュレーション用に設定したトリガで
あれば、エクゼキュータ805はALTプログラム80
4に対してフラッシュメモリのセルフ書き込みエミュレ
ーション開始の要求を行う(ステップ817、91
1)。なお、ブレーク要因がフラッシュメモリのセルフ
書き込みエミュレーション用に設定したトリガではない
場合には、エクゼキュータ805は、検出されたイベン
トがユーザが設定したイベントであると判断し、すべて
のエミュレーション処理を終了する(ステップ91
2)。
The executor 805 determines whether the detected event break cause is a trigger set for self-writing emulation of the flash memory (steps 816 and 910).
If the cause of the event break is a trigger set for self-writing emulation of the flash memory, the executor 805
4 is requested to start self-writing emulation of the flash memory (steps 817 and 91).
1). If the break factor is not a trigger set for self-writing emulation of the flash memory, the executor 805 determines that the detected event is an event set by the user, and ends all emulation processing ( Step 91
2).

【0013】ALTプログラム804は、フラッシュメ
モリのセルフ書き込みエミュレーション開始要求をエク
ゼキュータ805から受け取ると、当該処理のエミュレ
ーションを開始し(ステップ818、913)、予め設
定されてある書き換え対象となるアドレスへデータの書
き込みを行う(ステップ914)。ALTプログラム8
04でのセルフ書き込みエミュレーション処理が終了
(ステップ915)した時点で、ALTプログラム80
4は割込復帰命令を実行し(ステップ819)、ユーザ
プログラム803のフラッシュファーム807に処理を
戻し(ステップ916)、トリガによって中断したフラ
ッシュファームにおけるエミュレーションが再開され、
フラッシュメモリのセルフ書き込みのエミュレーション
が終了し、ブートプログラム806に復帰する(ステッ
プ820)。以上、フラッシュメモリへのセルフ書き込
みを例にとって説明したが、従来技術ではこのようにし
て、エミュレーション用CPUで直接エミュレートでき
ない動作についてのALTプログラムによるソフトウェ
アエミュレーションを実現していた。
When the ALT program 804 receives a request to start self-writing emulation of the flash memory from the executor 805, the ALT program 804 starts emulation of the processing (steps 818 and 913) and transfers data to a preset address to be rewritten. Writing is performed (step 914). ALT program 8
When the self-write emulation process in step 04 ends (step 915), the ALT program 80
4 executes an interrupt return instruction (step 819), returns the process to the flash firmware 807 of the user program 803 (step 916), and resumes emulation in the flash firmware interrupted by the trigger.
The self-writing emulation of the flash memory ends, and the process returns to the boot program 806 (step 820). The self-writing to the flash memory has been described above as an example. However, in the conventional technique, software emulation using an ALT program for an operation that cannot be directly emulated by the emulation CPU has been realized in this way.

【0014】[0014]

【発明が解決しようとする課題】しかしながらこのよう
な従来技術のALTプログラムによるソフトウェアエミ
ュレーションでは、ALTプログラムに制御を移行する
ためのトリガの判断として本来ユーザー用の資源として
提供されているイベントブレークを使用しているため、
その分ユーザーのイベントの使用を制限しなければなら
ない問題点があった。すなわち、イベントは前述のよう
にアドレスおよびデータ等の比較条件を詳細に設定でき
るためALTプログラムへの制御の移行のトリガに用い
るのに便利ではあるが、本来エミュレーション用のブレ
ークタイミングの設定のためにユーザーが自由に比較条
件を設定できるよう、ユーザー用の資源として開放され
ている機能であり、これを例えばフラッシュファームの
ために予約すると、その分ユーザーが設定可能なイベン
ト種別が少なくなってしまう。
However, in such software emulation using the conventional ALT program, an event break originally provided as a resource for a user is used as a judgment of a trigger for shifting control to the ALT program. Because
There was a problem that the use of the event of the user had to be restricted correspondingly. That is, although the event can be used to trigger the transition of control to the ALT program because the comparison conditions such as the address and data can be set in detail as described above, the event is originally used for setting the break timing for emulation. This function is open as a resource for the user so that the user can freely set the comparison condition. If this function is reserved for a flash firmware, for example, the event types that can be set by the user will be reduced accordingly.

【0015】さらにまた、エミュレーション用CPUと
制御用CPUの処理速度の差がエミュレーションの速度
ネックになる場合があるという問題点もあった。すなわ
ち、このようなイベントの発生は前述のバス検出機能に
よって検出されるため、制御がエミュレータ用のCPU
から制御用のCPUに移行され、制御用のCPUで動作
する例えばエクゼキュータでイベントの発生要因の判断
を行い、ユーザ設定のイベントでないことを確認して改
めてALTプログラムに制御が移行されることとなる。
しかしながら一般にインサーキットエミュレータではエ
ミュレーション用CPUには開発プログラムの動作する
マイクロプロセッサのCPUに対応する性能を持つCP
Uが用意されるが、制御用CPUの処理速度は、例えば
エミュレーション用CPUの0.6倍程度となってお
り、この速度差が例えば、フラッシュメモリのセルフ書
き込みエミュレーションの速度ネックになり得るからで
ある。
Further, there is a problem that a difference in processing speed between the emulation CPU and the control CPU may be a bottleneck in the speed of emulation. That is, since the occurrence of such an event is detected by the bus detection function described above, the control is performed by the CPU for the emulator.
Is transferred to the control CPU, and the executor operated by the control CPU determines the cause of the event occurrence, confirms that the event is not a user-set event, and transfers control to the ALT program again. .
However, in general, in an in-circuit emulator, a CPU having a performance corresponding to a CPU of a microprocessor on which a development program operates is used as an emulation CPU.
U is prepared, but the processing speed of the control CPU is, for example, about 0.6 times that of the emulation CPU, and this difference in speed can be a bottleneck in the speed of the self-write emulation of the flash memory, for example. is there.

【0016】本発明は、かかる問題点を解消するために
なされたものであり、ユーザ資源であるイベントに代え
て、インサーキットエミュレータに用意されているフェ
ールセーフブレーク機能をトリガとして用いることによ
り、制御用CPUに制御を移行することなく、ALTプ
ログラムによるエミュレーション処理を起動することの
できる、速度ネックのない、またユーザ資源であるイベ
ントの使用を制約することのない、エミュレーション方
法を提供することを目的とする。
The present invention has been made in order to solve such a problem. Control is performed by using a fail-safe break function provided in an in-circuit emulator as a trigger instead of an event which is a user resource. To provide an emulation method that can start emulation processing by an ALT program without transferring control to a CPU for use, has no speed bottleneck, and does not restrict the use of an event that is a user resource. And

【0017】[0017]

【課題を解決するための手段】エミュレーション用CP
Uで実行されるALTプログラムで判断できるブレーク
は、イベントをトリガとしてメモリ,レジスタ,SFR
の内容を読み出すためのブレーク(以降、スナップと呼
ぶ。)、同じくイベントをトリガとしてユーザ指定のサ
ブルーチンにジャンプするためのブレーク(以降、スタ
ブと呼ぶ。)及びその他のブレークの3種に大別できる
が、スナップ、スタブの2つのブレークは、双方ともに
イベントを使用しなければならないため、エミュレーシ
ョン用CPU単独の判断には該当しない。また、その他
のブレークには強制ブレーク、フェイルセーフブレーク
の2つがあるが、強制ブレークはユーザの要求で発生さ
せるブレークでありエミュレーションのトリガと成り得
るものではない。
[Means for Solving the Problems] Emulation CP
Breaks that can be determined by the ALT program executed in U are triggered by an event, and
(Hereinafter, referred to as a snap) for reading the contents of the program, a break (hereinafter, referred to as a stub) for jumping to a user-specified subroutine using an event as a trigger, and other breaks. However, the two breaks, snap and stub, do not correspond to the judgment of the emulation CPU alone because both events must use events. Other breaks include a forced break and a fail-safe break. The forced break is a break generated at the request of the user and cannot be a trigger of emulation.

【0018】一方、フェイルセーフブレークは、ユーザ
プログラムの不正なアクセス、特にエミュレーションの
対象となるマイクロプロセッサのCPUの使用できない
資源へのアクセスを監視し、プログラムの停止を行うも
のであるため、プログラムの実行状態によって発生させ
ることができる。さらに、フェイルセーフブレークに
は、SFRイリーガルアクセスブレークと呼ばれる機能
があり、CPUの資源として持っていないSFRへのア
クセスによるブレークという用途を限定した使い方が可
能になっている。よって本発明では、フェイルセーフブ
レークをALTプログラムによるソフトウェアエミュレ
ーションのトリガとして用いることとした。
On the other hand, the fail-safe break monitors illegal access of a user program, in particular, access to resources that cannot be used by the CPU of the microprocessor to be emulated, and stops the program. It can be generated depending on the execution state. Further, the fail-safe break has a function called an SFR illegal access break, and it is possible to limit the use of the break by accessing an SFR that is not possessed as a resource of the CPU. Therefore, in the present invention, the fail-safe break is used as a trigger for software emulation by the ALT program.

【0019】このようなエミュレーション方法を実現す
るために本発明に係るインサーキットエミュレータにお
けるエミュレーション方法は、マイクロプロセッサのC
PUの動作のエミュレーションを行うエミュレーション
用CPUと、このエミュレーションの実行を制御する制
御用CPUを備えたインサーキットエミュレータにおい
て、前記マイクロプロセッサのCPUの特定の特殊機能
レジスタ(以下、SFRという。)に値を書き込むこと
によって起動される前記マイクロプロセッサのCPUの
動作を、前記エミュレーション用CPUで動作する制御
用プログラムであるALTプログラムによりエミュレー
トする方法において、前記制御用CPUで動作する制御
用プログラムであるエクゼキュータが、前記エミュレー
ション用CPUで動作するユーザプログラムの実行を開
始するコマンドを実行するに当たって、フェールセーフ
ブレーク条件を変更し当該特定SFRへのアクセスをS
FRイリーガルアクセスに設定するフェールセーフブレ
ーク条件の変更段階と、前記ユーザプログラムがブレー
クし前記ALTプログラムに制御が移行した場合に、こ
のALTプログラムにおいてそのブレーク要因を確認
し、このブレーク要因が当該特定SFRへのアクセスで
ある場合には、制御を前記エクゼキュータに戻すことな
く当該特定SFRへのアクセスに対応する前記マイクロ
プロセッサのCPUの動作をこのALTプログラムが実
行するエミュレーション処理段階とを備えたことを特徴
とする。
In order to realize such an emulation method, the emulation method in the in-circuit emulator according to the present invention uses the C
In an in-circuit emulator including an emulation CPU for emulating the operation of a PU and a control CPU for controlling the execution of the emulation, a value is stored in a specific special function register (SFR) of the CPU of the microprocessor. In the method of emulating the operation of the CPU of the microprocessor activated by writing the program by an ALT program which is a control program operated by the emulation CPU, an executor which is a control program operated by the control CPU However, when executing a command to start execution of a user program operating on the emulation CPU, the fail-safe break condition is changed and access to the specific SFR is changed to S.
In the step of changing the fail-safe break condition set for the FR illegal access, and when the user program breaks and the control shifts to the ALT program, the ALT program checks the break factor and determines whether the break factor is the specific SFR. Emulation processing step in which the ALT program executes the operation of the CPU of the microprocessor corresponding to the access to the specific SFR without returning control to the executor when the access is to the executor. And

【0020】また、前記フェールセーフブレーク条件の
変更段階は、前記コマンドがエミュレーションの開始を
指示するコマンドであり、かつ、エミュレーションの対
象である前記マイクロプロセッサのCPUが、前記AL
Tプログラムによるエミュレーションを必要とするCP
Uである場合に限り実行されることを特徴とする。
In the step of changing the fail-safe break condition, the command is a command for instructing the start of emulation, and the CPU of the microprocessor to be emulated has
CP that requires emulation by T program
It is characterized in that it is executed only when it is U.

【0021】また、前記エミュレーション処理段階は、
前記ALTプログラムが、前記ブレークの要因がSFR
イリーガルアクセスであることを確認するブレーク要因
確認段階と、当該ブレーク要因がSFRイリーガルアク
セスである場合に対応する前記ユーザプログラムの命令
コードを解析する命令コード解析処理段階と、前記命令
コード解析処理段階において前記命令コードが当該特定
SFRへのアクセスであることが確認された場合に前記
ALTプログラムがこの命令コードに相当する前記マイ
クロプロセッサのCPUの動作をエミュレートするエミ
ュレーション実行段階とを有することを特徴とする。
Further, the emulation processing step includes:
The ALT program determines that the cause of the break is SFR
A break factor confirming step for confirming that the access is illegal; an instruction code analyzing process for analyzing an instruction code of the user program corresponding to a case where the break factor is an SFR illegal access; and an instruction code analyzing process. An emulation execution step of emulating the operation of the CPU of the microprocessor corresponding to the instruction code, when it is confirmed that the instruction code is an access to the specific SFR. I do.

【0022】また、前記命令コード解析処理段階に先立
ち、前記エミュレーション用CPUのプログラムカウン
タの値を参照し、前記ブレークが前記ユーザプログラム
で実行されるファームウェアの特定のアドレスに配置さ
れている命令の直後で発生していることを確認する段階
をさらに有し、前記ブレークが前記特定のアドレスに配
置された命令の直後で発生している場合に限り前記命令
コード解析処理段階に移行することを特徴とする。
Further, prior to the instruction code analysis processing step, referring to a value of a program counter of the emulation CPU, the break is executed immediately after an instruction located at a specific address of firmware executed by the user program. Further comprising a step of confirming that the break has occurred in the instruction code analyzing step only when the break has occurred immediately after the instruction located at the specific address. I do.

【0023】また、前記命令コード解析手段は、前記プ
ログラムカウンタの値をさかのぼり、当該特定SFRへ
のライト命令に相当する長さの命令コードを復元し、復
元した命令コードが特定のパターンと一致するか否かを
解析することを特徴とする。
The instruction code analyzing means traces back the value of the program counter, restores an instruction code having a length corresponding to a write instruction to the specific SFR, and the restored instruction code matches a specific pattern. It is characterized in that whether or not it is analyzed.

【0024】また、前記マイクロプロセッサのCPUの
特定SFRに値を書き込むことによって起動される前記
マイクロプロセッサのCPUの動作は、当該マイクロプ
ロセッサに設けられるフラッシュメモリへのセルフ書き
込み動作であることを特徴とする。
Further, the operation of the microprocessor CPU started by writing a value to a specific SFR of the microprocessor CPU is a self-write operation to a flash memory provided in the microprocessor. I do.

【0025】さらにまた、前記マイクロプロセッサのC
PUの特定SFRに値を書き込むことによって起動され
る前記マイクロプロセッサのCPUの動作は、このマイ
クロプロセッサのCPU自身の動作状態をスタンバイモ
ードに遷移さす動作であることを特徴とする。
Further, the microprocessor C
The operation of the CPU of the microprocessor started by writing a value to the specific SFR of the PU is an operation of transitioning the operation state of the CPU of the microprocessor to a standby mode.

【0026】[0026]

【発明の実施の形態】以下本発明の実施の形態について
図面を参照して説明する。図1は、インサーキットエミ
ュレータの構成を示すブロック図である。インサーキッ
トエミュレータはエミュレーション用CPU101と制
御用CPU105とを備えており、エミュレーション用
CPU101は、エミュレーションメモリ102並びに
ALTメモリ103に対してエミュレーション用CPU
用アドレスバス111と、エミュレーション用CPU用
データバス112を介してアクセスを行う。アクセス
は、エミュレーション用CPU制御信号109で選択さ
れたメモリに対して行われ、ユーザプログラム115ま
たはALTプログラム116を実行することができる。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing the configuration of the in-circuit emulator. The in-circuit emulator includes an emulation CPU 101 and a control CPU 105. The emulation CPU 101 is provided for the emulation memory 102 and the ALT memory 103.
Access via the address bus 111 for emulation and the data bus 112 for emulation CPU. Access is made to the memory selected by the emulation CPU control signal 109, and the user program 115 or the ALT program 116 can be executed.

【0027】また、制御用CPU105は、システムメ
モリ106に対して制御用CPU用アドレスバス113
と制御用CPU用データバス114を介してアクセスを
行う。アクセスは、制御用CPU制御信号110で選択
されたシステムメモリ106に対して行われ、システム
メモリに展開されたプログラム、例えばエクゼキュータ
117を実行することでできる。さらに、インサーキッ
トエミュレータには制御用CPU105がアクセスでき
るフェイルセーフ検出用メモリ107が設けられてお
り、本発明ではこのフェイルセーフ検出用メモリに、予
めエミュレーションのトリガに使用するためにフェイル
セーフブレークを発生させる設定を行う。
The control CPU 105 is connected to a control CPU address bus 113 for the system memory 106.
And access via the control CPU data bus 114. The access is made to the system memory 106 selected by the control CPU control signal 110, and can be executed by executing a program developed in the system memory, for example, the executor 117. Further, the in-circuit emulator is provided with a fail-safe detection memory 107 that can be accessed by the control CPU 105. In the present invention, a fail-safe break is generated in the fail-safe detection memory in advance for use in triggering emulation. Make settings to make

【0028】フェイルセーフ検出用メモリ107には、
エミュレーション用CPU用アドレスバス111とのイ
ンタフェースが設けてあり、エミュレーション用CPU
101におけるプログラムの実行状態を監視し、アクセ
スアドレスを設定データと比較することにより、不正な
アドレスエリア、例えば、エミュレーションの対象とな
るマイクロプロセッサのCPUに存在しないSFRへの
アクセスを検出することができるようになっている。
The fail-safe detection memory 107 includes:
An interface with the emulation CPU address bus 111 is provided, and the emulation CPU
By monitoring the execution state of the program in 101 and comparing the access address with the setting data, an access to an illegal address area, for example, an SFR that does not exist in the CPU of the microprocessor to be emulated can be detected. It has become.

【0029】図2は、本実施形態の制御の移行処理を示
す変遷図である。ここでは図8に示す先行技術と同様、
フラッシュメモリを搭載するマイクロプロセッサのCP
Uのフラッシュメモリのセルフ書き込みをインサーキッ
トエミュレータでエミュレーションする場合を例にとっ
て制御の移行の変遷を示している。エミュレーション用
CPU101で実行されるユーザプログラム115の1
つのモジュールであるブートプログラム206は、フラ
ッシュメモリの書き換えのために実行されるプログラム
である。このプログラムの実行には、制御用CPU10
5で実行されている制御用プログラムであるエクゼキュ
ータ117が、ユーザプログラムの実行を開始し(ステ
ップ208)、コマンド処理(ステップ209)により
ALTプログラム116が呼び出されることが必要で、
エクゼキュータ117の処理の開始ポイントとなる。
FIG. 2 is a transition diagram showing the transition processing of the control according to the present embodiment. Here, similar to the prior art shown in FIG.
Microprocessor CP with flash memory
The transition of the control shift is shown by taking as an example the case where the self-writing of the U flash memory is emulated by the in-circuit emulator. One of the user programs 115 executed by the emulation CPU 101
The boot program 206 as one module is a program executed for rewriting the flash memory. To execute this program, the control CPU 10
It is necessary that the executor 117 which is the control program executed in step 5 starts the execution of the user program (step 208), and the ALT program 116 is called by the command processing (step 209).
The executor 117 starts processing.

【0030】続いて、実行されたブートプログラム20
6は、フラッシュメモリ書き換えのための前処理とし
て、書き換え対象となるアドレスや書き換えデータを同
一メモリ空間内のエリアへ予め設定しておき(ステップ
212)、フラッシュメモリ書き換えのために用意され
たモジュールであるフラッシュファーム207をコール
し(ステップ213)、処理を移行させる。処理を移行
したフラッシュファーム207は、予め用意された設定
データを基に、フラッシュメモリの書き換えを行うた
め、特定SFRへ1バイトライト、ブロックイレース等
に対応したコマンド番号を書き込む。この書き込みによ
り、フェイルセーフブレークが発生し、フラッシュファ
ーム207はブレークする(ステップ214)。これに
より、処理がALTプログラム116に移行する。
Subsequently, the executed boot program 20
Reference numeral 6 denotes a module prepared for flash memory rewriting in which an address to be rewritten and rewriting data are set in an area in the same memory space in advance as a preprocessing for rewriting the flash memory (step 212). A certain flash firmware 207 is called (step 213), and the process is shifted. The flash firmware 207 to which the processing has been shifted writes a command number corresponding to 1-byte write, block erase, or the like to the specific SFR in order to rewrite the flash memory based on the setting data prepared in advance. By this writing, a fail-safe break occurs, and the flash firmware 207 breaks (step 214). Thereby, the processing shifts to the ALT program 116.

【0031】ALTプログラム116は、エミュレーシ
ョン処理を開始し(ステップ215)、ブレークした要
因を調べるため命令コード解析処理等を行い、コマンド
番号に応じたセルフ書き込み処理のエミュレーションを
行い、その終了後、ALTプログラム116が、割込復
帰の命令を実行することにより(ステップ216)、ユ
ーザプログラム203のフラッシュファーム207に処
理を戻す。これによりフラッシュメモリへの書き込みが
終了する(ステップ217)。
The ALT program 116 starts emulation processing (step 215), performs instruction code analysis processing or the like to check the cause of the break, performs emulation of self-write processing according to the command number, and after that, executes ALT. The program 116 returns to the flash firmware 207 of the user program 203 by executing the interrupt return instruction (step 216). This completes the writing to the flash memory (step 217).

【0032】以上、フラッシュメモリへのセルフ書き込
み処理を例にとって、本実施形態の制御の変遷の概要に
ついて説明したが、図8の従来技術と相違する点は、図
8の従来技術では、エクゼキュータ805が、ユーザプ
ログラムの実行開始(ステップ809)に先立って、イ
ベント検出器へのトリガの設定(ステップ808)を行
っていたが、本実施形態では、これに代えてステップ2
09でのコマンド処理の中でフェイルセーフ検出用メモ
リ107への条件設定を行っている点、および、従来技
術ではフラッシュファーム807のブレーク(ステップ
815)により制御がエクゼキュータ805に移行さ
れ、エクゼキュータ805がトリガの判断処理(ステッ
プ816)を行っていたが、本実施形態では、ALTプ
ログラム116がエミュレーション処理の開始時点で
(ステップ215)ブレークした要因を調べるため命令
コード解析処理等を行っている点である。
The outline of the transition of the control according to the present embodiment has been described above by taking the self-writing process to the flash memory as an example. The difference from the prior art in FIG. 8 is that the executor 805 in the prior art in FIG. Although the setting of the trigger for the event detector (step 808) was performed prior to the start of the execution of the user program (step 809), in the present embodiment, instead of this, step 2 is performed.
09, the condition is set in the fail-safe detection memory 107 during the command processing, and in the prior art, control is transferred to the executor 805 by the break (step 815) of the flash firmware 807, and the executor 805 The trigger determination process (step 816) is performed. However, in the present embodiment, the ALT program 116 performs an instruction code analysis process or the like to check the cause of the break at the start of the emulation process (step 215). is there.

【0033】以下、この点について詳述する。最初に図
3を参照してエクゼキュータの動作環境を説明する。イ
ンサーキットエミュレータによるエミュレーションを行
うために、ユーザはインサーキットエミュレータを使用
するためのアプリケーションであるデバッガを起動する
(ステップ301)。デバッカはその製品構成の一つで
あるエクゼキュータ117を導入する(ステップ30
2)。導入は、インサーキットエミュレータの持つシス
テムメモリ106へのダウンロードによって行われ、エ
クゼキュータ117の実行が開始され(ステップ30
3)、インサーキットエミュレータの制御処理を行って
行く。
Hereinafter, this point will be described in detail. First, the operating environment of the executor will be described with reference to FIG. To perform emulation by the in-circuit emulator, the user starts a debugger, which is an application for using the in-circuit emulator (step 301). The debugger introduces an executor 117 which is one of the product configurations (step 30).
2). The introduction is performed by downloading to the system memory 106 of the in-circuit emulator, and the execution of the executor 117 is started (step 30).
3), control processing of the in-circuit emulator is performed.

【0034】エクゼキュータ117は、まず、インサー
キットエミュレータを制御するための初期化処理を、イ
ンサーキットエミュレータハードウェアの初期化(ステ
ップ304)、ALTプログラム116の導入(ステッ
プ305)、エミュレーション用CPU101の初期設
定(ステップ306)、エミュレーション対象CPUの
情報設定(ステップ307)の、4つのステップで実行
する。ここでALTプログラム116の導入は、インサ
ーキットエミュレータの持つALTメモリ103へのダ
ウンロードによって行われる。また、エミュレーション
対象CPUの情報設定(ステップ307)では、エミュ
レーションの対象となるマイクロプロセッサのCPUに
関する詳細情報が、デバイスファイルと呼ばれる、当該
インサーキットエミュレータでエミュレーションを行う
ことのできる各種CPUの個別情報が、例えばフラッシ
ュメモリのセルフ書き込み機能の有無等その動作環境毎
に格納されたファイルから読み出され、動作環境毎に識
別されるエミュレーション対象CPUの名称と共にシス
テムメモリ106に保存される。
The executor 117 first performs initialization processing for controlling the in-circuit emulator, initialization of the in-circuit emulator hardware (step 304), introduction of the ALT program 116 (step 305), and initialization of the emulation CPU 101. It is executed in four steps of setting (step 306) and setting information of the emulation target CPU (step 307). Here, the ALT program 116 is introduced by downloading to the ALT memory 103 of the in-circuit emulator. In the information setting of the CPU to be emulated (step 307), detailed information on the CPU of the microprocessor to be emulated is replaced with individual information of various CPUs that can be emulated by the in-circuit emulator, called device files. For example, it is read from a file stored for each operating environment such as the presence or absence of a self-writing function of the flash memory, and stored in the system memory 106 together with the name of the emulation target CPU identified for each operating environment.

【0035】このようにして、エミュレーションの動作
環境を設定した後、エクゼキュータ117はデバッカか
らのコマンドを処理するためのステップに移行する。こ
のステップでは、ブレークチェック(ステップ30
8)、インサーキットエミュレータの動作状態の変化の
チェック(ステップ309)、ステータス通知(ステッ
プ310)という3つの処理を行う。この3つのステッ
プは、インサーキットエミュレータの動作状態がエミュ
レーション中とブレーク中の間で、状態遷移が起こった
場合に、デバッカに対してメッセージを送信するための
処理である。この後、デバッカから送信されてきたコマ
ンドを受信しているかチェックし(ステップ311)、
受信したコマンドを処理した後(ステップ312)、ま
たコマンド受信がなければ直接、ステップ308に戻り
次のブレークを監視する。また、デバッカから送信され
たコマンドがEXITコマンドであった場合は(ステッ
プ313)エクゼキュータ117は実行を終了する(ス
テップ314)。このようにして、ブレークの都度コマ
ンドを処理するためのステップ(ステップ308〜31
2)を繰り返すことで、エクゼキュータ117はデバッ
カからのコマンド処理を行う。先に述べた図2のステッ
プ209で行われるフェイルセーフ検出用メモリ107
への条件設定もこの図3のステップ312のコマンド処
理の中で行われる。
After setting the operating environment of the emulation in this way, the executor 117 proceeds to the step for processing the command from the debugger. In this step, a break check (step 30)
8) The three processes of checking the change in the operating state of the in-circuit emulator (step 309) and notifying the status (step 310) are performed. These three steps are processing for transmitting a message to the debugger when the operation state of the in-circuit emulator changes between emulation and break. Thereafter, it is checked whether a command transmitted from the debugger has been received (step 311).
After processing the received command (step 312), and if no command is received, the process directly returns to step 308 to monitor the next break. If the command transmitted from the debugger is an EXIT command (step 313), the executor 117 ends the execution (step 314). In this way, the steps for processing the command each time a break occurs (steps 308 to 31)
By repeating 2), the executor 117 performs command processing from the debugger. The memory 107 for fail-safe detection performed in step 209 of FIG.
Is set in the command processing of step 312 in FIG.

【0036】図4はこの図3のステップ312で行われ
るのコマンド処理の詳細を説明するフローチャートであ
る。図2の制御の変遷図の中で説明しているコマンド処
理(ステップ209)は、エミュレーションのトリガを
発生させるための前処理であり、この処理を図4を参照
して詳細に説明する。
FIG. 4 is a flow chart for explaining the details of the command processing performed in step 312 of FIG. The command process (step 209) described in the control transition diagram of FIG. 2 is a pre-process for generating an emulation trigger, and this process will be described in detail with reference to FIG.

【0037】まず、コマンド処理が開始され(ステップ
401)、コマンド番号がチェックされる(ステップ4
02)。ここで、コマンド番号の指示するコマンドがエ
ミュレーションの開始を指示するRUNコマンドである
か否かをチェックし(ステップ403)し、RUNコマ
ンドであった場合は、次にエミュレーション対象CPU
およびその動作環境がALTプログラム116によるソ
フトウェアエミュレーションを必要とするか否かを先に
ステップ307で設定したエミュレーション対象CPU
情報を参照しチェックする(ステップ404)。コマン
ドがRUNコマンドで、且つエミュレーション対象CP
UがALTプログラム116によるソフトウェアエミュ
レーションを必要とするCPUであった場合は、エミュ
レーションのトリガとなるフェイルセーフブレークの変
更を行う(ステップ405)。
First, command processing is started (step 401), and the command number is checked (step 4).
02). Here, it is checked whether or not the command indicated by the command number is a RUN command for instructing the start of emulation (step 403).
And an emulation target CPU previously set in step 307 to determine whether or not the operating environment requires software emulation by the ALT program 116.
A check is made with reference to the information (step 404). If the command is a RUN command and the emulation target CP
If U is a CPU that requires software emulation by the ALT program 116, the fail-safe break that triggers the emulation is changed (step 405).

【0038】ここでの変更は、特定SFRへのアクセス
に対してフェイルセーフブレークを発生させる設定にす
ることであるが、この特定SFRはエミュレーション対
象CPUに本来備わっているSFRであるので、通常時
はフェイルセーフブレークを発生させない設定になって
いるが、本実施形態では、これをエミュレーション対象
CPUのアクセスできないSFRとして設定することに
より、当該アクセスによりSFRイリーガルアクセスブ
レークを検知させることにより、ALTプログラム11
6によるエミュレーションのトリガとしている。
The change here is to make a setting to generate a fail-safe break for access to a specific SFR. Since this specific SFR is an SFR inherent to the CPU to be emulated, Is set so as not to generate a fail-safe break, but in the present embodiment, by setting this as an SFR that cannot be accessed by the CPU to be emulated, and detecting the SFR illegal access break by the access, the ALT program 11
6 is used as an emulation trigger.

【0039】次に、エクゼキュータ117は、コマンド
に対応した関数をコールするが(ステップ406)、前
述のフロー(ステップ403、404)で行った比較結
果が該当しなければ、フェイルセーフブレークの変更
(ステップ405)を行わずにコールした関数へ処理が
移行される。コールされた関数から処理が戻ってくれ
ば、コマンド処理が終了する(ステップ407)。
Next, the executor 117 calls a function corresponding to the command (step 406). If the result of the comparison performed in the above-described flow (steps 403 and 404) does not correspond, the executor 117 changes the fail-safe break (step 406). The processing shifts to the function called without performing step 405). When the processing returns from the called function, the command processing ends (step 407).

【0040】次に、図2の処理変遷図の中で説明してい
るALTプログラム116によるフラッシュメモリのセ
ルフ書き込みのエミュレーション処理(ステップ21
5)について説明する。図5は、図2のステップ215
におけるエミュレーション処理の詳細を示すフローチャ
ートである。ステップ214でフラッシュファームが特
定SFRに値を書き込むことにより、SFRイリーガル
アクセスが検知され、フェイルセーフブレークが発生し
制御がALTプログラムに移行し、ALTプログラムで
のエミュレーション処理が開始されると(ステップ50
1)、まずブレーク要因チェックが行われる(ステップ
502、503)。ここでチェックしたブレーク要因が
スナップ,スタブによるブレークであった場合には、制
御がエクゼキュータ117に制御が戻されスナップ,ス
タブ処理を行い(ステップ504)、割込リターンによ
りユーザプログラムに復帰する(ステップ511)。ス
ナップ、スタブ以外の通常のブレークであった場合に
は、ブレークの要因をより詳細に調べる。
Next, the self-writing emulation processing of the flash memory by the ALT program 116 described in the processing transition diagram of FIG. 2 (step 21)
5) will be described. FIG.
5 is a flowchart showing details of an emulation process in FIG. When the flash firmware writes a value to the specific SFR in step 214, an SFR illegal access is detected, a fail-safe break occurs, control is transferred to the ALT program, and emulation processing in the ALT program is started (step 50).
1) First, a break factor check is performed (steps 502 and 503). If the break factor checked here is a break due to snap or stub, control is returned to the executor 117 to perform snap and stub processing (step 504) and return to the user program by an interrupt return (step 504). 511). If it is a normal break other than snap and stub, investigate the cause of the break in more detail.

【0041】まず、プログラムカウンタを読み出し(ス
テップ505)プログラムカウンタの値をチェックし、
ブレークしたアドレスがフラッシュファーム207の特
定のアドレスに配置してある命令の直後を示しているか
をチェックする。
First, the program counter is read (step 505), and the value of the program counter is checked.
It is checked whether the address at which the break occurred is immediately after the instruction located at a specific address of the flash firmware 207.

【0042】エミュレーションの対象としているCPU
の実際の動作の中では、フラッシュファーム207がセ
ルフ書き込みを行う場合、フラッシュモードコントロー
ルレジスタ(以降、FLMCと呼ぶ)という特定SFR
に値を書き込むことで、フラッシュメモリの書き換えを
行わせることになっている。フェールセーフブレークの
検知だけでは、そのフェールセーフブレークが、FLM
Cへの書き込みのよって発生したブレークであるか、他
の資源への不当なアクセスによって発生したブレークで
あるかの判定ができない。
CPU to be emulated
In the actual operation of the flash firmware 207, when the flash firmware 207 performs self-writing, a specific SFR called a flash mode control register (hereinafter referred to as FLMC) is used.
By writing a value to the flash memory, the flash memory is to be rewritten. Fail-safe break detection is not enough to detect the fail-safe break.
It cannot be determined whether a break has occurred due to writing to C or a break has occurred due to improper access to other resources.

【0043】そこで、本実施形態ではこのFLCMへの
ライト命令をフラッシュファーム207内の決まった特
定のアドレスに固定して配置しておく。このようにフラ
ッシュファーム207を構成してあるので、ブレークし
たアドレスがフラッシュファーム207の特定のアドレ
スに配置してある命令の直後を示していれば、当該ブレ
ークが、FLCMへの書き込みによって発生したSFR
イリーガルアクセスであることが特定できる。
Therefore, in the present embodiment, the write instruction to the FLCM is fixedly arranged at a fixed specific address in the flash firmware 207. Since the flash firmware 207 is configured in this manner, if the address at which the break occurs indicates immediately after the instruction located at a specific address of the flash firmware 207, the SFR generated by writing to the FLCM causes the break.
It can be specified that the access is illegal.

【0044】このようにして、ブレーク要因がFLCM
へのライト命令であると特定された(ステップ506)
場合は、次にその命令が真にFLCMへのライト命令で
あるかを確認するために、命令コード解析処理を行う
(ステップ507)。
As described above, the break factor is FLCM
(Step 506)
In this case, an instruction code analysis process is performed next to confirm whether the instruction is a true write instruction to the FLCM (step 507).

【0045】図6は、図5のステップ507における命
令コード解析処理を説明するフローチャートである。図
6を参照して、まずフェイルセーフブレーク直後の状態
からSFRへのライト命令の命令コード解析を開始する
(ステップ601)。プログラムカウンタをデクリメン
トし(ステップ602)、プログラムカウンタの示す番
地のメモリを読み出し(ステップ603)、その内容を
命令コードデータテーブルへ書き込む(ステップ60
4)。これをSFRへのライト命令の命令コードバイト
数分繰り返す(ステップ605)。これにより命令コー
ドのデータができるので,これを命令コードパターンデ
ータと比較する(ステップ606)。この命令コードパ
ターンデータとしては、SFRであるFLMCへのライ
ト命令の命令コードを格納している。命令コードの要素
は、レジスタからSFRへのデータのライトであるが、
SFRがFLMCに固定されるため、ステップ602〜
605で命令コードデータテーブルへ書き込まれた命令
コードがFLMCへのライト命令である場合は、可変す
るデータを含まない確定したコードになる。従って、比
較した結果が一致すれば、一致データがリターンされ
(ステップ608)、一致しなければ不一致データがリ
ターンされて命令コード解析処理を終了する(ステップ
609)。
FIG. 6 is a flowchart for explaining the instruction code analysis processing in step 507 of FIG. Referring to FIG. 6, first, instruction code analysis of a write instruction to the SFR is started from a state immediately after a fail-safe break (step 601). The program counter is decremented (step 602), the memory at the address indicated by the program counter is read (step 603), and the contents are written in the instruction code data table (step 60).
4). This is repeated for the number of instruction code bytes of the write instruction to the SFR (step 605). As a result, instruction code data is created, and this is compared with the instruction code pattern data (step 606). As the instruction code pattern data, an instruction code of a write instruction to FLMC, which is an SFR, is stored. The element of the instruction code is writing data from the register to the SFR,
Since the SFR is fixed to the FLMC, steps 602 to
If the instruction code written in the instruction code data table in 605 is a write instruction to the FLMC, it becomes a fixed code that does not include variable data. Therefore, if the compared results match, the matched data is returned (step 608), and if not, the unmatched data is returned and the instruction code analysis process ends (step 609).

【0046】図5に戻り、ALTプログラム116は、
命令コード解析処理(ステップ507)からリターンさ
れた値により、該当命令比較を行う(ステップ50
8)。該当命令と一致していた場合には、エミュレーシ
ョンするコマンド番号が何であるかをチェックし(ステ
ップ509)、コマンド番号に従って、1バイトライト
(ステップ510A)、nバイトライト(ステップ51
0B)、ブロックイレース(ステップ510C)等のコ
マンド処理をエミュレーションする。
Returning to FIG. 5, the ALT program 116
Based on the value returned from the instruction code analysis processing (step 507), the corresponding instruction is compared (step 50).
8). If the instruction matches, the command number to be emulated is checked (step 509), and 1-byte write (step 510A) and n-byte write (step 51) according to the command number.
0B), emulate command processing such as block erase (step 510C).

【0047】ALTプログラム116はこのようにして
エミュレーションすべきコマンドの処理を行い、コマン
ド処理が終了すると、フラッシュファーム207へ処理
を戻すために、割込リターンによるユーザプログラム復
帰の命令を実行し(ステップ511)、エミュレーショ
ンを終了する。
The ALT program 116 processes the command to be emulated in this manner. When the command processing is completed, the ALT program 116 executes an instruction for returning the user program by an interrupt return in order to return the processing to the flash firmware 207 (step 511), end the emulation.

【0048】本実施形態ではこのようにして、フェール
セーフブレークをトリガとしてALTプログラム116
によるエミュレーションを起動することとしたので、制
御を一旦制御用CPU105に戻すことによる速度ネッ
クを発生することなく、またユーザ資源であるイベント
ブレークを使用することなく、ALTプログラム116
によるソフトウェアエミュレーションを実行することが
できる。
In this embodiment, the ALT program 116 is triggered by the fail-safe break as described above.
The emulation by the ALT program 116 is started without causing a speed bottleneck by returning control to the control CPU 105 once and without using an event break which is a user resource.
Software emulation can be performed.

【0049】以上、フラッシュメモリへのセルフ書き込
みを例にとって本発明の実施形態について説明したが、
本発明の適用はこの実施形態に限られるものではなく、
エミュレーション用CPUで直接エミュレートできない
他の処理のALTプログラムによるエミュレーションに
も同様に適用できる。
The embodiment of the present invention has been described above by taking self-writing to a flash memory as an example.
The application of the present invention is not limited to this embodiment,
The present invention can be similarly applied to emulation using an ALT program for other processing that cannot be directly emulated by the emulation CPU.

【0050】図7は、マイクロプロセッサのCPUをス
タンバイモードに移行させる処理を行う場合の図2のス
テップ215におけるALTプログラム116のエミュ
レーション処理を説明するフローチャートである。
FIG. 7 is a flow chart for explaining the emulation processing of the ALT program 116 in step 215 of FIG. 2 when the processing for shifting the CPU of the microprocessor to the standby mode is performed.

【0051】エミュレーションの開始に当たって、エク
ゼキュータは図4のステップ401〜405と同様にし
て、フェールセーフブレークを変更し、エミュレーショ
ン対象CPUをスタンバイモードに移行させるための特
定SFRへの書き込みをSFRイリーガルアクセスに設
定しておく。当該特定SFRへの書き込みがフェールセ
ーフ検出用メモリ107で検出され、制御がALTプロ
グラム116に移行し、エミュレーション処理が開始さ
れると(ステップ701)、次にブレーク要因がチェッ
クされる(ステップ702、703)。ここでチェック
したブレーク要因がスナップ,スタブによるブレークで
あった場合には、スナップ,スタブ処理を行い(ステッ
プ704)、割込リターンによりユーザプログラムに復
帰する(ステップ709)。スナップ、スタブ以外の通
常のブレークであった場合には、ブレークの要因をより
詳細に調べる。
At the start of emulation, the executor changes the fail-safe break in the same manner as in steps 401 to 405 in FIG. Set it. When the writing to the specific SFR is detected by the fail-safe detection memory 107, the control is shifted to the ALT program 116, and the emulation processing is started (step 701). Then, the break factor is checked (step 702, 703). If the break factor checked here is a break due to snap and stub, snap and stub processing is performed (step 704), and the program returns to the user program by an interrupt return (step 709). If it is a normal break other than snap and stub, investigate the cause of the break in more detail.

【0052】本実施形態ではスナップ、スタブ以外の通
常のブレークであった場合は直ちに命令コード解析(ス
テップ705)を行っている。図5に示すフラッシュメ
モリのセルフ書き込みのエミュレーションに関する実施
形態ではステップ505、506でプログラムカウンタ
の値が特定のアドレスに配置してある命令の直後を示し
ていることを確認していたが、スタンバイモードへの移
行のように、CPUの特殊な状態への移行であり、命令
も専用コードとなり他のSFRへのライト命令と完全に
区別できる場合は、命令のアドレスが固定されてなくて
もスタンバイモードへの状態遷移のための特定SFRへ
のライトと判断できるので、本実施形態のように直接命
令コード解析処理(ステップ705)を行うこととして
もよい。
In this embodiment, when a normal break other than the snap and stub is performed, the instruction code is analyzed immediately (step 705). In the embodiment relating to the self-writing emulation of the flash memory shown in FIG. 5, it has been confirmed in steps 505 and 506 that the value of the program counter indicates immediately after the instruction located at a specific address. When the instruction becomes a special code and can be completely distinguished from the write instruction to the other SFRs as in the transition to the standby mode, even if the address of the instruction is not fixed, the standby mode Since it can be determined that the data is written to the specific SFR for the state transition to, the instruction code analysis processing (step 705) may be directly performed as in the present embodiment.

【0053】図5のステップ505の命令コード解析と
同様に図6のステップ601〜609に従ってステップ
705の命令コード解析が行われ、当該命令がスタンバ
イモードへの状態遷移の特定SFRへのライト命令であ
るかの比較(ステップ706)を行う。比較結果が一致
すれば、当該特定SFRへライトされたデータをチェッ
クし(ステップ707)、その内容に従って、スタンバ
イモードのHALT(ステップ708A)、スタンバイ
モードのIDLE(ステップ708B)、スタンバイモ
ードのSTOP(ステップ708C)の3つの状態の何
れかのエミュレーションを実行する。ALTプログラム
によるエミュレーション処理が終了しスタンバイ状態か
ら通常状態に戻った後、割込リターンによるユーザプロ
グラムへの復帰を行い(709)、エミュレーションを
終了する。
The instruction code analysis in step 705 is performed in accordance with steps 601 to 609 in FIG. 6 in the same manner as the instruction code analysis in step 505 in FIG. 5, and the instruction is a write instruction to the specific SFR of the state transition to the standby mode. A comparison is made (step 706). If the comparison results match, the data written to the specific SFR is checked (step 707), and the HALT in the standby mode (step 708A), the IDLE in the standby mode (step 708B), and the STOP in the standby mode (step 708A) are performed according to the contents. The emulation of any of the three states of step 708C) is performed. After the emulation processing by the ALT program is completed and the normal state is returned from the standby state, the process returns to the user program by an interrupt return (709), and the emulation is terminated.

【0054】[0054]

【発明の効果】以上述べたように、本発明ではインサー
キットエミュレータにおけるALTプログラムによるソ
フトウェアエミュレーションのトリガとして、イベント
ブレークに代えてフェールセーフブレークの1つである
SFRイリーガルアクセスを用いることとした。
As described above, in the present invention, the SFR illegal access, which is one of the fail-safe breaks, is used instead of the event break as the trigger of the software emulation by the ALT program in the in-circuit emulator.

【0055】このことにより、ALTプログラム自体で
エミュレーションのトリガを判断することが可能とな
り、プログラム制御をエミュレーション用CPUに比べ
て動作クロックの遅い制御用CPUに戻すことなくエミ
ュレーション用CPUだけで処理を行うことができるよ
うになリ、例えば、実際のCPUで約50μsの処理時
間となっているフラッシュメモリのセルフ書き込み処理
についてもほぼ同等の処理時間でエミュレートすること
が可能となり、従来のイベントブレークをトリガとして
いた場合の速度ネックの問題を解消することができる効
果を奏する。
As a result, the trigger of emulation can be determined by the ALT program itself, and processing is performed only by the emulation CPU without returning program control to the control CPU whose operation clock is slower than that of the emulation CPU. For example, it is possible to emulate the self-writing process of the flash memory, which has a processing time of about 50 μs with an actual CPU, in almost the same processing time, and to perform the conventional event break. This has the effect of eliminating the problem of speed bottleneck when using as a trigger.

【0056】また、ユーザの使用できるエミュレーショ
ン資源であるイベントをALTプログラムによる特定の
ソフトウェアエミュレーションのために予約する必要が
なくなり、ユーザにとってより自由度の高い柔軟なエミ
ュレーションの実施が可能となった。
Further, it is not necessary to reserve an event, which is an emulation resource that can be used by the user, for a specific software emulation by the ALT program, so that the emulation can be performed more flexibly and flexibly for the user.

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

【図1】インサーキットエミュレータの構成を示すブロ
ック図である。
FIG. 1 is a block diagram showing a configuration of an in-circuit emulator.

【図2】本発明の実施形態の制御の移行処理を示す変遷
図である。
FIG. 2 is a transition diagram showing a transition process of control according to the embodiment of the present invention.

【図3】図1のエクゼキュータ117の動作環境を説明
するフローチャートである。
FIG. 3 is a flowchart illustrating an operation environment of the executor 117 of FIG.

【図4】図3のステップ312で行われるのコマンド処
理の詳細を説明するフローチャートである。
FIG. 4 is a flowchart illustrating details of a command process performed in step 312 of FIG. 3;

【図5】図2のステップ215におけるエミュレーショ
ン処理の詳細を示すフローチャートである。
FIG. 5 is a flowchart showing details of an emulation process in step 215 of FIG. 2;

【図6】図5のステップ507における命令コード解析
を説明するフローチャートである。
FIG. 6 is a flowchart illustrating instruction code analysis in step 507 of FIG. 5;

【図7】本発明の他の実施形態におけるALTプログラ
ム116のエミュレーション処理を説明するフローチャ
ートである。
FIG. 7 is a flowchart illustrating emulation processing of an ALT program according to another embodiment of the present invention.

【図8】従来技術におけるフラッシュメモリのセルフ書
き込みのエミュレーションの際の、制御の移行処理を示
す変遷図である。
FIG. 8 is a transition diagram showing a transition process of control at the time of emulation of self-writing of a flash memory according to a conventional technique.

【図9】従来技術におけるフラッシュメモリのセルフ書
き込みのエミュレーションの際の、制御の流れを示すフ
ローチャートである。
FIG. 9 is a flowchart showing a control flow when emulating self-writing of a flash memory according to a conventional technique.

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

101、801 エミュレーション用CPU 102 エミュレーションメモリ 103 ALTメモリ 104 2ポートメモリ 105、802 制御用CPU 106 システムメモリ 107 フェイルセーフ検出用メモリ 108 イベント検出器 109 エミュレーション用CPU制御信号 110 制御用CPU制御信号 111 エミュレーション用CPU用アドレスバス 112 エミュレーション用CPU用データバス 113 制御用CPU用アドレスバス 114 制御用CPU用データバス 115 ユーザプログラム 116、804 ALTプログラム 117、805 エクゼキュータ 206、806 ブートプログラム 207、807 フラッシュファーム 101, 801 Emulation CPU 102 Emulation memory 103 ALT memory 104 2-port memory 105, 802 Control CPU 106 System memory 107 Fail-safe detection memory 108 Event detector 109 Emulation CPU control signal 110 Control CPU control signal 111 For emulation CPU address bus 112 Emulation CPU data bus 113 Control CPU address bus 114 Control CPU data bus 115 User program 116, 804 ALT program 117, 805 Executor 206, 806 Boot program 207, 807 Flash firmware

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平9−128262(JP,A) 特開 平6−214824(JP,A) 特開 平8−153018(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 11/22 - 11/34 ────────────────────────────────────────────────── ─── Continuation of the front page (56) References JP-A-9-128262 (JP, A) JP-A-6-214824 (JP, A) JP-A 8-153018 (JP, A) (58) Field (Int.Cl. 6 , DB name) G06F 11/22-11/34

Claims (7)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】マイクロプロセッサのCPUの動作のエミ
ュレーションを行うエミュレーション用CPUと、この
エミュレーションの実行を制御する制御用CPUを備え
たインサーキットエミュレータにおいて、前記マイクロ
プロセッサのCPUの特定の特殊機能レジスタ(以下、
SFRという。)に値を書き込むことによって起動され
る前記マイクロプロセッサのCPUの動作を、前記エミ
ュレーション用CPUで動作する制御用プログラムであ
るALTプログラムによりエミュレートする方法におい
て、 前記制御用CPUで動作する制御用プログラムであるエ
クゼキュータが、前記エミュレーション用CPUで動作
するユーザプログラムの実行を開始するコマンドを実行
するに当たって、フェールセーフブレーク条件を変更し
当該特定SFRへのアクセスをSFRイリーガルアクセ
スに設定するフェールセーフブレーク条件の変更段階
と、 前記ユーザプログラムがブレークし前記ALTプログラ
ムに制御が移行した場合に、このALTプログラムにお
いてそのブレーク要因を確認し、このブレーク要因が当
該特定SFRへのアクセスである場合には、制御を前記
エクゼキュータに戻すことなく当該特定SFRへのアク
セスに対応する前記マイクロプロセッサのCPUの動作
をこのALTプログラムが実行するエミュレーション処
理段階とを備えたことを特徴とするインサーキットエミ
ュレータにおけるエミュレーション方法。
An in-circuit emulator comprising an emulation CPU for emulating the operation of a CPU of a microprocessor and a control CPU for controlling the execution of the emulation. Less than,
It is called SFR. A method of emulating the operation of the CPU of the microprocessor started by writing a value to the ALT program by an ALT program which is a control program operated by the emulation CPU, wherein the control program operated by the control CPU In executing the command to start the execution of the user program operating on the emulation CPU, the executor changes the fail-safe break condition and sets the access to the specific SFR to the SFR illegal access. A change step; and when the user program breaks and control is transferred to the ALT program, the ALT program confirms the cause of the break, and determines whether the break cause is an access to the specific SFR. In this case, the ALT program executes an emulation processing step of executing the operation of the CPU of the microprocessor corresponding to the access to the specific SFR without returning control to the executor. Emulation method in a circuit emulator.
【請求項2】前記フェールセーフブレーク条件の変更段
階は、前記コマンドがエミュレーションの開始を指示す
るコマンドであり、かつ、エミュレーションの対象であ
る前記マイクロプロセッサのCPUが、前記ALTプロ
グラムによるエミュレーションを必要とするCPUであ
る場合に限り実行されることを特徴とする請求項1に記
載のインサーキットエミュレータにおけるエミュレーシ
ョン方法。
2. The step of changing the fail-safe break condition, wherein the command is a command for instructing start of emulation, and the CPU of the microprocessor to be emulated needs emulation by the ALT program. 2. The emulation method in an in-circuit emulator according to claim 1, wherein the emulation method is executed only when the CPU performs the emulation.
【請求項3】前記エミュレーション処理段階は、 前記ALTプログラムが、前記ブレークの要因がSFR
イリーガルアクセスであることを確認するブレーク要因
確認段階と、 当該ブレーク要因がSFRイリーガルアクセスである場
合に対応する前記ユーザプログラムの命令コードを解析
する命令コード解析処理段階と、 前記命令コード解析処理段階において前記命令コードが
当該特定SFRへのアクセスであることが確認された場
合に前記ALTプログラムがこの命令コードに相当する
前記マイクロプロセッサのCPUの動作をエミュレート
するエミュレーション実行段階とを有することを特徴と
する請求項1に記載のインサーキットエミュレータにお
けるエミュレーション方法。
3. The emulation processing step, wherein the ALT program determines that the break factor is SFR.
A break factor confirmation stage for confirming that the access is illegal, an instruction code analysis process for analyzing an instruction code of the user program corresponding to a case where the break factor is an SFR illegal access, and an instruction code analysis process. An emulation execution step of emulating the operation of the CPU of the microprocessor corresponding to the instruction code, when it is confirmed that the instruction code is an access to the specific SFR. An emulation method for the in-circuit emulator according to claim 1.
【請求項4】さらに、前記命令コード解析処理段階に先
立ち、前記エミュレーション用CPUのプログラムカウ
ンタの値を参照し、前記ブレークが前記ユーザプログラ
ムで実行されるファームウェアの特定のアドレスに配置
されている命令の直後で発生していることを確認する段
階を有し、前記ブレークが前記特定のアドレスに配置さ
れた命令の直後で発生している場合に限り前記命令コー
ド解析処理段階に移行することを特徴とする請求項3に
記載のインサーキットエミュレータにおけるエミュレー
ション方法。
Further, prior to the instruction code analyzing step, an instruction in which the break is located at a specific address of firmware executed by the user program is referred to by referring to a value of a program counter of the emulation CPU. And confirming that the break has occurred immediately after the instruction, and proceeding to the instruction code analysis processing step only when the break has occurred immediately after the instruction located at the specific address. The emulation method in the in-circuit emulator according to claim 3, wherein
【請求項5】前記命令コード解析手段は、前記プログラ
ムカウンタの値をさかのぼり、当該特定SFRへのライ
ト命令に相当する長さの命令コードを復元し、復元した
命令コードが特定のパターンと一致するか否かを解析す
ることを特徴とする請求項3に記載のインサーキットエ
ミュレータにおけるエミュレーション方法。
5. The instruction code analysis means traces back the value of the program counter, restores an instruction code having a length corresponding to a write instruction to the specific SFR, and the restored instruction code matches a specific pattern. 4. The emulation method in an in-circuit emulator according to claim 3, wherein whether or not the emulation is performed is analyzed.
【請求項6】前記マイクロプロセッサのCPUの特定S
FRに値を書き込むことによって起動される前記マイク
ロプロセッサのCPUの動作は、当該マイクロプロセッ
サに設けられるフラッシュメモリへのセルフ書き込み動
作であることを特徴とする請求項1に記載のインサーキ
ットエミュレータにおけるエミュレーション方法。
6. A method for specifying a CPU of the microprocessor.
2. The emulation in an in-circuit emulator according to claim 1, wherein the operation of the CPU of the microprocessor activated by writing a value to FR is a self-write operation to a flash memory provided in the microprocessor. Method.
【請求項7】前記マイクロプロセッサのCPUの特定S
FRに値を書き込むことによって起動される前記マイク
ロプロセッサのCPUの動作は、このマイクロプロセッ
サのCPU自身の動作状態をスタンバイモードに遷移さ
す動作であることを特徴とする請求項1に記載のインサ
ーキットエミュレータにおけるエミュレーション方法。
7. A method for specifying a CPU of the microprocessor.
2. The in-circuit according to claim 1, wherein the operation of the CPU of the microprocessor started by writing a value to FR is an operation of transitioning an operation state of the CPU of the microprocessor to a standby mode. Emulation method in the emulator.
JP9156112A 1997-05-30 1997-05-30 Emulation method for in-circuit emulator Expired - Fee Related JP2978841B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9156112A JP2978841B2 (en) 1997-05-30 1997-05-30 Emulation method for in-circuit emulator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9156112A JP2978841B2 (en) 1997-05-30 1997-05-30 Emulation method for in-circuit emulator

Publications (2)

Publication Number Publication Date
JPH10333934A JPH10333934A (en) 1998-12-18
JP2978841B2 true JP2978841B2 (en) 1999-11-15

Family

ID=15620582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9156112A Expired - Fee Related JP2978841B2 (en) 1997-05-30 1997-05-30 Emulation method for in-circuit emulator

Country Status (1)

Country Link
JP (1) JP2978841B2 (en)

Also Published As

Publication number Publication date
JPH10333934A (en) 1998-12-18

Similar Documents

Publication Publication Date Title
EP0814404B1 (en) Debugging apparatus for debugging a program
US6075941A (en) Microcomputer
US5630049A (en) Method and apparatus for testing software on a computer network
US20070118725A1 (en) CPU life-extension apparatus and method
US6026503A (en) Device and method for debugging systems controlled by microprocessors
US5689684A (en) Method and apparatus for automatically reconfiguring a host debugger based on a target MCU identity
US8806474B2 (en) Computer-hardware, life-extension apparatus and method
US20040098639A1 (en) Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems
KR930002322B1 (en) Data processing systems
JPH06242987A (en) Method and equipment for making host computer execute succession of normal processing of microprocessor in computer unit
KR100766863B1 (en) Software installation system and method using removable storage device
US5003468A (en) Guest machine execution control system for virutal machine system
JP2978841B2 (en) Emulation method for in-circuit emulator
US6182207B1 (en) Microcontroller with register system for the indirect accessing of internal memory via auxiliary register
JPH10326203A (en) Debugging devices capable of taking over operation from each other between hardware environments while running programs therein
JP3110418B2 (en) In-circuit emulator and control method
JP3424548B2 (en) Software logic simulator for embedded devices
JP2912269B2 (en) Debug system and method
JP2002366378A (en) Method and device for debugging program and storage medium
JP2701799B2 (en) Microcomputer
JP2954006B2 (en) Emulation device and emulation method
JPH0934795A (en) Copy protection method for cpu program
JP3120841B2 (en) In-circuit emulator
JP3166667B2 (en) Emulation microcomputer
JPH10312307A (en) Emulator for computer system

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090910

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090910

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100910

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100910

Year of fee payment: 11

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20100910

Year of fee payment: 11

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110910

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110910

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120910

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20120910

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 14

LAPS Cancellation because of no payment of annual fees