JP2011165038A - Software development device, program, recording medium, and semiconductor integrated circuit device - Google Patents

Software development device, program, recording medium, and semiconductor integrated circuit device Download PDF

Info

Publication number
JP2011165038A
JP2011165038A JP2010028761A JP2010028761A JP2011165038A JP 2011165038 A JP2011165038 A JP 2011165038A JP 2010028761 A JP2010028761 A JP 2010028761A JP 2010028761 A JP2010028761 A JP 2010028761A JP 2011165038 A JP2011165038 A JP 2011165038A
Authority
JP
Japan
Prior art keywords
function
file
information
software
microcomputer
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
Application number
JP2010028761A
Other languages
Japanese (ja)
Inventor
Kazuhiko Ganiwa
一彦 蟹和
Keiko Kuramochi
恵子 倉持
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010028761A priority Critical patent/JP2011165038A/en
Publication of JP2011165038A publication Critical patent/JP2011165038A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To designate a software component and limit debug function for the software component. <P>SOLUTION: The software development device (10) includes a host system (11) and an emulator (13). The emulator includes a debugging microcomputer (211) and a debug function circuit (221) which obtains debugging information of the debug object program. The device further includes a secrecy control circuit (222) which can determine, based on secrecy setting information for a software component constituting the debug object program to be executed in the debugging microcomputer, whether to make the software component secret, and limit the operation of the debug function circuit upon execution of the software component in the debugging microcomputer. According to this arrangement, dynamic program analysis of software is made difficult. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、ソフトウェアの秘匿技術に関し、例えばIP(特定用途のソフトウェア、回路モジュール)を搭載したマイクロコンピュータで実行されるプログラムの開発に適用して有効な技術に関する。   The present invention relates to a software concealment technique, for example, a technique effective when applied to the development of a program executed by a microcomputer equipped with IP (specific application software, circuit module).

マイクロコンピュータで実行されるプログラムの開発支援のためのソフトウェア開発装置は、ホストシステムとエミュレータとを含む。ホストシステムは、ソフトウェア開発支援に関する各種プログラムを実行したり、エミュレータの動作制御を行う。エミュレータは、ユーザシステムに本来搭載されるマイクロコンピュータに代わって、デバッグ対象プログラムとされるユーザプログラムを実行することで、ユーザプログラムのデバッグのための情報を得る。   A software development apparatus for supporting development of a program executed on a microcomputer includes a host system and an emulator. The host system executes various programs related to software development support and controls the operation of the emulator. The emulator obtains information for debugging the user program by executing a user program which is a program to be debugged instead of the microcomputer originally mounted on the user system.

近年のマイクロコンピュータソフトウェア開発では、互いに異なる開発元のソフトウェアコンポーネントを組み合わせて最終ソフトウェアを組み立てるケースが多くなっている。従来のマイクロコンピュータ開発装置では、OS(Operating System)、周辺モジュールドライバ、ライブラリ、アプリケーションがリンクされた最終的なロードモジュールファイルがあれば、通常その全体ソフトウェアに対して静的解析や、動的な解析、評価が可能である。その中に一部秘匿したいソフトウェアや、回路がある場合にマイクロコンピュータソフトウェア開発装置のファームウェアで秘匿したいソフトウェアのアドレスを認識することにより、デバッグ機能を制限する技術が知られている(例えば特許文献1参照)。また、マスクROM(Read Only Memory)上の秘匿したいソフトウェアの特定固定アドレス範囲をハードウェアで検出し、デバッグ機能を制限する技術が知られている(例えば特許文献2参照)。   In recent microcomputer software development, there are many cases where final software is assembled by combining software components of different developers. In a conventional microcomputer development device, if there is a final load module file linked with an OS (Operating System), peripheral module drivers, libraries, and applications, the entire software is usually subjected to static analysis and dynamic Analysis and evaluation are possible. There is known a technique for limiting the debugging function by recognizing the address of software to be concealed by firmware of a microcomputer software development apparatus when there is software or a circuit to be concealed among them (for example, Patent Document 1). reference). In addition, a technique is known in which a specific fixed address range of software to be concealed on a mask ROM (Read Only Memory) is detected by hardware, and a debugging function is limited (see, for example, Patent Document 2).

特開2006−65555号公報JP 2006-65555 A 特開2003−280756号公報JP 2003-280756 A

上記のように、近年のマイクロコンピュータソフトウェア開発では、互いに異なる開発元のソフトウェアコンポーネントを組み合わせて最終ソフトウェアを組み立てるケースが多くなっている。従来のマイクロコンピュータ開発装置では、OS(Operating System)、周辺モジュールドライバ、ライブラリ、アプリケーションがリンクされた最終的なロードモジュールファイルがあれば、通常その全体ソフトウェアに対して静的解析や、動的な解析、評価が可能である。このような従来技術について本願発明者が検討したところ、最終的なロードモジュールファイルの一部であるソフトウェアコンポーネントを指定して、当該ソフトウェアコンポーネントについてのデバッグ機能を制限することができないため、IP技術を第三者に対して秘匿にすることが困難になることが見いだされた。このことは、特許文献1,2記載の技術によっても解決することができない。   As described above, in recent microcomputer software development, there are many cases where final software is assembled by combining software components of different developers. In a conventional microcomputer development device, if there is a final load module file linked with an OS (Operating System), peripheral module drivers, libraries, and applications, the entire software is usually subjected to static analysis and dynamic Analysis and evaluation are possible. The inventor of the present application examined such a conventional technique, and it is impossible to specify a software component that is a part of a final load module file and limit a debugging function for the software component. It has been found that it is difficult to keep it secret from third parties. This cannot be solved even by the techniques described in Patent Documents 1 and 2.

本発明の目的は、最終的なロードモジュールファイルの一部であるソフトウェアコンポーネントを指定して当該ソフトウェアコンポーネントについてのデバッグ機能を制限するための技術を提供することにある。   An object of the present invention is to provide a technique for specifying a software component that is a part of a final load module file and limiting a debugging function for the software component.

本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。   The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。   The following is a brief description of an outline of typical inventions disclosed in the present application.

すなわち、ホストシステムと、上記ホストシステムに結合され、上記ホストシステムから伝達されたデバッグ対象プログラムをデバッグするためのエミュレータとを含んでソフトウェア開発装置を構成する。上記エミュレータは、上記デバッグ対象プログラムを実行可能なデバッグ用マイクロコンピュータと、上記デバッグ用マイクロコンピュータによる上記デバッグ対象プログラムの実行状態をモニタすることで上記デバッグ対象プログラムのデバッグ情報を得るデバッグ用機能回路とを含む。そして、上記デバッグ用マイクロコンピュータで実行されるデバッグ対象プログラムを構成するソフトウェアコンポーネントについての秘匿設定情報に基づいて、当該ソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記ソフトウェアコンポーネントが上記デバッグ用マイクロコンピュータで実行された場合の上記デバッグ用機能回路の動作を制限可能な秘匿制御回路を設ける。   That is, a software development apparatus is configured including a host system and an emulator coupled to the host system and for debugging a program to be debugged transmitted from the host system. The emulator includes a debugging microcomputer capable of executing the debugging target program, a debugging functional circuit for obtaining debugging information of the debugging target program by monitoring an execution state of the debugging target program by the debugging microcomputer, including. Then, based on the confidential setting information about the software component constituting the debug target program executed by the debugging microcomputer, it is determined whether or not the software component should be concealed, and based on the determination result, the software A secret control circuit capable of restricting the operation of the debug function circuit when the component is executed by the debug microcomputer is provided.

本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。   The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.

すなわち、最終的なロードモジュールファイルの一部であるソフトウェアコンポーネントを指定して当該ソフトウェアコンポーネントについてのデバッグ機能を制限することができる。   That is, it is possible to specify a software component that is a part of the final load module file and limit the debugging function for the software component.

本発明にかかるソフトウェア開発装置の構成例ブロック図である。It is a block diagram of a configuration example of a software development device according to the present invention. 上記ソフトウェア開発装置に含まれるエミュレータの構成例ブロック図である。It is a block diagram of a configuration example of an emulator included in the software development apparatus. 上記エミュレータに含まれる秘匿制御回路の構成例回路図である。FIG. 2 is a circuit diagram illustrating a configuration example of a secret control circuit included in the emulator. 上記エミュレータに含まれるデバッグ用機能回路によって実現される各種デバッグ機能と、秘匿制御回路による秘匿時の機能制限例の説明図である。It is explanatory drawing of the function limitation example at the time of the various debugging functions implement | achieved by the functional circuit for debugging contained in the said emulator, and the confidential control circuit. 上記ソフトウェア開発装置において、ソフトウェアを開発するためのツールとして、クロスソフトウェアを使用した場合の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process at the time of using cross software as a tool for developing software in the said software development apparatus. 上記クロスソフトウェアに含まれるコンパイル又はアセンブル処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the compilation or assembly process contained in the said cross software. 上記クロスソフトウェアに含まれるリンク処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the link process contained in the said cross software. 上記秘匿制御回路に含まれる秘匿ID設定レジスタへの秘匿ID情報設定の流れを示すフローチャートである。It is a flowchart which shows the flow of confidential ID information setting to the confidential ID setting register | resistor contained in the said confidential control circuit. ソフトウェア開発装置におけるデバッグ対象プログラムのダウンロードの説明図である。It is explanatory drawing of the download of the debug object program in a software development apparatus. ソフトウェア開発装置におけるデバッグ対象プログラムのアップロードの説明図である。It is explanatory drawing of the upload of the debug object program in a software development apparatus. 本発明にかかる半導体集積回路装置の一例とされるマイクロコンピュータチップを含むオンチップエミュレータの構成例ブロック図である。1 is a block diagram illustrating a configuration example of an on-chip emulator including a microcomputer chip as an example of a semiconductor integrated circuit device according to the present invention. 上記マイクロコンピュータチップの構成例ブロック図である。It is a block diagram of a configuration example of the microcomputer chip. 上記スーパバイザモードの拡張に関する説明図である。It is explanatory drawing regarding expansion of the said supervisor mode. マイクロコンピュータアーキテクチャとしてのスーパバイザモードの概念説明図である。It is a conceptual explanatory view of the supervisor mode as a microcomputer architecture. 図13に示されるようにスーパバイザモードを拡張した場合の上記マイクロコンピュータチップの構成例ブロック図である。FIG. 14 is a block diagram showing a configuration example of the microcomputer chip when the supervisor mode is expanded as shown in FIG. 13. 図15に示されるマイクロコンピュータチップに含まれる秘匿制御回路の構成例ブロック図である。FIG. 16 is a block diagram illustrating a configuration example of a secret control circuit included in the microcomputer chip illustrated in FIG. 15. マイクロコンピュータアーキテクチャとしてのMMUによるアドレス変換/メモリ保護機構の説明図である。It is explanatory drawing of the address translation / memory protection mechanism by MMU as a microcomputer architecture. 図17に示されるようなMMUを使用して各タスク毎に仮想アドレス空間を割り当てた場合のマイクロコンピュータチップの構成例ブロック図である。FIG. 18 is a block diagram illustrating a configuration example of a microcomputer chip when a virtual address space is assigned to each task using the MMU as illustrated in FIG. 17. 図18に示されるマイクロコンピュータチップに含まれる秘匿制御回路の構成例ブロック図である。FIG. 19 is a block diagram illustrating a configuration example of a secret control circuit included in the microcomputer chip illustrated in FIG. 18.

1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
1. First, an outline of a typical embodiment of the invention disclosed in the present application will be described. Reference numerals in the drawings referred to in parentheses in the outline description of the representative embodiments merely exemplify what are included in the concept of the components to which the reference numerals are attached.

〔1〕本発明の代表的な実施の形態に係るソフトウェア開発装置(10)は、ホストシステム(11)と、上記ホストシステムに結合され、上記ホストシステムから伝達されたデバッグ対象プログラムをデバッグするためのエミュレータ(13)とを含む。上記エミュレータは、上記デバッグ対象プログラムを実行可能なデバッグ用マイクロコンピュータ(211)と、上記デバッグ用マイクロコンピュータによる上記デバッグ対象プログラムの実行状態をモニタすることで上記デバッグ対象プログラムのデバッグ情報を得るデバッグ用機能回路(221)とを含む。そして、上記デバッグ用マイクロコンピュータで実行されるデバッグ対象プログラムを構成するソフトウェアコンポーネントについての秘匿設定情報に基づいて、当該ソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記ソフトウェアコンポーネントが上記デバッグ用マイクロコンピュータで実行された場合の上記デバッグ用機能回路の動作を制限可能な秘匿制御回路(222)を設ける。   [1] A software development apparatus (10) according to a representative embodiment of the present invention is coupled to a host system (11) and the host system, and debugs a program to be debugged transmitted from the host system. Emulator (13). The emulator includes a debugging microcomputer (211) capable of executing the debugging target program and a debugging microcomputer for obtaining debugging information of the debugging target program by monitoring an execution state of the debugging target program by the debugging microcomputer. And a functional circuit (221). Then, based on the confidential setting information about the software component constituting the debug target program executed by the debugging microcomputer, it is determined whether or not the software component should be concealed, and based on the determination result, the software A secret control circuit (222) capable of restricting the operation of the debugging functional circuit when the component is executed by the debugging microcomputer is provided.

