[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2907808B1 - Flash memory emulation device and debug system using the same - Google Patents

Flash memory emulation device and debug system using the same

Info

Publication number
JP2907808B1
JP2907808B1 JP8743798A JP8743798A JP2907808B1 JP 2907808 B1 JP2907808 B1 JP 2907808B1 JP 8743798 A JP8743798 A JP 8743798A JP 8743798 A JP8743798 A JP 8743798A JP 2907808 B1 JP2907808 B1 JP 2907808B1
Authority
JP
Japan
Prior art keywords
flash memory
command
target
emulation
cpu
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
JP8743798A
Other languages
Japanese (ja)
Other versions
JPH11282712A (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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP8743798A priority Critical patent/JP2907808B1/en
Priority to KR1019990011083A priority patent/KR19990078412A/en
Application granted granted Critical
Publication of JP2907808B1 publication Critical patent/JP2907808B1/en
Publication of JPH11282712A publication Critical patent/JPH11282712A/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Human Computer Interaction (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Read Only Memory (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【要約】 【課題】 フラッシュメモリの動作には特有のコマンド
シーケンスが要求されるため、他の種類のROMエミュ
レータを用いることができない。 【解決手段】 ターゲット基板4から入力されるフラッ
シュメモリコマンドシーケンスをフラッシュメモリコマ
ンド解析部18が検知し、それに応じた処理をコントロ
ーラ12が制御プログラム用メモリ14に格納されたプ
ログラムに基づき実行し、実体はRAMであるエミュレ
ーションメモリ16をターゲット基板4からはフラッシ
ュメモリそのものであるように見せる。フラッシュメモ
リコマンド解析部18は書き換え可能なFPLA上に形
成され、メーカー毎のコマンドシーケンスの相違を容易
に吸収することができる。デバッガコマンド検出部10
2は、ターゲットCPU30からの要求を検出し、ター
ゲット基板4側からエミュレーションメモリ16をRA
Mとして取り扱うことを可能とする。
A specific command sequence is required for the operation of a flash memory, so that other types of ROM emulators cannot be used. SOLUTION: A flash memory command analysis unit 18 detects a flash memory command sequence input from a target substrate 4, and a controller 12 executes processing corresponding to the detected command sequence based on a program stored in a control program memory 14. Shows the emulation memory 16 as a RAM from the target substrate 4 as if it were a flash memory itself. The flash memory command analysis unit 18 is formed on a rewritable FPLA, and can easily absorb a difference in a command sequence for each manufacturer. Debugger command detector 10
2 detects a request from the target CPU 30 and reads the emulation memory 16 from the target substrate 4 side.
It can be handled as M.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、フラッシュメモリ
の動作をエミュレーションするフラッシュメモリエミュ
レーション装置及びそれを用いたデバッグシステムに関
する。
[0001] 1. Field of the Invention [0002] The present invention relates to a flash memory emulation device for emulating the operation of a flash memory and a debugging system using the same.

【0002】[0002]

【従来の技術】フラッシュメモリは、記憶内容を電気的
に一括消去し、またデータを書き込むことが可能なRO
M(読み出し専用メモリ)である。このような特徴は、
製品の開発におけるターンアラウンドタイムの低減や、
データを変えた多種の製品を比較的少量生産する場合
や、後で記憶内容の変更を可能としておく製品などに特
に有利である。一方、フラッシュメモリにおいては、そ
の記憶内容の保護のために、記憶内容の一括消去、書き
込みには所定のコマンドシーケンスが必要とされる。
2. Description of the Related Art A flash memory is an RO capable of electrically erasing stored contents and writing data.
M (read only memory). These features are:
Reduction of turnaround time in product development,
This is particularly advantageous in the case of producing a relatively small amount of various products with changed data, or in a product in which stored contents can be changed later. On the other hand, in a flash memory, a predetermined command sequence is required for batch erasing and writing of stored contents in order to protect the stored contents.

【0003】フラッシュメモリは、例えばCPU(中央
演算処理ユニット)を有したシステムに用いられ、その
システムで用いるプログラムを格納される。開発段階に
おいてはこのプログラムは確定したものではなく、しば
しば不都合が発見され修正される。
A flash memory is used in a system having, for example, a CPU (Central Processing Unit), and stores a program used in the system. During the development phase, the program is not finalized, and inconveniences are often found and corrected.

【0004】この不都合を発見するためのデバッグ作業
においては、プログラムを所望の位置で停止させて、そ
のときのシステムの状態の妥当性を検証することが行わ
れる。そのため、デバッグ作業においては、プログラム
にブレーク命令を随時書き込んで、プログラムの実行を
制御するといった手法が用いられる。このような作業に
は、フラッシュメモリはあまり適していない。というの
は、フラッシュメモリはチップ全体、又はブロック単位
といった所定のデータのまとまりでしか消去することが
できないからである。つまり、デバッグにおいてあるプ
ログラムステップをブレーク命令に書き替えたり、また
再び元の命令に戻したりする度に、書き替える必要のな
いデータが大量に消去され、またそれらを書き込まなけ
ればならず効率が悪い。
[0004] In a debugging operation for finding this inconvenience, a program is stopped at a desired position and the validity of the state of the system at that time is verified. Therefore, in the debugging work, a technique of writing a break instruction into the program as needed to control the execution of the program is used. Flash memory is not well suited for such tasks. This is because the flash memory can be erased only in a predetermined data unit such as the whole chip or a block unit. In other words, every time a program step is rewritten to a break instruction in debugging or returned to the original instruction again, a large amount of data that does not need to be rewritten is erased, and these must be written, which is inefficient. .

【0005】そのため、従来は、開発段階のシステムは
フラッシュメモリに格納されたプログラムのコピーを格
納することができるようにRAM(random access memo
ry)を備えていた。デバッグにおいては、その対象とな
るプログラムがフラッシュメモリから読み出され、この
RAMに格納される。そしてシステムのCPUはこのR
AMに格納されたプログラムを読み出して実行し、また
必要に応じてそのあるステップをブレーク命令に置き換
えたりする操作を行っていた。
Conventionally, a system at the development stage has been designed so that a random access memo (RAM) can be stored so that a copy of a program stored in a flash memory can be stored.
ry). In debugging, a target program is read from the flash memory and stored in the RAM. And the CPU of the system
An operation of reading and executing a program stored in the AM and replacing a certain step with a break instruction as necessary has been performed.

【0006】ちなみに、上述したROMに格納されたプ
ログラムを、デバッガプログラムから直接変更できない
ということに関しては、マスクROM、他の例えば紫外
線消去型などのEPROM(erasable programmable RO
M)についても同様である。例えば、マスクROMにお
いては、異なる記憶内容のものは別途、マスクを制作し
て製造し直す必要があり、コストもターンアラウンドタ
イムも非常に大きくなる。またEPROMでは記憶内容
を書き替えるために、基板から取り外してROMライタ
といった装置に装着する必要があり、手間がかかった
り、EPROMを基板から取り外し可能とするアダプタ
を用いるためコストが増加するという問題が生じる。
Incidentally, regarding the fact that the program stored in the above-mentioned ROM cannot be directly changed from the debugger program, a mask ROM or another EPROM (erasable programmable ROM) such as an ultraviolet erasing type is used.
The same applies to M). For example, in a mask ROM, it is necessary to separately manufacture and remanufacture a mask having different storage contents, and the cost and the turnaround time become extremely large. In addition, EPROMs need to be removed from the board and attached to a device such as a ROM writer in order to rewrite the stored contents, which is troublesome and increases the cost because an adapter that allows the EPROM to be removed from the board is used. Occurs.

【0007】しかし、これら他のROMについてはそれ
らの動作をエミュレーションする装置が存在するので、
これらの問題も、またデバッグのためシステムにRAM
を別段、搭載するという必要も生じない。
However, there is a device for emulating the operation of these other ROMs.
These problems are also added to the system RAM for debugging.
There is no need to separately mount the.

【0008】そのような他のROMに対する従来のエミ
ュレーション装置は、例えばROMインサーキットエミ
ュレータ(ROM in-circuit emulator)と呼ばれてい
る。ROMインサーキットエミュレータは、対象となる
ROMが用いられるシステム(ターゲットシステム)に
プローブにより接続される。プローブは例えば先端にア
ダプターを有し、ターゲットシステムの基板上のROM
搭載位置に接続される。ROMインサーキットエミュレ
ータの本体には、RAMが搭載される。このRAMに
は、エミュレーションしようとするROMと同等の内容
が、ROMインサーキットエミュレータに接続されるコ
ンピュータから書き込まれる。
A conventional emulation device for such another ROM is called, for example, a ROM in-circuit emulator. The ROM in-circuit emulator is connected by a probe to a system (target system) in which the target ROM is used. The probe has, for example, an adapter at the tip and a ROM on the target system board.
Connected to the mounting position. A RAM is mounted on the main body of the ROM in-circuit emulator. In this RAM, contents equivalent to the ROM to be emulated are written from a computer connected to the ROM in-circuit emulator.

【0009】ROMインサーキットエミュレータはター
ゲットシステムに接続され、以下のようにエミュレーシ
ョンを行う。つまり、ターゲットシステムが自分の基板
上に存在するはずのROMに対してアドレスを指定して
読み出し動作を行うと、その読み出しに係る信号はRO
Mインサーキットエミュレータ本体のRAMに伝達さ
れ、ROMと同等のデータがこのRAMから読み出さ
れ、ターゲットシステムに提供されるのである。
[0009] The ROM in-circuit emulator is connected to the target system and performs emulation as follows. In other words, when the target system performs a read operation by specifying an address for a ROM that should be present on its own board, a signal related to the read is output to the RO.
The data is transmitted to the RAM of the M-in-circuit emulator main body, and data equivalent to the ROM is read from the RAM and provided to the target system.

【0010】すなわち、他のROMに関しては、このよ
うなエミュレーション装置上のRAMを、ROMインサ
ーキットエミュレータに接続されたコンピュータから書
き替えることにより、ROMの作り直しや、基板から取
り外してデータを更新するといった手間を回避すること
が可能であった。
That is, with respect to another ROM, the RAM on such an emulation device is rewritten from a computer connected to the ROM in-circuit emulator, so that the ROM can be re-created or the data can be updated by removing the ROM from the board. It was possible to avoid trouble.

【0011】[0011]

【発明が解決しようとする課題】上述した従来のターゲ
ットシステムにデバッグのためのRAMを設けるという
方法は、製品においては、一般に不要なデバッグのため
に高価なRAMを搭載するのは無駄であるし、また製品
の小型化を図る上でも不利であるという問題があった。
一方で、製品においても、故障解析などにおいてデバッ
グ作業を行う必要性が生じることもあり得る。その場合
にRAMが設けられていないと、デバッグ作業を行うこ
とが困難となるという問題が生じる。
In the above-described method of providing a RAM for debugging in the conventional target system, it is generally useless to mount an expensive RAM for unnecessary debugging in a product. In addition, there is a problem that it is disadvantageous in reducing the size of the product.
On the other hand, also in a product, it may be necessary to perform a debugging operation in a failure analysis or the like. In this case, if no RAM is provided, there is a problem that it is difficult to perform a debugging operation.

【0012】また、フラッシュメモリは読み出しだけで
なく所定の手続によって消去、書き込み動作を行うこと
ができる。そのため、フラッシュメモリをエミュレーシ
ョンする装置は、それらの消去、書き込み動作をもエミ
ュレーションできる必要がある。しかし、従来の他のR
OMに用いられているエミュレーション装置は、ターゲ
ットシステムから読み出す動作のみに対応しており、フ
ラッシュメモリ特有の動作をエミュレーションするため
には用いることができないという問題があった。
The flash memory can perform erasing and writing operations by a predetermined procedure in addition to reading. Therefore, a device that emulates a flash memory needs to be able to emulate those erasing and writing operations. However, other conventional R
The emulation device used in the OM only supports the operation of reading from the target system, and cannot be used to emulate the operation unique to the flash memory.

【0013】本発明は上記問題点を解消するためになさ
れたもので、フラッシュメモリのエミュレーションに用
いることができるエミュレーション装置を提供し、ター
ゲットシステムにおいてデバッグのためにプログラムの
複製を保持するためのRAMを不要とし、かつ、そのエ
ミュレーション装置を用いて、製品においても容易なデ
バッグができるデバッグシステムの構成を可能とするこ
とを目的とする。
The present invention has been made to solve the above problems, and provides an emulation device that can be used for emulation of a flash memory, and a RAM for holding a copy of a program for debugging in a target system. It is an object of the present invention to make it possible to configure a debugging system that can easily debug a product by using the emulation device.

【0014】[0014]

【課題を解決するための手段】第1の発明に係るフラッ
シュメモリエミュレーション装置は、ターゲット回路に
接続され、前記ターゲット回路にて用いられるフラッシ
ュメモリの等価回路を構成するものであって、前記フラ
ッシュメモリの記憶内容の複製を格納するRAMと、
れぞれ前記フラッシュメモリに対するアドレス及びデー
タの組み合わせで表される複数のコマンドを含み前記タ
ーゲット回路から発行されフラッシュメモリの動作を選
択するコマンドシーケンスを検知するフラッシュメモリ
コマンド解析部と、前記RAMを、検知されたフラッシ
ュメモリ動作選択コマンドシーケンスに応じた動作で制
御するメモリ動作エミュレーション部とを有することを
特徴とする。
A flash memory emulation device according to a first aspect of the present invention is connected to a target circuit and constitutes an equivalent circuit of a flash memory used in the target circuit. and a RAM for storing a copy of the stored contents, its
Address and data for the flash memory, respectively.
And the flash memory command analyzing unit for detecting a command sequence for selecting the operation of the flash memory is issued from said target circuit comprises a plurality of commands, represented by a combination of data, the RAM, flash memory operations selected sensed A memory operation emulation unit that controls the operation according to a command sequence .

【0015】フラッシュメモリは、特定の動作を行うに
際し、所定のコマンドシーケンスの入力を必要とする。
本発明によれば、フラッシュメモリに当該特定の動作を
行わせるために発行されたコマンドシーケンスを、フラ
ッシュメモリコマンド解析部が検知する。メモリ動作エ
ミュレーション部は、その検知結果を通知され、検知さ
れたコマンドシーケンスに応じた動作をRAMに行わせ
る。これにより、装置はフラッシュメモリと等価な機能
を果たすことができる。
The flash memory requires input of a predetermined command sequence when performing a specific operation.
According to the present invention, the command sequence issued to cause the flash memory to perform the specific operation is detected by the flash memory command analysis unit. The memory operation emulation unit is notified of the detection result, and causes the RAM to perform an operation according to the detected command sequence . Thus, the device can perform a function equivalent to a flash memory.

【0016】第2の発明に係るフラッシュメモリエミュ
レーション装置は、フラッシュメモリを備え当該フラッ
シュメモリに格納されたユーザプログラムを実行するC
PUを有したターゲット回路に接続され、前記フラッシ
ュメモリの等価回路を構成し、前記ユーザプログラムの
デバッグに用いられるものであって、前記フラッシュメ
モリの記憶内容の複製を格納するRAMと、前記ターゲ
ット回路から発行されフラッシュメモリの動作を選択す
るコマンドシーケンスを検知するフラッシュメモリコマ
ンド解析部と、前記RAMを、検知されたフラッシュメ
モリ動作選択コマンドシーケンスに応じた動作で制御す
るメモリ動作エミュレーション部と、前記ターゲット回
路から発行されるフリーアクセス要求コマンドを検出
し、前記フラッシュメモリ動作選択コマンドに拘束され
ずに前記ターゲット回路から前記RAMへの自由な書き
込みを可能とするデバッガコマンド検出部とを有するこ
とを特徴とする。
A flash memory emulation device according to a second aspect of the present invention includes a flash memory emulation device for executing a user program stored in the flash memory.
A RAM that is connected to a target circuit having a PU, constitutes an equivalent circuit of the flash memory, and is used for debugging the user program, and stores a copy of the storage content of the flash memory; a memory operation emulation unit for controlling the flash memory command analyzer, the RAM, in operation according to the detected flash memory operation selected command sequence to detect the command sequence to select the published operating the flash memory from, A debugger command detection unit that detects a free access request command issued from the target circuit and enables free writing from the target circuit to the RAM without being restricted by the flash memory operation selection command. Features.

【0017】本発明に係るフラッシュメモリエミュレー
ション装置は、フラッシュメモリのエミュレーション動
作中は、実際のフラッシュメモリと同等の動作をする。
つまり、ターゲット回路からデータの書き換えを行う場
合には、チップ全体、又は書き換える部分に対応したブ
ロック単位でのデータの消去を行う必要がある。しか
し、プログラムのデバッグ作業を効率的に行うには、一
部のステップのみの書き換え動作が必要となる。本発明
によれば、ターゲット回路のCPUが発行するフリーア
クセス要求コマンドをデバッガコマンド検出部が検出す
ると、例えば、フラッシュメモリコマンド解析部の検知
結果に拘わらず、ターゲット回路のCPUから直接、R
AMにアクセス可能とできるように構成される。つま
り、フリーアクセス要求コマンドの検知以降、エミュレ
ーション装置は、単なるRAMと同様の動作をするよう
に切り替わる。デバッグシステムでは、このモードを利
用してデバッグ対象のプログラムの変更を容易に行うこ
とができる。
The flash memory emulation device according to the present invention performs the same operation as the actual flash memory during the emulation operation of the flash memory.
That is, when data is rewritten from the target circuit, it is necessary to erase data in the entire chip or in block units corresponding to the portion to be rewritten. However, in order to efficiently debug a program, a rewrite operation of only some steps is required. According to the present invention, when the debugger command detection unit detects the free access request command issued by the CPU of the target circuit, for example, the debugger command detection unit directly issues the R command from the CPU of the target circuit regardless of the detection result of the flash memory command analysis unit.
It is configured to be able to access the AM. That is, after the detection of the free access request command, the emulation device switches so as to perform the same operation as a simple RAM. The debug system can easily change the program to be debugged using this mode.

【0018】第3の発明に係るフラッシュメモリエミュ
レーション装置は、前記メモリ動作エミュレーション部
による前記RAMへのアクセス中は、前記ターゲット回
路のCPUを停止させる手段を有することを特徴とす
る。
A flash memory emulation device according to a third aspect of the present invention is characterized in that the flash memory emulation device has means for stopping a CPU of the target circuit while the memory operation emulation unit accesses the RAM.

【0019】エミュレーション装置のRAMは、メモリ
動作エミュレーション部からアクセスしている間、ター
ゲット回路のCPUからはアクセスができない。本発明
によれば、ターゲット回路のCPUがアクセス不能期間
にRAMへアクセスを試みることによって暴走すること
が回避される。
The RAM of the emulation device cannot be accessed by the CPU of the target circuit while being accessed by the memory operation emulation unit. According to the present invention, runaway due to the CPU of the target circuit attempting to access the RAM during the inaccessible period is avoided.

【0020】本発明に係るデバッガシステムにおいて
は、前記フラッシュメモリエミュレーション装置は、前
記ターゲット回路のCPUを停止させるターゲットCP
U停止手段と、フラッシュメモリに格納されるユーザプ
ログラムのデバッグを行う際に、前記ターゲット回路の
CPUへデバッグ指示を与えるデバッグ指示部とを有
し、前記デバッグ指示部は、前記ターゲットCPU停止
手段が前記CPUを停止させている間に、前記デバッグ
指示を前記RAMに格納し、前記CPUは、前記ターゲ
ットCPU停止手段による停止が解除された後、前記R
AMに格納された前記デバッグ指示を読み出すことによ
り前記デバッグ指示部から前記CPUへの通信が行われ
ることを特徴とする。
In the debugger system according to the present invention, the flash memory emulation device includes a target CP for stopping a CPU of the target circuit.
U-stop means, and a debug instructing unit for giving a debug instruction to a CPU of the target circuit when debugging a user program stored in a flash memory, wherein the debug instructing unit comprises: While the CPU is stopped, the debug instruction is stored in the RAM, and after the stop by the target CPU stop unit is released, the R
By reading the debug instruction stored in the AM, communication from the debug instruction unit to the CPU is performed.

【0021】本発明によれば、フラッシュメモリエミュ
レーション装置側のデバッグ指示部からターゲット回路
のCPUへのデバッグ時の指示の通信がRAMを介して
行われる。このRAMへのデバッグ指示の格納時には、
ターゲット回路のCPUは停止され、当該CPUがこの
期間にRAMへアクセスを試みることによって暴走する
ことが回避される。RAMに格納されたデバッグ指示
は、当該CPUがフラッシュメモリエミュレーション装
置をフラッシュメモリとして使用するために設けられた
通信線を介して、当該CPUにより読み出すことがで
き、デバッグ指示部と当該CPUとの間に別途、通信線
を設ける必要がない。
According to the present invention, communication of an instruction at the time of debugging from the debug instruction unit of the flash memory emulation device to the CPU of the target circuit is performed via the RAM. When storing the debugging instruction in the RAM,
The CPU of the target circuit is stopped, and runaway due to the CPU attempting to access the RAM during this period is avoided. The debug instruction stored in the RAM can be read by the CPU via a communication line provided for the CPU to use the flash memory emulation device as a flash memory. There is no need to provide a separate communication line.

【0022】第5の発明に係るフラッシュメモリエミュ
レーション装置においては、前記フラッシュメモリコマ
ンド解析部がハードウェア的に構成される論理回路であ
ることを特徴とする。
In a flash memory emulation device according to a fifth aspect of the present invention, the flash memory command analysis unit is a logic circuit configured as hardware.

【0023】本発明によれば、フラッシュメモリコマン
ド解析部は、実際のフラッシュメモリで行われるのと同
様に高速で、フラッシュメモリコマンドを解析すること
ができるので、その動作タイミングを実際のフラッシュ
メモリを用いた場合同様にエミュレーションすることが
できる。
According to the present invention, the flash memory command analysis unit can analyze a flash memory command at a high speed in the same manner as performed in an actual flash memory. When used, emulation can be performed similarly.

【0024】第6の発明に係るフラッシュメモリエミュ
レーション装置においては、前記フラッシュメモリコマ
ンド解析部が、プログラマブル半導体チップを用いて再
構成可能に構成されることを特徴とする。
In a flash memory emulation device according to a sixth aspect of the present invention, the flash memory command analysis unit is configured to be reconfigurable using a programmable semiconductor chip.

【0025】ある動作に対するフラッシュメモリコマン
ドは、例えばフラッシュメモリを供給するメーカーによ
って異なり得る。本発明によれば、フラッシュメモリコ
マンド解析部は例えばFPLA(field programmable l
ogic array)を用いて、外部から再構成可能に構成され
る。よって、フラッシュメモリコマンド解析部を再構成
することにより、異なるフラッシュメモリコマンドを有
するフラッシュメモリのエミュレーションを行うことが
できる。
Flash memory commands for certain operations may differ, for example, depending on the manufacturer supplying the flash memory. According to the present invention, the flash memory command analysis unit is, for example, an FPLA (field programmable
ogic array) so that it can be reconfigured from outside. Therefore, by reconfiguring the flash memory command analysis unit, emulation of a flash memory having different flash memory commands can be performed.

【0026】本発明に係るデバッグシステムは、上記第
4の発明にかかるフラッシュメモリエミュレーション装
置を用いて前記デバッグを行うデバッグシステムにおい
て、前記ターゲット回路のCPUにて実行されるデバッ
ガプログラムが、前記ユーザプログラム中に書き込まれ
た割り込み処理命令に応じて前記フリーアクセス要求コ
マンドを発行したとき、デバッグモードに移行し、前記
デバッグモードの終了に際し、前記RAMへの自由な書
き込みの権利を放棄するフリーアクセス放棄コマンドを
発行し、前記デバッガコマンド検出部は、前記フリーア
クセス放棄コマンドを検出し、前記ターゲット回路から
前記RAMへの自由な書き込みを禁止し、当該書き込み
を前記メモリ動作エミュレーション部の制御に委ねるこ
とを特徴とする。
According to a fourth aspect of the present invention, in the debugging system for performing the debugging using the flash memory emulation device according to the fourth aspect of the present invention, the debugger program executed by the CPU of the target circuit is configured to execute the user program. When the free access request command is issued in response to the interrupt processing instruction written therein, the mode shifts to a debug mode, and upon termination of the debug mode, a free access abandonment command for relinquishing the right of free writing to the RAM. The debugger command detection unit detects the free access abandonment command, prohibits free writing from the target circuit to the RAM, and leaves the writing to the control of the memory operation emulation unit. And

【0027】本発明によれば、デバッガプログラムは、
ターゲット回路のCPUにてユーザプログラムに書き込
まれた割り込み処理命令が実行されると、フリーアクセ
ス要求コマンドを発行する。デバッガコマンド検出部は
フリーアクセス要求コマンドを検出してフラッシュメモ
リのエミュレーションモードから、RAMへの自由なア
クセスが可能なフリーアクセスモードへの切替を行う。
一方、デバッガプログラムはデバッグモードに移行し、
フリーアクセスモードを利用して、例えば新たな割り込
み処理命令をユーザプログラムに書き込むといった処理
を行う。デバッガプログラムは必要なデバッグ処理を終
了する際にフリーアクセス放棄コマンドを発行する。デ
バッガコマンド検出部はフリーアクセス放棄コマンドを
検出してフリーアクセスモードから、通常のフラッシュ
メモリのエミュレーションモードへの復帰を行う。
According to the present invention, the debugger program comprises:
When the interrupt processing instruction written in the user program is executed by the CPU of the target circuit, a free access request command is issued. The debugger command detection unit detects the free access request command and switches from the emulation mode of the flash memory to the free access mode in which the RAM can be freely accessed.
On the other hand, the debugger program shifts to debug mode,
Using the free access mode, for example, a process of writing a new interrupt processing instruction in the user program is performed. The debugger program issues a free access abandonment command when necessary debug processing ends. The debugger command detector detects the free access abandonment command and returns from the free access mode to the normal flash memory emulation mode.

【0028】[0028]

【発明の実施の形態】[実施の形態1]次に、本発明の
実施形態であるフラッシュメモリエミュレータについて
図面を参照して説明する。
[First Embodiment] Next, a flash memory emulator according to an embodiment of the present invention will be described with reference to the drawings.

【0029】図1は、ターゲット基板に接続された本装
置の概念的なブロック図である。エミュレータ本体2
は、実際のフラッシュメモリを使用する基板であるター
ゲット基板4に接続される。またエミュレータ本体2
は、ホスト計算機6にも接続される。エミュレータ本体
2は、ホストインターフェース10、CPUで構成され
るコントローラ12、制御プログラム用メモリ14、R
AMで構成されるエミュレーションメモリ16、フラッ
シュメモリコマンド解析部18、電気的特性エミュレー
ション部20、バッファ22を含んで構成される。
FIG. 1 is a conceptual block diagram of the present apparatus connected to a target substrate. Emulator body 2
Are connected to a target substrate 4 which is a substrate using an actual flash memory. Emulator body 2
Is also connected to the host computer 6. The emulator main body 2 includes a host interface 10, a controller 12 including a CPU, a control program memory 14,
It includes an emulation memory 16 composed of an AM, a flash memory command analysis unit 18, an electrical characteristic emulation unit 20, and a buffer 22.

【0030】エミュレーションメモリ16は、基本的に
ターゲット基板4に搭載されるフラッシュメモリと同様
の内容を格納するためのものであり、制御プログラム用
メモリ14はコントローラ12で実行されるプログラム
を格納するためのものである。フラッシュメモリコマン
ド解析部18は、本装置の特徴的構成の一つである。フ
ラッシュメモリコマンド解析部18はターゲット基板4
から発行されるフラッシュメモリコマンドを検知するた
めの回路であり、実際のフラッシュメモリ内部での動作
に近い速度での処理を実現するために論理演算素子等を
用いてハードウェア的に構成される。その動作について
は後述する。電気的特性エミュレーション部20は、例
えばフラッシュメモリの各端子と同等のインピーダンス
を実現するための回路である。
The emulation memory 16 is for storing basically the same contents as the flash memory mounted on the target substrate 4, and the control program memory 14 is for storing the program executed by the controller 12. belongs to. The flash memory command analysis unit 18 is one of the characteristic configurations of the present device. The flash memory command analysis unit 18
This is a circuit for detecting a flash memory command issued from a flash memory, and is configured in hardware using a logical operation element or the like in order to realize processing at a speed close to actual operation inside the flash memory. The operation will be described later. The electric characteristic emulation unit 20 is a circuit for realizing the same impedance as each terminal of the flash memory, for example.

【0031】またエミュレータ本体2からはターゲット
バス24が伸びる。ターゲットバス24は例えばターゲ
ット基板4との接続が容易なようにフレキシブルなケー
ブルで構成される。ターゲットバス24のターゲット基
板4側はフラッシュメモリエミュレータアダプタ26に
接続され、フラッシュメモリエミュレータアダプタ26
はターゲット基板4の上に配置される。フラッシュメモ
リエミュレータアダプタ26とターゲット基板4上のフ
ラッシュメモリの取付位置とはプローブ28を介して接
続される。このようにして、エミュレータ本体2とター
ゲット基板4とは接続される。ちなみに、エミュレータ
本体2が接続される際には、ターゲット基板4上のフラ
ッシュメモリ取付位置には、実際のフラッシュメモリは
配置されない。
A target bus 24 extends from the emulator body 2. The target bus 24 is formed of, for example, a flexible cable so as to be easily connected to the target substrate 4. The target board 4 side of the target bus 24 is connected to a flash memory emulator adapter 26.
Are arranged on the target substrate 4. The flash memory emulator adapter 26 and the mounting position of the flash memory on the target substrate 4 are connected via a probe 28. Thus, the emulator main body 2 and the target substrate 4 are connected. Incidentally, when the emulator main body 2 is connected, the actual flash memory is not arranged at the flash memory mounting position on the target substrate 4.

【0032】ターゲット基板4は、フラッシュメモリ及
びCPU(ターゲットCPU)30を含んだ、例えば自
動車のエンジン制御回路やビデオカメラの制御回路とい
った製品の基板である。実際の製品では、ターゲットC
PU30が、当該基板上に配置されるフラッシュメモリ
からプログラムを読み出して実行したり、その他、フラ
ッシュメモリに対してブロックイレーズや書き込みとい
った操作を行う。
The target substrate 4 is a substrate of a product including a flash memory and a CPU (target CPU) 30, such as an automobile engine control circuit and a video camera control circuit. In the actual product, target C
The PU 30 reads out and executes a program from a flash memory disposed on the board, and performs other operations such as block erase and writing on the flash memory.

【0033】ホスト計算機6は、ホストインターフェー
ス10を介してコントローラ12に接続され、データの
ダウンロードなどを行う。
The host computer 6 is connected to the controller 12 via the host interface 10 and downloads data.

【0034】図2は、エミュレータ本体2の概略の回路
構成図である。この回路図には、図1に示した構成要素
の他、割込制御回路40、BUSYステータス制御回路
42、AND回路44、切替器46が示されている。
FIG. 2 is a schematic circuit configuration diagram of the emulator main body 2. In this circuit diagram, in addition to the components shown in FIG. 1, an interrupt control circuit 40, a BUSY status control circuit 42, an AND circuit 44, and a switch 46 are shown.

【0035】フラッシュメモリは、例えば、記憶内容を
電気信号によって一括消去したり、新たなデータを書き
込んだりすることができる。これらの操作を行うには、
所定のコマンド又は一連のコマンドからなるコマンドシ
ーケンスをフラッシュメモリに与える必要がある。図3
は、そのコマンドシーケンスの例を示す説明図である。
図3(a)はフラッシュメモリの全記憶内容を一括消去
するチップイレーズコマンドシーケンスの一例である。
ターゲットCPU30はチップイレーズを行うときに
は、これらの各コマンドS50〜S60を順次、フラッ
シュメモリに対して発行する。フラッシュメモリはこの
シーケンスを検知すると、チップイレーズを行う。各コ
マンドS50〜S60は、アドレスとデータの組み合わ
せで構成される。例えばコマンドS50は、フラッシュ
メモリのアドレス入力端子群にアドレス“5555
H”、データ入力端子群にデータ“AAH”を与えるこ
とを意味する。なお、このときフラッシュメモリのライ
トイネーブル端子WRはデータ書き込み可能に制御され
る。また図3(b)は、フラッシュメモリの記憶内容
を、ブロック単位で消去するブロックイレーズコマンド
シーケンスの一例である。このシーケンスは、コマンド
S62〜S72で構成され、そのうちコマンドS72の
アドレスには、消去しようとするブロックのアドレスが
指定される。例えばマスクROMといった他の種類のR
OMにおいては、電気的に記憶内容を消去することがで
きないので、当然このようなコマンドは不必要である。
本装置は、このフラッシュメモリ特有のコマンドシーケ
ンスによる動作をエミュレーションする機能を有してい
る。
In the flash memory, for example, the stored contents can be collectively erased by an electric signal or new data can be written. To perform these operations,
It is necessary to give a command sequence consisting of a predetermined command or a series of commands to the flash memory. FIG.
Is an explanatory diagram showing an example of the command sequence.
FIG. 3A shows an example of a chip erase command sequence for simultaneously erasing all the stored contents of the flash memory.
When performing the chip erase, the target CPU 30 sequentially issues these commands S50 to S60 to the flash memory. When the flash memory detects this sequence, it performs a chip erase. Each of the commands S50 to S60 is composed of a combination of an address and data. For example, the command S50 indicates that the address “5555”
H "means that data" AAH "is applied to the data input terminal group.At this time, the write enable terminal WR of the flash memory is controlled to be able to write data. This is an example of a block erase command sequence for erasing the stored contents in block units, which is composed of commands S62 to S72, of which the address of the command S72 specifies the address of the block to be erased. Other types of R, such as a mask ROM
In the OM, such a command is not necessary because the stored contents cannot be electrically erased.
This device has a function of emulating an operation based on a command sequence unique to the flash memory.

【0036】以下、図2を用い、上記ブロックイレーズ
処理を例に、本装置のフラッシュメモリエミュレータと
しての特徴的機能を説明する。エミュレータ本体2とタ
ーゲットCPU30との間はアドレスバス・データバス
80及びWR信号線82で接続される。フラッシュメモ
リコマンド解析部18は、アドレスバス・データバス8
1を監視し、フラッシュメモリ特有のコマンドシーケン
スを検知する。例えば、ターゲット基板4からブロック
イレーズコマンドシーケンスが入力されたとき、フラッ
シュメモリコマンド解析部18はそれを検知し、論理値
「真」を表す検出信号を信号線84へ送出する。
The characteristic functions of the present apparatus as a flash memory emulator will be described below with reference to FIG. 2 by taking the above-described block erase processing as an example. The emulator main body 2 and the target CPU 30 are connected by an address bus / data bus 80 and a WR signal line 82. The flash memory command analysis unit 18 includes the address bus / data bus 8
1 to detect a command sequence unique to the flash memory. For example, when a block erase command sequence is input from the target substrate 4, the flash memory command analyzer 18 detects this and sends out a detection signal indicating a logical value “true” to the signal line 84.

【0037】BUSYステータス制御回路42は、信号
線84の信号値が「真」となったことに基づいて、エミ
ュレーションメモリ16がブロックイレーズ処理中であ
ることを示すBUSYステータスをアドレスバス・デー
タバス81に出力する。これにより、ターゲットCPU
30へのフラッシュメモリのビジー状態の通知を模擬す
ることができる。
The BUSY status control circuit 42 provides a BUSY status indicating that the emulation memory 16 is performing the block erase process based on the fact that the signal value of the signal line 84 has become "true". Output to With this, the target CPU
The notification of the busy state of the flash memory to 30 can be simulated.

【0038】また、割込制御回路40は、信号線84の
信号値が「真」となったことに基づいて、コントローラ
12に対して割込要求信号を出力する。コントローラ1
2はこの割込要求信号を受けると、選択バッファをB
(バッファ22-2)からA(バッファ22-1)に切り替
え、自身からエミュレーションメモリ16へアドレスバ
ス・データバス86を介してアクセス可能な状態とす
る。同時に、コントローラ12は切替器46を接点A側
に切り替え、エミュレーションメモリ16へのWR信号
をコントローラ12から与えることができるようにす
る。これにより、コントローラ12は、エミュレーショ
ンメモリ16に対し書き込み可能となる。フラッシュメ
モリコマンド解析部18は、ターゲットCPU30から
のブロックイレーズコマンドシーケンスに含まれる消去
すべきブロック番号(これは上述したように例えば図3
(b)のコマンドS72のアドレス値として指定され
る。)も信号線84経由でコントローラ12に伝達す
る。コントローラ12はフラッシュメモリコマンド解析
部18から、ターゲットCPU30がブロックイレーズ
処理を要求していることの通知、及び消去すべきブロッ
ク番号を得て、エミュレーションメモリ16の該当ブロ
ックのセルに全てヌルデータを書き込み、当該ブロック
のそれまでのデータの消去を実行する。
Further, the interrupt control circuit 40 outputs an interrupt request signal to the controller 12 based on the fact that the signal value of the signal line 84 has become "true". Controller 1
2 receives this interrupt request signal and switches the selection buffer to B
(Buffer 22-2) is switched to A (Buffer 22-1), and the emulation memory 16 can be accessed from itself via the address bus / data bus 86. At the same time, the controller 12 switches the switch 46 to the contact A side so that the controller 12 can supply the WR signal to the emulation memory 16. As a result, the controller 12 can write to the emulation memory 16. The flash memory command analysis unit 18 determines the block number to be erased included in the block erase command sequence from the target CPU 30 (this is, for example, as shown in FIG.
It is specified as the address value of the command S72 of (b). ) Is also transmitted to the controller 12 via the signal line 84. The controller 12 obtains, from the flash memory command analysis unit 18, a notification that the target CPU 30 is requesting the block erase process, and obtains a block number to be erased, and writes all null data to cells of the corresponding block of the emulation memory 16, The previous data of the block is erased.

【0039】そして、この該当ブロックのデータの消去
が完了すると、コントローラ12は選択バッファ及び切
替器46をコントローラ12側からターゲットCPU3
0側へ切り替える。つまり、具体的には選択バッファが
AからBに、また切替器46の接点がAからBへ切り替
えられる。しかる後、コントローラ12はブロックイレ
ーズ処理の終了をフラッシュメモリコマンド解析部18
へ通知し、フラッシュメモリコマンド解析部18はこれ
に応じて信号線84のブロックイレーズ検出信号、割込
要求信号等を不活性な状態に戻す。BUSYステータス
制御回路42は、ブロックイレーズ検出信号が不活性に
なったことにより、BUSYステータス出力を停止す
る。
When the erasure of the data of the corresponding block is completed, the controller 12 switches the selection buffer and the switch 46 from the controller 12 to the target CPU 3.
Switch to 0 side. That is, specifically, the selection buffer is switched from A to B, and the contact point of the switch 46 is switched from A to B. Thereafter, the controller 12 notifies the flash memory command analysis unit 18 of the end of the block erase processing.
In response to this, the flash memory command analysis unit 18 returns the block erase detection signal, the interrupt request signal, and the like of the signal line 84 to the inactive state. The BUSY status control circuit 42 stops the BUSY status output when the block erase detection signal becomes inactive.

【0040】ちなみに、ターゲットCPU30は、アド
レスバス・データバス80を監視し、BUSYステータ
ス出力に基づいて、消去処理が完了したか否かを判断す
る。
Incidentally, the target CPU 30 monitors the address bus / data bus 80 and determines whether or not the erasing process has been completed based on the BUSY status output.

【0041】本装置では以上のように、フラッシュメモ
リの特徴的動作の一つであるブロックイレーズ処理をエ
ミュレートする。すなわち、この処理において、ターゲ
ットCPU30からはエミュレータ本体2がフラッシュ
メモリそのものであるように見える。なお、この例で
は、主として、コントローラ12及びBUSYステータ
ス制御回路42が、エミュレーションメモリ16をフラ
ッシュメモリそのものであるように見せるための制御を
行うメモリ動作エミュレーション部として機能してい
る。
As described above, the present device emulates the block erase process which is one of the characteristic operations of the flash memory. That is, in this process, the emulator main body 2 appears to the target CPU 30 as the flash memory itself. In this example, the controller 12 and the BUSY status control circuit 42 mainly function as a memory operation emulation unit that performs control for making the emulation memory 16 look like the flash memory itself.

【0042】もう一つ簡単な例として、ターゲットCP
U30からフラッシュメモリに対し、書き込みを行う場
合を説明する。フラッシュメモリはやはり所定のコマン
ドシーケンスを入力されることによりデータの書き込み
を受け付ける。本装置は、この書き込みのコマンドシー
ケンスがターゲットCPU30から入力されると、フラ
ッシュメモリコマンド解析部18がそれを検知し、AN
D回路44に書き込みを許可する論理値を与える。AN
D回路44は、ターゲットCPU30からWR信号線8
2を経由して入力されるライトイネーブル信号WRとフ
ラッシュメモリコマンド解析部18からの信号との論理
積を求め、その結果が「真」となる場合のみエミュレー
ションメモリ16のWR端子をライトイネーブルな状態
とする。つまり、AND回路44は、ターゲットCPU
30から書き込みのコマンドシーケンスが発行されたこ
とと、フラッシュメモリへのライトイネーブル信号が活
性状態にあることとの2つの条件が満たされたことを判
定して、エミュレーションメモリ16へのデータの書き
込みを許可する役目を果たしている。このAND回路4
4が許可することにより、ターゲットCPU30からの
書き込みデータはアドレスバス・データバス80、81
及び選択バッファBを介してエミュレーションメモリ1
6に書き込まれる。
As another simple example, the target CP
A case where writing is performed from the U30 to the flash memory will be described. The flash memory also receives data writing by receiving a predetermined command sequence. In the present apparatus, when the write command sequence is input from the target CPU 30, the flash memory command analysis unit 18 detects the
A logical value for permitting writing is given to the D circuit 44. AN
The D circuit 44 is connected to the WR signal line 8 from the target CPU 30.
The logical product of the write enable signal WR input via the interface 2 and the signal from the flash memory command analysis unit 18 is obtained, and only when the result is “true”, the WR terminal of the emulation memory 16 is in a write enabled state. And That is, the AND circuit 44 is connected to the target CPU
It is determined that two conditions, that is, a write command sequence has been issued from 30 and that the write enable signal to the flash memory is in the active state are satisfied, and the writing of data to the emulation memory 16 is performed. Plays the role of permitting. This AND circuit 4
4 permits write data from the target CPU 30 to the address bus / data bus 80, 81.
And emulation memory 1 via selection buffer B
6 is written.

【0043】ちなみに、この例では、主としてAND回
路44がメモリ動作エミュレーション部として機能す
る。
Incidentally, in this example, the AND circuit 44 mainly functions as a memory operation emulation unit.

【0044】本装置においては、他のフラッシュメモリ
特有のコマンドシーケンスに対しても、フラッシュメモ
リコマンド解析部18がそれを検知し、検知されたコマ
ンドシーケンスに応じたフラッシュメモリの動作を行
い、フラッシュメモリをエミュレートする。
In the present apparatus, the flash memory command analysis unit 18 detects a command sequence unique to another flash memory, and operates the flash memory in accordance with the detected command sequence. To emulate

【0045】さて、コマンドシーケンスは、フラッシュ
メモリを提供するメーカ間で異なりうる。つまり、フラ
ッシュメモリの同一の動作に対するものであっても、コ
マンドシーケンスは異なり得る。このように異なるコマ
ンドシーケンスを有するフラッシュメモリに対しては、
フラッシュメモリコマンド解析部18のハードウェア回
路構成も異なるものとなる。
Now, the command sequence can differ between manufacturers providing flash memories. That is, the command sequence may be different even for the same operation of the flash memory. For flash memories having such different command sequences,
The hardware circuit configuration of the flash memory command analysis unit 18 is also different.

【0046】本装置では、異なるコマンドシーケンスの
体系に容易に対応できるように、フラッシュメモリコマ
ンド解析部18は、再構成可能なFPLAを用いて構成
される。FPLAは、配線まで完成したゲートアレイに
おいて、入出力線と積項線との交点の接続のみを変更す
ることによって所望の論理回路構成を実現することがで
きるデバイスである。
In the present apparatus, the flash memory command analysis unit 18 is configured using a reconfigurable FPLA so that it can easily cope with different command sequence systems. The FPLA is a device that can realize a desired logic circuit configuration by changing only connections at intersections between input / output lines and product term lines in a gate array completed up to wiring.

【0047】ちなみに入出力線と積項線との交点の接続
の形成方法には、いくつかの種類がある。その一つは、
交点にはあらかじめヒューズが設けられ、不要な交点の
入出力線と積項線とに電流パルスを印加してヒューズを
溶断させて開放状態とすることにより所望のAND、O
Rアレイを形成するというものである。交点の開放、接
続の定義の仕方には、このほかレーザパルスを当てて短
絡スルーホールを設けたりヒューズを切断したりする方
法や、フローティングゲートを用いて繰り返して定義可
能とする方法などがある。
Incidentally, there are several types of methods for forming connections at intersections between input / output lines and product term lines. One of them is
A fuse is provided in advance at the intersection, and a current pulse is applied to an input / output line and a product term line at an unnecessary intersection to blow out the fuse to open the desired AND, O
That is, an R array is formed. In addition, as a method of defining the intersection and the connection, there are a method of applying a laser pulse to provide a short-circuited through hole and a method of cutting a fuse, and a method of repeatedly defining a connection using a floating gate.

【0048】本装置では、これらのうち交点の開放、接
続を繰り返して変更可能なFPLAを用いている。この
FPLAの内部回路の再構成はホスト計算機6側から論
理データをダウンロードすることにより行われる。フラ
ッシュメモリコマンド解析部18が内部に構成されるF
PLAの端子には、この論理データが入力され、これに
応じてFPLAに新たな回路構成がマッピングされる。
このように、本装置は、その構成部分のうち、フラッシ
ュメモリコマンド解析部18等、エミュレーション対象
のフラッシュメモリに依存して異なりうる部分をFPL
A上に構成することにより、様々なフラッシュメモリの
違いを吸収可能に構成される。つまり、それらの相違に
対応して容易に構成を変更することができ、それらのエ
ミュレーションを行うことができる。
The present apparatus uses the FPLA which can be changed by repeatedly opening and connecting the intersections. The reconfiguration of the internal circuit of the FPLA is performed by downloading logical data from the host computer 6 side. F in which the flash memory command analysis unit 18 is configured
The logic data is input to the terminal of the PLA, and a new circuit configuration is mapped to the FPLA accordingly.
As described above, the present apparatus uses the FPL for a part that may differ depending on the flash memory to be emulated, such as the flash memory command analysis unit 18, among the constituent parts.
By configuring on A, it is possible to absorb the differences between various flash memories. That is, it is possible to easily change the configuration in accordance with the difference, and to emulate them.

【0049】[実施の形態2]次に、本発明のフラッシ
ュメモリエミュレータを用いたデバッグシステムに係る
実施形態について図面を参照して説明する。
[Second Embodiment] Next, an embodiment of a debugging system using the flash memory emulator of the present invention will be described with reference to the drawings.

【0050】図4は、ターゲット基板に接続された本装
置の概念的なブロック図である。図4において、図1と
同様の機能を有する構成要素には同一の符号を付し、説
明を省略する。エミュレータ本体100の大きな特徴
は、デバッガコマンド検出部102を備えている点にあ
る。また、コントローラ12とターゲットCPU30と
はケーブル接続され、コントローラ12からターゲット
CPU30の一時停止を行うHOLD要求、その一時停
止の解除(HOLD解除)を行うことができるように構
成される点も本装置の特徴の一つである。
FIG. 4 is a conceptual block diagram of the present apparatus connected to a target substrate. 4, components having the same functions as those in FIG. 1 are denoted by the same reference numerals, and description thereof will be omitted. A major feature of the emulator body 100 is that it has a debugger command detection unit 102. In addition, the controller 12 is connected to the target CPU 30 via a cable, and the controller 12 is configured to be able to perform a HOLD request for temporarily stopping the target CPU 30 and release the suspension (HOLD release). It is one of the features.

【0051】図5は、エミュレータ本体100の概略の
回路構成図である。この回路図には、以下、本デバッガ
システムの特徴の理解を容易とするようにその説明に必
要な部分が抽出されて示されている。すなわち、エミュ
レータ本体100もエミュレータ本体2と同様、フラッ
シュメモリのコマンドシーケンスに対応した処理を当然
にできる構成であって、実際には図2に示した割込制御
回路40、BUSYステータス制御回路42、切替器4
6やこれらをつなぐバス等の配線を有するものである
が、図5においては省略されている。デバッガコマンド
検出部102の出力とフラッシュメモリコマンド解析部
18の出力はOR回路104に入力され、その出力がA
ND回路44の一つの入力へ接続される。
FIG. 5 is a schematic circuit configuration diagram of the emulator main body 100. In this circuit diagram, portions necessary for the description are extracted and shown so as to facilitate understanding of the features of the debugger system. That is, the emulator main body 100 can naturally execute processing corresponding to the command sequence of the flash memory similarly to the emulator main body 2, and in fact, the interrupt control circuit 40, the BUSY status control circuit 42, and the Switch 4
6, and wiring such as a bus connecting them, but they are omitted in FIG. The output of the debugger command detection unit 102 and the output of the flash memory command analysis unit 18 are input to the OR circuit 104, and the output is
Connected to one input of ND circuit 44.

【0052】さて、デバッグ作業はフラッシュメモリに
格納されるプログラムの検証、バグの修正のために行わ
れる。そのため、当該プログラムにブレーク命令を書き
込むといった操作が行われる。しかし、フラッシュメモ
リはデータの書き換えを行う場合には、チップ全体又は
ブロック単位でのデータの消去を行う必要がある。フラ
ッシュメモリではデバッグ作業を効率的に行うことが難
しい。このデバッグ作業の非効率は、本装置において
も、フラッシュメモリそのものをエミュレーションして
いる状態では同様である。すなわち、プログラムのデバ
ッグ作業を効率的に行うには、一部のステップのみの書
き換え動作を可能とすることが必要となる。
The debugging operation is performed for verifying a program stored in the flash memory and correcting a bug. Therefore, an operation of writing a break instruction in the program is performed. However, when rewriting data in a flash memory, it is necessary to erase data in the entire chip or in block units. It is difficult to efficiently perform a debugging operation with a flash memory. This inefficiency of the debugging work is the same in the present device when the flash memory itself is emulated. That is, in order to efficiently perform a program debugging operation, it is necessary to enable a rewriting operation of only some steps.

【0053】エミュレータ本体100はこの要求に対応
したものであり、デバッガコマンド検出部102は、タ
ーゲットCPU30が発行するフリーアクセス要求コマ
ンドを検出すると、フラッシュメモリコマンド解析部1
8が書き込みや消去のコマンドシーケンスを検知しなく
ても、ターゲットCPU30から直接、エミュレーショ
ンメモリ16にアクセス可能とする。つまり、デバッガ
コマンド検出部102がフリーアクセス要求コマンドを
検知すると、ターゲットCPU30から見て、エミュレ
ータ本体100は単なるRAMと同様の動作をするよう
に切り替わる。また、デバッガコマンド検出部102
は、フリーアクセスモードからの復帰を指示するフリー
アクセス放棄コマンドを検知すると、エミュレータ本体
100をエミュレーションメモリ16への自由な書き込
みが可能な状態から、フラッシュメモリそのものをエミ
ュレーションする状態へ復帰させる、なお、このフリー
アクセス要求コマンド、フリーアクセス放棄コマンド
は、エミュレータ本体100をデバッグシステムとして
用いるために拡張されたコマンドであり、フラッシュメ
モリの種類によらず共通にすることができる。
The emulator main body 100 responds to this request, and the debugger command detection unit 102 detects the free access request command issued by the target CPU
8 enables the target CPU 30 to directly access the emulation memory 16 without detecting the command sequence of writing or erasing. That is, when the debugger command detection unit 102 detects the free access request command, the emulator main body 100 switches to perform the same operation as a simple RAM as viewed from the target CPU 30. The debugger command detection unit 102
When detecting a free access abandonment command instructing return from the free access mode, the emulator main body 100 is returned from a state where free writing to the emulation memory 16 is possible to a state where the flash memory itself is emulated. The free access request command and the free access abandonment command are extended commands for using the emulator main body 100 as a debugging system, and can be common regardless of the type of flash memory.

【0054】具体的には、デバッガコマンド検出部10
2は、ターゲットCPU30からのフリーアクセス要求
コマンドを検出すると、エミュレーションメモリ16へ
の書き込みを許可する論理値を、OR回路104へ与え
る。つまり、OR回路104は、そのもう一方の入力端
に接続されるフラッシュメモリコマンド解析部18から
の出力が何であるかに拘わらず、エミュレーションメモ
リ16への書き込みを許可する論理値を、AND回路4
4へ与える。よって、この状態ではエミュレーションメ
モリ16の書き込みの可不可は、AND回路44のもう
一端に印加される信号に支配されることになる。このA
ND回路44のもう一端には、ターゲットCPU30が
フラッシュメモリのWR信号端子へ印加する信号が入力
されるように構成されており、よってエミュレーション
メモリ16は、ターゲットCPU30側からの書き込み
が自由にできる状態(フリーアクセスモード)とされ
る。
More specifically, the debugger command detector 10
When the free access request command from the target CPU 30 is detected, the logical circuit 2 gives the OR circuit 104 a logical value permitting writing to the emulation memory 16. That is, the OR circuit 104 assigns the logical value that permits writing to the emulation memory 16 to the AND circuit 4 irrespective of the output from the flash memory command analysis unit 18 connected to the other input terminal.
Give to 4. Therefore, in this state, whether or not writing to the emulation memory 16 is possible is governed by the signal applied to the other end of the AND circuit 44. This A
The other end of the ND circuit 44 is configured so that a signal to be applied to the WR signal terminal of the flash memory by the target CPU 30 is input, so that the emulation memory 16 can freely write from the target CPU 30 side. (Free access mode).

【0055】逆に、デバッガコマンド検出部102は、
ターゲットCPU30からのフリーアクセス放棄コマン
ドを検出すると、エミュレーションメモリ16への書き
込みを認めない論理値を、OR回路104へ与える。こ
の状態では、OR回路104の出力は、そのもう一方の
入力端に接続されるフラッシュメモリコマンド解析部1
8からの出力に支配されることとなる。これは上述した
実施形態1と同様の構成であり、AND回路44におい
て、ターゲットCPU30から書き込みのコマンドシー
ケンスが発行されたということと、フラッシュメモリへ
のライトイネーブル信号が活性状態にあることとの2つ
の条件が満たされた場合にのみ、エミュレーションメモ
リ16へのデータの書き込みが許可される状態となる。
これは、エミュレータ本体100がフラッシュメモリの
エミュレーションモードに復帰したことを意味する。
On the contrary, the debugger command detection unit 102
When a free access abandonment command from the target CPU 30 is detected, a logical value that does not permit writing to the emulation memory 16 is given to the OR circuit 104. In this state, the output of the OR circuit 104 is connected to the flash memory command analysis unit 1 connected to the other input terminal.
8 will be dominated by the output. This is the same configuration as that of the above-described first embodiment. In the AND circuit 44, a write command sequence is issued from the target CPU 30 and a write enable signal to the flash memory is in an active state. Only when these conditions are satisfied, writing of data to the emulation memory 16 is permitted.
This means that the emulator body 100 has returned to the emulation mode of the flash memory.

【0056】また、エミュレータ本体100は、HOL
D要求をターゲットCPU30に発することで、コント
ローラ12がエミュレーションメモリ16にアクセスし
ている間、ターゲットCPU30から本装置がエミュレ
ートするフラッシュメモリへのアクセスが生じないよう
にすることができる。一方、コントローラ12からエミ
ュレーションメモリ16へのアクセスが終了すると、H
OLD要求信号をOFF状態とすることによりその解除
が行われ、ターゲットCPU30から本装置がエミュレ
ートするフラッシュメモリへのアクセス要求が可能とさ
れる。これにより、ターゲットCPU30が、エミュレ
ーションメモリ16へのアクセス不能期間に、フラッシ
ュメモリへアクセスを試みることによって暴走すること
が回避される。
The emulator main body 100 is a HOL
By issuing the D request to the target CPU 30, it is possible to prevent the target CPU 30 from accessing the flash memory emulated by the present device while the controller 12 is accessing the emulation memory 16. On the other hand, when access from the controller 12 to the emulation memory 16 is completed, H
The OLD request signal is released by setting the OLD request signal to the OFF state, and an access request to the flash memory emulated by the present device from the target CPU 30 is enabled. This prevents the target CPU 30 from running away by trying to access the flash memory during the period in which the access to the emulation memory 16 is not possible.

【0057】ちなみに、ターゲットCPU30のHOL
D手段を備えていない場合には、コントローラ12から
エミュレーションメモリ16へアクセスする際に、例え
ばターゲット基板4の電源をOFF状態としてターゲッ
トCPU30を停止させ、例えばプログラムの書き換え
る操作を行った後に、再び電源をON状態としてプログ
ラムを最初から実行する。これに対し、本装置では、H
OLD手段により、デバッグ対象のユーザプログラムの
ターゲットCPU30での実行を途中で停止させ、コン
トローラ12からエミュレーションメモリ16の書き換
え操作等を行った後、プログラムの停止された位置から
再開させることができる。つまり本装置によれば、上述
のようなフリーアクセスモードによるデバッグ作業の効
率化に加えて、HOLD手段によりデバッグ作業の一層
の効率の向上を図ることができる。
By the way, the HOL of the target CPU 30
If the controller D is not provided, when the controller 12 accesses the emulation memory 16, for example, the power supply of the target substrate 4 is turned off, the target CPU 30 is stopped, and after the operation of rewriting the program is performed, for example, Is turned on and the program is executed from the beginning. On the other hand, in this device, H
By the OLD means, the execution of the user program to be debugged in the target CPU 30 can be stopped halfway, and after the controller 12 performs a rewriting operation of the emulation memory 16 and the like, the program can be resumed from the position where the program was stopped. That is, according to the present apparatus, in addition to the efficiency of the debugging operation in the free access mode as described above, the efficiency of the debugging operation can be further improved by the HOLD means.

【0058】また、HOLD手段を備えることにより、
上述したように、エミュレーションメモリ16へアクセ
スするバスをターゲットCPU30からコントローラ1
2へ切り替える時にターゲットCPU30の動作が保証
されるという効果や、デバッグ作業の効率化といった効
果のほか、さらに、ターゲット基板に別途、本装置との
通信経路を設ける必要がないという効果もある。すなわ
ち、具体的にはこの最後の効果により、デバッグのため
に通信経路を有したターゲット基板を特別に作成する必
要がないというメリットがある。
Further, by providing HOLD means,
As described above, the bus for accessing the emulation memory 16 is transferred from the target CPU 30 to the controller 1.
In addition to the effect that the operation of the target CPU 30 is guaranteed when switching to 2, the effect of increasing the efficiency of debugging work, and the effect that there is no need to separately provide a communication path with the device on the target board. That is, specifically, this last effect has an advantage that it is not necessary to specially create a target board having a communication path for debugging.

【0059】次に、本デバッグシステムの動作を説明す
る。本デバッグシステムは、ターゲットCPU30上で
実行されるデバッガプログラム(以下、ROMデバッガ
と称する。)とホスト計算機6上で実行されるデバッガ
プログラム(以下、ホストデバッガと称する。)とで構
成される。ROMデバッガとホストデバッガとは随時、
通信を行いながら、エミュレーションメモリ16に格納
されたユーザプログラムのデバッグ作業を遂行する。図
6はROMデバッガの概略の処理を示すフロー図であ
り、図7はホストデバッガの概略の処理を示すフロー図
である。
Next, the operation of the debugging system will be described. The debugging system includes a debugger program (hereinafter, referred to as a ROM debugger) executed on the target CPU 30 and a debugger program (hereinafter, referred to as a host debugger) executed on the host computer 6. ROM debugger and host debugger
While performing the communication, the debug operation of the user program stored in the emulation memory 16 is performed. FIG. 6 is a flowchart showing a schematic process of the ROM debugger, and FIG. 7 is a flowchart showing a schematic process of the host debugger.

【0060】デバッグ作業においては、ユーザプログラ
ム中に、その処理を中断させるブレーク命令が書き込ま
れる。ターゲットCPU30がこのブレーク命令を実行
するとソフトウェア割込が発生し、これに伴いROMデ
バッガが起動される。本システムのROMデバッガの特
徴の一つは、それが起動された時点で、上述したフリー
アクセス要求コマンドを発行し、これがプローブ28、
ターゲットバス24を介してエミュレータ本体100へ
渡される(S200)点にある。既に述べたように、エ
ミュレータ本体100は通常は、ターゲットCPU30
に対してフラッシュメモリそのものとして振る舞うが、
デバッガコマンド検出部102がこのフリーアクセス要
求コマンドを検出すると、エミュレーションメモリ16
への直接のアクセスが可能な状態となる。すなわち、フ
リーアクセス要求コマンドの発行により、ターゲットC
PU30はエミュレータ本体100を単なるRAMとし
て取り扱うことができるようになる。
In the debugging work, a break instruction for interrupting the processing is written in the user program. When the target CPU 30 executes the break instruction, a software interrupt occurs, and the ROM debugger is activated accordingly. One of the features of the ROM debugger of the present system is that when it is started, it issues the above-mentioned free access request command,
The point is that the data is transferred to the emulator main body 100 via the target bus 24 (S200). As described above, the emulator main body 100 is usually connected to the target CPU 30.
Act as flash memory itself,
When the debugger command detection unit 102 detects this free access request command, the emulation memory 16
It becomes a state where direct access to is possible. That is, by issuing the free access request command, the target C
The PU 30 can handle the emulator main body 100 as a mere RAM.

【0061】デバッグ作業は、ホスト計算機6にてユー
ザが入力するコマンドに基づいて実施される(S30
0)。ホストデバッガは終了コマンドを入力されるまで
処理ループを反復する(S305)。入力されたコマン
ドが終了コマンドでない場合には、それがステップ実行
や継続実行を指示する実行制御コマンドであるか否かが
調べられる(S310)。
The debugging operation is performed on the host computer 6 based on a command input by the user (S30).
0). The host debugger repeats the processing loop until an end command is input (S305). If the input command is not the end command, it is checked whether it is an execution control command for instructing step execution or continuous execution (S310).

【0062】実行制御コマンドである場合には、ユーザ
プログラムの所望の位置にブレーク命令を書き込む(S
315)。ブレーク命令は、書き込み位置を例えばユー
ザから指定される。ホストデバッガはその位置の命令コ
ードを退避した後、ブレーク命令を書き込む。そしてホ
ストデバッガはROMデバッガに対してステップ実行コ
マンド又は継続実行コマンドを送信する(S320)。
If the command is an execution control command, a break instruction is written at a desired position in the user program (S
315). The write position of the break instruction is specified by, for example, a user. After saving the instruction code at that position, the host debugger writes a break instruction. Then, the host debugger transmits a step execution command or a continuation execution command to the ROM debugger (S320).

【0063】処理S310にてメモリ操作等の他のコマ
ンドであると判定された場合には、そのコマンドがRO
Mデバッガへ送信される(S325)。
If it is determined in step S310 that the command is another command such as a memory operation, the command is
It is transmitted to the M debugger (S325).

【0064】ホストデバッガは処理S320、S325
にてROMデバッガへコマンドを送信すると、ROMデ
バッガでのコマンドの処理結果の通知を待つ状態となる
(S330)。例えば、ROMデバッガは、ブレーク命
令やエラー等の要因で処理が停止すると、それをホスト
デバッガへ通知する。またROMデバッガは要求された
メモリ操作等により得たデータをホストデバッガへ転送
する。
The host debugger performs steps S320 and S325.
When the command is transmitted to the ROM debugger in step S330, the process waits for notification of the processing result of the command by the ROM debugger (S330). For example, when the ROM debugger stops processing due to a break instruction or an error, it notifies the host debugger of the stop. The ROM debugger transfers data obtained by a requested memory operation or the like to the host debugger.

【0065】ホストデバッガは、これら受信した処理結
果に応じて、自分がターゲットCPU30に要求したコ
マンドに対する後処理を行う(S335)。例えば、エ
ラー報告を受信した場合には、コマンド後処理S335
では、エラー処理を含む後処理が行われる。また、ブレ
ーク直後においては、ブレーク時後処理が行われる。ブ
レーク時後処理では、エミュレーションメモリ16上の
ユーザプログラムに書き込まれたブレーク命令を元の命
令コードに書き戻す処理が行われる。また、例えば要求
したコマンドがメモリ操作等である場合には、そのコマ
ンドに応じた後処理が行われる。
The host debugger performs post-processing for the command requested to the target CPU 30 according to the received processing result (S335). For example, when an error report is received, the command post-processing S335
In, post-processing including error processing is performed. Immediately after a break, post-break processing is performed. In the post-break processing, processing is performed in which the break instruction written in the user program on the emulation memory 16 is written back to the original instruction code. Further, for example, when the requested command is a memory operation or the like, post-processing according to the command is performed.

【0066】ホストデバッガは、その後、再び、コマン
ド入力処理S300に戻り、上述した処理を繰り返す。
Thereafter, the host debugger returns to the command input processing S300 again, and repeats the above processing.

【0067】一方、ROMデバッガでは以下のような処
理が行われる。まず、上述したように、ユーザプログラ
ムに書き込まれたブレーク命令の実行による割り込みに
よりROMデバッガが起動され、ROMデバッガは本発
明の一つの特徴であるフリーアクセス要求コマンドの発
行を行う(S200)。
On the other hand, the following processing is performed in the ROM debugger. First, as described above, the ROM debugger is activated by the interruption due to the execution of the break instruction written in the user program, and the ROM debugger issues a free access request command, which is one feature of the present invention (S200).

【0068】ROMデバッガは、フリーアクセス要求コ
マンドを発行した後、実質的なデバッグ処理に移行す
る。まず割り込みを生じたブレーク命令が、ステップ実
行によるものであるかどうかが判断される(S20
5)。ステップ実行の場合、ユーザプログラムを1ステ
ップ実行するごとにブレーク命令により処理が中断され
る。このようなプログラム制御を実現するために、RO
Mデバッガがブレーク命令の位置をユーザプログラム上
で1ステップずつ後ろへずらしていく。つまり、ステッ
プ実行においては、処理の中断を生じたブレーク命令が
書き込まれている第nステップに元々あったユーザプロ
グラムの命令コードが退避先から書き戻され(S21
0)、そして今度は次の第(n+1)ステップの命令コ
ードがターゲットCPU30の一時バッファに退避さ
れ、第(n+1)ステップに新たにブレーク命令が書き
込まれる。この状態でユーザプログラムの処理を再開す
ると、いま書き戻した第nステップの命令コードが実行
されて、第(n+1)ステップのブレーク命令で再び中
断する。ステップ実行ではこのような手順で1ステップ
ずつユーザプログラムを実行し、各ステップでのターゲ
ットシステムの状態変化をつぶさに調べることができ
る。なお、上記第(n+1)ステップにブレーク命令を
書き込む処理は後のステップ実行処理S240にて行わ
れる。また、ブレークがステップ実行によるものでない
場合には、処理S210はスキップされる。
After issuing the free access request command, the ROM debugger shifts to a substantial debugging process. First, it is determined whether the break instruction that caused the interrupt is due to step execution (S20).
5). In the case of step execution, the processing is interrupted by a break instruction every time the user program is executed one step. To realize such program control, RO
The M debugger shifts the position of the break instruction backward by one step on the user program. That is, in the step execution, the instruction code of the user program originally in the n-th step in which the break instruction causing the interruption of the processing is written is written back from the save destination (S21).
0), and the instruction code of the next (n + 1) th step is saved in the temporary buffer of the target CPU 30, and a new break instruction is written in the (n + 1) th step. When the processing of the user program is resumed in this state, the instruction code of the n-th step which has just been written back is executed, and the operation is interrupted again by the break instruction of the (n + 1) -th step. In the step execution, the user program is executed step by step in such a procedure, and the state change of the target system in each step can be closely examined. The process of writing a break instruction in the (n + 1) th step is performed in a subsequent step execution process S240. If the break is not caused by step execution, step S210 is skipped.

