JP2006126994A - Incircuit emulator, debug device and debug system using the same - Google Patents
Incircuit emulator, debug device and debug system using the same Download PDFInfo
- Publication number
- JP2006126994A JP2006126994A JP2004311860A JP2004311860A JP2006126994A JP 2006126994 A JP2006126994 A JP 2006126994A JP 2004311860 A JP2004311860 A JP 2004311860A JP 2004311860 A JP2004311860 A JP 2004311860A JP 2006126994 A JP2006126994 A JP 2006126994A
- Authority
- JP
- Japan
- Prior art keywords
- circuit emulator
- program
- processing unit
- debugging
- debug
- 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.)
- Withdrawn
Links
Images
Abstract
Description
本発明は、インサーキットエミュレータ、インサーキットエミュレータに接続されて使用されるデバッグ装置、及び、それらを具備するデバッグシステムに関する。 The present invention relates to an in-circuit emulator, a debugging device used by being connected to the in-circuit emulator, and a debugging system including them.
従来より、マイクロプロセッサ及びデバッグ装置において、プログラムの機密性を高める技術が用いられている(例えば、特許文献1参照)。
特許文献1には、少なくとも1つの範囲が暗号化されてなるプログラムの暗号化範囲を復号化するための暗号鍵を記憶する記憶部と、プログラムの暗号化範囲を判定して記憶部から暗号鍵を取り出す判定部と、判定部により取り出された暗号鍵を用いてプログラムの暗号化範囲を復号化する復号化部とを備えたマイクロプロセッサであって、復号化部により暗号化範囲の復号化されてなるプログラムを外部に出力するときに、該プログラムの少なくとも1つの範囲を暗号化する暗号化部を備えていることを特徴とするマイクロプロセッサが掲載されている。
また、特許文献1には、上記のマイクロプロセッサから出力されたプログラムのデバッグを行うデバッグ装置であって、プログラムの暗号化範囲を復号化するための暗号鍵を記憶するデバッガ記憶部と、プログラムの暗号化範囲を判定してデバッガ記憶部から暗号鍵を取り出すデバッガ判定部と、デバッガ判定部により取り出された暗号鍵を用いてプログラムの暗号化範囲を復号化するデバッガ復号化部とを備えていることを特徴とするデバッグ装置が掲載されている。
Conventionally, techniques for increasing the confidentiality of programs have been used in microprocessors and debugging devices (see, for example, Patent Document 1).
しかしながら、特許文献1掲載の技術においては、暗号化部によって暗号化されたプログラムがマイクロプロセッサからデバッガ装置に出力されるため、マイクロプロセッサとデバッガ装置との間の通信信号をモニタすることにより、暗号化されたプログラムを入手することができてしまうこととなる。後に暗号を解読されたり、暗号鍵を取得されてしまうおそれがあることを考慮すれば、暗号化されたプログラムを入手されることは望ましいことではない。
However, in the technique disclosed in
そこで、上記の点に鑑み、本発明は、機密保持対象であるプログラムを入手されてしまう可能性をより低くすることができるインサーキットエミュレータを提供することを第1の目的とする。また、本発明はそのようなデバッグ装置を提供することを第2の目的とする。また、本発明はそのようなデバッグシステムを提供することを第3の目的とする。 Therefore, in view of the above points, a first object of the present invention is to provide an in-circuit emulator that can further reduce the possibility of obtaining a program that is subject to confidentiality. The second object of the present invention is to provide such a debugging device. The third object of the present invention is to provide such a debugging system.
以上の課題を解決するため、本発明の第1の観点に係るインサーキットエミュレータは、機密保持対象である第1のプログラム及び/又は機密保持対象でない第2のプログラムを記憶するためのプログラム記憶部と、外部からの指示に従って第1及び/又は第2のプログラムを実行するためのCPUコア部と、第1及び/又は第2のプログラムを外部から受信してプログラム記憶部に書き込み、第1のプログラムの一部又は全部の読み出し指示を外部から受信した場合に、プログラム記憶部からの第1のプログラムの一部又は全部の読み出しを行わず、第2のプログラムの一部又は全部の読み出し指示を外部から受信した場合に、プログラム記憶部からの第2のプログラムの一部又は全部の読み出しを行って外部に送信するための通信処理部とを具備する。 In order to solve the above problems, an in-circuit emulator according to a first aspect of the present invention stores a first program that is a confidentiality target and / or a second program that is not a confidentiality target. A CPU core unit for executing the first and / or second program according to an instruction from the outside, the first and / or second program received from the outside, and written in the program storage unit, When an instruction to read a part or all of the program is received from the outside, the part or whole of the first program is not read from the program storage unit, and a part or whole of the second program is instructed to be read. Communication processing unit for reading a part or all of the second program from the program storage unit and transmitting it to the outside when received from the outside Comprising a.
また、本発明の第2の観点に係るインサーキットエミュレータは、本発明の第1の観点に係るインサーキットエミュレータにおいて、外部との間の認証処理を行うための認証処理部を更に具備する。 The in-circuit emulator according to the second aspect of the present invention further includes an authentication processing unit for performing authentication processing with the outside in the in-circuit emulator according to the first aspect of the present invention.
また、本発明の第3の観点に係るインサーキットエミュレータは、本発明の第1の観点に係るインサーキットエミュレータにおいて、通信処理部が、外部からの呼び掛けに応答して、一般のインサーキットエミュレータにおいて利用されている第1の通信コマンド又は一般のインサーキットエミュレータにおいて利用されていない第2の通信コマンドを用いて外部と通信を行うことを特徴とする。 An in-circuit emulator according to a third aspect of the present invention is an in-circuit emulator according to the first aspect of the present invention, in which a communication processing unit responds to an external call in a general in-circuit emulator. Communicating with the outside using a first communication command that is used or a second communication command that is not used in a general in-circuit emulator.
上記第1〜第3の観点に係るインサーキットエミュレータにおいて、通信処理部が、外部から受信した第1のプログラムが暗号化されている場合に、第1のプログラムを復号化してプログラム記憶部に書き込むこととしても良い。 In the in-circuit emulator according to the first to third aspects, the communication processing unit decrypts the first program and writes it to the program storage unit when the first program received from the outside is encrypted. It's also good.
また、本発明の第1の観点に係るデバッグ装置は、インサーキットエミュレータに接続されて使用されるデバッグ装置であって、機密保持対象である第1のプログラム及び/又は機密保持対象でない第2のプログラムを記憶するためのプログラム記憶部と、本発明の第1の観点に係るインサーキットエミュレータに接続された場合に、第1及び第2のプログラムを本発明の第1の観点に係るインサーキットエミュレータに送信し、本発明の第1の観点に係るインサーキットエミュレータ以外のインサーキットエミュレータに接続された場合に、第2のプログラムを当該インサーキットエミュレータに送信するための通信処理部と、インサーキットエミュレータとの間でデータを送受信することによりデバッグ処理を行うためのデバッグ処理部とを具備する。 The debugging device according to the first aspect of the present invention is a debugging device that is used by being connected to an in-circuit emulator, and is a first program that is a confidentiality target and / or a second that is not a confidentiality target. An in-circuit emulator according to the first aspect of the present invention when connected to a program storage unit for storing a program and the in-circuit emulator according to the first aspect of the present invention And a communication processing unit for transmitting the second program to the in-circuit emulator when connected to an in-circuit emulator other than the in-circuit emulator according to the first aspect of the present invention, and an in-circuit emulator Debug processing section for performing debug processing by sending and receiving data to and from Comprising a.
また、本発明の第2の観点に係るデバッグ装置は、インサーキットエミュレータに接続されて使用されるデバッグ装置であって、機密保持対象である第1のプログラム及び/又は機密保持対象でない第2のプログラムを記憶するためのプログラム記憶部と、本発明の第2の観点に係るインサーキットエミュレータとの間の認証処理を行うための認証処理部と、認証処理部による認証処理ができた場合に、本発明の第2の観点に係るインサーキットエミュレータに接続されているものと判断して第1及び第2のプログラムを本発明の第2の観点に係るインサーキットエミュレータに送信し、認証処理部による認証処理ができなかった場合に、本発明の第2の観点に係るインサーキットエミュレータ以外のインサーキットエミュレータに接続されているものと判断して第2のプログラムをインサーキットエミュレータに送信するための通信処理部と、インサーキットエミュレータとの間でデータを送受信することによりデバッグ処理を行うためのデバッグ処理部とを具備する。 A debugging device according to a second aspect of the present invention is a debugging device that is used by being connected to an in-circuit emulator, and is a first program that is a security target and / or a second that is not a security target. When the authentication processing unit for performing authentication processing between the program storage unit for storing the program and the in-circuit emulator according to the second aspect of the present invention, and the authentication processing by the authentication processing unit, The first and second programs are judged to be connected to the in-circuit emulator according to the second aspect of the present invention, and the first and second programs are transmitted to the in-circuit emulator according to the second aspect of the present invention. If the authentication process cannot be performed, it is connected to an in-circuit emulator other than the in-circuit emulator according to the second aspect of the present invention. A communication processing unit for determining that the second program is transmitted to the in-circuit emulator, and a debug processing unit for performing a debugging process by transmitting / receiving data to / from the in-circuit emulator. .
また、本発明の第3の観点に係るデバッグ装置は、インサーキットエミュレータに接続されて使用されるデバッグ装置であって、機密保持対象である第1のプログラム及び/又は機密保持対象でない第2のプログラムを記憶するためのプログラム記憶部と、第2の通信コマンドを用いてインサーキットエミュレータに呼び掛けを行い、応答があった場合に、本発明の第3の観点に係るインサーキットエミュレータに接続されているものと判断して第1及び第2のプログラムを第2の通信コマンドを用いて本発明の第3の観点に係るインサーキットエミュレータに送信し、第2の通信コマンドを用いてインサーキットエミュレータに呼び掛けを行い、応答がなかった場合に、本発明の第3の観点に係るインサーキットエミュレータ以外のインサーキットエミュレータに接続されているものと判断して第2のプログラムを第1の通信コマンドを用いて当該インサーキットエミュレータに送信するための通信処理部と、インサーキットエミュレータとの間でデータを送受信することによりデバッグ処理を行うためのデバッグ処理部とを具備する。 A debugging device according to a third aspect of the present invention is a debugging device that is used by being connected to an in-circuit emulator, and is a first program that is a confidentiality target and / or a second that is not a confidentiality target. When a call is made to the in-circuit emulator using the program storage unit for storing the program and the second communication command and there is a response, the in-circuit emulator according to the third aspect of the present invention is connected. The first and second programs are transmitted to the in-circuit emulator according to the third aspect of the present invention using the second communication command, and are transmitted to the in-circuit emulator using the second communication command. If the call is made and there is no response, an insulator other than the in-circuit emulator according to the third aspect of the present invention Data is transmitted / received between the in-circuit emulator and a communication processing unit for determining that it is connected to the kit emulator and transmitting the second program to the in-circuit emulator using the first communication command A debugging processing unit for performing debugging processing.
上記第1〜第3の観点に係るデバッグ装置において、プログラム記憶部に記憶されている第1のプログラムが暗号化されていることとしても良い。 In the debugging device according to the first to third aspects, the first program stored in the program storage unit may be encrypted.
また、本発明の第1の観点に係るデバッグシステムは、本発明の第1の観点に係るインサーキットエミュレータと、本発明の第1の観点に係るデバッグ装置とを具備する。 A debugging system according to the first aspect of the present invention includes an in-circuit emulator according to the first aspect of the present invention and a debugging device according to the first aspect of the present invention.
また、本発明の第2の観点に係るデバッグシステムは、本発明の第2の観点に係るインサーキットエミュレータと、本発明の第2の観点に係るデバッグ装置とを具備する。 A debugging system according to the second aspect of the present invention includes an in-circuit emulator according to the second aspect of the present invention and a debugging device according to the second aspect of the present invention.
また、本発明の第3の観点に係るデバッグシステムは、本発明の第3の観点に係るインサーキットエミュレータと、本発明の第3の観点に係るデバッグ装置とを具備する。 A debugging system according to the third aspect of the present invention includes an in-circuit emulator according to the third aspect of the present invention and a debugging device according to the third aspect of the present invention.
以下、図面を参照しながら、本発明の実施の形態について説明する。なお、同一の構成要素については、同一の参照番号で示している。
図1は、本発明の第1の実施形態に係るデバッグシステムの概要を示す図である。図1に示すように、このデバッグシステム1は、デバッグ装置2と、インサーキットエミュレータ(ICE)3とを具備する。デバッグ装置2及びインサーキットエミュレータ3は、通信ケーブルCを介して接続されている。インサーキットエミュレータ3は、評価用ボード、製品ボード等に結合されて使用される。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In addition, about the same component, it has shown with the same reference number.
FIG. 1 is a diagram showing an outline of a debugging system according to the first embodiment of the present invention. As shown in FIG. 1, the
デバッグ装置2は、通信処理部21と、認証処理部22と、プログラム記憶部23と、デバッグ処理部24とを具備する。
通信処理部21は、インサーキットエミュレータ3との間の通信処理等を行い、認証処理部22は、インサーキットエミュレータ3との間の認証処理を行う。
The debugging device 2 includes a
The
プログラム記憶部23は、例えばハードディスクドライブ等の記録媒体であり、ハードウェアベンダー等から提供され機密保持対象であるファームウェアファイルと、エンドユーザによって作成され機密保持対象ではないユーザプログラムファイルとが記憶されている。なお、ファームウェアファイルの内容は、暗号化されていることとしても良い。また、ファームウェアファイルのファイル名は、ユーザプログラムのデバッグを行うデバッグ担当者がファームウェアファイルであると認識することが困難な名称(例えば、拡張子が「dll」である等)であることとしても良い。これにより、デバッグ担当者がデバッグ装置2においてファームウェアの内容を知ることがより困難となる。
デバッグ処理部24は、デバッグ担当者の操作を受け付け、操作に応じたデータをインサーキットエミュレータ3に送信し、インサーキットエミュレータ3から受信したデータを表示する。なお、デバッグ処理部24が、ユーザプログラムファイルを作成又は更新するためのコンパイル機能、アセンブル機能等を有していても良い。
デバッグ装置3は、例えば、コンピュータとプログラムにより構成することも可能である。
The
The
The
インサーキットエミュレータ3は、通信処理部31と、認証処理部32と、プログラム記憶部33と、CPUコア部34とを具備する。
通信処理部31は、デバッグ装置2との間の通信処理等を行い、認証処理部32は、デバッグ装置2との間の認証処理を行う。
The in-
The
プログラム記憶部33は、例えばメモリ等であり、ファームウェアを記憶するためのアドレス空間であるファームウェア記憶領域及びユーザプログラムを記憶するためのアドレス空間であるユーザプログラム記憶領域を有している。これらファームウェア記憶領域及びユーザプログラム記憶領域には、通信処理部31により、デバッグ装置2のプログラム記憶部23に記憶されているファームウェア及びユーザプログラムがそれぞれ転送され、書き込まれる。なお、通信処理部31は、デバッグ装置2からの指示に従い、ユーザプログラム記憶領域内のユーザプログラムを読み出してデバッグ装置2に送信することは行うが、ファームウェアの機密保持のため、ファームウェア記憶領域内のファームウェアを読み出すことは行わない。なお、一般のインサーキットエミュレータは、ファームウェアとユーザプログラムを区別することなく、いずれのプログラムの読み出しも行う。この点において、インサーキットエミュレータ3は、一般のインサーキットエミュレータと異なっている。
CPUコア部34は、デバッグ装置2からの指示に従い、プログラム記憶部33に記憶されているファームウェア及び/又はユーザプログラムを1ステップずつ又は連続して実行する。なお、通信処理部31は、デバッグ装置2からの指示に従い、CPUコア部34内の各種レジスタ等への書き込み及び読み出しを行うことができる。
The
The
次に、デバッグシステム1の動作について説明する。図2は、デバッグシステム1のプログラム転送処理を示すフローチャートである。以下、図2を参照しながら、デバッグシステム1のプログラム転送処理について説明する。
まず、デバッグ装置2の認証処理部22が、認証処理を行う(ステップS11)。この認証処理は、デバッグ装置2に今現在接続されているインサーキットエミュレータが本実施形態に係るインサーキットエミュレータ3であるか、本実施形態に係るインサーキットエミュレータ3以外の一般のインサーキットエミュレータであるかを識別するために行われる。ここでは、図1に示すように、デバッグ装置2に本実施形態に係るインサーキットエミュレータ3が接続されているため、デバッグ装置2の認証処理部22とインサーキットエミュレータ3の認証処理部32との間で認証処理が行われる(ステップS11及びS21)。なお、この認証処理においては、インサーキットエミュレータ3の認証処理部32が、製品型番、製品シリアル番号、その他のID等をデバッグ装置2の認証処理部22に送信し、デバッグ装置2の認証処理部22が、受信した製品型番等を用いて今現在接続されているインサーキットエミュレータが本実施形態に係るインサーキットエミュレータ3であるか否かを識別することとしても良い。
Next, the operation of the
First, the authentication processing unit 22 of the debug device 2 performs an authentication process (step S11). In this authentication process, the in-circuit emulator currently connected to the debugging device 2 is the in-
インサーキットエミュレータ3との間の認証ができた場合(ステップS12)、デバッグ装置2の通信処理部21は、ファームウェアをインサーキットエミュレータ3に送信し(ステップS13)、インサーキットエミュレータ3の通信処理部31が、受信したファームウェアをプログラム記憶部33のファームウェア記憶領域に書き込む(ステップS22)。なお、デバッグ装置2のプログラム記憶部23内のファームウェアファイルの内容が暗号化されている場合、インサーキットエミュレータ3の通信処理部31が、復号化してファームウェア記憶領域に書き込む。
When the authentication with the in-
インサーキットエミュレータ3との間の認証ができなかった場合(ステップS12)、又はファームウェアの送信が終了した場合(ステップS13)、デバッグ装置2の通信処理部21は、ユーザプログラムをインサーキットエミュレータ3に送信し(ステップS14)、インサーキットエミュレータ3の通信処理部31が、受信したユーザプログラムをプログラム記憶部33のユーザプログラム記憶領域に書き込む(ステップS23)。
When the authentication with the in-
なお、ファームウェアの送信(ステップS13)は、デバッグ担当者の指示を待たずに自動で行われることとしても良い。先に説明したようにファームウェアファイルのファイル名をデバッグ担当者がファームウェアファイルであると認識することが困難な名称としておき、更に、ファームウェアの送信がデバッグ担当者の指示を待たずに自動で行われることとすれば、ファームウェアの存在自体やインサーキットエミュレータ3への転送自体をエンドユーザから隠蔽することができる。
また、ファームウェアの送信がデバッグ担当者の指示を待たずに自動で行われることとすれば、通信ケーブルC上の信号をモニタリングすることによりファームウェアを入手することをより困難とすることができる。
一方、ユーザプログラムの送信(ステップS14)は、デバッグ担当者の指示を待って行うこととしても良い。
The firmware transmission (step S13) may be automatically performed without waiting for an instruction from the person in charge of debugging. As described above, the file name of the firmware file is set to a name that is difficult for the person in charge of debugging to recognize that it is a firmware file, and the firmware is automatically transmitted without waiting for instructions from the person in charge of debugging. If so, it is possible to conceal the existence of the firmware itself and the transfer itself to the in-
Further, if the transmission of firmware is automatically performed without waiting for an instruction from the person in charge of debugging, it is possible to make it more difficult to obtain the firmware by monitoring the signal on the communication cable C.
On the other hand, the transmission of the user program (step S14) may be performed after waiting for an instruction from the person in charge of debugging.
以上により、ファームウェア及びユーザプログラムがデバッグ装置2からインサーキットエミュレータ3に転送される。これ以降、デバッグ担当者は、デバッグ処理部24を操作してインサーキットエミュレータ3に指示を与えることにより、CPUコア部34にファームウェア及びユーザプログラムを実行させることが可能となる。
As described above, the firmware and the user program are transferred from the debug device 2 to the in-
ところで、デバッグ作業において、デバッグ担当者が、インサーキットエミュレータ3のプログラム記憶部33内のプログラムを参照しようとする場合がある。図3は、このような場合に、インサーキットエミュレータ3のプログラム記憶部33内のプログラムを参照するためのプログラム参照処理を示すフローチャートである。以下、図3を参照しながら、デバッグシステム1のプログラム参照処理について説明する。
By the way, in a debugging operation, a person in charge of debugging may try to refer to a program in the
まず、デバッグ担当者が所望のアドレスを入力すると、デバッグ装置2のデバッグ処理部24は、入力されたアドレスを通信処理部21を介してインサーキットエミュレータ3に送信する(ステップS31)。なお、デバッグ担当者が単一のアドレスを入力することとしても良いし、アドレス範囲を指定することとしても良い。
インサーキットエミュレータ3の通信処理部31は、受信したアドレスがファームウェア記憶領域内を指すかユーザプログラム記憶領域内を指すかをチェックし(ステップS41)、受信したアドレスがユーザプログラム記憶領域内を指す場合には、受信したアドレスに記憶されているプログラムをデバッグ装置2に送信するが(ステップS42)、受信したアドレスがファームウェア記憶領域内を指す場合には、処理を終了する。
デバッグ装置2は、プログラムを受信した場合、受信したプログラムを表示又は記憶する(ステップS32)。
First, when the person in charge of debugging inputs a desired address, the
The
When receiving the program, the debugging device 2 displays or stores the received program (step S32).
以上説明したように、デバッグシステム1によれば、デバッグ担当者が入力したアドレスがユーザプログラム記憶領域内を指す場合には、インサーキットエミュレータ3がプログラムをデバッグ装置2に送信するが、デバッグ担当者が入力したアドレスがファームウェア記憶領域内を指す場合には、インサーキットエミュレータ3がプログラムをデバッグ装置2に送信しないので、デバッグ担当者がファームウェアを閲覧することができず、ファームウェアの機密を保持することができる。
As described above, according to the
また、ファームウェアを閲覧しようとする意図を有するデバッグ担当者が、図4(a)に示すように、デバッグ装置2を本実施形態に係るインサーキットエミュレータ3以外の一般のインサーキットエミュレータ4に接続し、その後、図4(b)に示すように、通信ケーブルCの一端をデバッグ装置2から抜いて本実施形態に係るデバッグ装置2以外の一般のデバッグ装置5に接続することが考えられる。
先に説明したように、一般のインサーキットエミュレータは、本実施形態に係るインサーキットエミュレータ3と異なり、ファームウェアとユーザプログラムを区別することなく、いずれのプログラムの読み出しも行う。しかしながら、図4(a)に示すように、本実施形態に係るデバッグ装置2と一般のインサーキットエミュレータ4とが接続された場合、認証ができないため、ファームウェアがデバッグ装置2からインサーキットエミュレータ4に転送されることはない(図2のステップS11、S21、S12、S13参照)。従って、デバッグ担当者が、図4(b)に示すようにインサーキットエミュレータ4とデバッグ装置5とを接続し、デバッグ装置5を操作しても、インサーキットエミュレータ4にはファームウェアが転送されておらず、ファームウェアを閲覧することはできないこととなる。
Further, as shown in FIG. 4A, a debugging person who intends to view the firmware connects the debugging device 2 to a general in-circuit emulator 4 other than the in-
As described above, the general in-circuit emulator, unlike the in-
また、ファームウェアを閲覧しようとする意図を有するデバッグ担当者が、図5(a)に示すように、デバッグ装置2をインサーキットエミュレータ3に接続し、その後、図5(b)に示すように、通信ケーブルCの一端をデバッグ装置2から抜いて本実施形態に係るデバッグ装置2以外の一般のデバッグ装置5に接続することが考えられる。
図5(a)に示すように、デバッグ装置2とインサーキットエミュレータ3とが接続された場合、ファームウェアがデバッグ装置2からインサーキットエミュレータ3に転送される。しかしながら、デバッグ担当者が、図5(b)に示すように、インサーキットエミュレータ4とデバッグ装置5とを接続し、ファームウェア記憶領域内のアドレスを指定しても、インサーキットエミュレータ3はファームウェア記憶領域内のプログラムの読み出しを行わないため(図3のステップS41、S42参照)、ファームウェアを閲覧することはできないこととなる。
Further, a debugging person who intends to view the firmware connects the debugging device 2 to the in-
As shown in FIG. 5A, when the debugging device 2 and the in-
次に、本発明の第2の実施形態について説明する。図6は、本発明の第2の実施形態に係るデバッグシステムの概要を示す図である。図6に示すように、このデバッグシステム6は、デバッグ装置7と、インサーキットエミュレータ(ICE)8とを具備する。デバッグ装置7及びインサーキットエミュレータ8は、通信ケーブルCを介して接続されている。
Next, a second embodiment of the present invention will be described. FIG. 6 is a diagram showing an outline of a debugging system according to the second embodiment of the present invention. As shown in FIG. 6, the
デバッグ装置7は、プログラム記憶部23と、デバッグ処理部24と、通信処理部71とを具備する。
通信処理部71は、一般のインサーキットエミュレータとデバッグ装置との間において利用されている一般通信コマンド又は一般のインサーキットエミュレータとデバッグ装置との間において利用されていない本実施形態特有の特殊通信コマンドを用いてインサーキットエミュレータと通信を行う。
The
The
インサーキットエミュレータ8は、プログラム記憶部33と、CPUコア部34と、通信処理部81とを具備する。
通信処理部81は、一般通信コマンド又は特殊通信コマンドを用いてデバッグ装置と通信を行う。
The in-circuit emulator 8 includes a
The
次に、デバッグシステム6の動作について説明する。図7は、デバッグシステム6のプログラム転送処理を示すフローチャートである。以下、図7を参照しながら、デバッグシステム6のプログラム転送処理について説明する。
まず、デバッグ装置7の通信処理部71が、特殊通信コマンドを用いてインサーキットエミュレータ8に呼び掛けを行う(ステップS51)。デバッグ装置7に一般のインサーキットエミュレータが接続されている場合、一般のインサーキットエミュレータは、特殊通信コマンドを解釈できないため、デバッグ装置7の呼び掛けに応答することはできない。一方、本実施形態に係るインサーキットエミュレータ8の通信処理部81は、一般通信コマンド及び特殊通信コマンドのいずれをも解釈することができる。ここでは、デバッグ装置7にインサーキットエミュレータ8が接続されているため、インサーキットエミュレータ8は、特殊通信コマンドを用いてデバッグ装置7に応答する(ステップS61)。
Next, the operation of the
First, the
デバッグ装置7の通信処理部71は、インサーキットエミュレータから応答があった場合(ステップS52)には、デバッグ装置7にインサーキットエミュレータ8が接続されていると判断し、以降の通信に特殊通信コマンドを利用し(ステップS53)、特殊通信コマンドを用いてファームウェアを送信し(ステップS54)、特殊通信コマンドを用いてユーザプログラムを送信する(ステップS55)。インサーキットエミュレータ8の通信処理部81は、特殊通信コマンドを用いて受信したファームウェアをプログラム記憶部33のファームウェア記憶領域に書き込み(ステップS62)、特殊通信コマンドを用いて受信したユーザプログラムをプログラム記憶部33のユーザプログラム記憶領域に書き込む(ステップS63)。
なお、デバッグ装置7のプログラム記憶部23内のファームウェアファイルの内容が暗号化されている場合、インサーキットエミュレータ8の通信処理部81が、復号化してファームウェア記憶領域に書き込む。また、ファームウェアの送信(ステップS54)は、デバッグ担当者の指示を待たずに自動で行われることとしても良い。一方、ユーザプログラムの送信(ステップS55)は、デバッグ担当者の指示を待って行うこととしても良い。
When there is a response from the in-circuit emulator (step S52), the
If the contents of the firmware file in the
一方、インサーキットエミュレータから応答がなかった場合(ステップS52)には、デバッグ装置7の通信処理部71は、デバッグ装置7に一般のインサーキットエミュレータが接続されていると判断し、以降の通信に一般通信コマンドを利用し(ステップS56)、一般通信コマンドを用いてユーザプログラムを送信する(ステップS57)。なお、ユーザプログラムの送信(ステップS57)は、デバッグ担当者の指示を待って行うこととしても良い。
On the other hand, when there is no response from the in-circuit emulator (step S52), the
以上により、ファームウェア及びユーザプログラムがデバッグ装置7からインサーキットエミュレータ8に転送される。これ以降、デバッグ担当者は、デバッグ処理部24からインサーキットエミュレータ8に指示を与えることにより、CPUコア部34にファームウェア及びユーザプログラムを実行させることが可能となる。
As described above, the firmware and the user program are transferred from the
ところで、デバッグ作業において、デバッグ担当者が、インサーキットエミュレータ8のプログラム記憶部33内のプログラムを参照しようとする場合がある。この場合、先に説明したデバッグシステム1と同様に、インサーキットエミュレータ8の通信処理部81が、デバッグ担当者が入力したアドレスがユーザプログラム記憶領域内を指す場合には、ユーザプログラムをデバッグ装置7に送信し、デバッグ担当者が入力したアドレスがファームウェア記憶領域内を指す場合には、ファームウェアをデバッグ装置7に送信しないこととすればよい(図3参照)。これにより、デバッグ担当者がファームウェアを閲覧することができず、ファームウェアの機密を保持することができる。
By the way, in the debugging work, the person in charge of debugging may try to refer to the program in the
また、先に説明したと同様に、ファームウェアを閲覧しようとする意図を有するデバッグ担当者が、デバッグ装置7を本実施形態に係るインサーキットエミュレータ8以外の一般のインサーキットエミュレータに接続し、その後、通信ケーブルCの一端をデバッグ装置7から抜いて本実施形態に係るデバッグ装置7以外の一般のデバッグ装置に接続することが考えられる(図4(a)、(b)参照)。
先に説明したように、一般のインサーキットエミュレータは、本実施形態に係るインサーキットエミュレータ8と異なり、ファームウェアとユーザプログラムを区別することなく、いずれのプログラムの読み出しも行う。しかしながら、本実施形態に係るデバッグ装置7と一般のインサーキットエミュレータとが接続された場合、ファームウェアがデバッグ装置7から一般のインサーキットエミュレータに転送されることはない(図7のステップS52、S56、S57参照)。従って、デバッグ担当者が、その後、一般のインサーキットエミュレータと一般のデバッグ装置とを接続し、一般のデバッグ装置を操作しても、一般のインサーキットエミュレータにはファームウェアが転送されておらず、ファームウェアを閲覧することはできないこととなる。
As described above, a debugging person who intends to view the firmware connects the
As described above, the general in-circuit emulator, unlike the in-circuit emulator 8 according to the present embodiment, reads out any program without distinguishing between the firmware and the user program. However, when the
また、ファームウェアを閲覧しようとする意図を有するデバッグ担当者が、デバッグ装置7をインサーキットエミュレータ8に接続し、その後、通信ケーブルCの一端をデバッグ装置7から抜いて本実施形態に係るデバッグ装置7以外の一般のデバッグ装置に接続することが考えられる(図5(a)、(b)参照)。
デバッグ装置7とインサーキットエミュレータ8とが接続された場合、ファームウェアがデバッグ装置7からインサーキットエミュレータ8に特殊通信コマンドを用いて転送される(図7のステップS54参照)。しかしながら、デバッグ担当者が、インサーキットエミュレータ8と一般のデバッグ装置とを接続し、ファームウェア記憶領域内のアドレスを指定しても、インサーキットエミュレータ8はファームウェア記憶領域内のプログラムの読み出しを行わないため、ファームウェアを閲覧することはできないこととなる。
Further, a debugging person who intends to view the firmware connects the
When the
本発明は、インサーキットエミュレータ、インサーキットエミュレータに接続されて使用されるデバッグ装置、及び、それらを具備するデバッグシステムに関する。 The present invention relates to an in-circuit emulator, a debugging device used by being connected to the in-circuit emulator, and a debugging system including them.
1、6 デバッグシステム、2、5、7 デバッグ装置、3、4、8 インサーキットエミュレータ、21、31、41、71、81 通信処理部、22、32 認証処理部、23、33、42 プログラム記憶部、24 デバッグ処理部、34、43 CPUコア部
1, 6
Claims (11)
外部からの指示に従って前記第1及び/又は第2のプログラムを実行するためのCPUコア部と、
前記第1及び/又は第2のプログラムを外部から受信して前記プログラム記憶部に書き込み、前記第1のプログラムの一部又は全部の読み出し指示を外部から受信した場合に、前記プログラム記憶部からの前記第1のプログラムの一部又は全部の読み出しを行わず、前記第2のプログラムの一部又は全部の読み出し指示を外部から受信した場合に、前記プログラム記憶部からの前記第2のプログラムの一部又は全部の読み出しを行って外部に送信するための通信処理部と、
を具備するインサーキットエミュレータ。 A program storage unit for storing a first program that is subject to confidentiality and / or a second program that is not subject to confidentiality;
A CPU core unit for executing the first and / or second program according to an external instruction;
When the first and / or second program is received from the outside and written to the program storage unit, and a read instruction for part or all of the first program is received from the outside, the program storage unit One part of the second program from the program storage unit when an instruction to read part or all of the second program is received from the outside without reading part or all of the first program. A communication processing unit for reading out all or part of the data and transmitting the same to the outside;
In-circuit emulator equipped with.
機密保持対象である第1のプログラム及び/又は機密保持対象でない第2のプログラムを記憶するためのプログラム記憶部と、
請求項1記載のインサーキットエミュレータに接続された場合に、前記第1及び第2のプログラムを請求項1記載のインサーキットエミュレータに送信し、請求項1記載のインサーキットエミュレータ以外のインサーキットエミュレータに接続された場合に、前記第2のプログラムを当該インサーキットエミュレータに送信するための通信処理部と、
インサーキットエミュレータとの間でデータを送受信することによりデバッグ処理を行うためのデバッグ処理部と、
を具備するデバッグ装置。 A debugging device connected to an in-circuit emulator,
A program storage unit for storing a first program that is subject to confidentiality and / or a second program that is not subject to confidentiality;
When connected to the in-circuit emulator according to claim 1, the first and second programs are transmitted to the in-circuit emulator according to claim 1, and sent to an in-circuit emulator other than the in-circuit emulator according to claim 1. A communication processing unit for transmitting the second program to the in-circuit emulator when connected;
A debug processing unit for performing debug processing by transmitting and receiving data to and from an in-circuit emulator;
A debugging device comprising:
機密保持対象である第1のプログラム及び/又は機密保持対象でない第2のプログラムを記憶するためのプログラム記憶部と、
請求項2記載のインサーキットエミュレータとの間の認証処理を行うための認証処理部と、
前記認証処理部による認証処理ができた場合に、請求項2記載のインサーキットエミュレータに接続されているものと判断して前記第1及び第2のプログラムを請求項2記載のインサーキットエミュレータに送信し、前記認証処理部による認証処理ができなかった場合に、請求項2記載のインサーキットエミュレータ以外のインサーキットエミュレータに接続されているものと判断して前記第2のプログラムをインサーキットエミュレータに送信するための通信処理部と、
インサーキットエミュレータとの間でデータを送受信することによりデバッグ処理を行うためのデバッグ処理部と、
を具備するデバッグ装置。 A debugging device connected to an in-circuit emulator,
A program storage unit for storing a first program that is subject to confidentiality and / or a second program that is not subject to confidentiality;
An authentication processing unit for performing authentication processing with the in-circuit emulator according to claim 2;
3. When authentication processing by the authentication processing unit is completed, it is determined that the authentication processing unit is connected to the in-circuit emulator according to claim 2, and the first and second programs are transmitted to the in-circuit emulator according to claim 2. When the authentication processing by the authentication processing unit cannot be performed, it is determined that the second processing program is connected to an in-circuit emulator other than the in-circuit emulator according to claim 2, and the second program is transmitted to the in-circuit emulator. A communication processing unit for
A debug processing unit for performing debug processing by transmitting and receiving data to and from an in-circuit emulator;
A debugging device comprising:
機密保持対象である第1のプログラム及び/又は機密保持対象でない第2のプログラムを記憶するためのプログラム記憶部と、
前記第2の通信コマンドを用いてインサーキットエミュレータに呼び掛けを行い、応答があった場合に、請求項3記載のインサーキットエミュレータに接続されているものと判断して前記第1及び第2のプログラムを前記第2の通信コマンドを用いて請求項3記載のインサーキットエミュレータに送信し、前記第2の通信コマンドを用いてインサーキットエミュレータに呼び掛けを行い、応答がなかった場合に、請求項3記載のインサーキットエミュレータ以外のインサーキットエミュレータに接続されているものと判断して前記第2のプログラムを前記第1の通信コマンドを用いて当該インサーキットエミュレータに送信するための通信処理部と、
インサーキットエミュレータとの間でデータを送受信することによりデバッグ処理を行うためのデバッグ処理部と、
を具備するデバッグ装置。 A debugging device connected to an in-circuit emulator,
A program storage unit for storing a first program that is subject to confidentiality and / or a second program that is not subject to confidentiality;
The first and second programs are determined to be connected to the in-circuit emulator according to claim 3 when the second communication command is used to call the in-circuit emulator and there is a response. Is transmitted to the in-circuit emulator according to claim 3 using the second communication command, the in-circuit emulator is called using the second communication command, and no response is received. A communication processing unit for determining that the second program is connected to an in-circuit emulator other than the in-circuit emulator and transmitting the second program to the in-circuit emulator using the first communication command;
A debug processing unit for performing debug processing by transmitting and receiving data to and from an in-circuit emulator;
A debugging device comprising:
請求項5又は8記載のデバッグ装置と、
を具備するデバッグシステム。 An in-circuit emulator according to claim 1 or 4,
The debugging device according to claim 5 or 8,
A debugging system comprising:
請求項6又は8記載のデバッグ装置と、
を具備するデバッグシステム。 An in-circuit emulator according to claim 2 or 4,
A debugging device according to claim 6 or 8,
A debugging system comprising:
請求項7又は8記載のデバッグ装置と、
を具備するデバッグシステム。 An in-circuit emulator according to claim 3 or 4,
A debugging device according to claim 7 or 8,
A debugging system comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004311860A JP2006126994A (en) | 2004-10-27 | 2004-10-27 | Incircuit emulator, debug device and debug system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004311860A JP2006126994A (en) | 2004-10-27 | 2004-10-27 | Incircuit emulator, debug device and debug system using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006126994A true JP2006126994A (en) | 2006-05-18 |
Family
ID=36721719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004311860A Withdrawn JP2006126994A (en) | 2004-10-27 | 2004-10-27 | Incircuit emulator, debug device and debug system using the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006126994A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008117340A1 (en) * | 2007-03-27 | 2008-10-02 | Fujitsu Limited | Debug target device, authentication program and debug authentication method |
-
2004
- 2004-10-27 JP JP2004311860A patent/JP2006126994A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008117340A1 (en) * | 2007-03-27 | 2008-10-02 | Fujitsu Limited | Debug target device, authentication program and debug authentication method |
JP4814993B2 (en) * | 2007-03-27 | 2011-11-16 | 富士通株式会社 | Device to be debugged, authentication program, and debug authentication method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101183398B1 (en) | Hard drive authentication | |
KR102007532B1 (en) | Hardware security module with means to selectively activate or inhibit debugging and corresponding debugging method | |
KR20090073208A (en) | Persistent security system and method | |
US20040255199A1 (en) | Debug system, microprocessor, and debugger | |
JP4893167B2 (en) | Authentication method | |
KR101950512B1 (en) | Hardware security module and method for processing therein | |
JP2010039891A (en) | Information processor, program execution method, program and information processing system | |
TWI393006B (en) | Security system and method for code dump protection | |
JP4767619B2 (en) | External storage device and SBC control method | |
JPWO2017208618A1 (en) | Information processing apparatus and information processing system | |
JP2007310601A (en) | Microcomputer and method for protecting its software | |
JP2007072957A (en) | Read/write device and debugging system | |
JP4136433B2 (en) | Printing apparatus, information processing apparatus, print server, printing apparatus, printing system control method, and information processing method | |
KR101630462B1 (en) | Apparatus and Method for Securing a Keyboard | |
WO2023098671A1 (en) | Chip licensing and verification method and apparatus, and electronic device | |
TW201738802A (en) | A removable security device and a method to prevent unauthorized exploitation and control access to files | |
JP2004086584A (en) | Authentication device for personal computer | |
CN110674525A (en) | Electronic equipment and file processing method thereof | |
JP2006126994A (en) | Incircuit emulator, debug device and debug system using the same | |
JP5549810B2 (en) | Program obfuscation device, program control device, program obfuscation method, and program | |
CN103761067A (en) | Processing system and processing method for encryption/decryption of data files | |
US20170337114A1 (en) | System and method for communication between a debugger and a target processor | |
JP2002244757A (en) | Semiconductor circuit | |
JP2008059187A (en) | Network authentication system using proxy | |
CN111431887A (en) | Reverse Shell monitoring method and device, terminal equipment and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070404 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071023 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090422 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090428 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090625 |