上記の構成によれば、秘匿制御回路は、上記デバッグ用マイクロコンピュータで実行されるデバッグ対象プログラムを構成するソフトウェアコンポーネントについての秘匿設定情報に基づいて、当該ソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記ソフトウェアコンポーネントが上記デバッグ用マイクロコンピュータで実行された場合の上記デバッグ用機能回路の動作を制限する。このように上記ソフトウェアコンポーネントが上記デバッグ用マイクロコンピュータで実行された場合の上記デバッグ用機能回路の動作が制限されることにより、最終的なロードモジュールファイルの一部であるソフトウェアコンポーネントを指定して当該ソフトウェアコンポーネントについてのデバッグ機能を制限することができる。これにより、秘匿対象とされるソフトウェアの動的プログラム解析が困難になり、IP技術を第三者に対して秘匿にすることができる。   According to the above configuration, the concealment control circuit determines whether or not the software component should be concealed based on the concealment setting information about the software component that constitutes the debug target program executed by the debugging microcomputer. Based on the determination result, the operation of the functional circuit for debugging when the software component is executed by the microcomputer for debugging is limited. As described above, the operation of the functional circuit for debugging when the software component is executed by the debugging microcomputer is limited, so that the software component that is a part of the final load module file can be specified and The debugging function for software components can be limited. This makes it difficult to perform dynamic program analysis of software to be concealed, making it possible to conceal IP technology from third parties.

〔2〕上記〔1〕において、上記デバッグ用マイクロコンピュータには、上記デバッグ対象プログラムを構成するソフトウェアコンポーネントのID情報が設定される実行ソフトID設定レジスタ(214)を含めることができる。これにより、実行ソフトID設定レジスタが設けられることにより、上記デバッグ対象プログラムを構成するソフトウェアコンポーネントのID情報の設定を容易に行うことができる。また、上記秘匿制御回路には、秘匿対象ソフトウェアコンポーネントのID情報が設定された秘匿ID設定レジスタ(31−1〜31−n)と、上記実行ソフトID設定レジスタの出力情報と、上記秘匿ID設定レジスタの出力情報とが一致するか否かを判別する比較回路(32−1)〜32−nとを含めることができる。このとき、上記比較回路の比較結果に基づいて上記デバッグ用機能回路の動作を制限するための信号を形成する。かかる構成によれば、上記機能を有する秘匿制御回路を容易に実現することができる。   [2] In the above [1], the debug microcomputer may include an execution software ID setting register (214) in which ID information of software components constituting the debug target program is set. Thus, by providing the execution software ID setting register, it is possible to easily set the ID information of the software component constituting the debug target program. Further, the secret control circuit includes a secret ID setting register (31-1 to 31-n) in which ID information of a secret software component is set, output information of the execution software ID setting register, and the secret ID setting. Comparing circuits (32-1) to 32-n for determining whether or not the output information of the register matches can be included. At this time, a signal for limiting the operation of the debug function circuit is formed based on the comparison result of the comparison circuit. According to this configuration, a secret control circuit having the above functions can be easily realized.

〔3〕上記〔1〕において、上記ホストシステムは、ソースファイルをコンパイル又はアセンブルすることで、オブジェクトファイルを形成するオブジェクトファイル生成機能と、上記オブジェクトファイル生成機能により形成されたオブジェクトファイルに基づいてロードモジュールファイルを形成するロードモジュールファイル生成機能とを含めることができる。このとき、上記ロードモジュールファイルが上記デバッグ対象プログラムとして上記エミュレータに送出される。これにより、ホストシステムにおいて、ソースファイルのコンパイル又はアセンブルや、オブジェクトファイルに基づくロードモジュールファイルの形成を行うことができる。   [3] In the above [1], the host system compiles or assembles a source file to load an object file based on an object file generation function that forms an object file and an object file formed by the object file generation function. A load module file generation function for forming a module file can be included. At this time, the load module file is sent to the emulator as the debug target program. As a result, the host system can compile or assemble the source file and form a load module file based on the object file.

〔4〕上記〔3〕において、上記オブジェクトファイル生成機能は、ソースファイルを読み込んで、上記実行ソフトID設定レジスタにID情報を書き込むためのコードを上記ソースファイルに付加する第1機能(601,602)と、上記第1機能により上記コードが付加されたソースファイルをコンパイル又はアセンブルすることでオブジェクトファイルを形成する第2機能(603)と、上記第2機能によって得られたオブジェクトファイルは秘匿対象であるか否かを判別する第3機能とを含む。また、上記オブジェクトファイル生成機能は、上記第3機能による判別結果に基づいて、秘匿対象であるオブジェクトファイルに暗号化処理を施す第4機能(605)と、上記第3機能による判別結果に基づいて、上記オブジェクトファイルに、当該ファイルが秘匿対象であるか否かを示すフラグを設定する第5機能(606)とを含む。   [4] In the above [3], the object file generation function reads the source file and adds a code for writing ID information to the execution software ID setting register to the first file (601, 602) ), A second function (603) that forms an object file by compiling or assembling the source file to which the code is added by the first function, and the object file obtained by the second function is a secret object. And a third function for determining whether or not there is. In addition, the object file generation function is based on the fourth function (605) for performing encryption processing on the object file to be concealed based on the determination result by the third function and the determination result by the third function. The object file includes a fifth function (606) for setting a flag indicating whether or not the file is a secret object.

上記ロードモジュールファイル生成機能は、上記オブジェクトファイル生成機能によって生成されたオブジェクトファイルに基づいてロードモジュールファイルを形成する第6機能(701,702)と、上記第6機能により形成されたロードモジュールファイルに、秘匿対象とされるものが含まれるか否かの判別を行う第7機能(703)とを含む。また、上記ロードモジュールファイル生成機能は、上記第7機能により、秘匿対象とされるものが含まれると判断されたロードモジュールファイルに暗号化処理を施す第8機能(704)と、上記第7機能の判別結果に基づいて、上記ロードモジュールファイルに、当該ファイルが秘匿対象か否かを示すフラグを付加する第9機能(705)と、を含む。   The load module file generation function includes a sixth function (701, 702) for forming a load module file based on the object file generated by the object file generation function, and a load module file formed by the sixth function. And a seventh function (703) for determining whether or not an object to be concealed is included. In addition, the load module file generation function includes an eighth function (704) for performing encryption processing on the load module file that is determined to contain a secret object by the seventh function, and the seventh function. And a ninth function (705) for adding a flag indicating whether or not the file is a secret object to the load module file based on the determination result.

上記各機能が発揮されることにより、上記オブジェクトファイルや上記ロードモジュールファイルの生成を的確に行うことができる。   By exhibiting the above functions, the object file and the load module file can be generated accurately.

〔5〕上記〔4〕において、上記デバッグ用マイクロコンピュータには、上記ホストシステムによって暗号化された上記ロードモジュールファイルを取り込んで復号化する復号化処理機能(217)と、上記復号化処理機能で復号化されたファイルを格納するための専用エリア(218)とを設け、上記専用エリアに格納されたファイルを上記デバッグ対象として実行するように構成することができる。   [5] In the above [4], the debugging microcomputer receives the load module file encrypted by the host system and decrypts the load module file (217) and the decryption processing function. A dedicated area (218) for storing the decrypted file may be provided, and the file stored in the dedicated area may be executed as the debug target.

デバッグ用マイクロコンピュータに暗号復号モジュールを設け、そこで暗号処理や復号処理が行われるため、復号化された命令コードはデバッグ用マイクロコンピュータの内部以外には存在しない。デバッグ対象プログラムのコードをデバッグ用マイクロコンピュータの外部で取得することができないので、秘匿対象とされるソフトウェアの静的コード解析が困難になる。   Since the encryption / decryption module is provided in the debugging microcomputer, and encryption processing and decryption processing are performed there, there is no decrypted instruction code other than inside the debugging microcomputer. Since the code of the program to be debugged cannot be acquired outside the debugging microcomputer, it becomes difficult to perform static code analysis of software to be concealed.

〔6〕上記〔5〕において、上記デバッグ用マイクロコンピュータには、上記専用アリア内の上記ロードモジュールファイルを上記ホストシステムに送出する前に当該ロードモジュールファイルを暗号化する暗号化処理機能(217)を更に設けることができる。復号化された命令コードがデバッグ用マイクロコンピュータの外部に送出されるのを回避することができる。   [6] In the above [5], the debugging microcomputer encrypts the load module file before sending the load module file in the dedicated area to the host system (217). Can be further provided. The decrypted instruction code can be prevented from being sent out of the debugging microcomputer.

〔7〕コンピュータに実現させるためのプログラムとして、ソースファイルを読み込んで、実行ソフトID設定レジスタにID情報を書き込むためのコードを上記ソースファイルに付加する第1機能と、上記第1機能により上記コードが付加されたソースファイルをコンパイル又はアセンブルすることでオブジェクトファイルを形成する第2機能とを設ける。また、上記コンピュータに実現させるためのプログラムとして、上記第2機能によって得られたオブジェクトファイルは秘匿対象であるか否かを判別する第3機能と、上記第3機能による判別結果に基づいて、秘匿対象であるオブジェクトファイルに暗号化処理を施す第4機能と、上記第3機能による判別結果に基づいて、上記オブジェクトファイルに、当該ファイルが秘匿対象であるか否かを示すフラグを設定する第5機能とを設ける。さらに、上記コンピュータに実現させるためのプログラムとして、上記オブジェクトファイルに基づいてロードモジュールファイルを形成する第6機能と、上記第6機能により形成されたロードモジュールファイルに、秘匿対象とされるものが含まれるか否かの判別を行う第7機能を設ける。そして、上記コンピュータに実現させるためのプログラムとして、上記第7機能により、秘匿対象とされるものが含まれると判断されたロードモジュールファイルに暗号化処理を施す第8機能と、上記第7機能の判別結果に基づいて、上記ロードモジュールファイルに、当該ファイルが秘匿対象か否かを示すフラグを付加する第9機能とを設ける。上記各機能が発揮されることにより、上記オブジェクトファイルや上記ロードモジュールファイルの生成を的確に行うことができる。   [7] As a program to be realized by a computer, a first function for reading a source file and writing a code for writing ID information in an execution software ID setting register to the source file, and the code by the first function And a second function for forming an object file by compiling or assembling the source file to which is added. Further, as a program to be realized by the computer, the object file obtained by the second function is concealed based on the third function for determining whether or not the object file is a concealment target and the determination result by the third function. A fifth function for setting a flag indicating whether or not the object file is a target to be concealed to the object file based on a determination result of the fourth function for performing encryption processing on the target object file and the third function; Function. Further, the program to be realized by the computer includes a sixth function for forming a load module file based on the object file, and a load module file formed by the sixth function that is to be concealed A seventh function is provided for determining whether or not to be performed. As a program to be realized by the computer, an eighth function for performing encryption processing on a load module file that is determined to contain a confidential object by the seventh function, and a function for the seventh function Based on the determination result, the load module file is provided with a ninth function for adding a flag indicating whether or not the file is a secret object. By exhibiting the above functions, the object file and the load module file can be generated accurately.

〔8〕上記〔7〕のプログラムは、コンピュータ読み取り可能な記録媒体に記録することができる。これにより、上記記録媒体に記録されている上記プログラムをコンピュータに実行させることができる。   [8] The program of [7] can be recorded on a computer-readable recording medium. Thereby, the computer can execute the program recorded on the recording medium.

〔9〕デバッグ対象プログラムを実行可能なマイクロコンピュータ機能部(121)と、上記デバッグ用マイクロコンピュータによる上記デバッグ対象プログラムの実行状態をモニタすることで上記デバッグ対象プログラムのデバッグ情報を得るデバッグ用機能回路(1221)とを含んで半導体集積回路装置を構成する。このとき、上記マイクロコンピュータ機能部で実行されるデバッグ対象プログラムを構成するソフトウェアコンポーネントについての秘匿設定情報に基づいて、当該ソフトコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記ID情報に対応するソフトウェアコンポーネントが上記マイクロコンピュータ機能部で実行された場合の上記デバッグ用機能回路の動作を制限可能な秘匿制御回路(1222)を設ける。   [9] A microcomputer functional unit (121) capable of executing the debug target program and a debug functional circuit for obtaining debug information of the debug target program by monitoring the execution state of the debug target program by the debug microcomputer (1221) is included in the semiconductor integrated circuit device. At this time, it is determined whether or not the software component should be concealed based on the concealment setting information about the software component constituting the debug target program executed by the microcomputer function unit, and based on the determination result, A secret control circuit (1222) capable of restricting the operation of the debugging functional circuit when the software component corresponding to the ID information is executed by the microcomputer function unit is provided.

上記の構成によれば、秘匿制御回路は、上記マイクロコンピュータ機能部で実行されるデバッグ対象プログラムを構成するソフトウェアコンポーネントについての秘匿設定情報に基づいて、当該ソフトコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記ID情報に対応するソフトウェアコンポーネントが上記マイクロコンピュータ機能部で実行された場合の上記デバッグ用機能回路の動作を制限する。このように、秘匿すべきソフトウェアコンポーネントとして予め指定されたものについては、エミュレータ13のデバッグ機能の動作が制限される。これにより、秘匿対象とされるソフトウェアの動的プログラム解析が困難になり、IP技術を第三者に対して秘匿にすることができる。   According to the above configuration, the concealment control circuit determines whether or not the software component should be concealed based on the concealment setting information about the software component that configures the debug target program executed by the microcomputer function unit. Based on the determination result, the operation of the debugging functional circuit when the software component corresponding to the ID information is executed by the microcomputer function unit is limited. In this way, the operation of the debugging function of the emulator 13 is limited for those designated in advance as software components to be concealed. This makes it difficult to perform dynamic program analysis of software to be concealed, making it possible to conceal IP technology from third parties.