【0069】ここで、命令コードの書き戻しやブレーク
命令の書き込みは、ターゲットCPU30からエミュレ
ーションメモリ16に対して行われる。このとき、フリ
ーアクセスモードにあるので、ターゲットCPU30
は、ブロックイレーズ処理を行う必要がなく、目的とす
るステップのみを上書きすることができる。
Here, the writing back of the instruction code and the writing of the break instruction are performed from the target CPU 30 to the emulation memory 16. At this time, the target CPU 30 is in the free access mode.
Does not need to perform the block erase process, and can overwrite only the target step.

【0070】ROMデバッガは、次に停止要因をホスト
計算機6へ通知した後(S215)、ホスト計算機6か
らのコマンドの受信を待つ状態となる(S220)。つ
まり、ROMデバッガは、ホストデバッガの処理S32
0、S325にて送信されたコマンドを受信すると、次
の処理に移行する。
After notifying the host computer 6 of the cause of the stop (S215), the ROM debugger waits for the reception of a command from the host computer 6 (S220). That is, the ROM debugger performs the processing S32 of the host debugger.
0, when the command transmitted in S325 is received, the process proceeds to the next process.

【0071】受信したコマンドがメモリ操作コマンドで
ある場合には(S225)、エミュレーションメモリ1
6に対するメモリ操作を行う(S230)。メモリリー
ド処理の場合には、指定されたアドレスからデータを読
み、当該データをホストデバッガへ転送する。メモリラ
イト処理の場合には、指定アドレスへデータを書き込
む。メモリ処理を終了すると、新たなホスト側からの新
たなコマンドの受信待ちとなる(S220)。
If the received command is a memory operation command (S225), the emulation memory 1
6 is performed (S230). In the case of a memory read process, data is read from a specified address, and the data is transferred to a host debugger. In the case of a memory write process, data is written to a specified address. Upon completion of the memory processing, the process waits for a new command from the new host (S220).

