The present invention relates to a technology for license management of a debugging device in a debugging system capable of observing a program execution state of CPU (central processing unit) from an external device.
Conventionally, device numbers respectively unique to a host computer and a debugging device are used in license management in a debugging system (for example, see No. US2002-0194477 A1 (see FIG. 1).
Hereinafter, the conventional license management in the debugging system is described referring to the drawings.
The debugger 51 interprets a debug command inputted from the input unit 54 and outputs a debug command D11 to the debugging device B. The debugging device B converts the received debug command D11 into a signal that can be transmitted to the target CPU 60, and outputs a target command D12 to the target CPU 60. The target CPU 60 executes any necessary processing in accordance with the received target command D12, and outputs a target data D13 to the debugging device B. The debugging device B, which has received the target data D13, outputs a debug data D14 to the host computer 50. Then, the debugger 51 receives the debug information of the target CPU 60. The debugger 51 executes any necessary processing based on the debug information, and displays a relevant result on the display unit 55. The license of the debugger 51 is processed in the license judging section 52 when the debugger 51 is activated. The license judging process will be described later.
The debugging device B transmits and receives signals to and from the host computer 50 and the target CPU 60, but is not responsible for the license management. The license judging section 52 in the host computer 50 is in charge of the license management.
As shown in
The license judging process by the debugger 51 is described referring to a flow chart of
The process shifts to Step p1 to start when a user requests the activation of the debugger.
In Step p2, the license information file 53 is read.
In Step p3, it is checked whether or not the read license information file 53 is valid, and thereafter, it is checked if the license is currently valid. The process advances to Step p4 when the license is valid, while advancing to Step p5 when invalid.
In the Step p4, the debugger 51 is activated.
In the Step p5, a license error is displayed on the display unit 55.
As described, on the host computer 50, the validity of the license information is judged from the license information file 53. Then, the debugger 51 is activated when the license information is valid, while the process is interrupted when invalid so that the activation of the debugger 51 is controlled. The license management of the debugger 51 is thus performed.
The conventional technology described above, wherein the license information management file 53 used for the license management of the debugger is inside the host computer 50 comprising the input unit (keyboard and mouse) 54, included such a risk that the debugger could be easily illegally used when the information in the file was falsified or illegally copied via the input unit 54.
Therefore, a main object of the present invention is to provide a debugging device capable of performing a high-security license management wherein a license information of a debugger cannot be easily falsified and illegally used.
A debugging device according to the present invention comprises a host communication section for transmitting and receiving data to and from a host computer, a target communication section for transmitting and receiving data to and from a target CPU as an object to be debugged, an external storage medium for storing a unique discrimination code for identifying the storage medium and an encrypted license information, and a control section for decoding the license information using a predetermined secret key and judging whether or not the license information is valid using the discrimination code.
According to the foregoing constitution, the encrypted license information is stored in the external storage medium, and the secret key is used to decode the license information in the debugging device in which an input device is not provided. Such a constitution makes it difficult for a third party to decode the license information. As a result, the license management of the debugger can be performed at a high security level.
The debugging device constituted as above effectively further comprises a time management section for managing time and date. The debugging device thus constituted can manage the date and time in the time management section provided therein to thereby manage a license validity term at a high security level.
The debugging device constituted as above effectively further comprises a network section for transmitting and receiving data to and from an external network line. The debugging device thus constituted can transmit and receive the data to and from the external network line in the network section provided therein to thereby renew the license at a high security level.
In the foregoing constitution, the target CPU comprises a unique discrimination code for identifying a product type of the target. Thereby, the license management of the debugger consistent with the target CPU can be performed.
The followings are preferable modes of the license information in the foregoing constitution.
According to a first mode, the license information includes a license validity term information indicating a term during which the debugger and the debugging device can be used. Thereby, the license validity term information indicating the term during which the debugger and the debugging device are usable can be managed.
According to a second mode, the license information includes an activation-permit frequency information indicating number of times when the activation of the debugger is permitted. Thereby, the number of times when the activation of the debugger is permitted can be managed.
According to a third mode, the license information includes a command-use setting information indicating presence or absence of limitations in using a debug command. Thereby, the presence or absence of the limitations in using the debug command of the debugger can be managed.
According to a fourth mode, the license information includes a command-use permit information indicating a debug command which is permitted to be used. Thereby, the debug command of the debugger permitted to be used can be managed.
According to a fifth mode, the license information includes a command-use nonpermit information indicating a debug command which is not permitted to be used. Thereby, the debug command of the debugger not permitted to be used can be managed.
According to a sixth mode, the license information include a corresponding product type information indicating a product type of the CPU that can be debugged by the debugger. Thereby, the product type of the CPU that can be debugged by the debugger can be managed.
According to a seventh mode, the license information includes a unique user ID information for identifying a user. Thereby, the unique user ID that can be used to identify the user can be managed.
According to an eighth mode, the license information includes a unique host-use permit information for identifying a host computer permitted to be connected to the debugging device. Thereby, the host computer permitted to be connected to the debugging device can be managed.
According to a ninth mode, the license information includes a command-execution frequency information indicating number of times when a debug command can be executed. Thereby, the number of times when the debug command of the debugger is permitted to be used can be managed.
These and other objects as well as advantages of the invention will become clear by the following description of preferred embodiments of the invention. A number of benefits not recited in this specification will come to the attention of the skilled in the art upon the implementation of the present invention.
Hereinafter, preferred embodiments of a debugging system including a debugging device according to the present invention are described in detail referring to the drawings.
A first preferred embodiment of the present invention is described referring to
The host communication section 1 outputs an internal signal S1 to the CPU 2 when the debug command D1 is received from the debugger 21. The CPU 2, to which the internal signal S1 is inputted, executes the control software 3 previously stored therein, outputs an internal signal S2 to the external storage medium 6, and outputs an internal signal S3 to the target communication section 5. The external storage medium 6, to which the internal signal S2 from the CPU 2 is inputted, executes a predetermined processing thereto and outputs an internal signal S4 to the CPU 2. When the external storage medium 6 is inserted or extracted with respect to the debugging device A1, the external storage medium 6 generates an internal signal S5 and transmits it to the CPU 2 as an interruption signal. The target communication section 5 converts the internal signal S3 inputted from the CPU 2 into a JTAG command, and outputs the target command D2 to the target CPU 30. The target communication section 5 further outputs an internal signal S6 to the CPU 2 when the target data D3 from the target CPU 30 is received. The CPU 2 executes a predetermined processing corresponding to each of the inputted internal signals S4, S5 and S6 thereto, and outputs an internal signal S7 to the host communication section 1. The host communication section 1, to which the internal signal S7 from the CPU 2 is inputted, outputs the debug data D4 to the debugger 21. The debugger 21 outputs the debug command D1 to the debugging device A1 and receives the debug data D4 from the debugging device A1 to thereby obtain an internal information of the target CPU 30 and display the obtained information on the display unit 24. Thereby, the debug information can be displayed to a user of the debugger so that the software operated on the target CPU 30 can be debugged.
A first license information 81 comprises a first positional information and a first license data. A second license information 82 comprises a second positional information and a second license data. A third license information 83 comprises a third positional information and a third license data. An mth license information 8m comprises an mth positional information and an mth license data. Each positional information has 4 bytes, and each license data has n bytes. A reference 8e denotes the terminal of 4 bytes, and a reference 8s denotes the check sum of 4 bytes.
As shown in
The additional information of the validity term information includes a validity term “year/month/date”. The additional information of the activation-permit frequency includes a remaining number of times when the activation is permitted. The additional information of the command-use setting includes a flag information indicating the command use permit (default denotes the command use permit) and the command-use nonpermit (default denotes the command-use nonpermit). The additional information of the command use permit includes a command name and an option name to be permitted. The additional information of the command use nonpermit includes a command name and an option name not to be permitted. The additional information of the corresponding product type information includes a corresponding product type name. The additional information of the external storage medium discrimination code information includes a discrimination code of the external storage medium. The additional information of the user information includes a user name and a password. The additional information of the host-use permit information includes a MAC address of the host computer permitted to be used.
A structure of the license data is described referring
Next, an operation of a license information judging process executed by the debugging device A1 is described referring to flow charts of
More specifically, the license information judging process is executed by the control software 3 previously installed in the debugging device A1. When the user instructs the activation of the debugger 21, or inserts or extracts the external storage medium 6 with respect to the debugging device A1, Step n1 starts.
In Step n2, the external storage medium discrimination code 7 and the encrypted license information 8 are obtained from the external storage medium 6.
In Step n3, the license information is decoded in such a manner that an exclusive OR of the obtained license information 8 with respect to the secret key 4 is obtained.
In Step n4, a check sum value of the decoded license information is calculated.
In Step n5, it is judged whether or not the calculated check sum value is equal to the “check sum value” included in the decoded license information. The process advances to Step n22 when the values are not equal to each other, while advancing to Step n6 when they are equal to each other.
In the Step n6, it is judged whether or not the obtained external storage medium discrimination code is coincident with the “external storage medium discrimination code” included in the decoded license information. The process advances to the Step n22 when the codes are not coincident with each other, while advancing to Step n7 when they are coincident with each other.
In the Step n7, the presence/absence of the “validity term information” included in the decoded license information is judged. The process advances to Step n8 when the information is present, while advancing to Step n10 when the information is absent.
In the Step n8, a current time and date are obtained from the host computer 20.
In Step n9, the “validity term information included in the decoded license information is compared to the obtained current time and date. The process advances to the Step n10 when the validity term information indicates that a validity term has not expired, while advancing to Step N22 when the expiration of the validity term is confirmed and the license is thereby judged to be invalid.
In the Step n10, the presence/absence of the “activation-permit frequency” included in the decoded license information is judged. The process advances to Step n11 when the information is present, while advancing to Step n12 when the information is absent.
In the Step n11, it is judged whether or not the “activation-permit frequency” included in the decoded license information is at least “1”. The process advances to the Step n12 when the frequency is at least “1”, while advancing to the Step n22 when the frequency is below “1”.
In the Step n12, the presence/absence of the “corresponding product type information” included in the decoded license information is judged. The process advances to Step n13 when the information is present, while advancing to Step n15 when the information is absent.
In the Step n13, the target ID information 31 present on the target CPU 30 is obtained.
In Step n14, it is judged whether or not the obtained target ID information is coincident with the “corresponding product type information” included in the decoded license information. The process advances to the Step n15 when the informations are coincident with each other, while advancing to the Step n22 when they are not.
In the Step n15, the presence/absence of the “usable host information” included in the decoded license information is judged. The process advances to Step n16 when the information is present, while advancing to Step n18 when the information is absent.
In the Step n16, the Mac address information 22 present on the host computer 20 is obtained.
In Step n17, it is judged whether or not the obtained Mac address information is coincident with the “usable host information” included in the decoded license information. The process advances to the Step n18 when the informations are coincident wit each other, while advancing to the Step n22 when they are not.
In the Step n18, the presence/absence of the “user information” included in the decoded license information is judged. The process advances to Step n19 when the information is present, while advancing to Step n21 when the information is absent.
In the Step n19, the input of the user information is requested to the host computer 20, and the user information is thereby obtained. The input of the user information will be described in detail later.
In Step n20, it is judged whether or not the obtained user information is coincident with the “user information” included in the decoded license information. The process advances to the Step n21 when the informations are coincident with each other, while advancing to the Step n22 when they are not.
In the Step n21, the obtained license information is judged to be valid, and a license permit signal is outputted as the internal signal S7 shown in
In the Step n22, the obtained license information is judged to be invalid, and a license nonpermit signal is outputted as the internal signal S7 shown in
As described, when the license information judging process shown in
Next is described a judgment made on the presence/absence of the valid license every time when the debugging device A1 receives the debug command D1 from the debugger 21.
In Step n32, the received debug command is analyzed, and the process advances to Step n33.
In the step n33, it is judged whether or not the license information decoded in the Step n3 shown in
In the Step n34, it is judged whether or not the numeral value “0x00” of the license information additional information 8b shown in
In the Step n37, the presence/absence of the “command-use permit information” included in the license information decoded in the Step n3 is judged. The process advances to Step n38 when the information is present, while advancing to Step n43 when the information is absent.
In the Step n38, it is judged whether or not the received debug command is included in the obtained command-use permit information. The debug command included therein is judged to be the permitted debug command, and the process then advances to Step n39. The debug command not included therein is judged to be the non-permitted debug command, and the process then advances to the Step n43.
In the Step n35, the presence/absence of the “command-use nonpermit information” included in the license information decoded in the Step n3 is judged. The process advances to Step n36 when the information is present, while advancing to the Step n39 when the information is absent.
In Step n36, it is judged whether or not the received debug command and the “command-use nonpermit information” included in the license information decoded in the Step n3 are coincident with each other. The process advances to the Step n43 when they the informations are coincident with each other, while advancing to the Step n39 when they are not.
In the Step n39, the presence/absence of the “command-execution frequency information” included in the license information decoded in the Step n3 is judged. The process advances to Step n40 when the information is present, while advancing to Step n42 when the information is absent.
In the Step n40, it is judged whether or not the obtained command-execution frequency is at least “1”. The process advances to Step n41 in the case of at least “1”, while advancing to Step n43 in the case of below “1”.
In the Step n41, “1” is subtracted from the obtained command-execution frequency information so that the command-execution frequency information is renewed. Then, the process advances to the Step n42.
In the Step n42, the debug command is executed. In the Step n43, the host computer is notified of the license error.
As thus far described, according to the first preferred embodiment, the debugging device A1 checks whether or not the valid license is present every time when the debug command is received. Then, the communication with the target CPU 30 to be debugged is commenced so that the debug command is executed only in the presence of the valid license, while the license error is transmitted to the host computer 20 in the absence of the valid license so that the execution of the debug command is completely prevented.
A second preferred embodiment of the present invention is described referring to
The time management section 9 is in charge of managing time and date and, for example, is likened to a clock whose operation is backed up by a battery. The time management section 9 is adapted to return a current time/date information S9 to the CPU 2 when a signal S8 for requesting the acquisition of the time and date is inputted thereto from the CPU 2. The host computer 20 is in charge of managing the time and date in the first preferred embodiment, however, the debugging device A2 is responsible for managing the time and date in the second preferred embodiment.
Next, an operation of a license information judging process executed by the debugging device A2 is described referring to flow charts of
The control software 3 shifts to Step n51 to start the process when the activation command from the debugger 21 is received or the external storage medium 6 is inserted or extracted with respect to the debugging device A2.
In Step n52, the external storage medium discrimination code 7 and the encrypted license information 8 are obtained from the external storage medium 6, and the process advances to Step n53.
In the Step n53, the obtained license information 8 is decoded in such a manner that the exclusive OR thereof with respect to the secret key 4 is obtained, and the process advances to Step n54.
In the Step n54, the check sum value of the decoded license information is calculated, and the process advances to Step n55.
In the Step n55, it is judged whether or not the calculated check sum value is equal to the “check sum value” included in the decoded license information. The process advances to Step n72, in which the license is judged to be invalid and the process is terminated, when they are not equal to each other, while advancing to n56 when they are equal to each other.
In the Step n56, it is judged whether or not the obtained external storage medium discrimination code is coincident with the “external storage medium discrimination code” included in the decoded license information. The process advances to the Step n72 when the informations are not coincident with each other, while advancing to Step n57 when they are coincident with each other.
In the Step n57, the presence/absence of the “validity term information” included in the decoded license information is judged. The process advances to Step n58 when the information is present, while advancing to Step n60 when the information is absent.
In the Step n58, the current time and date are obtained from the time management section 9, and the process advances to Step n59.
In the Step n59, the obtained current time and date are compared to the “validity term information” included in the decoded license information. The process advances to Step n60 when the validity term information indicates that the validity term has not expired, while advancing to the Step n72, in which the license is judged to be invalid and the process is terminated, when the expiration of the validity term is confirmed
In the Step n60, the presence/absence of the “activation-permit frequency information” included in the decoded license information is judged. The process advances to Step n61 when the information is present, while advancing to Step n62 when the information is absent.
In the Step n61, it is judged whether or not the “activation-permit frequency” included in the decoded license information is at least “1”. The process advances to the Step n62 in the case of at least “1”, while advancing to the Step n72, in which the license is judged to be invalid and the process is terminated, in the case of below “1”.
In the Step n62, the presence/absence of the “corresponding product type information” included in the decoded license information is judged. The process advances to Step n63 when the information is present, while advancing to Step n65 when the information is absent.
In the Step n63, the target ID information 31 present on the target CPU 30 is obtained, and the process advances to Step n64.
In the Step n64, it is judged whether or not the obtained target ID information is coincident with the “corresponding product type information” included in the decoded license information. The process advances to the Step n65 when the informations are coincident with each other, while advancing to the Step n72, in which the license is judged to be invalid and the process is terminated, when they are not coincident with each other.
In the Step n65, the presence/absence of the “host-use permit information” included in the decoded license information is judged. The process advances to Step n66 when the information is present, while advancing to Step n68 when the information is absent.
In the Step n66, the MAC address information 22 present on the host computer 20 is obtained, and the process advances to Step n67.
In the Step n67, it is judged whether or not the obtained MAC address information is coincident with the “usable host information” included in the decoded license information. The process advances to the Step n68 when the informations are coincident with each other, while advancing to the Step n72, in which the license is judged to be invalid and the process is terminated, when they are not.
In the Step n68, the presence/absence of the “use information” included in the decoded license information is judged. The process advances to Step n69 when the information is present, while advancing to Step n71 when the information is absent.
In the Step n69, the window when the user information is inputted, which is shown in
In the Step n70, it is judged whether or not the obtained user information is coincident with the “user information” included in the decoded license information. The process advances to the Step n71 when the informations are coincident with each other, while advancing to the Step n72 when they are not.
In the Step n71, the license is judged to be valid, and a license permit signal S7 shown in
In the Step n72, the license is judged to be invalid, and the license nonpermit signal S7 is outputted to the host communication section 1. When the license nonpermit signal S7 is inputted, the host communication section 1 outputs the debug data D4 (activation nonpermit signal) to the debugger 21. The debugger 21 is not activated when the activation nonpermit signal D4 is received, and displays the generation of the license error on the display unit 24 so that the user is informed.
As described, when the process shown in
Further, the presence/absence of the valid license every time when the debugging device A2 receives the debug command from the debugger 21 can be judged when of the process described referring to
As thus far described, according to the second preferred embodiment, the debugging device A2 checks whether or not the valid license is present every time when the debug command is received. Then, the communication with the target CPU 30 to be debugged is commenced so that the debug command is executed only in the presence of the valid license. Further, the host computer 20 is notified of the license error in the absence of the valid license so that the execution of the debug command is completely prevented. Further, the time management section 9 is provided in the debugging device A2 so that the current time and date are obtained. Then, it becomes unnecessary to obtain the current date and time from the host computer 20 in order to judge the validity term as described in the first preferred embodiment. Thereby, the management of the validity term of the debugger can be facilitated.
A third preferred embodiment of the present invention is described referring to
In the Step n82, the license renewal request is made to the host computer 20, and the process advances to Step n83.
In the Step n83, when the host computer 20 receives the request of the license renewal process from the debugging device A3, the host computer 20 displays a window for implementing license renewal procedures to the user, and the process advances to Step n84. The window for executing the license renewal procedures is shown in
In
In the Step n85, a license renewal information is transmitted to the debugging device A3 from the host computer 20.
In Step n86, the debugging device A3 transmits a license renewal information D5 to the license information imparting server 12 via the external network connection unit 11, and the process advances to Step n87.
In the Step n87, the process advance to Step n88 when the license information imparting server 12 receives the license renewal information D5 transmitted by the debugging device A3.
In the Step n88, it is judged whether or not the license renewal information is valid. The process advance to Step n89 when the information is valid, while advancing to Step n93, in which a license renewal error message 24h shown in
In the Step n89, the license information imparting server 12 transmits a new license information D6 to the external network connection unit 11, and the process advances to Step n90.
When the debugging device A3 receives the new license information D6 from the external network connection unit 11 in the Step n90, the process advances to Step n91.
In the Step n91, the received new license information D6 is recorded on the external storage medium 6, and the process advances to Step n92.
In the Step n92, a license renewal completion message 24j shown in
As thus far described, according to the third preferred embodiment, the external network connection unit 11 and the license information imparting server 12 are further provided in the debugging device A3 so that the license information from the license information imparting server 12 can be renewed via a network path D7 and the external network connection unit 11. As a result, burdens of the hassling renewal operation to be executed by the user can be lessened.
While the invention has been described and illustrated in detail, it is to be clearly understood that this is intended be way of illustration and example only and is not to be taken by way of limitation, the spirit and scope of this invention being limited only be the terms of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
2005-072486 | Mar 2005 | JP | national |