〔10〕上記〔9〕において、上記マイクロコンピュータ機能部(121)は、上記デバッグ対象プログラムを構成するソフトウェアコンポーネントのID情報が設定される実行ソフトID設定レジスタ(1214)を含む。このとき、上記秘匿制御回路は、上記実行ソフトID設定レジスタに設定されたID情報に対応するソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記実行ソフトID設定レジスタの設定情報に対応するプログラムが上記マイクロコンピュータ機能部で実行された場合の上記デバッグ用機能回路の動作を制限する。これにより、上記機能を有する秘匿制御回路を容易に実現することができる。   [10] In the above [9], the microcomputer function unit (121) includes an execution software ID setting register (1214) in which ID information of software components constituting the debug target program is set. At this time, the concealment control circuit determines whether or not the software component corresponding to the ID information set in the execution software ID setting register should be concealed, and based on the determination result, the execution software ID setting register The operation of the debugging functional circuit is limited when a program corresponding to the setting information is executed by the microcomputer function unit. As a result, a concealment control circuit having the above functions can be easily realized.

〔11〕上記〔10〕において、上記秘匿制御回路は、秘匿対象ソフトウェアコンポーネントのID情報が設定された秘匿ID設定レジスタ(31−1〜31−n)と、上記実行ソフトID設定レジスタの出力情報と、上記秘匿ID設定レジスタの出力情報とが一致するか否かを判別する比較回路(32−1〜31−n)とを含んで構成することができる。このとき、上記比較回路の比較結果に基づいて上記デバッグ用機能回路の動作を制限するための信号が形成される。   [11] In the above [10], the concealment control circuit outputs the concealment ID setting register (31-1 to 31-n) in which the ID information of the concealment target software component is set and the output information of the execution software ID setting register. And a comparison circuit (32-1 to 31-n) for determining whether or not the output information of the secret ID setting register matches. At this time, a signal for limiting the operation of the debug function circuit is formed based on the comparison result of the comparison circuit.

〔12〕上記〔9〕において、上記マイクロコンピュータ機能部は、上記マイクロコンピュータ機能部で実行されるプログラムを指定するためのプログラム走行モード設定レジスタ(PSW)を含んで構成することができる。このとき上記秘匿制御回路は、上記プログラム走行モード設定レジスタの設定情報に対応するソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記プログラム走行モード設定レジスタの設定情報に対応するソフトウェアコンポーネントが上記マイクロコンピュータ機能部で実行された場合の上記デバッグ用機能回路の動作を制限する。これにより、最終的なロードモジュールファイルの一部であるソフトウェアコンポーネントを指定して当該ソフトウェアコンポーネントについてのデバッグ機能を制限することができる。これにより、秘匿対象とされるソフトウェアの動的プログラム解析が困難になり、IP技術を第三者に対して秘匿にすることができる。   [12] In the above [9], the microcomputer function unit can include a program running mode setting register (PSW) for designating a program to be executed by the microcomputer function unit. At this time, the concealment control circuit determines whether or not the software component corresponding to the setting information of the program travel mode setting register should be concealed, and corresponds to the setting information of the program travel mode setting register based on the determination result. When the software component to be executed is executed by the microcomputer function unit, the operation of the functional circuit for debugging is restricted. As a result, the software component that is a part of the final load module file can be specified to limit the debugging function for the software component. This makes it difficult to perform dynamic program analysis of software to be concealed, making it possible to conceal IP technology from third parties.

〔13〕上記〔12〕において、上記秘匿制御回路は、秘匿対象プログラム走行モード情報が設定された秘匿モード設定レジスタ(161−1〜161−n)と、上記プログラム走行モード設定レジスタの出力情報と、上記秘匿モード設定レジスタの出力情報とを比較する比較回路(162−1〜162−n)とを含んで構成することができる。このとき、上記比較の比較結果に基づいて上記デバッグ用機能回路の動作を制限するための信号が形成される。これにより、上記機能を有する秘匿制御回路を容易に実現することができる。   [13] In the above [12], the concealment control circuit includes a concealment mode setting register (161-1-161-n) in which concealment target program travel mode information is set, and output information of the program travel mode setting register, The comparator circuit 162-1 to 162-n that compares the output information of the secret mode setting register can be configured. At this time, a signal for limiting the operation of the debug function circuit is formed based on the comparison result of the comparison. As a result, a concealment control circuit having the above functions can be easily realized.

〔14〕上記〔9〕において、上記マイクロコンピュータ機能部は、デバッグ対象プログラムの実行単位毎に割り当てられた仮想アドレス空間を示す空間ID情報が設定される空間ID設定レジスタ(CR)を含んで構成することができる。このとき、上記秘匿制御回路は、上記空間ID設定レジスタの設定情報に対応する仮想アドレス空間の実行単位を秘匿すべきか否かを判別し、その判別結果に基づいて、上記空間ID設定レジスタの設定情報に対応する仮想アドレス空間の実行単位が上記マイクロコンピュータ機能部で実行された場合の上記デバッグ用機能回路の動作が制限される。これにより、最終的なロードモジュールファイルの一部であるソフトウェアコンポーネントを指定して当該ソフトウェアコンポーネントについてのデバッグ機能を制限することができる。これにより、秘匿対象とされるソフトウェアの動的プログラム解析が困難になり、IP技術を第三者に対して秘匿にすることができる。   [14] In the above [9], the microcomputer function unit includes a space ID setting register (CR) in which space ID information indicating a virtual address space allocated for each execution unit of the debug target program is set. can do. At this time, the concealment control circuit determines whether or not the execution unit of the virtual address space corresponding to the setting information of the space ID setting register should be concealed, and based on the determination result, the setting of the space ID setting register When the execution unit of the virtual address space corresponding to the information is executed by the microcomputer function unit, the operation of the debugging functional circuit is limited. As a result, the software component that is a part of the final load module file can be specified to limit the debugging function for the software component. This makes it difficult to perform dynamic program analysis of software to be concealed, making it possible to conceal IP technology from third parties.

〔15〕上記〔14〕において、上記秘匿制御回路は、秘匿対象仮想アドレス空間情報が設定された秘匿空間設定レジスタ(191−1〜191−n)と、上記空間ID設定レジスタの出力情報と、上記秘匿空間設定レジスタの出力情報とを比較する比較回路(162−1〜162−n)と、を含んで構成することができる。このとき、上記比較回路の比較結果に基づいて上記デバッグ用機能回路の動作を制限するための信号が形成される。これにより、上記機能を有する秘匿制御回路を容易に実現することができる。   [15] In the above [14], the concealment control circuit includes a concealment space setting register (191-1 to 191-n) in which concealment target virtual address space information is set, output information of the space ID setting register, Comparing circuits (162-1 to 162-n) for comparing the output information of the secret space setting register can be configured. At this time, a signal for limiting the operation of the debug function circuit is formed based on the comparison result of the comparison circuit. As a result, a concealment control circuit having the above functions can be easily realized.

2.実施の形態の詳細
実施の形態について更に詳述する。
2. Details of Embodiments Embodiments will be further described in detail.

<実施の形態1>
図1には、本発明にかかるソフトウェア開発装置の構成例が示される。
<Embodiment 1>
FIG. 1 shows a configuration example of a software development apparatus according to the present invention.

図1に示されるソフトウェア開発装置10は、特に制限されないが、ホストシステム11とエミュレータ13とを含む。ホストシステム11は、例えばパーソナルコンピュータであり、ソフトウェア開発支援に関する各種プログラムを実行する。ソフトウェア開発支援に関する各種プログラムには、所定の言語でソフトウェアを開発するためのツールや、エミュレータ13の動作制御用プログラムなどが含まれる。ソフトウェア開発支援に関する所定のプログラムは、記録媒体の一例とされる光ディスク15によって供給され、ホストシステム11に読み取られて実行される。エミュレータ13は、USBアダプタ12を介してホストシステム11に結合され、エミュレータ本体から引き出されたインタフェースケーブルを介してユーザシステム14におけるマイクロコンピュータのソケットに結合される。エミュレータ13は、ユーザシステム14に本来搭載されるマイクロコンピュータに代わって、デバッグ対象プログラムとされるユーザプログラムを実行することで、ユーザプログラムのデバッグのための情報(デバッグ情報)を得る。デバッグ対象プログラムとされるユーザプログラムは、ホストシステム11上でCコンパイラ等の言語で開発され、ユーザシステム14に搭載されるマイクロコンピュータ上で動作するオブジェクトコードに変換される。変換されたオブジェクトコード(デバッグ対象プログラム)は、ユーザプログラムはホストシステム11からUSBアダプタ12を介してエミュレータ13に伝達される(これを「ダウンロード」という)。エミュレータ13で得られたデバッグ情報は、デバッグ及び評価のため、USBアダプタ12を介してホストシステム11に伝達される。   The software development apparatus 10 shown in FIG. 1 includes a host system 11 and an emulator 13, although not particularly limited. The host system 11 is a personal computer, for example, and executes various programs related to software development support. Various programs related to software development support include a tool for developing software in a predetermined language, an operation control program for the emulator 13, and the like. A predetermined program related to software development support is supplied by an optical disc 15 which is an example of a recording medium, and is read and executed by the host system 11. The emulator 13 is coupled to the host system 11 via the USB adapter 12 and is coupled to a socket of a microcomputer in the user system 14 via an interface cable drawn from the emulator main body. The emulator 13 obtains information for debugging the user program (debug information) by executing a user program that is a program to be debugged instead of the microcomputer that is originally mounted on the user system 14. A user program to be debugged is developed in a language such as a C compiler on the host system 11 and converted into object code that operates on a microcomputer mounted on the user system 14. The converted object code (program to be debugged) is transmitted as a user program from the host system 11 to the emulator 13 via the USB adapter 12 (this is referred to as “download”). The debug information obtained by the emulator 13 is transmitted to the host system 11 via the USB adapter 12 for debugging and evaluation.

図2には、エミュレータ13の構成例が示される。   FIG. 2 shows a configuration example of the emulator 13.

エミュレータ13は、図2に示されるように、デバッグ用マイクロコンピュータ21、デバッグ機能部22、及びPC(パーソナルコンピュータ)インタフェース23を含む。PCインタフェース23は、ホストシステム11との間で、デバッグ対象プログラムやデバッグ情報などの各種情報のやり取りを行う。   As shown in FIG. 2, the emulator 13 includes a debugging microcomputer 21, a debugging function unit 22, and a PC (personal computer) interface 23. The PC interface 23 exchanges various information such as a debug target program and debug information with the host system 11.

デバッグ用マイクロコンピュータ21は、CPU211や周辺モジュール215など、ユーザシステム14に搭載されるチップと同等の回路モジュールのほかに、デバッグのための回路として、デバッグ用IF(インタフェース)回路212、デバッグ対象プログラム用RAM(ランダムアクセスメモリ)213、及び実行ソフトID設定レジスタ214を含む。CPU211は、デバッグ対象プログラムを実行する。周辺モジュール215は、CPU211によってアクセスされる。デバッグ用IF回路212は、デバッグ用マイクロコンピュータ21とデバッグ機能部22との間で各種信号のやり取りを行う。デバッグ対象プログラム用RAM213には、ホストシステム11から伝達されたデバッグ対象プログラムが格納される。デバッグ対象プログラム用RAM213内のデバッグ対象プログラムは、CPU211で実行される。実行ソフトID設定レジスタ214には、デバッグ対象プログラムを構成するソフトウェアコンポーネントのID情報が設定される。実行ソフトID設定レジスタ214へのID情報設定は、デバッグ対象プログラムを実行するCPU211によって行われる。   The debugging microcomputer 21 includes a debugging IF (interface) circuit 212, a debugging target program, as a circuit for debugging, in addition to a circuit module equivalent to a chip mounted on the user system 14, such as the CPU 211 and the peripheral module 215. RAM (random access memory) 213 and execution software ID setting register 214 are included. The CPU 211 executes the debug target program. The peripheral module 215 is accessed by the CPU 211. The debug IF circuit 212 exchanges various signals between the debug microcomputer 21 and the debug function unit 22. The debug target program RAM 213 stores the debug target program transmitted from the host system 11. The debug target program in the debug target program RAM 213 is executed by the CPU 211. In the execution software ID setting register 214, ID information of software components constituting the debug target program is set. ID information setting in the execution software ID setting register 214 is performed by the CPU 211 that executes the debug target program.

デバッグ機能部22は、デバッグ用機能回路221、及び秘匿制御回路222を含み、デバッグ用マイクロコンピュータ21やPCインタフェース23に結合される。デバッグ用機能回路221は、エミュレータ13のデバッグ制御プログラムが実行される制御用マイクロプロセッサやその周辺回路が含まれ、各種デバッグ機能が実現される。   The debug function unit 22 includes a debug function circuit 221 and a secret control circuit 222, and is coupled to the debug microcomputer 21 and the PC interface 23. The debug function circuit 221 includes a control microprocessor that executes the debug control program of the emulator 13 and its peripheral circuits, and implements various debug functions.

秘匿制御回路222は、予め設定された情報に基づいて、実行ソフトID設定レジスタ214に設定されたID情報に対応するソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記ID情報に対応するソフトウェアコンポーネントがデバッグ用マイクロコンピュータ21で実行された場合のデバッグ用機能回路221の動作を制限する。   The concealment control circuit 222 determines whether the software component corresponding to the ID information set in the execution software ID setting register 214 should be concealed based on information set in advance, and based on the determination result, The operation of the debug function circuit 221 is restricted when the software component corresponding to the ID information is executed by the debug microcomputer 21.

図4には、デバッグ用機能回路221によって実現される各種デバッグ機能と、秘匿制御回路222による秘匿時の機能制限例が示される。   FIG. 4 shows various debug functions realized by the debug function circuit 221 and examples of function restrictions during concealment by the concealment control circuit 222.