【0072】受信したコマンドがステップ実行コマンド
である場合には(S235)、ステップ実行処理を行っ
た後(S240)、フリーアクセス放棄コマンドをエミ
ュレータ本体100に対して発行する(S245)。ス
テップ実行処理は、上述したことであるがユーザプログ
ラムにおける次に実行されるアドレスの命令コードを一
時バッファに退避し、そのアドレスにブレーク命令を書
き込む処理である。
If the received command is a step execution command (S235), a step execution process is performed (S240), and then a free access abandonment command is issued to the emulator main body 100 (S245). As described above, the step execution process is a process of saving an instruction code of an address to be executed next in a user program to a temporary buffer and writing a break instruction at that address.

【0073】受信したコマンドが継続実行コマンドであ
る場合には(S250)、新たなブレーク命令を書き込
むことなく、現状のユーザプログラムにて処理を再開す
る。この再開に際しては、やはりフリーアクセス放棄コ
マンドが発行される(S245)。なお、処理S220
にて受信したコマンドが、他の非実行コマンドである場
合には、それに応じた処理が行われ(S255)、新た
なコマンドの受信待ち状態となる(S220)。
If the received command is a continuous execution command (S250), the process is restarted with the current user program without writing a new break instruction. At the time of this resumption, a free access abandonment command is also issued (S245). Step S220
If the received command is another non-executed command, processing corresponding to the command is performed (S255), and the process waits for reception of a new command (S220).