デバッグ用機能回路221によって実現される各種デバッグ機能には、特に制限されないが、図4に示されるように、Go機能、STEP機能、ブレーク機能、CPUレジスタの参照・変更機能、メモリの参照・変更機能、トレース機能、パフォーマンス機能、プロファイル機能、カバレッジ機能などが含まれる。   Various debug functions realized by the debug function circuit 221 are not particularly limited, but as shown in FIG. 4, Go function, STEP function, break function, CPU register reference / change function, memory reference / change Functions, trace functions, performance functions, profile functions, coverage functions, etc. are included.

Go機能は、ユーザプログラム(デバッグ対象プログラム)の実行を開始する機能である。実行を開始するPC(ホストシステム11)の設定も可能である。秘匿制御回路222によってデバッグ用機能回路221の動作が制限された場合には、秘匿するプログラム部分からの実行が拒否される。   The Go function is a function for starting execution of a user program (debug target program). It is also possible to set the PC (host system 11) that starts execution. When the operation of the debug function circuit 221 is restricted by the concealment control circuit 222, execution from the concealed program part is rejected.

STEP機能は、デバッグ用マイクロコンピュータ21において、C言語やアセンブラレベルでデバッグ対象プログラムの1行分が実行される毎に、当該プログラムの実行を停止する機能である。しかし、秘匿制御回路222によってデバッグ用機能回路221の動作が制限された場合には、秘匿するソフトウェアコンポーネント(プログラム部分)でのSTEP実行自体が拒否される。   The STEP function is a function for stopping execution of the program every time one line of the debug target program is executed in the C language or assembler level in the debugging microcomputer 21. However, when the operation of the debug function circuit 221 is restricted by the concealment control circuit 222, STEP execution itself in the concealed software component (program part) is rejected.

ブレーク機能は、予め指定したブレーク条件と、実際のプログラム実行状態とが一致した場合に、ユーザプログラム(デバッグ対象プログラム)の実行を停止する機能である。秘匿制御回路222によってデバッグ用機能回路221の動作が制限された場合には、秘匿するプログラム部分でのブレーク設定が拒否される。もし、秘匿するプログラム部分でブレークした場合にはデバッグ用マイクロコンピュータ21がリセットされる。   The break function is a function for stopping the execution of the user program (the program to be debugged) when a break condition designated in advance matches an actual program execution state. When the operation of the debug function circuit 221 is restricted by the concealment control circuit 222, the break setting in the program part to be concealed is rejected. If there is a break in the secret program part, the debugging microcomputer 21 is reset.

CPUレジスタの参照・変更機能は、デバッグ用マイクロコンピュータ21におけるCPUコア内部のレジスタの状態を表示し、あるいは当該レジスタの状態を変更する機能である。デバッグ用マイクロコンピュータ21におけるCPUコア内部のレジスタの状態は、秘匿するまでもないことから、秘匿制御回路222によるデバッグ機能制限から除外されている。   The CPU register reference / change function is a function of displaying the state of a register in the CPU core in the debugging microcomputer 21 or changing the state of the register. Since the state of the register in the CPU core in the debugging microcomputer 21 is not necessarily kept secret, it is excluded from the debugging function restriction by the secret control circuit 222.

周辺モジュールレジスタの参照・変更機能は、デバッグ用マイクロコンピュータ21における周辺モジュール215のレジスタの状態を表示し、あるいは当該レジスタの状態を変更する機能である。秘匿制御回路222によってデバッグ用機能回路221の動作が制限された場合には、デバッグ用マイクロコンピュータ21における周辺モジュール215の参照・変更は拒否される。   The reference / change function of the peripheral module register is a function for displaying the register state of the peripheral module 215 in the debugging microcomputer 21 or changing the state of the register. When the operation of the debug function circuit 221 is restricted by the secret control circuit 222, the reference / change of the peripheral module 215 in the debug microcomputer 21 is rejected.

メモリの参照・変更機能は、デバッグ用マイクロコンピュータ21におけるメモリの内容を表示し、あるいは当該メモリの内容を変更する機能である。秘匿制御回路222によってデバッグ用機能回路221の動作が制限された場合には、秘匿するプログラム部分のメモリアクセスが拒否される。   The memory reference / change function is a function of displaying the contents of the memory in the debugging microcomputer 21 or changing the contents of the memory. When the operation of the debug function circuit 221 is restricted by the concealment control circuit 222, the memory access of the program part to be concealed is rejected.

トレース機能は、ユーザプログラム(デバッグ対象プログラム)の実行履歴を記録し、その記録結果を必要に応じて表示したり保存する機能である。秘匿制御回路222によってデバッグ用機能回路221の動作が制限された場合には、秘匿するプログラム部分はハードウェア的にトレースされない。   The trace function is a function of recording an execution history of a user program (debug target program) and displaying or saving the recorded result as necessary. When the operation of the debug function circuit 221 is restricted by the concealment control circuit 222, the program part to be concealed is not traced by hardware.

パフォーマンス機能は、ユーザプログラム(デバッグ対象プログラム)の実行時間や実行回数を計測し、その計測結果を必要に応じて表示したり保存する機能である。このパフォーマンス機能は、秘匿するまでもないことから、秘匿制御回路222によるデバッグ機能制限から除外されている。   The performance function is a function for measuring the execution time and the number of executions of a user program (program to be debugged) and displaying or saving the measurement result as necessary. Since this performance function does not need to be concealed, it is excluded from the debug function restriction by the concealment control circuit 222.

プロファイル機能は、ユーザプログラム(デバッグ対象プログラム)の関数の実行時間と実行回数を計測し、その計測結果を必要に応じて表示したり記録する機能である。このプロファイル機能は、秘匿するまでもないことから、秘匿制御回路222によるデバッグ機能制限から除外されている。   The profile function is a function that measures the execution time and the number of executions of the function of the user program (debug target program), and displays or records the measurement result as necessary. Since this profile function does not need to be concealed, it is excluded from the debug function restriction by the concealment control circuit 222.

カバレッジ機能は、ユーザプログラム(デバッグ対象プログラム)をテスト工程で実行したか否か判別し、必要に応じてそれを表示したり記録する機能である。秘匿制御回路222によってデバッグ用機能回路221の動作が制限された場合には、秘匿するプログラム部分についてカバレッジは機能しない。   The coverage function is a function for determining whether or not a user program (program to be debugged) has been executed in the test process, and displaying or recording it as necessary. When the operation of the debug function circuit 221 is restricted by the concealment control circuit 222, the coverage does not function for the program part to be concealed.

図3には、秘匿制御回路222の構成例が示される。   FIG. 3 shows a configuration example of the concealment control circuit 222.

秘匿制御回路222は、図3に示されるように、複数の秘匿ID設定レジスタ31−1〜31−n(nは正の整数)、複数の比較回路32−1〜32−n、及びオアゲート33が結合されて成る。複数の秘匿ID設定レジスタ31−1〜31−nには、秘匿すべきソフトウェアコンポーネントのID情報(「秘匿ID情報」という)が設定される。複数の秘匿ID設定レジスタ31−1〜31−nへの秘匿ID情報はホストシステム11によって行われる。尚、デバッグ対象プログラムに設定されている秘匿ID情報の数は、通常はデバッグ対象プログラムによって異なるため、複数の秘匿ID設定レジスタ31−1〜31−nの全てに秘匿ID情報が設定されるとは限らない。複数の比較回路32−1〜32−nは、複数の秘匿ID設定レジスタ31−1〜31−nに対応して設けられる。複数の比較回路32−1〜32−nは、それぞれ対応する秘匿ID設定レジスタ31−1〜31−nの出力情報(秘匿ID情報)と、実行ソフトID設定レジスタ214の出力情報(実行ソフトID情報)とが一致するか否かの判別を行う。ID情報が一致する場合、それは、これから実行されるソフトウェアコンポーネントは秘匿すべきものであることを意味する。複数の比較回路32−1〜32−nの出力は、後段のオアゲート33でオア論理が得られる。オアゲート33の出力信号は、デバッグ用機能回路動作抑止信号として、デバッグ用機能回路221に伝達される。比較回路32−1〜32−nのうちのいずれかで、ID情報が一致すると判断された場合、デバッグ用機能回路動作抑止信号が例えば論理値“0”にアサートされる。デバッグ用機能回路221は、デバッグ用機能回路動作抑止信号が論理値“0”にアサートされた場合には、秘匿時動作となり、その機能が制限される(図4参照)。しかし、デバッグ用機能回路動作抑止信号が例えば論理値“1”にネゲートされた場合、デバッグ用機能回路221は通常動作(秘匿時以外の動作を意味する)となる。   As shown in FIG. 3, the concealment control circuit 222 includes a plurality of concealment ID setting registers 31-1 to 31 -n (n is a positive integer), a plurality of comparison circuits 32-1 to 32 -n, and an OR gate 33. Are combined. ID information of software components to be concealed (referred to as “confidential ID information”) is set in the plurality of concealment ID setting registers 31-1 to 31-n. The secret ID information to the secret ID setting registers 31-1 to 31-n is performed by the host system 11. Since the number of secret ID information set in the debug target program is usually different depending on the debug target program, when the secret ID information is set in all of the plurality of secret ID setting registers 31-1 to 31-n. Is not limited. The plurality of comparison circuits 32-1 to 32-n are provided corresponding to the plurality of secret ID setting registers 31-1 to 31-n. The plurality of comparison circuits 32-1 to 32-n respectively output the output information (secret ID information) of the corresponding secret ID setting registers 31-1 to 31-n and the output information (execution software ID) of the execution software ID setting register 214. It is determined whether or not (information) matches. If the ID information matches, it means that the software component to be executed is to be kept secret. From the outputs of the plurality of comparison circuits 32-1 to 32-n, the OR logic is obtained by the OR gate 33 in the subsequent stage. The output signal of the OR gate 33 is transmitted to the debug function circuit 221 as a debug function circuit operation inhibition signal. If any of the comparison circuits 32-1 to 32-n determines that the ID information matches, the debug function circuit operation inhibition signal is asserted to, for example, a logical value “0”. When the debug function circuit operation inhibition signal is asserted to a logical value “0”, the debug function circuit 221 operates in a secret state and its function is limited (see FIG. 4). However, when the debug function circuit operation suppression signal is negated to, for example, the logical value “1”, the debug function circuit 221 operates normally (meaning an operation other than the time of secrecy).

次に、デバッグ対象プログラム(ユーザプログラム)の作成支援について説明する。   Next, support for creating a debug target program (user program) will be described.

デバッグ対象プログラムの作成は、ホストシステム(例えばパーソナルコンピュータ)11においてソフトウェアを開発するためのツールを起動することで可能になる。   The debug target program can be created by starting a tool for developing software in the host system (for example, personal computer) 11.

図5には、ソフトウェアを開発するためのツールとして、クロスソフトウェアを使用した場合の処理の流れが示される。   FIG. 5 shows a flow of processing when cross software is used as a tool for developing software.

ここでは、ソースファイルとして、OS(オペレーティングシステム)501、ライブラリ502,503、アプリケーション504,505,506が所定の言語で作成されており、そのうち、OS501とライブラリ502とが秘匿すべきものとされる。OS501、ライブラリ502,503、アプリケーション504,505,506がそれぞれコンパイル又はアセンブルされることでオブジェクトファイル511,512,513,514,515,516が形成される。このとき、秘匿すべきOS501、ライブラリ502については、コンパイル又はアセンブルの際に暗号化されることで、暗号化されたオブジェクトファイル(暗号化ファイル)とされる。また、OS501、ライブラリ502,503、アプリケーション504,505,506には、コンパイル又はアセンブルの際に、固有のID情報が設定される。ここでは、説明の便宜上、オブジェクトファイル511〜516に、ID=1〜6が設定されるものとする。オブジェクトファイル511〜516は、ID情報が設定された後にリンク処理される。このリンク処理によって、マイクロコンピュータで実行可能なロードモジュールファイル521が形成される。複数のオブジェクトファイル511〜516に暗号化ファイルが含まれている場合(本例では511,512が暗号化ファイル)、ロードモジュールファイル521も暗号化ファイルとさえる。   Here, an OS (Operating System) 501, libraries 502 and 503, and applications 504, 505 and 506 are created in a predetermined language as source files, and the OS 501 and the library 502 should be kept secret. Object files 511, 512, 513, 514, 515, and 516 are formed by compiling or assembling the OS 501, the libraries 502 and 503, and the applications 504, 505, and 506, respectively. At this time, the OS 501 and the library 502 to be concealed are encrypted at the time of compiling or assembling to be an encrypted object file (encrypted file). Further, unique ID information is set in the OS 501, the libraries 502 and 503, and the applications 504, 505, and 506 at the time of compiling or assembling. Here, for convenience of explanation, ID = 1 to 6 are set in the object files 511 to 516. The object files 511 to 516 are linked after the ID information is set. By this link processing, a load module file 521 that can be executed by the microcomputer is formed. When an encrypted file is included in the plurality of object files 511 to 516 (511 and 512 are encrypted files in this example), the load module file 521 is also regarded as an encrypted file.

図6には、上記コンパイル又はアセンブル処理の流れが示される。   FIG. 6 shows the flow of the compiling or assembling process.