【0074】さて、フリーアクセス放棄コマンドの発行
も、本システムのROMデバッガの特徴である。処理S
245にて、フリーアクセス放棄コマンドがエミュレー
タ本体100へ発行されると、エミュレータ本体100
のデバッガコマンド検出部102がこれを検出し、既に
述べたようにエミュレータ本体100をフリーアクセス
モードから、通常のフラッシュメモリのエミュレーショ
ンモードへの復帰を行う。これにより、エミュレーショ
ンメモリ16に格納されたユーザプログラムを、実際の
フラッシュメモリから読み出して実行するのと同じ状態
で実行することができる。再開されたユーザプログラム
の処理は次のブレーク命令まで継続される。すなわち、
ステップ実行の場合には、1ステップの実行の間だけ、
エミュレーションモードへ復帰し、またすぐにデバッガ
モードとなることになる。一方、継続実行コマンドを受
けた場合は、ホストデバッガのブレーク挿入処理S31
5で書き込まれている次のブレーク命令があれば、そこ
まで処理が継続される。
The issuance of the free access abandonment command is also a feature of the ROM debugger of the present system. Processing S
At 245, when the free access abandonment command is issued to the emulator main body 100, the emulator main body 100
The debugger command detection unit 102 detects this, and returns the emulator main body 100 from the free access mode to the normal flash memory emulation mode as described above. As a result, the user program stored in the emulation memory 16 can be executed in the same state as read from the actual flash memory and executed. Processing of the restarted user program is continued until the next break instruction. That is,
In the case of step execution, only during the execution of one step,
It will return to emulation mode and will immediately enter debugger mode. On the other hand, when the continuous execution command is received, the break insertion processing S31 of the host debugger is performed.
If there is a next break instruction written in step 5, the processing is continued up to that point.

【0075】このように、本システムのROMデバッガ
は、フリーアクセス要求コマンドとフリーアクセス放棄
コマンドとを発行することにより、エミュレーションメ
モリ16をRAMとして取り扱うことができるフリーア
クセスモードと、フラッシュメモリとして振る舞わせる
エミュレーションモードとを自在に切り替えることがで
きる。
As described above, the ROM debugger of this system issues the free access request command and the free access abandonment command, thereby causing the emulation memory 16 to behave as a RAM and the free access mode in which the emulation memory 16 can be handled as a RAM. The emulation mode can be freely switched.

【0076】本発明に特徴的なフリーアクセスモードに
おいては、エミュレーションモードと異なり、ブレーク
命令等の書き込みに際してブロック消去といった操作が
不要であり、書き込み対象のアドレスのみにおいてデー
タを書き換え・更新することができるので、デバッグ作
業が非常に効率的に行われる。
In the free access mode characteristic of the present invention, unlike the emulation mode, an operation such as block erasure is not required when writing a break instruction or the like, and data can be rewritten and updated only at the address to be written. So the debugging work is done very efficiently.

【0077】さて、上述したホスト計算機6の上で動作
するホストデバッガから、ROMデバッガへのデバッグ
指示は、ターゲットバス24、フラッシュメモリエミュ
レータアダプタ26、プローブ28を介して伝達され
る。すなわち、本装置では、デバッグ指示のための、別
途の通信経路を設ける必要がない。これを実現するため
に上述したHOLD手段が大きな役割を果たす。つま
り、本装置では、ホストデバッガからのデバッグ指示
は、コントローラ12を介して一旦、エミュレーション
メモリ16に書き込まれ、これをROMデバッガがター
ゲットバス24等を介して読み出すことにより、デバッ
グ指示の伝達が行われる。このデバッグ指示をエミュレ
ーションメモリ16に書き込む際に、HOLD手段がタ
ーゲットCPU30を停止させる。デバッグ指示をエミ
ュレーションメモリ16に書き込み終わった後、HOL
D解除が行われ、動作を再開したターゲットCPU30
のROMデバッガプログラムが、エミュレーションメモ
リ16からデバッグ指示を読み出し、取得する。
A debug instruction from the host debugger operating on the host computer 6 to the ROM debugger is transmitted via the target bus 24, the flash memory emulator adapter 26, and the probe 28. That is, in the present apparatus, there is no need to provide a separate communication path for a debug instruction. To realize this, the above-mentioned HOLD means plays a large role. That is, in the present apparatus, the debug instruction from the host debugger is temporarily written into the emulation memory 16 via the controller 12 and is read out by the ROM debugger via the target bus 24 or the like, so that the transmission of the debug instruction is performed. Will be When writing the debug instruction into the emulation memory 16, the HOLD means stops the target CPU 30. After the debug instruction has been written into the emulation memory 16, HOL
D is released and the target CPU 30 resumes operation.
The ROM debugger program reads and acquires a debug instruction from the emulation memory 16.