先ず、対応するソースファイル及び必要となるオプションが読み込まれる(601)。そして、実行ソフトID設定レジスタ214にID情報を書き込むためのコードが、プログラムの先頭に付加される(602)。その後、通常のコンパイル又はアセンブル処理が行われる(603)。つまり、ソースコードがオブジェクトコードに変換されることでオブジェクトファイルが形成される。そして、得られたオブジェクトファイルが秘匿の対象か否かの判別が行われる(604)。この判別において、秘匿対象である(Yes)と判断された場合、当該オブジェクトファイルを暗号化処理する(605)。つまり、暗号化処理対象のオブジェクトファイルと所定の暗号化鍵がセットされて所定の暗号化演算が実行されることにより、暗号化ファイルが形成される。本例の場合、OS501とライブラリ502とが秘匿対象であるから、それに対応するオブジェクトファイル511,512のみが暗号化ファイルとされる。そして、この暗号化ファイルの先頭に、当該ファイルが秘匿対象か否かを示すフラグが付加される(606)。尚、上記ステップ604の判別において、秘匿対象ではない(No)と判断されたオブジェクトファイルについては、暗号化処理されることなく、そのファイルの先頭に当該ファイルが秘匿対象か否かを示すフラグが付加される。特に制限されないが、当該ファイルが秘匿対象であれば、上記フラグは論理値“1”とされ、当該ファイルが秘匿対象でなければ、上記フラグは論理値“0”とされる。そして、このようなフラグが付加されたオブジェクトファイルがリンク処理のために出力される(607)。   First, a corresponding source file and necessary options are read (601). Then, a code for writing ID information in the execution software ID setting register 214 is added to the head of the program (602). Thereafter, normal compilation or assembly processing is performed (603). That is, an object file is formed by converting source code into object code. Then, it is determined whether or not the obtained object file is a secret target (604). In this determination, if it is determined that the object is to be concealed (Yes), the object file is encrypted (605). That is, an encryption file is formed by setting an object file to be encrypted and a predetermined encryption key and executing a predetermined encryption operation. In this example, since the OS 501 and the library 502 are confidential objects, only the object files 511 and 512 corresponding to the OS 501 and the library 502 are encrypted files. Then, a flag indicating whether or not the file is a secret target is added to the head of the encrypted file (606). It should be noted that in the determination in step 604, the object file that is determined not to be concealed (No) is not subjected to encryption processing, and a flag indicating whether or not the file is concealed at the head of the file. Added. Although not particularly limited, the flag is set to a logical value “1” if the file is a secret target, and the flag is set to a logical value “0” if the file is not a secret target. Then, the object file to which such a flag is added is output for link processing (607).

図7には、上記リンク処理の流れが示される。   FIG. 7 shows the flow of the link process.

先ず、オブジェクトファイル511〜516が順次読み込まれ(701)、通常のプログラムリンク処理が行われる(702)。すなわち、オブジェクトファイルが解析されて、参照している他のオブジェクトファイルやライブラリなど、必要なものが結合されて実行形式のファイル(ロードモジュールファイル)が作成される。次に、作成されたロードモジュールファイルに秘匿対象が含まれているか否かの判別が行われる(703)。この判別は、上記ステップ606(図6参照)で付加されたフラグを判別することによって可能となる。この判別において、秘匿対象が含まれる(Yes)と判断された場合には、当該ロードモジュールファイル全体に対して、再び暗号化処理が行われる(704)。そして、当該ロードモジュールファイルの先頭に、当該ファイルが秘匿対象か否かを示すフラグが付加される(705)。このフラグ付加は、上記ステップ606の場合と同様に行われる。すなわち、当該ファイルが秘匿対象であれば、上記フラグは論理値“1”とされ、当該ファイルが秘匿対象でなければ、上記フラグは論理値“0”とされる。そして、このようなフラグが付加されたロードモジュールファイルが出力される(706)。上記リンク処理により得られたロードモジュールファイルが、デバッグ対象プログラムとして、エミュレータ13にダウンロードされる。   First, the object files 511 to 516 are sequentially read (701), and normal program link processing is performed (702). That is, the object file is analyzed, and necessary files such as other object files and libraries that are referred to are combined to create an executable file (load module file). Next, it is determined whether or not the created load module file contains a secret object (703). This determination is made possible by determining the flag added in step 606 (see FIG. 6). In this determination, if it is determined that the confidential target is included (Yes), the entire load module file is subjected to encryption processing again (704). Then, a flag indicating whether the file is a secret target is added to the head of the load module file (705). This flag addition is performed in the same manner as in step 606 above. That is, if the file is a secret target, the flag is set to a logical value “1”. If the file is not a secret target, the flag is set to a logical value “0”. Then, a load module file to which such a flag is added is output (706). The load module file obtained by the link process is downloaded to the emulator 13 as a debug target program.

図8には、上記秘匿ID設定レジスタ31−1〜31−nへの秘匿ID情報設定の流れが示される。   FIG. 8 shows a flow of setting secret ID information in the secret ID setting registers 31-1 to 31-n.

上記ステップ706(図7参照)で出力されたロードモジュールファイルが、ホストシステム11上で動作する上位ソフトウェアにより読み込まれ、秘匿対象か否かを示すフラグの論理判別が行われることで、秘匿対象とされるソフトウェアコンポーネントのID情報と、その数nの検出が行われる(801)。その後、ホストシステム11上で動作する上位ソフトウェアにより、エミュレータ13内のデバッグ機能部22におけるコントロールCPUで動作しているファームウェア(デバッグ制御プログラム)に対して、秘匿対象とされるソフトウェアコンポーネントのID情報を秘匿ID設定レジスタ31−1〜31−nの何れかへ書き込むためのコマンドを発行する(802)。そして、当該コマンドに基づいて、秘匿ID設定レジスタへのID情報の書き込みが完了したか否かの判別が行われ(803)、当該秘匿ID設定レジスタへのID情報の書き込みが完了した(Yes)と判断された場合には、上記ステップ801で検出された全てのソフトウェアコンポーネントのID情報の書き込みを終了したか否かの判別が行われる(804)。この判別で、全てのソフトウェアコンポーネントのID情報の書き込みを終了していない(No)と判断された場合には、上記ステップ802に戻り、次のID情報の書き込みを行うためのコマンドの発行が行われる。このようにして上記ステップ801で検出された全てのソフトウェアコンポーネントのID情報が秘匿ID設定レジスタ31−1〜31−nに書き込まれる。   The load module file output in step 706 (see FIG. 7) is read by higher-level software running on the host system 11 and a logical determination of a flag indicating whether or not it is a confidential target is performed, thereby ID information of software components to be detected and the number n of them are detected (801). Thereafter, the ID information of the software component to be concealed is transmitted to the firmware (debug control program) operating on the control CPU in the debug function unit 22 in the emulator 13 by the upper software operating on the host system 11. A command for writing to any one of the secret ID setting registers 31-1 to 31-n is issued (802). Then, based on the command, it is determined whether or not the writing of the ID information to the secret ID setting register is completed (803), and the writing of the ID information to the secret ID setting register is completed (Yes). If it is determined, it is determined whether or not writing of ID information of all software components detected in step 801 has been completed (804). If it is determined in this determination that writing of ID information of all software components has not been completed (No), the process returns to step 802 to issue a command for writing the next ID information. Is called. In this way, the ID information of all software components detected in step 801 is written in the secret ID setting registers 31-1 to 31-n.

次に、ホストシステム11からエミュレータ13へのデバッグ対象プログラムのダウンロードについて説明する。   Next, download of the debug target program from the host system 11 to the emulator 13 will be described.

図9には、デバッグ対象プログラムのダウンロードにおけるデータの流れが示される。   FIG. 9 shows a data flow in downloading the debug target program.

ホストシステム11上で動作される上位ソフトウェアによって暗号化ファイルの読み込みが行われる(91)。システム起動時に、デバッグ対象とユーザのオプション選択により、ロード対象となるロードモジュールが確定される。ホストシステム11内のロードモジュール格納用フォルダが検索され、対象ファイルが存在する場合は、その暗号化ファイルがオープンされ、それがバイナリ形式で適宜のバッファに読み込まれる。   The encrypted file is read by the upper software operating on the host system 11 (91). When the system is started, the load module to be loaded is determined by the option selection of the debug target and the user. The load module storage folder in the host system 11 is searched, and if the target file exists, the encrypted file is opened and read into an appropriate buffer in binary format.

次に、USBドライバ112を介して、デバッグ機能部22におけるコントロールCPU223上で動作するファームウェアに暗号化ファイル(暗号化されたデバッグ対象プログラム)が転送される(92)。エミュレータ13では、デバッグ用マイクロコンピュータ21のファイアウォールが一時的に解除され、暗号化データの取り込みが可能になる。暗号化データは、ホストシステム11内で特定長の単位に分割してからエミュレータ13に順次送出される。   Next, the encrypted file (encrypted debug target program) is transferred to the firmware operating on the control CPU 223 in the debug function unit 22 via the USB driver 112 (92). In the emulator 13, the firewall of the debugging microcomputer 21 is temporarily released, and the encrypted data can be captured. The encrypted data is divided into units of a specific length in the host system 11 and then sequentially sent to the emulator 13.

次に、コントロールCPU223上で動作するファームウェアから、デバッグ用マイクロコンピュータ21で動作するファームウェアへのデータ転送が行われる(93)。このとき、暗号化データは、更に短い単位に分割されてから転送され、デバッグ対象プログラム用RAM213に格納される。コントロールCPU223上で動作するファームウェアは、デバッグ用マイクロコンピュータ21上で動作するファームウェアの処理完了を確認してから、次のデータを転送する。   Next, data is transferred from the firmware operating on the control CPU 223 to the firmware operating on the debugging microcomputer 21 (93). At this time, the encrypted data is transferred after being divided into shorter units, and stored in the debug target program RAM 213. The firmware operating on the control CPU 223 confirms the completion of processing of the firmware operating on the debugging microcomputer 21 and then transfers the next data.

コントロールCPU223上で動作するファームウェアは、ホストシステム11から暗号化ファイルの転送が完了された後に、ホストシステムに対して終了通知を行い、デバッグ用マイクロコンピュータ21のファイアウォールを有効にする。   The firmware operating on the control CPU 223 notifies the host system of completion after the transfer of the encrypted file from the host system 11 is completed, and enables the firewall of the debugging microcomputer 21.

デバッグ対象プログラム用RAM213に格納された暗号化データは、デバッグ用マイクロコンピュータ21における暗号復号モジュール217に伝達されて復号化される(94)。   The encrypted data stored in the debug target program RAM 213 is transmitted to the encryption / decryption module 217 in the debugging microcomputer 21 and decrypted (94).

デバッグ用マイクロコンピュータ21上で動作するファームウェアは、暗号復号モジュール217に暗号化データと暗号化鍵をセットして復号化演算を実行させる。この復号化演算により得られた復号化データはデバッグ用マイクロコンピュータ21上のダウンロード専用エリア218に格納される。ダウンロード専用エリア218は、デバッグ対象プログラム用RAM213に形成することができる。このようにしてダウンロード専用エリア218に格納された復号化データは、デバッグ対象プログラムとして、デバッグ用マイクロコンピュータ21で実行される。   The firmware operating on the debugging microcomputer 21 causes the encryption / decryption module 217 to set the encrypted data and the encryption key and execute the decryption operation. The decrypted data obtained by this decryption operation is stored in the download dedicated area 218 on the debugging microcomputer 21. The download dedicated area 218 can be formed in the debug target program RAM 213. The decrypted data stored in the download exclusive area 218 in this way is executed by the debugging microcomputer 21 as a debug target program.

次に、暗号復号モジュール217による暗号化データの生成について説明する。   Next, generation of encrypted data by the encryption / decryption module 217 will be described.

図10には、デバッグ対象プログラムのアップロードにおけるデータの流れが示される。   FIG. 10 shows a data flow in uploading the debug target program.

デバッグ用マイクロコンピュータ21のファイアウォールを一時的に解除しておく。   The firewall of the debugging microcomputer 21 is temporarily released.

デバッグ用マイクロコンピュータ21上のファームウェアは、ダウンロード専用エリア21からデータを読み出して、暗号復号モジュール217に、暗号化対象の生データと暗号鍵をセットして暗号化演算を実行させることにより、暗号化データを得る(101)。   The firmware on the debugging microcomputer 21 encrypts data by reading the data from the download-only area 21 and causing the encryption / decryption module 217 to set the raw data to be encrypted and the encryption key to execute the encryption operation. Data is obtained (101).

暗号化データは、コントロールCPU223上で動作するファームウェアへ転送される。すなわち、デバッグ用マイクロコンピュータ21上で動作するファームウェアは、暗号化データを小データ長単位で、デバッグ対象プログラム用RAM213に格納する。コントロールCPU33上で動作するファームウェアは、デバッグ対象プログラム用RAM213から上記暗号化データを繰り返し取得する(102)。このようにして取得された暗号化データは、ホストシステム11上で動作される上位ソフトウェアに転送される(103)。すなわち、コントロールCPU33上で動作するファームウェアは、上記暗号化データを特定単位長にまとめて、ホストシステム11上で動作される上位ソフトウェアに転送される(103)。転送された暗号化ファイルは保存される。コントロールCPU33上で動作するファームウェアから取得した暗号化データを、指定サイズまで適宜のバッファで合成される。この時点で、デバッグ用マイクロコンピュータ21のファイアウォールが有効にされる。指定された場所にファイルを作成し、暗号化データを書き出すことができる(104)。   The encrypted data is transferred to firmware that operates on the control CPU 223. That is, the firmware operating on the debugging microcomputer 21 stores the encrypted data in the debug target program RAM 213 in small data length units. The firmware operating on the control CPU 33 repeatedly acquires the encrypted data from the debug target program RAM 213 (102). The encrypted data obtained in this way is transferred to the upper software operating on the host system 11 (103). That is, the firmware operating on the control CPU 33 collects the encrypted data into a specific unit length and transfers it to the upper software operating on the host system 11 (103). The transferred encrypted file is saved. The encrypted data acquired from the firmware operating on the control CPU 33 is combined with an appropriate buffer up to a specified size. At this point, the firewall of the debugging microcomputer 21 is enabled. A file can be created at the designated location and the encrypted data can be written out (104).

実施の形態1によれば、以下の作用効果を得ることができる。   According to the first embodiment, the following operational effects can be obtained.