【0078】なお、ホスト計算機6とターゲットCPU
30との間に別途通信線を有し、これによりデバッグ指
示の伝達を行う構成ももちろん可能である。ちなみにR
ESET要求は、ターゲットCPU30をリモート操作
でリセットするための手段として設けられている。
The host computer 6 and the target CPU
It is of course possible to provide a configuration in which a separate communication line is provided between the communication device 30 and the device 30 to transmit a debug instruction. By the way, R
The ESET request is provided as means for resetting the target CPU 30 by remote operation.

【0079】[0079]

【発明の効果】本発明のフラッシュメモリエミュレーシ
ョン装置によれば、フラッシュメモリコマンド解析部を
備えたことにより、フラッシュメモリ特有のコマンド操
作を伴う動作をもエミュレートすることができ、フラッ
シュメモリを用いた製品の開発時のテスト、故障解析
を、実際のフラッシュメモリを用いることなく、高い精
度にて行うことができるという効果が得られる。また、
デバッグの際にユーザプログラムをコピーするためのR
AMをターゲット基板上に設ける必要がないので、製品
の小型化、低コスト化が図られるという効果がある。ま
た本発明によれば、フラッシュメモリコマンド解析部は
ハードウェア構成を再定義可能なプログラマブル半導体
チップ上に形成される。よってフラッシュメモリコマン
ド解析部を再構成することが容易であり、例えばメーカ
毎に異なりうるコマンド体系に容易に対応でき、汎用性
を有した装置が得られる。
According to the flash memory emulation apparatus of the present invention, the provision of the flash memory command analysis section enables emulation of operations involving command operations unique to the flash memory. An effect is obtained that a test and a failure analysis at the time of product development can be performed with high accuracy without using an actual flash memory. Also,
R to copy the user program during debugging
Since it is not necessary to provide the AM on the target substrate, the size and cost of the product can be reduced. Further, according to the present invention, the flash memory command analysis unit is formed on a programmable semiconductor chip whose hardware configuration can be redefined. Therefore, it is easy to reconfigure the flash memory command analysis unit, and it is possible to easily cope with, for example, a command system that may be different for each maker, and to obtain a versatile device.

【0080】また、本発明のフラッシュメモリエミュレ
ーション装置はデバッガコマンド検出部を備えることに
より、ターゲット回路から発行されるフリーアクセス要
求コマンドに応じて、ターゲット回路から、フラッシュ
メモリ特有のコマンドシーケンスを介することなく直
接、メモリ内容の消去/書き換えを行うことができるモ
ードへ切り替わる。これにより、デバッグ作業における
ブレーク命令の書き込みや一部データの変更が、チップ
イレーズやブロックイレーズといった処理を行うことな
く可能となり、デバッグ作業の効率が飛躍的に向上する
効果が得られる。
Further, the flash memory emulation device of the present invention includes the debugger command detecting section, so that the target circuit can respond to the free access request command issued from the target circuit without passing through a command sequence specific to the flash memory. The mode is switched to a mode in which erasing / rewriting of memory contents can be performed directly. This makes it possible to write a break instruction and change some data in the debugging work without performing a process such as chip erase or block erase, and the effect of dramatically improving the efficiency of the debug work can be obtained.

【0081】また、フラッシュメモリには書き込み/消
去回数に限度がある。しかし、本発明のフラッシュメモ
リエミュレーション装置は、RAMをフラッシュメモリ
に見せるものであるため、そのような回数制限はないと
いう利点もある。すなわち、書き込み/消去を頻繁に行
っても、装置の耐久性に影響がなく、動作の信頼性が問
題となることもない。このことはデバッグ作業において
非常に有利である。
The flash memory has a limit on the number of times of writing / erasing. However, since the flash memory emulation device of the present invention makes the RAM appear as a flash memory, there is also an advantage that such a number of times is not limited. In other words, frequent writing / erasing does not affect the durability of the device, and does not cause a problem in operation reliability. This is very advantageous for debugging work.

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

【図1】 ターゲット基板に接続された本発明の第1の
実施形態に係るフラッシュメモリエミュレータの概念的
なブロック図である。
FIG. 1 is a conceptual block diagram of a flash memory emulator according to a first embodiment of the present invention connected to a target substrate.

【図2】 第1の実施形態におけるエミュレータ本体の
概略の回路構成図である。
FIG. 2 is a schematic circuit configuration diagram of an emulator main body according to the first embodiment.

【図3】 フラッシュメモリ特有のコマンドシーケンス
の例を示す説明図である。
FIG. 3 is an explanatory diagram showing an example of a command sequence unique to a flash memory.

【図4】 ターゲット基板に接続された本発明の第2の
実施形態に係るフラッシュメモリエミュレータの概念的
なブロック図である。
FIG. 4 is a conceptual block diagram of a flash memory emulator according to a second embodiment of the present invention connected to a target substrate.

【図5】 第2の実施形態を説明するためのエミュレー
タ本体の概略の回路構成図である。
FIG. 5 is a schematic circuit configuration diagram of an emulator main body for describing a second embodiment.

【図6】 ROMデバッガの概略の処理を示すフロー図
である。
FIG. 6 is a flowchart showing a schematic process of a ROM debugger.

【図7】 ホストデバッガの概略の処理を示すフロー図
である。
FIG. 7 is a flowchart showing a schematic process of a host debugger.

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