(1)秘匿制御回路222が設けられ、この秘匿制御回路222の秘匿制御機能により、秘匿すべきソフトウェアコンポーネントとして予め指定されたものについては、エミュレータ13のデバッグ機能の動作が制限される。これにより、秘匿対象とされるソフトウェアの動的プログラム解析が困難になり、IP技術を第三者に対して秘匿にすることができる。   (1) A concealment control circuit 222 is provided, and the operation of the debugging function of the emulator 13 is limited for those designated in advance as software components to be concealed by the concealment control function of the concealment control circuit 222. This makes it difficult to perform dynamic program analysis of software to be concealed, making it possible to conceal IP technology from third parties.

(2)デバッグ用マイクロコンピュータ21に暗号復号モジュール217を設け、そこで暗号処理や復号処理が行われるため、復号化された命令コードはデバッグ用マイクロコンピュータ21の内部以外には存在しない。これにより、デバッグ対象プログラムのコードをデバッグ用マイクロコンピュータ217の外部で取得することができないので、秘匿対象とされるソフトウェアの静的コード解析が困難になる。   (2) Since the encryption / decryption module 217 is provided in the debugging microcomputer 21 and the encryption process and the decryption process are performed there, no decrypted instruction code exists outside the debugging microcomputer 21. As a result, the code of the program to be debugged cannot be acquired outside the debugging microcomputer 217, so that static code analysis of software to be concealed becomes difficult.

<実施の形態2>
近年は、デバッグ機能を内蔵したマイクロコンピュータチップと、ICチップの検査方式の一つであるバウンダリスキャンテストの標準方式であるJTAG(Joint European Test Action Group)標準端子などを介して接続する方式のオンチップエミュレータが広く使用されるようになってきている。このような構成のエミュレータ(「オンチップエミュレータ」と称される)においても、実施の形態1の場合と同様に、秘匿対象とされるソフトウェアの静的コード解析や動的プログラム解析を困難にすることができる。
<Embodiment 2>
In recent years, a microcomputer chip with a built-in debugging function and a method of connecting via a JTAG (Joint European Test Action Group) standard terminal, which is a standard method of a boundary scan test, which is one of IC chip inspection methods, have been turned on. Chip emulators are becoming widely used. Even in an emulator having such a configuration (referred to as an “on-chip emulator”), as in the case of the first embodiment, it is difficult to perform static code analysis and dynamic program analysis of software to be concealed. be able to.

図11には、本発明にかかる半導体集積回路装置の一例とされるマイクロコンピュータチップを含むオンチップエミュレータのシステム構成例が示される。   FIG. 11 shows a system configuration example of an on-chip emulator including a microcomputer chip as an example of a semiconductor integrated circuit device according to the present invention.

図11に示されるオンチップエミュレータが、図1に示されるソフトウェア開発装置10と大きく相違するのは、デバッグ機能の多くが、ユーザシステム114に搭載されているマイクロコンピュータチップに内蔵されている点である。ホストシステム111は、図1に示されるホストシステム11と同様の機能を有し、USBなどの通信インタフェースを介してエミュレータ115に接続され、当該エミュレータ115の動作をコントロールする。エミュレータ115は、ユーザシステム114上のマイクロコンピュータチップとJTAG標準端子などを介して接続され、当該マイクロコンピュータチップの動作を制御する。ソフトウェア開発支援に関する所定のプログラムは、記録媒体の一例とされる光ディスク116によって供給され、ホストシステム11に読み取られて実行される。マイクロコンピュータチップ上で動作するプログラムは、実施の形態1の場合と同様にホストシステム111上でCコンパイラ等の言語で開発され、マイクロコンピュータチップ上で動作するオブジェクトコードに変換される。変換されたオブジェクトコードはホストシステム111上のエミュレータコントロールする制御プログラムにより、エミュレータ115を介してマイクロコンピュータチップにダウンロードされて実行される。エミュレータ115およびホストシステム111上のエミュレータ制御プログラムは、マイクロコンピュータチップおよびマイクロコンピュータチップ上にダウンロードされたオブジェクトコードの動作をデバッグ・評価する機能を有する。   The on-chip emulator shown in FIG. 11 is greatly different from the software development apparatus 10 shown in FIG. 1 in that many debugging functions are built in a microcomputer chip mounted on the user system 114. is there. The host system 111 has the same function as the host system 11 shown in FIG. 1 and is connected to the emulator 115 via a communication interface such as USB and controls the operation of the emulator 115. The emulator 115 is connected to the microcomputer chip on the user system 114 via a JTAG standard terminal or the like, and controls the operation of the microcomputer chip. A predetermined program related to software development support is supplied by an optical disc 116 as an example of a recording medium, and is read by the host system 11 and executed. A program that operates on the microcomputer chip is developed in a language such as a C compiler on the host system 111 as in the case of the first embodiment, and is converted into an object code that operates on the microcomputer chip. The converted object code is downloaded to the microcomputer chip via the emulator 115 and executed by the control program controlled by the emulator on the host system 111. The emulator control program on the emulator 115 and the host system 111 has a function of debugging and evaluating the microcomputer chip and the operation of the object code downloaded on the microcomputer chip.

図12には、ユーザシステム114上のマイクロコンピュータチップの構成例が示される。   FIG. 12 shows a configuration example of a microcomputer chip on the user system 114.

ユーザシステム114上のマイクロコンピュータチップ113は、図12に示されるように、マイクロコンピュータ機能部121、デバッグ機能部122、及びデバッグインタフェース(IF)回路123を含み、例えばシリコン基板などのひとつの半導体基板に形成される。デバッグインタフェース回路123は、デバッグ情報のやり取りを行うため、エミュレータ115にJTAG標準端子を介して結合される。   As shown in FIG. 12, the microcomputer chip 113 on the user system 114 includes a microcomputer function unit 121, a debug function unit 122, and a debug interface (IF) circuit 123. For example, one semiconductor substrate such as a silicon substrate. Formed. The debug interface circuit 123 is coupled to the emulator 115 via a JTAG standard terminal for exchanging debug information.

マイクロコンピュータチップ113は、CPU1211や周辺モジュール1215、デバッグのための回路として、デバッグ対象プログラム用RAM(ランダムアクセスメモリ)1213、及び実行ソフトID設定レジスタ1214を含む。また、このマイクロコンピュータチップ113は、JTAG標準端子を介してエミュレータ115に結合され、デバッグ対象プログラムのダウンロードや各種制御情報のやり取りが行われるようになっている。   The microcomputer chip 113 includes a CPU 1211 and peripheral modules 1215, a debug target program RAM (random access memory) 1213, and an execution software ID setting register 1214 as circuits for debugging. The microcomputer chip 113 is coupled to the emulator 115 via a JTAG standard terminal so that a debug target program can be downloaded and various control information can be exchanged.

CPU1211は、デバッグ対象プログラムを実行する。周辺モジュール1215は、CPU1211によってアクセスされる。デバッグ対象プログラム用RAM1213には、ホストシステム111からエミュレータ115を介して伝達されたデバッグ対象プログラムが格納される。デバッグ対象プログラム用RAM1213内のデバッグ対象プログラムは、CPU1211で実行される。実行ソフトID設定レジスタ1214には、デバッグ対象プログラムを構成するソフトウェアコンポーネントのID情報が設定される。実行ソフトID設定レジスタ1214へのID情報設定は、実施の形態1の場合と同様に、デバッグ対象プログラムを実行するCPU1211によって行われる。   The CPU 1211 executes the debug target program. The peripheral module 1215 is accessed by the CPU 1211. The debug target program RAM 1213 stores the debug target program transmitted from the host system 111 via the emulator 115. The debug target program in the debug target program RAM 1213 is executed by the CPU 1211. In the execution software ID setting register 1214, ID information of software components constituting the debug target program is set. The ID information setting in the execution software ID setting register 1214 is performed by the CPU 1211 that executes the debug target program, as in the first embodiment.

デバッグ機能部22は、デバッグ用ファームウェアメモリ1224、デバッグ用機能回路1221、及び秘匿制御回路222を含み、マイクロコンピュータチップ113やデバッグインタフェース123に結合される。デバッグ用ファームウェアメモリ1224には、デバッグ用ファームウェアが格納されている。このデバッグ用ファームウェアは、マイクロコンピュータチップ113で実行される。デバッグ用機能回路1221は、デバッグ用ファームウェアが実行されることで実現される各種デバッグ機能を含む。この各種デバッグ機能は、図4に示されるのと同様とされる。   The debug function unit 22 includes a debug firmware memory 1224, a debug function circuit 1221 and a secret control circuit 222, and is coupled to the microcomputer chip 113 and the debug interface 123. The debug firmware memory 1224 stores debug firmware. This debugging firmware is executed by the microcomputer chip 113. The debug function circuit 1221 includes various debug functions realized by executing debug firmware. These various debugging functions are the same as those shown in FIG.

秘匿制御回路1222は、予め設定された情報に基づいて、実行ソフトID設定レジスタ1214に設定されたID情報に対応するソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記ID情報に対応するソフトウェアコンポーネントがマイクロコンピュータチップ121で実行された場合のデバッグ用機能回路1221の動作を制限する。秘匿制御回路1222は、実施の形態1の場合と同様に、図3に示される構成を採用することができる。   The concealment control circuit 1222 determines whether or not the software component corresponding to the ID information set in the execution software ID setting register 1214 should be concealed based on information set in advance, and based on the determination result, The operation of the debug function circuit 1221 is restricted when the software component corresponding to the ID information is executed by the microcomputer chip 121. The concealment control circuit 1222 can adopt the configuration shown in FIG. 3 as in the case of the first embodiment.

上記構成のオンチップエミュレータのシステムにおいても、秘匿制御回路1222による秘匿制御により、上記ソフトウェア開発装置10と同様の効果を得ることができる。   Also in the on-chip emulator system configured as described above, the same effect as that of the software development apparatus 10 can be obtained by the concealment control by the concealment control circuit 1222.

<実施の形態3>
実施の形態3にかかるオンチップエミュレータシステムも、基本的には、図11に示されるように、ホストシステム11、エミュレータ115、及びユーザシステム114を含む。ただし、実施の形態3では、秘匿制御回路による秘匿制御に、スーパバイザモードが利用される。
<Embodiment 3>
The on-chip emulator system according to the third embodiment also basically includes a host system 11, an emulator 115, and a user system 114 as shown in FIG. However, in the third embodiment, the supervisor mode is used for the confidentiality control by the confidentiality control circuit.

従来からマイクロコンピュータアーキテクチャとして、スーパバイザモードの概念がある。例えば図14に示されるように、マイクロコンピュータチップ121によって管理されるメモリ空間141がOS(Operating System)、ユーザプログラムに割り当てられ、OSとユーザプログラムとの走行モードの区別のため、CPU内部のPSW(Program Status Word)レジスタなどにSV(SuperViser/特権モード)ビットが設けられる。ユーザプログラムにてソフトウェア割込み(trap)命令を実行することにより、SVビットが論理値”1”にセットされ、OSが実行される特権モードへ移行する。   Conventionally, there is a concept of supervisor mode as a microcomputer architecture. For example, as shown in FIG. 14, a memory space 141 managed by the microcomputer chip 121 is allocated to an OS (Operating System) and a user program. An SV (SuperViser / privileged mode) bit is provided in a (Program Status Word) register or the like. By executing a software interrupt (trap) instruction in the user program, the SV bit is set to a logical value “1”, and a transition is made to a privileged mode in which the OS is executed.

このスーパバイザモードを拡張し、例えば図13に示されるように、最終的なロードモジュールファイルの一部であるソフトウェアコンポーネント、すなわち、OS、周辺モジュールドライバ、ミドルウェア、ユーザプログラムに対して、SV1,0の2ビット論理の組み合わせを割付ける。すなわち、「00」にOSが割り付けられ、「01」に周辺モジュールドライバが割り付けられ、「10」にミドルウェアが割り付けられ、「11」にユーザプログラムが割り当てられる。各モード間の移行には、専用の移行命令が用意される。すなわち、対応する「trap命令」が実行されるにより各モード間の移行が可能になる。SV1,0を信号としてマイクロコンピュータチップ121の外部に引き出し、秘匿したいソフトウェアレベルをエミュレータに対して指定することにより、エミュレータ機能制限を実施することができる。例えば図13に示される例では、ソフトウェアレベル2以下が秘匿される。つまり、OS、周辺モジュールドライバ、ミドルウェアが「秘匿あり」とされ、ユーザプログラムが「秘匿なし」とされる。   As shown in FIG. 13, for example, as shown in FIG. 13, the supervisor mode is expanded for software components that are a part of the final load module file, that is, the OS, peripheral module driver, middleware, and user program. Assign a combination of 2-bit logic. That is, the OS is assigned to “00”, the peripheral module driver is assigned to “01”, the middleware is assigned to “10”, and the user program is assigned to “11”. A dedicated transition instruction is prepared for transition between the modes. That is, the transition between the modes becomes possible by executing the corresponding “trap instruction”. The emulator functions can be restricted by extracting SV1,0 as a signal to the outside of the microcomputer chip 121 and designating the software level to be kept secret to the emulator. For example, in the example shown in FIG. 13, software level 2 or lower is kept secret. That is, the OS, the peripheral module driver, and the middleware are “confidential”, and the user program is “not confidential”.

図15には、上記のようにスーパバイザモードを拡張した場合のマイクロコンピュータチップの構成例が示される。   FIG. 15 shows an example of the configuration of a microcomputer chip when the supervisor mode is expanded as described above.

図15に示されるマイクロコンピュータチップが、図12に示されるのと大きく相違するのは、CPU1211内部のPSW(Program Status Word)レジスタにSV1,0ビットが設けられ、このSV1,0ビットの信号に基づいて、秘匿制御回路1222での秘匿制御が行われる点である。ここで、PSWレジスタは、本発明における「プログラム走行モード設定レジスタ」の一例とされる。   The microcomputer chip shown in FIG. 15 is greatly different from that shown in FIG. 12 in that SV1, 0 bits are provided in the PSW (Program Status Word) register in the CPU 1211. Based on this, the concealment control in the concealment control circuit 1222 is performed. Here, the PSW register is an example of the “program running mode setting register” in the present invention.

図16には、図15に示される秘匿制御回路1222の構成例が示される。   FIG. 16 shows a configuration example of the concealment control circuit 1222 shown in FIG.

図16に示される秘匿制御回路1222が、図3に示されるのと大きく相違するのは、秘匿ID設定レジスタ31−1〜31−nに代えて、秘匿モード設定レジスタ161−1〜161−nが設けられている点である。秘匿モード設定レジスタ161−1〜161−nには、ホストシステム111からエミュレータ115を介して伝達された秘匿対象プログラム走行モード情報が設定される。図13に示される例では、OS、周辺モジュールドライバソフトウェア、ミドルウェアについてのSV1,0ビットが、秘匿対象プログラム走行モード情報として、秘匿モード設定レジスタ161−1〜161−nに設定される。そして、比較回路162−1〜162−nでの比較結果が後段のオアゲート163を介して、デバッグ用機能回路動作抑止信号として出力される。   The concealment control circuit 1222 shown in FIG. 16 is greatly different from that shown in FIG. 3 in place of the concealment ID setting registers 31-1 to 31-n, and the concealment mode setting registers 161-1 to 161-n. Is a point provided. In the concealment mode setting registers 161-1 to 161-n, concealment target program travel mode information transmitted from the host system 111 via the emulator 115 is set. In the example shown in FIG. 13, SV1, 0 bits for the OS, peripheral module driver software, and middleware are set in the confidential mode setting registers 161-1 to 161-n as the confidential target program running mode information. Then, the comparison results in the comparison circuits 162-1 to 162-n are output as a debug function circuit operation inhibition signal via the subsequent OR gate 163.

上記構成のオンチップエミュレータのシステムにおいても、秘匿制御回路1222による秘匿制御により、上記ソフトウェア開発装置10と同様の効果を得ることができる。   Also in the on-chip emulator system configured as described above, the same effect as that of the software development apparatus 10 can be obtained by the concealment control by the concealment control circuit 1222.

<実施の形態4>
従来からマイクロコンピュータアーキテクチャとして、MMU(Memory Management Unit)によるアドレス変換/メモリ保護機構の概念がある。例えば図17に示されるように、通常OS(Operating System)上で動作するユーザプログラムはタスク/プロセスといった実行単位に分割されている。OSは各タスクが相互にメモリ空間171で影響しないようにMMUを使用し、各タスク毎に仮想アドレス空間172を割り当てる。MMUは仮想アドレス空間172から実メモリ空間171のアドレスにアドレス変換する機能を持つ。このとき各仮想アドレス空間172は、CPU1211内に設けられた空間ID(CRレジスタ内のSID=0−15)によって区別される。このMMUの空間ID情報を利用し、OSに対して秘匿すべきタスクを指定することにより、エミュレータにてマイクロコンピュータチップから引き出されたSID信号を秘匿すべきタスクの空間ID情報と比較し、その比較結果に基づいてエミュレータ機能制限を実施することができる。
<Embodiment 4>
Conventionally, as a microcomputer architecture, there is a concept of an address translation / memory protection mechanism using an MMU (Memory Management Unit). For example, as shown in FIG. 17, a user program that normally operates on an OS (Operating System) is divided into execution units such as tasks / processes. The OS uses the MMU so that the tasks do not affect each other in the memory space 171, and allocates a virtual address space 172 for each task. The MMU has a function of converting the address from the virtual address space 172 to the address of the real memory space 171. At this time, each virtual address space 172 is distinguished by a space ID (SID in CR register = 0-15) provided in the CPU 1211. By using this MMU space ID information and specifying a task to be concealed to the OS, the emulator compares the SID signal extracted from the microcomputer chip with the space ID information of the task to be concealed, Emulator function restriction can be implemented based on the comparison result.

図18には、上記のようにMMUを使用し、各タスク毎に仮想アドレス空間172を割り当てた場合のマイクロコンピュータチップの構成例が示される。上記のようにOS上で動作するユーザプログラムはタスク/プロセスといった実行単位に分割されており、この実行単位はデバッグ対象プログラムのソフトウェアコンポーネントと見ることができる。   FIG. 18 shows a configuration example of the microcomputer chip when the MMU is used as described above and the virtual address space 172 is allocated for each task. As described above, the user program operating on the OS is divided into execution units such as tasks / processes, and this execution unit can be regarded as a software component of the debug target program.

図18に示されるマイクロコンピュータチップが、図12に示されるのと大きく相違するのは、CPU1211内部のCRレジスタが設けられ、このCRレジスタのSIDビット3−0に対応するSID3−0信号に基づいて、秘匿制御回路1222での秘匿制御が行われる点である。ここで、CRレジスタは、本発明における「空間ID設定レジスタ」の一例とされる。   The microcomputer chip shown in FIG. 18 is greatly different from that shown in FIG. 12 in that a CR register inside the CPU 1211 is provided and is based on the SID3-0 signal corresponding to the SID bits 3-0 of the CR register. Thus, the secrecy control in the secrecy control circuit 1222 is performed. Here, the CR register is an example of the “space ID setting register” in the present invention.

図19には、図18に示される秘匿制御回路1222の構成例が示される。   FIG. 19 shows a configuration example of the concealment control circuit 1222 shown in FIG.

図19に示される秘匿制御回路1222が、図3に示されるのと大きく相違するのは、秘匿ID設定レジスタ31−1〜31−nに代えて、秘匿空間設定レジスタ191−1〜191−nが設けられている点である。秘匿モード設定レジスタ191−1〜191−nには、ホストシステム111からエミュレータ115を介して伝達された秘匿対象仮想アドレス空間情報が設定される。そして、比較回路162−1〜162−nでの比較結果が後段のオアゲート163を介して、デバッグ用機能回路動作抑止信号として出力される。   The concealment control circuit 1222 shown in FIG. 19 is greatly different from that shown in FIG. 3 in place of the concealment ID setting registers 31-1 to 31-n and the concealment space setting registers 191-1 to 191-n. Is a point provided. The concealment target virtual address space information transmitted from the host system 111 via the emulator 115 is set in the concealment mode setting registers 191-1 to 191-n. Then, the comparison results in the comparison circuits 162-1 to 162-n are output as a debug function circuit operation inhibition signal via the subsequent OR gate 163.

上記構成のオンチップエミュレータのシステムにおいても、秘匿制御回路1222による秘匿制御により、上記ソフトウェア開発装置10と同様の効果を得ることができる。   Also in the on-chip emulator system configured as described above, the same effect as that of the software development apparatus 10 can be obtained by the concealment control by the concealment control circuit 1222.

以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。   Although the invention made by the present inventor has been specifically described based on the embodiments, it is needless to say that the present invention is not limited thereto and can be variously modified without departing from the gist thereof.

例えばマイクロコンピュータチップ113に、暗号復号モジュール217やダウンロード専用エリア21を設けることができる。   For example, the encryption / decryption module 217 and the download exclusive area 21 can be provided in the microcomputer chip 113.

10 ソフトウェア開発装置
11 ホストシステム
12 USBアダプタ
13 エミュレータ
14 ユーザシステム
15 光ディスク
21 デバッグ用マイクロコンピュータ
22 デバッグ機能部
23 PCインタフェース
31−1〜31−n 秘匿ID設定レジスタ
32−1〜32−n 比較回路
33 オアゲート
111 ホストシステム
112 USBドライバ
114 ユーザシステム
115 エミュレータ
116 光ディスク
161−1〜161−n 秘匿モード設定レジスタ
162−1〜162−n 比較回路
163 オアゲート
191−1〜191−n 秘匿空間設定レジスタ
211 CPU
212 デバッグ用IF回路
213 デバッグ対象プログラム用RAM
214 実行ソフトID設定レジスタ
215 周辺モジュール
217 暗号復号モジュール
218 ダウンロード専用エリア
221 デバッグ用機能回路
222 秘匿制御回路
1211 CPU
1213 デバッグ対象プログラム用RAM
1214 実行ソフトID設定レジスタ
1215 周辺モジュール
1221 デバッグ用機能回路
1224 デバッグ用ファームウェアメモリ
1222 秘匿制御回路
DESCRIPTION OF SYMBOLS 10 Software development apparatus 11 Host system 12 USB adapter 13 Emulator 14 User system 15 Optical disk 21 Debugging microcomputer 22 Debugging function part 23 PC interface 31-1 to 31-n Secret ID setting register 32-1 to 32-n Comparison circuit 33 OR gate 111 Host system 112 USB driver 114 User system 115 Emulator 116 Optical disk 161-1 to 161-n Secret mode setting register 162-1 to 162-n Comparison circuit 163 OR gate 191-1 to 191-n Secret space setting register 211 CPU
212 IF circuit for debugging 213 RAM for debug target program
214 Execution software ID setting register 215 Peripheral module 217 Encryption / decryption module 218 Download-only area 221 Functional circuit for debugging 222 Secret control circuit 1211 CPU
1213 RAM for debug target program
1214 Execution software ID setting register 1215 Peripheral module 1221 Function circuit for debugging 1224 Firmware memory for debugging 1222 Secret control circuit

Claims (15)