2,100 エミュレータ本体、4 ターゲット基板、
6 ホスト計算機、10 ホストインターフェース、1
2 コントローラ、14 制御プログラム用メモリ、1
6 エミュレーションメモリ、18 フラッシュメモリ
コマンド解析部、20 電気的特性エミュレーション
部、22 バッファ、24 ターゲットバス、26 フ
ラッシュメモリエミュレータアダプタ、28 プロー
ブ、30 ターゲットCPU、102 デバッガコマン
ド検出部。
2,100 emulator body, 4 target boards,
6 host computer, 10 host interface, 1
2 controller, 14 control program memory, 1
6 emulation memory, 18 flash memory command analysis unit, 20 electrical characteristic emulation unit, 22 buffer, 24 target bus, 26 flash memory emulator adapter, 28 probe, 30 target CPU, 102 debugger command detection unit.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 当麻 勝士 神奈川県川崎市麻生区南黒川6−2 株 式会社ソフィアシステムズマイコンシテ ィ事業所内 (56)参考文献 特開 平9−244915(JP,A) 特開 平1−217524(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 11/22 - 11/26 ──────────────────────────────────────────────────続 き Continuation of the front page (72) Inventor Katsushi Toma 6-2 Minamikurokawa, Aso-ku, Kawasaki-shi, Kanagawa Prefecture Sophia Systems Microcomputer Works (56) References JP-A-9-244915 (JP, A JP-A-1-217524 (JP, A) (58) Fields investigated (Int. Cl. 6 , DB name) G06F 11/22-11/ 26

Claims (7)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 ターゲット回路に接続され、前記ターゲ
ット回路にて用いられるフラッシュメモリの等価回路を
構成するフラッシュメモリエミュレーション装置であっ
て、 前記フラッシュメモリの記憶内容の複製を格納するRA
Mと、それぞれ前記フラッシュメモリに対するアドレス及びデ
ータの組み合わせで表される複数のコマンドを含み 前記
ターゲット回路から発行されフラッシュメモリの動作を
選択するコマンドシーケンスを検知するフラッシュメモ
リコマンド解析部と、 前記RAMを、検知されたフラッシュメモリ動作選択コ
マンドシーケンスに応じた動作で制御するメモリ動作エ
ミュレーション部と、 を有することを特徴とするフラッシュメモリエミュレー
ション装置。
1. A flash memory emulation device connected to a target circuit and constituting an equivalent circuit of a flash memory used in the target circuit, wherein the RA stores a copy of the storage content of the flash memory.
M, the address and data for the flash memory , respectively.
And the flash memory command analyzing unit for detecting a command sequence for selecting a plurality of containing a command issued from the target circuit operation of the flash memory represented by a combination of chromatography data, said RAM, sensed flash memory operation A flash memory emulation device, comprising: a memory operation emulation unit that controls by an operation according to a selection command sequence .
【請求項2】 フラッシュメモリを備え当該フラッシュ
メモリに格納されたユーザプログラムを実行するCPU
を有したターゲット回路に接続され、前記フラッシュメ
モリの等価回路を構成し、前記ユーザプログラムのデバ
ッグに用いられるフラッシュメモリエミュレーション装
置であって、 前記フラッシュメモリの記憶内容の複製を格納するRA
Mと、 前記ターゲット回路から発行されフラッシュメモリの動
作を選択するコマンドシーケンスを検知するフラッシュ
メモリコマンド解析部と、 前記RAMを、検知されたフラッシュメモリ動作選択コ
マンドシーケンスに応じた動作で制御するメモリ動作エ
ミュレーション部と、 前記ターゲット回路から発行されるフリーアクセス要求
コマンドを検出し、前記フラッシュメモリ動作選択コマ
ンドに拘束されずに前記ターゲット回路から前記RAM
への自由な書き込みを可能とするデバッガコマンド検出
部と、 を有することを特徴とするフラッシュメモリエミュレー
ション装置。
2. A CPU having a flash memory and executing a user program stored in the flash memory
A flash memory emulation device connected to a target circuit having a flash memory emulation device, which constitutes an equivalent circuit of the flash memory, and is used for debugging the user program.
And M, wherein the flash memory command analyzing unit for detecting a command sequence is issued from the target circuit for selecting the operation of the flash memory, the RAM, and control operation according to the detected flash memory operation selected command sequence A memory operation emulation unit, a free access request command issued from the target circuit is detected, and the RAM is read from the target circuit without being restricted by the flash memory operation selection command.
And a debugger command detection unit that enables free writing to the flash memory emulation device.
【請求項3】 請求項1又は請求項2に記載のフラッシ
ュメモリエミュレーション装置において、 前記メモリ動作エミュレーション部による前記RAMへ
のアクセス中は、前記ターゲット回路のCPUを停止さ
せる手段を有することを特徴とするフラッシュメモリエ
ミュレーション装置。
3. The flash memory emulation device according to claim 1, further comprising means for stopping a CPU of the target circuit while the memory operation emulation unit accesses the RAM. Flash memory emulation device.
【請求項4】 請求項1又は請求項2に記載のフラッシ
ュメモリエミュレーション装置を用いて、前記ターゲッ
ト回路のCPUで実行されるユーザプログラムのデバッ
グを行うデバッグシステムにおいて、 前記フラッシュメモリエミュレーション装置は、 前記ターゲット回路のCPUを停止させるターゲットC
PU停止手段と、 フラッシュメモリに格納されるユーザプログラムのデバ
ッグを行う際に、前記ターゲット回路のCPUへデバッ
グ指示を与えるデバッグ指示部と、 を有し、 前記デバッグ指示部は、前記ターゲットCPU停止手段
が前記CPUを停止させている間に、前記デバッグ指示
を前記RAMに格納し、 前記CPUは、前記ターゲットCPU停止手段による停
止が解除された後、前記RAMに格納された前記デバッ
グ指示を読み出すこと、 により前記デバッグ指示部から前記CPUへの通信が行
われることを特徴とするデバッグシステム。
4. A debugging system for debugging a user program executed by a CPU of the target circuit using the flash memory emulation device according to claim 1 or 2, wherein the flash memory emulation device comprises: Target C to stop CPU of target circuit
A PU stop unit; and a debug instruction unit that gives a debug instruction to a CPU of the target circuit when debugging a user program stored in a flash memory. The debug instruction unit includes a target CPU stop unit. Storing the debug instruction in the RAM while the CPU is stopped, and reading out the debug instruction stored in the RAM after the stop by the target CPU stop unit is released. And a communication from the debug instructing unit to the CPU is performed by:
【請求項5】 請求項1から請求項4のいずれかに記載
のフラッシュメモリエミュレーション装置において、 前記フラッシュメモリコマンド解析部は、ハードウェア
的に構成される論理回路であること、を特徴とするフラ
ッシュメモリエミュレーション装置。
5. The flash memory emulation device according to claim 1, wherein the flash memory command analysis unit is a logic circuit configured as hardware. Memory emulation device.
【請求項6】 請求項1から請求項5のいずれかに記載
のフラッシュメモリエミュレーション装置において、 前記フラッシュメモリコマンド解析部は、プログラマブ
ル半導体チップを用いて再構成可能に構成されること、
を特徴とするフラッシュメモリエミュレーション装置。
6. The flash memory emulation device according to claim 1, wherein the flash memory command analysis unit is configured to be reconfigurable using a programmable semiconductor chip.
A flash memory emulation device characterized by the above-mentioned.
【請求項7】 請求項2記載のフラッシュメモリエミュ
レーション装置を用いて前記デバッグを行うデバッグシ
ステムにおいて、 前記ターゲット回路のCPUにて実行されるデバッガプ
ログラムは、 前記ユーザプログラム中に書き込まれた割り込み処理命
令に応じて前記フリーアクセス要求コマンドを発行した
とき、デバッグモードに移行し、 前記デバッグモードの終了に際し、前記RAMへの自由
な書き込みの権利を放棄するフリーアクセス放棄コマン
ドを発行し、 前記デバッガコマンド検出部は、前記フリーアクセス放
棄コマンドを検出し、前記ターゲット回路から前記RA
Mへの自由な書き込みを禁止し、当該書き込みを前記メ
モリ動作エミュレーション部の制御に委ねること、 を特徴とするデバッグシステム。
7. A debugging system for performing the debugging using the flash memory emulation device according to claim 2, wherein the debugger program executed by the CPU of the target circuit is an interrupt processing instruction written in the user program. When the free access request command is issued in response to the command, the mode shifts to a debug mode, and at the end of the debug mode, a free access relinquish command for relinquishing the right of free writing to the RAM is issued. The unit detects the free access abandonment command and outputs the RA from the target circuit.
A debugging system, wherein free writing to M is prohibited, and the writing is entrusted to control of the memory operation emulation unit.
JP8743798A 1998-03-31 1998-03-31 Flash memory emulation device and debug system using the same Expired - Fee Related JP2907808B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8743798A JP2907808B1 (en) 1998-03-31 1998-03-31 Flash memory emulation device and debug system using the same
KR1019990011083A KR19990078412A (en) 1998-03-31 1999-03-30 Flash memory emulation device and debug system using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8743798A JP2907808B1 (en) 1998-03-31 1998-03-31 Flash memory emulation device and debug system using the same

Publications (2)

Publication Number Publication Date
JP2907808B1 true JP2907808B1 (en) 1999-06-21
JPH11282712A JPH11282712A (en) 1999-10-15

Family

ID=13914850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8743798A Expired - Fee Related JP2907808B1 (en) 1998-03-31 1998-03-31 Flash memory emulation device and debug system using the same

Country Status (2)

Country Link
JP (1) JP2907808B1 (en)
KR (1) KR19990078412A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110249316A (en) * 2017-12-07 2019-09-17 深圳市汇顶科技股份有限公司 Debugger and chip adjustment method
CN111694697A (en) * 2019-03-12 2020-09-22 罗姆股份有限公司 Semiconductor device and debug system
JP2021515308A (en) * 2018-02-27 2021-06-17 アーム・リミテッド Devices and methods for accessing metadata when debugging devices

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005070950A (en) 2003-08-21 2005-03-17 Sanyo Electric Co Ltd Program processing apparatus
JP2005070949A (en) 2003-08-21 2005-03-17 Sanyo Electric Co Ltd Program processing apparatus
JP5676169B2 (en) * 2010-07-15 2015-02-25 Necエンベデッドプロダクツ株式会社 Flash ROM emulator and data control method
KR101751407B1 (en) * 2016-02-16 2017-07-11 단국대학교 산학협력단 Analog information based emulation method for investigating reliability of flash memory and apparatus of the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110249316A (en) * 2017-12-07 2019-09-17 深圳市汇顶科技股份有限公司 Debugger and chip adjustment method
JP2021515308A (en) * 2018-02-27 2021-06-17 アーム・リミテッド Devices and methods for accessing metadata when debugging devices
JP7245842B2 (en) 2018-02-27 2023-03-24 アーム・リミテッド Apparatus and method for accessing metadata when debugging a device
CN111694697A (en) * 2019-03-12 2020-09-22 罗姆股份有限公司 Semiconductor device and debug system
CN111694697B (en) * 2019-03-12 2023-09-19 罗姆股份有限公司 Semiconductor device and debug system

Also Published As

Publication number Publication date
KR19990078412A (en) 1999-10-25
JPH11282712A (en) 1999-10-15

Similar Documents

Publication Publication Date Title
JP3693721B2 (en) Microcomputer with built-in flash memory and test method thereof
KR100280637B1 (en) Computer system capable of data update of fixed flash ROM and its control method
CN109669729A (en) A kind of starting bootstrap technique of processor
CN113553081A (en) FPGA loading method based on ZYNQ chip
CN113434162A (en) Method for remotely updating FPGA multi-version program on line
JP2000065899A (en) Semiconductor device, and its data rewriting method
CN111104064B (en) FLASH memory write protection processing method and device, computer equipment and medium
US5819108A (en) Programming of software into programmable memory within a peripheral device
US5768563A (en) System and method for ROM program development
US5761456A (en) Processor device having automatic bus sizing
JP2907808B1 (en) Flash memory emulation device and debug system using the same
CN118394394A (en) Method for online upgrading of FPGA configuration item file
JP2004021867A (en) Information processing system
US20050216792A1 (en) Debug system
US6182207B1 (en) Microcontroller with register system for the indirect accessing of internal memory via auxiliary register
US6598176B1 (en) Apparatus for estimating microcontroller and method thereof
KR100505700B1 (en) Retargetable emulation apparatus providing for target system verifying using micro-control unit, micro-computer development system having it, and method thereof
CN114281390A (en) Zynq 7000-based online upgrading system and method
CN117854578A (en) Automatic test structure and ATE equipment
KR20010056103A (en) Flash Memory To Share With Booting And Main Operation Program In System And Upgrade Method In That Memory
JP2000259448A (en) Program debugging device
JPH0285934A (en) Emulator
KR19990012940A (en) Circuit for loading microcomputer firmware using IC bus
CN115858433A (en) Method, system, device, equipment and storage medium for controlling retimer mode
CN117171097A (en) Remote loading method and system for field programmable gate array

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

LAPS Cancellation because of no payment of annual fees