ホストシステムと、
上記ホストシステムに結合され、上記ホストシステムから伝達されたデバッグ対象プログラムをデバッグするためのエミュレータと、を含み、
上記エミュレータは、上記デバッグ対象プログラムを実行可能なデバッグ用マイクロコンピュータと、
上記デバッグ用マイクロコンピュータによる上記デバッグ対象プログラムの実行状態をモニタすることで上記デバッグ対象プログラムのデバッグ情報を得るデバッグ用機能回路と、を含むソフトウェア開発装置であって、
上記デバッグ用マイクロコンピュータで実行されるデバッグ対象プログラムを構成するソフトウェアコンポーネントについての秘匿設定情報に基づいて、当該ソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記ソフトウェアコンポーネントが上記デバッグ用マイクロコンピュータで実行された場合の上記デバッグ用機能回路の動作を制限可能な秘匿制御回路を含むことを特徴とするソフトウェア開発装置。
A host system;
An emulator coupled to the host system for debugging a program to be debugged transmitted from the host system,
The emulator includes a debugging microcomputer capable of executing the debug target program;
A debugging function circuit that obtains debug information of the debug target program by monitoring the execution state of the debug target program by the debug microcomputer, and a software development device comprising:
It is determined whether or not the software component should be concealed based on the concealment setting information about the software component constituting the debug target program executed by the debugging microcomputer, and based on the determination result, the software component is A software development apparatus comprising a secret control circuit capable of restricting the operation of the debugging functional circuit when executed by the debugging microcomputer.
上記デバッグ用マイクロコンピュータは、上記デバッグ対象プログラムを構成するソフトウェアコンポーネントのID情報が設定される実行ソフトID設定レジスタを含み、
上記秘匿制御回路は、秘匿対象ソフトウェアコンポーネントのID情報が設定された秘匿ID設定レジスタと、
上記実行ソフトID設定レジスタの出力情報と、上記秘匿ID設定レジスタの出力情報とが一致するか否かを判別する比較回路と、を含み、上記比較回路の比較結果に基づいて上記デバッグ用機能回路の動作を制限するための信号を形成する請求項1記載のソフトウェア開発装置。
The debugging microcomputer includes an execution software ID setting register in which ID information of software components constituting the debug target program is set.
The concealment control circuit includes a concealment ID setting register in which ID information of a concealment target software component is set,
A comparator circuit for determining whether or not the output information of the execution software ID setting register matches the output information of the secret ID setting register, and the debugging functional circuit based on a comparison result of the comparison circuit 2. The software development apparatus according to claim 1, wherein a signal for limiting the operation of the software is formed.
上記ホストシステムは、ソースファイルをコンパイル又はアセンブルすることで、オブジェクトファイルを形成するオブジェクトファイル生成機能と、
上記オブジェクトファイル生成機能により形成されたオブジェクトファイルに基づいてロードモジュールファイルを形成するロードモジュールファイル生成機能と、を含み、上記ロードモジュールファイルが上記デバッグ対象プログラムとして上記エミュレータに送出される請求項1記載のソフトウェア開発装置。
The host system compiles or assembles a source file, thereby creating an object file generating function for forming an object file;
2. A load module file generation function for forming a load module file based on an object file formed by the object file generation function, wherein the load module file is sent to the emulator as the debug target program. Software development equipment.
上記オブジェクトファイル生成機能は、ソースファイルを読み込んで、上記実行ソフトID設定レジスタにID情報を書き込むためのコードを上記ソースファイルに付加する第1機能と、
上記第1機能により上記コードが付加されたソースファイルをコンパイル又はアセンブルすることでオブジェクトファイルを形成する第2機能と、
上記第2機能によって得られたオブジェクトファイルは秘匿対象であるか否かを判別する第3機能と、
上記第3機能による判別結果に基づいて、秘匿対象であるオブジェクトファイルに暗号化処理を施す第4機能と、
上記第3機能による判別結果に基づいて、上記オブジェクトファイルに、当該ファイルが秘匿対象であるか否かを示すフラグを設定する第5機能と、を含み、
上記ロードモジュールファイル生成機能は、上記オブジェクトファイル生成機能によって生成されたオブジェクトファイルに基づいてロードモジュールファイルを形成する第6機能と、
上記第6機能により形成されたロードモジュールファイルに、秘匿対象とされるものが含まれるか否かの判別を行う第7機能と、
上記第7機能により、秘匿対象とされるものが含まれると判断されたロードモジュールファイルに暗号化処理を施す第8機能と、
上記第7機能の判別結果に基づいて、上記ロードモジュールファイルに、当該ファイルが秘匿対象か否かを示すフラグを付加する第9機能と、を含む請求項3記載のソフトウェア開発装置。
The object file generation function includes a first function that reads a source file and adds a code for writing ID information to the execution software ID setting register to the source file;
A second function for forming an object file by compiling or assembling the source file to which the code is added by the first function;
A third function for determining whether the object file obtained by the second function is a target to be concealed;
A fourth function for performing encryption processing on the object file to be concealed based on the determination result by the third function;
A fifth function for setting a flag indicating whether or not the file is a concealment target based on the determination result by the third function,
The load module file generation function includes a sixth function that forms a load module file based on the object file generated by the object file generation function;
A seventh function for determining whether or not the load module file formed by the sixth function includes a target to be concealed;
An eighth function that performs encryption processing on the load module file that is determined to contain a confidential object by the seventh function;
The software development apparatus according to claim 3, further comprising: a ninth function that adds, to the load module file, a flag indicating whether or not the file is a secret object based on the determination result of the seventh function.
上記デバッグ用マイクロコンピュータは、上記ホストシステムによって暗号化された上記ロードモジュールファイルを取り込んで復号化する復号化処理機能と、
上記復号化処理機能で復号化されたファイルを格納するための専用エリアと、を含み、上記専用エリアに格納されたファイルを上記デバッグ対象として実行する請求項4記載のソフトウェア開発装置。
The debugging microcomputer includes a decryption processing function for taking in and decrypting the load module file encrypted by the host system;
The software development apparatus according to claim 4, further comprising: a dedicated area for storing a file decrypted by the decryption function, wherein the file stored in the dedicated area is executed as the debug target.
上記デバッグ用マイクロコンピュータは、上記専用アリア内の上記ロードモジュールファイルを上記ホストシステムに送出する前に当該ロードモジュールファイルを暗号化する暗号化処理機能を更に含む請求項5記載のソフトウェア開発装置。     6. The software development apparatus according to claim 5, wherein the debugging microcomputer further includes an encryption processing function for encrypting the load module file before sending the load module file in the dedicated area to the host system. ソースファイルを読み込んで、実行ソフトID設定レジスタにID情報を書き込むためのコードを上記ソースファイルに付加する第1機能と、
上記第1機能により上記コードが付加されたソースファイルをコンパイル又はアセンブルすることでオブジェクトファイルを形成する第2機能と、
上記第2機能によって得られたオブジェクトファイルは秘匿対象であるか否かを判別する第3機能と、
上記第3機能による判別結果に基づいて、秘匿対象であるオブジェクトファイルに暗号化処理を施す第4機能と、
上記第3機能による判別結果に基づいて、上記オブジェクトファイルに、当該ファイルが秘匿対象であるか否かを示すフラグを設定する第5機能と、
上記オブジェクトファイルに基づいてロードモジュールファイルを形成する第6機能と、
上記第6機能により形成されたロードモジュールファイルに、秘匿対象とされるものが含まれるか否かの判別を行う第7機能と、
上記第7機能により、秘匿対象とされるものが含まれると判断されたロードモジュールファイルに暗号化処理を施す第8機能と、
上記第7機能の判別結果に基づいて、上記ロードモジュールファイルに、当該ファイルが秘匿対象か否かを示すフラグを付加する第9機能と、をコンピュータに実現させるためのプログラム。
A first function for reading a source file and adding a code for writing ID information to the execution software ID setting register to the source file;
A second function for forming an object file by compiling or assembling the source file to which the code is added by the first function;
A third function for determining whether the object file obtained by the second function is a target to be concealed;
A fourth function for performing encryption processing on the object file to be concealed based on the determination result by the third function;
A fifth function for setting, in the object file, a flag indicating whether or not the file is a target to be concealed based on the determination result by the third function;
A sixth function for forming a load module file based on the object file;
A seventh function for determining whether or not the load module file formed by the sixth function includes a target to be concealed;
An eighth function that performs encryption processing on the load module file that is determined to contain a confidential object by the seventh function;
A program for causing a computer to realize a ninth function for adding a flag indicating whether or not the file is a secret object to the load module file based on the determination result of the seventh function.
請求項7記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the program according to claim 7 is recorded. デバッグ対象プログラムを実行可能なマイクロコンピュータ機能部と、
上記デバッグ用マイクロコンピュータによる上記デバッグ対象プログラムの実行状態をモニタすることで上記デバッグ対象プログラムのデバッグ情報を得るデバッグ用機能回路と、を含む半導体集積回路装置であって、
上記マイクロコンピュータ機能部で実行されるデバッグ対象プログラムを構成するソフトウェアコンポーネントについての秘匿設定情報に基づいて、当該ソフトコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記ID情報に対応するソフトウェアコンポーネントが上記マイクロコンピュータ機能部で実行された場合の上記デバッグ用機能回路の動作を制限可能な秘匿制御回路を含むことを特徴とする半導体集積回路装置。
A microcomputer function unit capable of executing a program to be debugged;
A debug functional circuit that obtains debug information of the debug target program by monitoring an execution state of the debug target program by the debug microcomputer, and a semiconductor integrated circuit device comprising:
It is determined whether or not the software component should be concealed based on concealment setting information about the software component constituting the debug target program executed by the microcomputer function unit, and based on the determination result, the ID information is included in the ID information. A semiconductor integrated circuit device comprising: a secret control circuit capable of restricting the operation of the debugging functional circuit when a corresponding software component is executed by the microcomputer function unit.
上記マイクロコンピュータ機能部は、上記デバッグ対象プログラムを構成するソフトウェアコンポーネントのID情報が設定される実行ソフトID設定レジスタを含み、
上記秘匿制御回路は、上記実行ソフトID設定レジスタに設定されたID情報に対応するソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記実行ソフトID設定レジスタの設定情報に対応するプログラムが上記マイクロコンピュータ機能部で実行された場合の上記デバッグ用機能回路の動作を制限する請求項9記載の半導体集積回路装置。
The microcomputer function unit includes an execution software ID setting register in which ID information of software components constituting the debug target program is set.
The concealment control circuit determines whether or not the software component corresponding to the ID information set in the execution software ID setting register should be concealed, and based on the determination result, sets the setting information of the execution software ID setting register. 10. The semiconductor integrated circuit device according to claim 9, wherein the operation of the functional circuit for debugging is restricted when a corresponding program is executed by the microcomputer function unit.
上記秘匿制御回路は、秘匿対象ソフトウェアコンポーネントのID情報が設定された秘匿ID設定レジスタと、
上記実行ソフトID設定レジスタの出力情報と、上記秘匿ID設定レジスタの出力情報とが一致するか否かを判別する比較回路と、を含み、上記比較回路の比較結果に基づいて上記デバッグ用機能回路の動作を制限するための信号を形成する請求項10記載の半導体集積回路装置。
The concealment control circuit includes a concealment ID setting register in which ID information of a concealment target software component is set,
A comparator circuit for determining whether or not the output information of the execution software ID setting register matches the output information of the secret ID setting register, and the debugging functional circuit based on a comparison result of the comparison circuit 11. The semiconductor integrated circuit device according to claim 10, wherein a signal for limiting the operation of the semiconductor integrated circuit device is formed.
上記マイクロコンピュータ機能部は、上記マイクロコンピュータ機能部で実行されるプログラムを指定するためのプログラム走行モード設定レジスタを含み、
上記秘匿制御回路は、上記プログラム走行モード設定レジスタの設定情報に対応するソフトウェアコンポーネントを秘匿すべきか否かを判別し、その判別結果に基づいて、上記プログラム走行モード設定レジスタの設定情報に対応するソフトウェアコンポーネントが上記マイクロコンピュータ機能部で実行された場合の上記デバッグ用機能回路の動作を制限する請求項9記載の半導体集積回路装置。
The microcomputer function unit includes a program running mode setting register for designating a program to be executed by the microcomputer function unit,
The concealment control circuit determines whether or not the software component corresponding to the setting information of the program travel mode setting register should be concealed, and based on the determination result, the software corresponding to the setting information of the program travel mode setting register 10. The semiconductor integrated circuit device according to claim 9, wherein operation of the debugging functional circuit is restricted when a component is executed by the microcomputer function unit.
上記秘匿制御回路は、秘匿対象プログラム走行モード情報が設定された秘匿モード設定レジスタと、
上記プログラム走行モード設定レジスタの出力情報と、上記秘匿モード設定レジスタの出力情報とを比較する比較回路と、を含み、上記比較の比較結果に基づいて上記デバッグ用機能回路の動作を制限するための信号を形成する請求項12記載の半導体集積回路装置。
The concealment control circuit includes a concealment mode setting register in which concealment target program running mode information is set,
A comparator circuit for comparing the output information of the program running mode setting register and the output information of the secret mode setting register, and for limiting the operation of the debugging functional circuit based on the comparison result of the comparison 13. The semiconductor integrated circuit device according to claim 12, which forms a signal.
上記マイクロコンピュータ機能部は、デバッグ対象プログラムの実行単位毎に割り当てられた仮想アドレス空間を示す空間ID情報が設定される空間ID設定レジスタを含み、
上記秘匿制御回路は、上記空間ID設定レジスタの設定情報に対応する仮想アドレス空間の実行単位を秘匿すべきか否かを判別し、その判別結果に基づいて、上記空間ID設定レジスタの設定情報に対応する仮想アドレス空間の実行単位が上記マイクロコンピュータ機能部で実行された場合の上記デバッグ用機能回路の動作を制限する請求項9記載の半導体集積回路装置。
The microcomputer function unit includes a space ID setting register in which space ID information indicating a virtual address space allocated for each execution unit of the debug target program is set.
The concealment control circuit determines whether or not the execution unit of the virtual address space corresponding to the setting information of the space ID setting register should be concealed, and corresponds to the setting information of the space ID setting register based on the determination result 10. The semiconductor integrated circuit device according to claim 9, wherein operation of the debugging functional circuit is restricted when an execution unit of the virtual address space to be executed is executed by the microcomputer function unit.
上記秘匿制御回路は、秘匿対象仮想アドレス空間情報が設定された秘匿空間設定レジスタと、
上記空間ID設定レジスタの出力情報と、上記秘匿空間設定レジスタの出力情報とを比較する比較回路と、を含み、上記比較回路の比較結果に基づいて上記デバッグ用機能回路の動作を制限するための信号を形成する請求項14記載の半導体集積回路装置。
The concealment control circuit includes a concealment space setting register in which concealment target virtual address space information is set, and
A comparison circuit for comparing the output information of the space ID setting register and the output information of the secret space setting register, and for limiting the operation of the debugging functional circuit based on the comparison result of the comparison circuit 15. The semiconductor integrated circuit device according to claim 14, which forms a signal.
JP2010028761A 2010-02-12 2010-02-12 Software development device, program, recording medium, and semiconductor integrated circuit device Withdrawn JP2011165038A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010028761A JP2011165038A (en) 2010-02-12 2010-02-12 Software development device, program, recording medium, and semiconductor integrated circuit device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010028761A JP2011165038A (en) 2010-02-12 2010-02-12 Software development device, program, recording medium, and semiconductor integrated circuit device

Publications (1)

Publication Number Publication Date
JP2011165038A true JP2011165038A (en) 2011-08-25

Family

ID=44595629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010028761A Withdrawn JP2011165038A (en) 2010-02-12 2010-02-12 Software development device, program, recording medium, and semiconductor integrated circuit device

Country Status (1)

Country Link
JP (1) JP2011165038A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9829875B2 (en) 2013-12-25 2017-11-28 Fanuc Corporation Safety communication system using IO units communicating with a plurality of CPUS

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9829875B2 (en) 2013-12-25 2017-11-28 Fanuc Corporation Safety communication system using IO units communicating with a plurality of CPUS

Similar Documents

Publication Publication Date Title
Muench et al. What You Corrupt Is Not What You Crash: Challenges in Fuzzing Embedded Devices.
JP6516870B2 (en) Method for safely executing program instructions and program for the method
Wright et al. Challenges in firmware re-hosting, emulation, and analysis
US6430741B1 (en) System and method for data coverage analysis of a computer program
RU2296363C1 (en) Method and device for protecting software from unsanctioned usage
Levin Mac OS X and iOS internals: to the apple's core
Stollon On-chip instrumentation: design and debug for systems on chip
US20170103192A1 (en) Secure code delivery
JP2007500401A (en) Software debugging apparatus and method
US9208060B1 (en) Emulation-based expression evaluation for diagnostic tools
JP7377260B2 (en) How to detect safety-related data streams
Zhang et al. IntPatch: Automatically fix integer-overflow-to-buffer-overflow vulnerability at compile-time
US9792402B1 (en) Method and system for debugging a system on chip under test
Lacamera Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems
JP2006507586A (en) Apparatus and method for analyzing embedded system
Busch et al. Teezz: Fuzzing trusted applications on cots android devices
Park et al. GPUReplay: a 50-KB GPU stack for client ML
JP2011165038A (en) Software development device, program, recording medium, and semiconductor integrated circuit device
Mihajlović et al. Dynamically instrumenting the QEMU emulator for Linux process trace generation with the GDB debugger
Shan et al. CROWBAR: Natively Fuzzing Trusted Applications Using ARM CoreSight
US6931634B2 (en) Encrypted compiler
Goli et al. VIP-VP: Early validation of SoCs information flow policies using SystemC-based virtual prototypes
Li et al. Towards a generic framework for automating extensive analysis of android applications
JP2010231607A (en) Emulator
JP2007140620A (en) Microcomputer and debugging device connected to this microcomputer

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130507