JP5906789B2 - Message output control device and message output control method - Google Patents
Message output control device and message output control method Download PDFInfo
- Publication number
- JP5906789B2 JP5906789B2 JP2012033353A JP2012033353A JP5906789B2 JP 5906789 B2 JP5906789 B2 JP 5906789B2 JP 2012033353 A JP2012033353 A JP 2012033353A JP 2012033353 A JP2012033353 A JP 2012033353A JP 5906789 B2 JP5906789 B2 JP 5906789B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- output
- message
- file
- function
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、通信系IP(Intellectual Property)マクロのドライバソフトウェアでのデバッグの際のメッセージ出力を制御することに関する。 The present invention relates to controlling message output during debugging with driver software of a communication IP (Intellectual Property) macro.
従来より、通信系IPマクロのドライバソフトウェアの開発に当たっては、そのデバッグの際に標準的なソフトウェアのデバッグ用ツールであるデバッガソフトウェアが利用できない。デバッガでは、動作速度が実際の通信系IPの標準的な速度と比較し著しく遅いため、利用すると通信相手側がタイムアウトエラーを発生してしまい、本来動作確認すべき状態にすることができないためである。従って、通信系IPマクロのデバッグでは、主に、通信系IPマクロを検証するためのドライバソフトウェアから、通信系IPマクロの動作中に出力されたメッセージ(ログメッセージ)を記憶領域に保持しておき、動作終了後に、開発者が出力されたメッセージを見て検証している。 Conventionally, when developing driver software for communication IP macros, debugger software, which is a standard software debugging tool, cannot be used for debugging. This is because in the debugger, the operation speed is significantly slower than the standard speed of the actual communication system IP, and if used, the communication partner will generate a time-out error and the original operation check state cannot be made. . Therefore, in communication IP macro debugging, messages (log messages) output during operation of the communication IP macro from the driver software for verifying the communication IP macro are mainly stored in the storage area. After the operation is finished, the developer checks the output message and verifies it.
そのため、例えば、ソフトウェアの命令の実行中、デバイスメッセージを定期的にアクノリッジデバイスに書き込むこと等が提案されている。 Therefore, for example, it has been proposed to periodically write a device message to the acknowledge device during execution of software instructions.
しかしながら、上記従来技術では、通信系IPマクロのレジスタの値などをファイルやコンソールなどの出力装置に出力させていることが可能であるが、異なる通信規格を実装するなどIPマクロの動作が複雑化しつつあるため、レジスタの数も増大していること等の状況において、全てのレジスタの値を常時出力する仕組みはデバッグを効果的に行うためには現実的ではない。 However, in the above prior art, it is possible to output the register value of the communication system IP macro to an output device such as a file or a console, but the operation of the IP macro becomes complicated by mounting different communication standards. Therefore, in a situation where the number of registers is increasing, a mechanism for always outputting the values of all the registers is not practical for effective debugging.
一方で、必要なレジスタの値のみを出力する仕組みをドライバソフトウェアにデバッグ用途として組み込むことは可能ではある。実際に、開発者は、その仕組みをドライバソフトウェアに組み込む作業を繰り返し実施してはいるが、このような開発者による作業では、次の問題がある。 On the other hand, it is possible to incorporate a mechanism for outputting only the necessary register values into the driver software for debugging purposes. Actually, the developer repeatedly performs the work of incorporating the mechanism into the driver software, but such work by the developer has the following problems.
(1)必要なレジスタを適宜判断して、その値を取得する仕組みをドライバソフトウェアに組み込んでコンパイルし、ターゲット装置で走行させ、メッセージを取得して解析することを行う。この場合、デバッグの段階に応じて検証対象のレジスタが異なるため、デバッグの段階毎にドライバソフトウェアを変更するのは煩雑である。また、レジスタ数が増加すると、その変更時に本来は消したり、変更してはならないコードを誤って修正してしまうことがある。誤った修正によって新たなバグが作りこまれてしまい、本来のデバッグ作業に加えて更に負担を増やしてしまうといった問題があった。 (1) A necessary register is appropriately determined, and a mechanism for acquiring the value is compiled into the driver software, compiled, run on the target device, and a message is acquired and analyzed. In this case, since the register to be verified differs depending on the debug stage, it is complicated to change the driver software for each debug stage. In addition, when the number of registers increases, a code that should not be changed when it is changed may be erroneously corrected. There was a problem that new bugs were created by incorrect corrections, which increased the burden in addition to the original debugging work.
(2)一方で、一旦出力させたメッセージをそのまま消さないでいることも、解析性を阻害するために現実的ではない。 (2) On the other hand, it is not realistic to delete the once output message as it is because it impedes analysis.
(3)また、デバッグ専用のメッセージであるため最終的には消去は必要であるにも関わらず、メッセージ出力の記載箇所が増加すれば、その削除を忘れる可能性も高くなる。このようなデバッグ用メッセージの消し忘れによって、実際の製品で不用意にメッセージが出力されてしまう可能性がある。 (3) In addition, since it is a message dedicated to debugging, it is ultimately necessary to delete the message, but if the number of message output descriptions increases, there is a high possibility that the message will be forgotten to be deleted. If you forget to delete the debug message, the actual product may inadvertently output the message.
開示のメッセージ出力制御装置は、ソースコードと、メッセージ出力対象となるレジスタを指定した埋め込み指示ファイルとを記憶した記憶部と、前記ソースコードの、前記記憶部に記憶された前記埋め込み指示ファイルによって指定される前記レジスタへアクセスする記述を、出力期間の間、該レジスタの値を含むメッセージを出力装置に出力する記述を含む置き換え内容で置き換えて、該内容で置き換えられた該ソースコードから実行形式のバイナリファイルを前記記憶部に作成する作成部とを有する。 Message output control apparatus disclosed includes a source code, a storage unit that stores an embedded instruction to the specified file register to be message output target, the source code, depending on the embedding instruction file stored in the storage unit The description for accessing the specified register is replaced with the replacement content including the description for outputting the message including the value of the register to the output device during the output period, and the execution format is executed from the source code replaced with the content. A creating unit for creating the binary file in the storage unit.
また、上記課題を解決するための手段として、コンピュータによって実行されるメッセージ出力制御方法、及び、コンピュータに上記メッセージ出力制御装置として機能させるためのプログラムとすることもできる。 Further, as means for solving the above-described problems, a message output control method executed by a computer and a program for causing a computer to function as the message output control device can be used.
開示の技術では、通信系IPマクロのドライバソフトウェアでのデバッグの際のメッセージ出力を制御することができる。 With the disclosed technology, it is possible to control message output during debugging with the driver software of the communication IP macro.
以下、本発明の実施の形態を図面に基づいて説明する。本実施例では、通信系IPマクロの下記の特徴を利用することにある。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. In this embodiment, the following features of the communication IP macro are used.
(1)通信系IPマクロがサポートする機能は、ほぼ対向側(通信相手先)とのやりとりの結果、状態変化が発生する。 (1) The function supported by the communication system IP macro undergoes a state change as a result of the exchange with the opposite side (communication partner).
(2)状態変化が発生した場合、その影響はその機能に応じて一定時間内で収束し、一定時間後は、次の状態変化が対向側とのやり取りの結果、再度発生するまでは、状態変化が起きない。 (2) When a state change occurs, the effect converges within a certain time according to the function, and after a certain time, until the next state change occurs again as a result of the exchange with the opposite side, There is no change.
(3)通信系IPマクロはそのサポートする機能毎にレジスタが分類されていることが殆どであり、共通している機能は極少数である。 (3) In the communication IP macro, the registers are classified for each function supported, and there are very few functions in common.
ここでは、USB(Universal Serial Bus)の機能(「USB Function」)のIPマクロを利用して説明するが、本実施例は、USB規格のIPマクロに限定するものではなく、他の通信系IPマクロ(SATA(Serial Advanced Technology Attachment)、PCI−Express、Ethernet(登録商標)など)にも適用が可能である。 Here, description will be made using an IP macro of a USB (Universal Serial Bus) function (“USB Function”). However, this embodiment is not limited to the USB standard IP macro, but other communication system IPs. The present invention can also be applied to macros (SATA (Serial Advanced Technology Attachment), PCI-Express, Ethernet (registered trademark), etc.).
「USB Function」には、
(機能A)USB Bus制御
(機能B)Endpoint管理:Default-Endpoint(Endpoint#0)への制御データ転送
(機能C)Bulkなどのデータ転送(バルクデータ転送)
を主に含む。機能A、機能B、及び機能Cを実現するためのレジスタはそれぞれ複数あるが、本実施例では、下記のレジスタの値の状態変化の確認と、制御を実行する。実際のIPマクロでは、システム上のCPUへの割り込み通知用途などで、更に多くのレジスタが必要であるが、ここでは省略する。
“USB Function”
(Function A) USB Bus control (Function B) Endpoint management: Control data transfer to Default-Endpoint (Endpoint # 0) (Function C) Data transfer such as Bulk (bulk data transfer)
Including mainly. Although there are a plurality of registers for realizing the function A, the function B, and the function C, in this embodiment, confirmation of state changes of the following register values and control are executed. An actual IP macro requires more registers for interrupt notification to the CPU on the system, but is omitted here.
上記機能Aの検証では、状態変化を確認するための状態レジスタ「USB_S」と、状態を制御するための制御レジスタ「USB_C」とを対象とする。 In the verification of the function A, the state register “USB_S” for confirming the state change and the control register “USB_C” for controlling the state are targeted.
上記機能Bの検証では、状態変化を確認するための状態レジスタ「EP0_S」と、状態を制御するための制御レジスタ「EP0_C」とを対象とする。 In the verification of the function B, the state register “EP0_S” for confirming the state change and the control register “EP0_C” for controlling the state are targeted.
上記機能Cの検証では、状態変化を確認するための状態レジスタ「EP1_S」と、状態を制御するための制御レジスタ「EP1_C」)とを対象とする。 In the verification of the function C, the state register “EP1_S” for confirming the state change and the control register “EP1_C” for controlling the state are targeted.
以下、上記機能BのDefault-Endpointへの制御データ転送に着目して説明する。制御データ転送では、ドライバソフトウェアは、下記手順を実行する。
(B−1)制御データ転送の発生の有無を状態レジスタ「EP0_S」で確認する。
(B−2)上記(B−1)で制御データ転送が発生していれば、制御データのパケットサイズをチェックして、状態レジスタ「EP0_S」から転送種別を読み出す。
Hereinafter, description will be given focusing on control data transfer to Default-Endpoint of function B. In the control data transfer, the driver software executes the following procedure.
(B-1) The status register “EP0_S” confirms whether or not control data transfer has occurred.
(B-2) If control data transfer has occurred in (B-1) above, the packet size of the control data is checked, and the transfer type is read from the status register “EP0_S”.
そして、
(B−3)読み出し完了フラグを制御レジスタ「EP0_C」に設定する。
(B−4)上記(B−2)で読み出した転送種別に応じて制御レジスタに対向側に返すべきパケットのデータ値を必要な回数(バイト数)を設定する。
(B−5)状態レジスタ「EP0_S」を確認し、制御レジスタ「EP0_C」に設定した値(返送パケット)が全て設定し終わったことを書き込む。
And
(B-3) A read completion flag is set in the control register “EP0_C”.
(B-4) A required number of data (bytes) is set to the data value of the packet to be returned to the opposite side in the control register according to the transfer type read in (B-2) above.
(B-5) Check the status register “EP0_S” and write that all values (return packets) set in the control register “EP0_C” have been set.
次に、
(B−6)対向側からの受領確認パケットの到着を状態レジスタ「EP0_C」で確認する。到着するまで、確認を継続する。
(B−7)受領確認パケットの到着を確認したら、その内容を状態レジスタ「EP0_C」から読み出し、読み出し完了フラグを制御レジスタ「EP0_C」に設定する。
next,
(B-6) The arrival of the receipt confirmation packet from the opposite side is confirmed by the status register “EP0_C”. Continue checking until it arrives.
(B-7) Upon confirming the arrival of the receipt confirmation packet, the contents are read from the status register “EP0_C”, and the read completion flag is set in the control register “EP0_C”.
ドライバソフトウェア内において上述した手順(B−1)から手順(B−7)のフローを実現する部分でのデバッグの際、手順(B−3)の設定以降にて、機能(B)の各レジスタの内容が手順(B−7)の完了までの期間あれば、有益なデバッグとなりえる。手順(B−3)よりも前、又は、手順(B−7)以降の状態レジスタ「EP0_C」及び制御レジスタ「EP0_C」の値については、特にデバッグに必要な値とはなり得ない。 Each register of the function (B) after the setting of the procedure (B-3) at the time of debugging in the part realizing the flow of the procedure (B-1) to the procedure (B-7) in the driver software If the contents of the period until the completion of the procedure (B-7), it can be useful debugging. The values of the status register “EP0_C” and the control register “EP0_C” before the procedure (B-3) or after the procedure (B-7) cannot be particularly required for debugging.
そこで、手順(B−3)から手順(B−7)の期間の機能(B)に関連する状態レジスタ「EP0_C」及び制御レジスタ「EP0_C」の値のみが逐次出力されれば、必要な情報が全て得られ、かつ、不要な情報の出力を抑制することができる。 Therefore, if only the values of the status register “EP0_C” and the control register “EP0_C” related to the function (B) in the period from the procedure (B-3) to the procedure (B-7) are sequentially output, the necessary information is obtained. All obtained and unnecessary output can be suppressed.
手順(B−3)の開始の判定については、機能(B)に関連する状態レジスタ「EP0_C」及び制御レジスタ「EP0_C」への書き込みで判断することができる。 The determination of the start of the procedure (B-3) can be made by writing to the status register “EP0_C” and the control register “EP0_C” related to the function (B).
出力の停止条件については、手順(B−7)後に停止されるのであればよいことになる。しかし、必ずしも手順(B−7)の判定が他のレジスタへの書き込み動作の区別を行うことは不可能ではないが、煩雑となる。複雑な判定ロジックを組み込めば、それだけ新たに問題が発生する可能性がある。 As for the output stop condition, it is sufficient if the output is stopped after the procedure (B-7). However, although it is not necessarily impossible for the determination of the procedure (B-7) to distinguish between write operations to other registers, it becomes complicated. If complicated judgment logic is incorporated, a new problem may occur.
通信系のプロトコルでは、通常、応答時間に上限が定められており、それ以降の情報は不要にすることが可能である。手順(B−3)からその応答時間以内のレジスタの値の出力があれば良いことになる。例えば、複数の通信手順があるため、その規格で定められた時間のN倍(所定倍の時間)に設定する。所定倍(N倍)の時間は、規格に基づいて定めることが可能な時間長以内とする。 In communication protocols, there is usually an upper limit on response time, and subsequent information can be made unnecessary. It suffices if there is an output of the register value within the response time from the procedure (B-3). For example, since there are a plurality of communication procedures, it is set to N times (predetermined times) the time determined by the standard. The predetermined multiple (N times) time is within a time length that can be determined based on the standard.
上述したようなメッセージ(ログメッセージ)の出力制御を実現するための構成について、以下に説明する。 A configuration for realizing output control of the message (log message) as described above will be described below.
図1は、第1実施例に係るデバッグシステムの構成例を示す図である。図1に例示されるデバッグシステム101は、ホスト装置10と、ICE(In-Circuit Emulator)装置224と、ターゲット装置30とを有する。デバッグシステム101は、メッセージ出力制御装置に相当する。
FIG. 1 is a diagram illustrating a configuration example of a debugging system according to the first embodiment. The
ホスト装置10は、ICE装置224に接続され、ICE装置224を制御して、ターゲット装置30の検証を行なうホストコンピュータである。ホスト装置10は、後述される図2に示されるハードウェア構成を有する。
The
ホスト装置10は、ホストCPU11によって制御され、記憶領域221と222とを有する。記憶領域221は、ホストCPU11が処理を実行するために用いられる記憶領域であり、例えば、ホストCPU11が埋め込み(クロス)コンパイラ及びリンカプログラムを実行する際に使用される。記憶領域222は、プログラムのソースコード、第1実施例に係る埋め込み指示ファイル、バイナリファイル等を格納する記憶領域である。
The
後述される図2に示すハードウェア構成において、記憶領域221は、RAM(Random Access Memory)等を有する主記憶装置12の記憶領域に相当し、記憶領域222は、ハードディスクデバイス等を有する補助記憶装置13に相当する。ホストCPU11と、記憶領域221と、記憶領域222とは、バス223で接続される。
In the hardware configuration shown in FIG. 2 described later, the
記憶領域222には、ソースコード200と、埋め込み指示ファイル202と、バイナリファイル210と、変換プログラム220とが記憶される。ソースコード200は、IPマクロ212を制御するプログラム(ドライバソフトウェア)のソースコードである。埋め込み指示ファイル202は、マクロ毎に、IPマクロ仕様・規格書202に基づいて作成され、所定レジスタを監視してその値を含むメッセージを出力するためのコードを含むデータファイルである。
The storage area 222 stores the
バイナリファイル210は、実行可能形式のバイナリファイルであり、埋め込み指示ファイル202に従って、検証対象の機能に関するレジスタのうち、指定されたレジスタのみメッセージ出力させるようにしたバイナリファイル210である。
The
変換プログラム220は、埋め込み指示ファイル202と、プログラムのソースコード200とを入力して、実行形式のプログラム(バイナリファイル210)を出力する埋め込み(クロス)コンパイラ及びリンカプログラムである。変換プログラム220がホストCPU11によって実行されて実現する処理部が、バイナリファイル210を作成する作成部に相当する。
The
IPマクロ仕様・規格書201は、データファイルの場合は、記憶領域222に格納されていても良い。
In the case of a data file, the IP macro specification /
ICE装置222は、ソフトウェアとハードウェアの検証を行なうための装置であり、ホストCPU11によって実行される制御プログラムの指示に従ってバイナリファイル210をターゲット装置30の記憶領域214に転送して、ターゲット装置30のターゲットCPU211にバイナリファイル210の内容に従って動作させる装置である。
The ICE device 222 is a device for verifying software and hardware, and transfers the
ターゲット装置30は、ターゲットCPU211と、IPマクロ212と、接続先デバイス213と、記憶領域214と、メッセージ出力装置217と、タイマーモジュール218とを有する。
The
ターゲットCPU211は、実行可能形式のプログラムを走行させるCPUである。IPマクロ212は、通信制御を行う機能部分に相当し、ターゲットCPU211に接続される。接続先デバイス213は、IPマクロ212に接続され通信を行う装置である。記憶領域214は、ターゲットCPU211で実行するプログラムを格納する記憶領域であり、例えば、RAM等のメモリ装置である。
The
メッセージ出力装置217は、プログラム実行中の指示によりメッセージを出力する装置であり、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)等の表示部を有する。タイマーモジュール218は、メッセージの出力判定に利用されるタイマー機能である。
The
ターゲットCPU211と、IPマクロ212と、記憶領域214と、メッセージ出力装置217と、タイマーモジュール218とは、バス215で接続される。また、接続先デバイス213は、バス216によってIPマクロ212に接続される。
The
第1実施例に係るホスト装置10は、図2に示すようなハードウェア構成を有する。図2は、ホスト装置のハードウェア構成を示す図である。図2において、ホスト装置10は、コンピュータによって制御される端末であって、ホストCPU(Central Processing Unit)11と、主記憶装置12と、補助記憶装置13と、入力装置14と、表示装置15と、ドライブ18とを有し、バスBに接続される。
The
ホストCPU11は、主記憶装置12に格納された制御プログラムに従ってホスト装置10を制御すると共に、ICE装置224にターゲット装置30を検証するための指示を行なう。主記憶装置12には、例えば、RAM(Random Access Memory)等が用いられ、ホストCPU11にて実行される制御プログラム、ホストCPU11での処理に必要なデータ、ホストCPU11での処理にて得られたデータ等を格納する。また、主記憶装置12の一部の領域が、ホストCPU11での処理に利用されるワークエリアとして割り付けられている。
The
補助記憶装置13には、例えば、ハードディスクドライブが用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置13に格納されているプログラムの一部が主記憶装置12にロードされ、ホストCPU11に実行されることによって、各種処理が実現される。記憶部130は、主記憶装置12と補助記憶装置13とを有する。
For example, a hard disk drive is used as the
入力装置14は、マウス、キーボード等を有し、ユーザがホスト装置10による処理に必要な各種情報を入力するために用いられる。表示装置15は、ホストCPU11の制御のもとに必要な各種情報を表示する。
The
ホスト装置10によって行われる処理を実現する制御プログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によってホスト装置10に提供される。即ち、プログラムが保存された記憶媒体19がドライブ18にセットされると、ドライブ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがバスBを介して補助記憶装置13にインストールされる。そして、プログラムが起動されると、補助記憶装置13にインストールされたプログラムに従ってホストCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
A control program for realizing the processing performed by the
また、ホスト装置10によって行われる処理を実現する制御プログラムが、通信I/F17を介して外部装置から提供されてもよい。或いは、外部装置へ該プログラムを提供し、後述される各処理は外部装置で実現されるように構成してもよい。通信I/F17による通信は無線又は有線に限定されるものではない。
In addition, a control program that implements processing performed by the
USB通信を例にして、通信プロトコルの階層と、上述したUSBの機能(A)〜(C)との対応について説明する。図3は、通信プロトコルの階層と機能との対応関係を示す図である。図3において、USB通信プロトコル階層2は、IPマクロ仕様・規格書201によって定義され、下層から順に、USB Bus状態、USB EndPoint制御、USB Class制御、上位層を含む。また、各層での処理もIPマクロ仕様・規格書201によって示される。
Taking USB communication as an example, the correspondence between the communication protocol hierarchy and the USB functions (A) to (C) described above will be described. FIG. 3 is a diagram illustrating a correspondence relationship between communication protocol layers and functions. In FIG. 3, the USB
USB通信プロトコル階層2において、USB Bus状態の層は機能A(USB Bus制御)に相当し、USB EndPoint制御の層は機能B(USB EndPoint制御(EndPoint管理))に相当する。USB Class制御の層と、上位層とは、機能C(USB EndPoint制御(データ転送))に相当する。
In the USB
次に、埋め込み指示ファイル202の形式について説明する。図4は、埋め込み指示ファイルの形式例を示す図である。図4(A)において、マクロ毎に作成される埋め込み指示ファイル202は、機能種別毎、つまり、機能毎に、対象となるレジスタを指定した、メッセージ出力に関する制御コード4が作成される。各制御コード4によって、機能名4a、メッセージ出力条件式4b、対象となるレジスタ毎のレジスタ情報4cとが示される。
Next, the format of the embedding
メッセージ出力条件式4bは、対象のレジスタの値を含むメッセージを出力させる時間間隔を示すタイマー時間を指定する。レジスタ情報4cは、図4(B)に例示されるような構成を有する。
The message output conditional expression 4b specifies a timer time indicating a time interval for outputting a message including the value of the target register. The
図4(B)において、レジスタ情報4cによって、レジスタ名4c−1と、レジスタアドレス4c−2と、メッセージ出力形式4c−3とが指定される。
In FIG. 4B, register
図5は、図1のデバッグシステム100における開発者による処理の流れを説明するための図である。図5において、開発者は、IPマクロ仕様・規格書201に基づいて、埋め込み指示ファイル202を手作業で作成し、記憶領域222に保存する(ステップS101)。開発者は、ホスト装置10に変換プログラム220の実行を指示する(ステップS102)。変換プログラム220は記憶領域221にロードされ、ホストCPU11によって実行される。変換プログラム220の実行によって、バイナリファイル210が作成され、記憶領域222に保存される。
FIG. 5 is a diagram for explaining the flow of processing by the developer in the
開発者は、ホスト装置10に対して、ターゲット装置30の検証を開始させる(ステップS103)。ホスト装置10は、ICE装置224により、ターゲット装置30の記憶領域214にバイナリファイル210を転送させ、ターゲット装置30のターゲットCPU211に実行させる。
The developer causes the
ターゲットCPU211がバイナリファイル210に従って動作することにより、ターゲットCPU211はIPマクロ212を制御し、バス216経由で接続先デバイス213との通信が実行される(ステップS104)。その際、埋め込み指示ファイル202で指定したレジスタの値などを含むメッセージがメッセージ出力装置217に出力される。
When the
開発者は、メッセージ出力装置217に出力されたメッセージや接続先デバイス213で出力されるメッセージ等を確認して(ステップS105)、問題が有るか否かを判断する(ステップS106)。開発者は、問題が有ると判断した場合、問題に関するメッセージを解析する(ステップS107)。
The developer checks the message output to the
開発者は、問題の解析にメッセージが不足しているか否かを判断する(ステップS108)。開発者は、メッセージは十分であると判断した場合、問題を解決するためにソースコード200を修正して(ステップS109)、ステップS102へと戻る。一方、開発者は、メッセージが不足していると判断した場合、埋め込み指示ファイル202を修正、追加して、記憶領域222に保存し(ステップS110)、ステップS102へと戻る。
The developer determines whether a message is insufficient for analyzing the problem (step S108). If the developer determines that the message is sufficient, the developer corrects the
ステップS106において、開発者は、問題が無いと判断した場合、この処理(作業)を終了する。 In step S106, when the developer determines that there is no problem, the process (work) is terminated.
上述したステップS102における、開発者による実行指示に従って、ホストCPU11による変換プログラム220の実行中、IPマクロ212へのレジスタ操作APIが利用されるソースコード200からバイナリファイル210を作成するまでのフローを図6で説明する。
In accordance with the execution instruction from the developer in step S102 described above, the flowchart from the
図6は、変換プログラムを実行するホストCPUによるバイナリファイルの作成処理の一例を説明するための図である。図6において、ホストCPU11は、埋め込み指示ファイル202を読み込んで、埋め込み指示ファイル202の内容に従って、「埋め込み指示構造体」(後述)を記憶領域221に格納する(ステップS111)。ホストCPU11は、未処理のソースコード200が残っているか否かを判断する(ステップS112)。
FIG. 6 is a diagram for explaining an example of a binary file creation process by the host CPU that executes the conversion program. 6, the
ホストCPU11は、未処理のソースコード200が残っていると判断した場合、作業用に一時ファイル3fを記憶領域221に作成する(ステップS113)。ホストCPU11は、ソースコードを解析するソースコード解析処理を実行し、その実行結果を作成した一時ファイル3fに保存する(ステップS114)。
When the
その後、ホストCPU11は、一時ファイル3fをコンパイルして、オブジェクトコードを作成する(ステップS115)。また、ホストCPU11は、オブジェクトコードのファイル名を、元のソースコード200のファイル名に基づいて適切な名前に変更する(ステップS116)。
Thereafter, the
ステップS112において、未処理のソースコード200が残っていない場合、ホストCPU11は、埋め込み指示の内容に応じて、ターゲット装置30の記憶領域214に必要な領域を確保するサブプログラムを、オブジェクトファイルとして作成させる(ステップS117)。また、ホストCPU11は、割り込みハンドラでの処理を実行するサブプログラムをオブジェクトファイルとして作成する(ステップS118)。
If no
ホストCPU11は、全オブジェクトファイルをリンクして、バイナリファイル210を作成して(ステップS119)、この処理を終了する。
The
上述したステップS114におけるソースコード解析処理を図7で説明する。図7は、ステップS114におけるソースコード解析処理を説明するための図である。図7において、ホストCPU11は、ソースコード200の最後か否かを判断する(ステップS121)。ホストCPU11は、ソースコード200の最後の場合、この処理を終了する。
The source code analysis process in step S114 described above will be described with reference to FIG. FIG. 7 is a diagram for explaining the source code analysis processing in step S114. In FIG. 7, the
ホストCPU11は、Parser(構文解析)により次の構文要素を抽出して(ステップS122)、抽出した構文要素がIPマクロへのレジスタ操作APIか否かを判断する(ステップS123)。ホストCPU11は、抽出した構文要素がIPマクロへのレジスタ操作APIでないと判断した場合、一時ファイル3fに記述をそのまま出力して(ステップS124)、ステップS121へと戻り、上述同様の処理を繰り返す。
The
一方、ステップS123において、ホストCPU11は、抽出した構文要素がIPマクロへのレジスタ操作APIである場合、レジスタ操作APIの名前から、書き込み区別を判断し、API引数で指定されるアドレスからレジスタアドレスを取得する(ステップS125)。
On the other hand, in step S123, when the extracted syntax element is the register operation API to the IP macro, the
そして、ホストCPU11は、「埋め込み指示構造体」(図10)を参照して、取得したレジスタアドレスを各レジスタテーブル5r(図10)から検索する(ステップS126)。取得したレジスタアドレスが設定されたレジスタテーブル5rの構造体が特定される。また、ホストCPU11は、レジスタテーブル5rが接続される機能テーブル5f(図10)を取得する(ステップS127)。
Then, the
次に、ホストCPU11は、機能テーブル5fから出力制御規則を取得し、レジスタテーブル5rから出力形式を取得して置き換え内容を作成し、IPマクロへのレジスタアクセス命令を示す置き換え内容で操作API呼出箇所を置き換える(ステップS128)。ホストCPU11は、置き換えた結果を一時ファイル3fに出力して(ステップS129)、ステップS121へと戻り、上記同様の処理を繰り返す。
Next, the
一方、ステップS121において、ホストCPU11は、ソースコード200の最後であると判断した場合、この処理を終了する。
On the other hand, if the
上述したステップS102における、開発者による実行指示に従って、ホストCPU11による変換プログラム220の実行中、IPマクロ212へのレジスタ操作APIが利用されていない(例えば、アセンブラコードで記述された)ソースコード200からバイナリファイル210を作成するまでのフローを図8で説明する。
From the
図8は、変換プログラムを実行するホストCPUによるバイナリファイルの作成処理の他の例を説明するための図である。図8において、ホストCPU11は、埋め込み指示ファイル202を読み込んで、埋め込み指示ファイル202の内容に従って、「埋め込み指示構造体」(後述)を記憶領域221に格納する(ステップS131)。ホストCPU11は、未処理のソースコード200が残っているか否かを判断する(ステップS132)。
FIG. 8 is a diagram for explaining another example of the binary file creation process by the host CPU that executes the conversion program. In FIG. 8, the
ホストCPU11は、未処理のソースコード200が残っていると判断した場合、コンパイラにより、ソースコード200をコンパイルしてアセンブラコード200aを記憶部記憶領域222に作成し(ステップS132−2)、作業用に一時ファイル3fを記憶領域221に作成する(ステップS133)。ホストCPU11は、アセンブラコード200aを解析するアセンブラコード解析処理を実行し、その実行結果を記憶領域221に作成した一時ファイル3fに保存する(ステップS134)。
When the
その後、ホストCPU11は、アセンブラにより一時ファイル3fをオブジェクトコードに変換する(ステップS135)。また、ホストCPU11は、オブジェクトコードのファイル名を、元のソースコード200のファイル名に基づいて適切な名前に変更する(ステップS136)。
Thereafter, the
ステップS132において、未処理のソースコード200が残っていない場合、ホストCPU11は、埋め込み指示の内容に応じて、ターゲット装置30の記憶領域214に必要な領域を確保するサブプログラムを、オブジェクトファイルとして作成させる(ステップS137)。また、ホストCPU11は、割り込みハンドラでの処理を実行するサブプログラムをオブジェクトファイルとして作成する(ステップS138)。
If no
ホストCPU11は、全オブジェクトファイルをリンクして、バイナリファイル210を作成して(ステップS119)、この処理を終了する。
The
上述したステップS134におけるアセンブラコード解析処理を図9で説明する。図9は、ステップS134におけるアセンブラコード解析処理を説明するための図である。図9において、ホストCPU11は、アセンブラコード200aの終了か否かを判断する(ステップS141)。ホストCPU11は、アセンブラコード200aの終了の場合、この処理を終了する。
The assembler code analysis process in step S134 described above will be described with reference to FIG. FIG. 9 is a diagram for explaining the assembler code analysis processing in step S134. In FIG. 9, the
ホストCPU11は、次の命令(オペコード及びオペランド)を抽出して(ステップS142)、オペコードがLoad/Storeか否かを判断する(ステップS143)。ホストCPU11は、オペコードがLoad/Storeでないと判断した場合、一時ファイル3fに命令(オペコード及びオペランド)をそのまま出力して(ステップS124)、ステップS141へと戻り、上述同様の処理を繰り返す。
The
一方、ステップS143において、ホストCPU11は、オペコードがLoad/Storeであると判断した場合、命令からLoad/Store対象のメモリアドレスを取得し、「埋め込み指示構造体」(図10)を参照して、取得したレジスタアドレスを各レジスタテーブル5r(図10)から検索する(ステップS145)。取得したレジスタアドレスが設定されたレジスタテーブル5rの構造体が特定される。また、ホストCPU11は、レジスタテーブル5rが接続される機能テーブル5f(図10)を取得する(ステップS146)。
On the other hand, if the
次に、ホストCPU11は、機能テーブル5fから出力制御規則を取得し、レジスタテーブル5rから出力形式を取得して、Load/Store命令から判断される読み出し、書き込みの区別から置き換え内容を作成し、IPマクロへのレジスタアクセス命令を示す置き換え内容でLoad/Store命令を置き換える(ステップS147)。ホストCPU11は、置き換えた結果を一時ファイル3fに出力して(ステップS148)、ステップS141へと戻り、上記同様の処理を繰り返す。
Next, the
一方、ステップS141において、ホストCPU11は、アセンブラコード200aの終了であると判断した場合、この処理を終了する。
On the other hand, if the
図10は、埋め込み指示構造体の例を示す図である。図10(A)において、各テーブル間の関係を示している。埋め込み指示構造体によって、複数の機能テーブル5fと、各機能テーブル5fから1以上のレジスタテーブル5rが関連付けられる。 FIG. 10 is a diagram illustrating an example of the embedding instruction structure. FIG. 10A shows the relationship between the tables. The embedding instruction structure associates a plurality of function tables 5f with one or more register tables 5r from each function table 5f.
機能テーブル5fは、図4の各制御コード4に相当する。レジスタテーブル5rは、図4の各制御コード4内のレジスタ情報4cに相当する。機能テーブル5fとレジスタテーブル5rとが、埋め込み指示構造体で管理される。
The function table 5f corresponds to each
変換プログラム220内では、先頭の機能テーブル5fへのポインタ(先頭機能テーブルポインタ)が示されればよい。次の機能テーブル5fへは、各機能テーブル5fからポインタで示されればよい。次の機能テーブル5fへのポインタ(カレント機能テーブルポインタ)によって、機能テーブル5fがカレント機能テーブルとして設定される。
In the
また、各機能テーブル5fから最初のレジスタテーブル5rへのポインタが示され、各レジスタテーブル5rにおいて、次のレジスタテーブル5rへのポインタが示されればよい。 In addition, a pointer from each function table 5f to the first register table 5r is shown, and in each register table 5r, a pointer to the next register table 5r may be shown.
埋め込み指示構造体は、図10(B)に例示される機能テーブル5fの構造体と、図10(C)に例示されるレジスタテーブル5rの構造体とを含む。図10(B)及び図10(C)では、次のテーブルへのポインタ、機能テーブル5fからレジスタテーブル5rへのポインタ等は省略している。 The embedding instruction structure includes a structure of the function table 5f illustrated in FIG. 10B and a structure of the register table 5r illustrated in FIG. 10B and 10C, the pointer to the next table, the pointer from the function table 5f to the register table 5r, and the like are omitted.
図10(B)は、機能テーブル5fの構造体の例を示している。構造体によって、機能テーブル5fは、機能名、出力制御規則を含む。機能名は、図4(A)に示す埋め込み指示ファイル202の機能名4aに対応する。出力制御規則は、出力開始条件と出力期間とを有する。出力制御規則は、メッセージ出力情報4bに相当する。図10(C)は、レジスタテーブル5rの構造体の例を示している。レジスタテーブル5rは、レジスタ名、レジスタアドレス、出力形式を有する。
FIG. 10B shows an example of the structure of the function table 5f. Depending on the structure, the function table 5f includes function names and output control rules. The function name corresponds to the
次に、上述した図6のステップS111、図8のステップS131における、変換プログラム220の実行中、埋め込み指示ファイル202から埋め込み指示構造体を作成する構造体作成処理について図11で説明する。
Next, a structure creation process for creating an embedding instruction structure from the embedding
図11は、変換プログラムを実行するホストCPUによる構造体作成処理を説明するための図である。図11において、ホストCPU11は、埋め込み指示構造体を初期化して(ステップS151)、埋め込み指示ファイル202をオープンする(ステップS152)。
FIG. 11 is a diagram for explaining the structure creation processing by the host CPU that executes the conversion program. In FIG. 11, the
ホストCPU11は、埋め込み指示ファイル202の内容を全て終了したか否かを判断する(ステップS153)。埋め込み指示ファイル202の内容を全て終了した場合、埋め込み指示ファイル202をクローズして(ステップS153−2)、この処理を終了する。
The
一方、埋め込み指示ファイル202の内容を全て終了していない場合、ホストCPU11は、埋め込み指示ファイル202から次の1行を読み出して(ステップS154)、コメント又は空行か否かを判断する(ステップS155)。
On the other hand, if all the contents of the embedding
読み出した1行がコメント又は空行であると判断した場合、ホストCPU11は、更に、機能定義の開始か否かを判断する(ステップS156)。機能定義の開始である場合、ホストCPU11は、機能テーブル5fを作成して、埋め込み指示ファイル202の機能名4aを機能テーブル5fの機能名を設定する(ステップS157)。
If it is determined that the read line is a comment or a blank line, the
また、ホストCPU11は、埋め込み指示ファイル202からメッセージ出力条件式4bを参照することによって出力制御規則を取得して、作成した機能テーブル5fに設定する(ステップS158)。更に、ホストCPU11は、作成した機能テーブルをカレント機能テーブルとする(ステップS159)。そして、ホストCPU11は、ステップS153へと戻り、上記同様の処理を繰り返す。
Further, the
一方、ステップS156において、機能定義の開始でないと判断した場合、ホストCPU11は、埋め込み指示ファイル202のレジスタ情報4cからレジスタ名4c−1、レジスタアドレス4c−2、メッセージ出力形式4c−3を取得する(ステップS160)。取得したレジスタ名4c−1、レジスタアドレス4c−2、メッセージ出力形式4c−3を用いて、レジスタテーブル5rを作成して(ステップS161)、作成したレジスタテーブル5rをカレント機能テーブルに追加し(ステップS162)、この処理を終了する。
On the other hand, if it is determined in step S156 that the function definition is not started, the
図6のステップS117及び図8のステップS137において、バイナリファイル210に組み込む、ターゲット装置30の記憶領域214に必要な領域を確保するサブプログラムが確保し初期化する記憶領域(「機能出力状態保存領域」)の構成について図12で説明する。
In step S117 of FIG. 6 and step S137 of FIG. 8, a storage area (“function output state storage area” secured and initialized by a subprogram that secures a necessary area in the
図12は、機能出力状態保存領域の例を示す図である。図12では、バイナリファイル210内のコードが実行されることによって、使用される記憶領域214の一部が示されている。ターゲット装置30の記憶領域214内には、埋め込み指示ファイル202に記載の機能毎に一つの機能出力状態保存領域7が確保される。
FIG. 12 is a diagram illustrating an example of the function output state storage area. In FIG. 12, a part of the
図13は、各機能出力状態保存領域の構成例を示す図である。図13において、機能出力状態保存領域7は、出力制御フラグ、タイマー値、タイマー設定値、出力ルーチン等の値を含む。
FIG. 13 is a diagram illustrating a configuration example of each function output state storage area. In FIG. 13, the function output
次に、図7のステップS128及び図9のステップS147において、置き換えたIPマクロへのレジスタアクセス命令が実行する処理について図14で説明する。図14は、IPマクロへのレジスタアクセス命令が実行する処理を説明するための図である。IPマクロへのレジスタアクセス命令は、ターゲットCPU211によって実行される。図14に示す処理では、タイマーがひとつのみ利用できる場合で説明する。
Next, processing executed by the register access instruction to the replaced IP macro in step S128 of FIG. 7 and step S147 of FIG. 9 will be described with reference to FIG. FIG. 14 is a diagram for explaining processing executed by a register access instruction to the IP macro. A register access instruction to the IP macro is executed by the
図14において、ターゲットCPU211は、IPマクロへのレジスタアクセス命令に従って、IPマクロへのレジスタアクセスを行い(ステップS171)、タイマー割込ハンドラが設定されているか否かを判断する(ステップS172)。タイマー割込ハンドラが未設定であると判断した場合、ターゲットCPU211は、タイマー割込ハンドラを設定し、タイマー間隔を設定してタイマーを起動して(ステップS172−2)、ステップS173へと進む。
In FIG. 14, the
一方、タイマー割込ハンドラが設定されていると判断した場合、ターゲットCPU211は、レジスタへの書き込みか否かを判断する(ステップS173)。レジスタからの読み出しであると判断した場合、ターゲットCPU211は、機能出力状態保存領域7の出力制御フラグ(図13)が「1」に設定されているか否かを判断する(ステップS173−2)。出力制御フラグ(図13)が「1」に設定されている場合、ターゲットCPU211は、機能出力状態保存領域7で指定されている出力ルーチンを利用してメッセージ出力装置217にメッセージを出力して(ステップS173−4)、この処理を終了する。一方、出力制御フラグ(図13)が「0」に設定されている場合、ターゲットCPU211は、この処理を終了する。
On the other hand, when determining that the timer interrupt handler has been set, the
一方、ステップS173において、レジスタへの書き込みであると判断した場合、ターゲットCPU211は、タイマー設定値を、機能出力状態保存領域7のタイマー値に規定の出力時間を示すタイマー値を加算した値に設定する(ステップS174)。
On the other hand, if it is determined in step S173 that the data is written to the register, the
更に、ターゲットCPU211は、機能出力状態保存領域7の出力制御フラグに「1」を設定し(ステップS175)、機能出力状態保存領域7に指定される出力ルーチンを利用してメッセージ出力装置217にメッセージを出力して(ステップS176)、この処理を終了する。
Further, the
次に、図6のステップS118及び図8のステップS138において、ターゲットCPU211によってバイナリファイル210内のコードが実行されることによって、呼び出されるタイマー割込ハンドラのサブプログラムによる処理を図15で説明する。
Next, the processing by the subprogram of the timer interrupt handler that is called when the code in the
図15は、タイマー割込ハンドラのサブプログラムによる処理を説明するための図である。図15において、ターゲットCPU211は、ターゲット装置30の記憶領域214内の機能毎に、機能出力状態保存領域7に設定されたタイマー値をインクリメントして、機能出力状態保存領域7のタイマー設定値と比較して一致していれば、該当機能の出力を停止するために同機能の機能出力状態保存領域7の出力制御フラグを「0」に設定する(ステップS181)。
FIG. 15 is a diagram for explaining processing by the subprogram of the timer interrupt handler. In FIG. 15, the
その後、ターゲットCPU211は、タイマー割込要因をクリアー(初期化)して(ステップS182)、タイマー割込ハンドラを終了する。
Thereafter, the
上記処理によって、不要なメッセージの出力を抑止することができる。機能Bの検証における、第1実施例の適用の有無によるメッセージの出力例について図16で説明する。図16は、メッセージの出力例を示す図である。 With the above processing, unnecessary message output can be suppressed. An example of message output depending on whether or not the first embodiment is applied in the verification of the function B will be described with reference to FIG. FIG. 16 is a diagram illustrating a message output example.
図16(A)では、第1実施例の適用の無い場合のメッセージ出力6aが示されている。メッセージ出力6aでは、機能Bに関する状態レジスタ「EP0_S」及び制御レジスタ「EP0_C」以外のレジスタに関するメッセージが含まれている。
FIG. 16A shows a
図16(B)では、第1実施例の適用の無い場合のメッセージ出力6bが示されている。メッセージ出力6bでは、機能Bに関する状態レジスタ「EP0_S」及び制御レジスタ「EP0_C」のメッセージのみが含まれている。
FIG. 16B shows a
次に、第1実施例を適用した際の動作の流れについて図17で説明する。図17は、検証時の通信例を示す図である。 Next, the flow of operation when the first embodiment is applied will be described with reference to FIG. FIG. 17 is a diagram illustrating a communication example at the time of verification.
図17(A)では、通信を示す図の凡例を示している。接続先デバイス213以外のターゲット装置30の構成部分を評価環境300で表す。接続先デバイス213と評価環境300とはUSBバス8sで接続される。接続先デバイス213と評価環境300間の通信は、パケット8pで行われる。
FIG. 17A shows a legend of a diagram showing communication. Components of the
図17(B)では、通信に応じたメッセージが出力される得る出力状態を示している。図17(B)において、接続先デバイス213から評価装置300へSETUPパケット8p−1が送信される。
(出力状態I)IPマクロ212がパケット8p−1を検出して割込みを発生させる。
(出力状態II)ドライバソフトウェアの割込みルーチンでパケット受信を検出する。
(出力状態III)そして、ドライバソフトウェアが該当する機能のレジスタに値を書き込む。
FIG. 17B shows an output state in which a message corresponding to communication can be output. In FIG. 17B, the
(Output state I) The
(Output state II) The packet reception is detected by the interrupt routine of the driver software.
(Output state III) Then, the driver software writes a value to the register of the corresponding function.
次に、評価環境300から接続先デバイス213へDATAパケット8p−2が送信され、接続先デバイス213から評価環境300へACKパケット8p−3が送信されることによりデータの転送が行われる。
(出力状態IV)ドライバソフトウェアが該当する機能のレジスタから値を読み出して、ドライバソフトウェアが該当する機能のレジスタに値を書き込む。そして、(出力状態III)以降、所定時間(例えば、1秒)の間、レジスタアクセス時にメッセージを出力する。
(出力状態V)(出力状態III)から所定時間(1秒)経過後、メッセージの出力が停止される。
Next, the
(Output state IV) The driver software reads the value from the corresponding function register, and the driver software writes the value to the corresponding function register. Then, after (output state III), a message is output during a register access for a predetermined time (for example, 1 second).
(Output state V) After a predetermined time (1 second) has elapsed from (Output state III), message output is stopped.
上述した(出力状態I)から(出力状態V)の各状態での、第1実施例の適用無しの場合と、第1実施例の適用有りの場合との、メッセージの出力量の違いについて図18で説明する。図18は、メッセージの出力量の違いを説明するための図である。図18では、図17(B)における各出力状態でのメッセージの出力例を示している。「適用無」は、第1実施例の適用が無い場合を示し、「適用有」は、第1実施例の適用が有る場合を示す。 The difference in message output amount between the case where the first embodiment is not applied and the case where the first embodiment is applied in each of the states (output state I) to (output state V) described above. 18 will be described. FIG. 18 is a diagram for explaining a difference in output amount of messages. FIG. 18 shows a message output example in each output state in FIG. “N / A” indicates a case where the first embodiment is not applied, and “Applicable” indicates a case where the first embodiment is applied.
(出力状態I)により、パケット待ちとなる。「適用無」では、状態レジスタ「EP0_S」及び制御レジスタ「EP0_C」の値を示すメッセージの出力が繰り返されるが、「適用有」では、出力されない。 Due to (output state I), a packet is waited for. In “Not Applicable”, output of messages indicating the values of the status register “EP0_S” and the control register “EP0_C” is repeated, but in “Applicable”, it is not output.
(出力状態II)により、割込みルーチンの起動後の状態になると、「適用無」では、状態レジスタ「EP0_S」及び制御レジスタ「EP0_C」の値を示すメッセージの出力が繰り返されるが、「適用有」では、出力されない。 When the state after the activation of the interrupt routine is reached due to (Output State II), in “Not Applicable”, output of messages indicating the values of the status register “EP0_S” and the control register “EP0_C” is repeated, but “Applicable” Then, it is not output.
(出力状態III)により、割込み要因の判定結果から該当機能(この場合はEndpoint#1へのパケット送受信処理)へのレジスタに対する書き込みが行われる。「適用無」では、状態レジスタ「EP0_S」及び制御レジスタ「EP0_C」に関するメッセージの出力が繰り返される。一方、「適用有」では、状態レジスタ「EP0_S」及び制御レジスタ「EP0_C」に関するメッセージが夫々一回出力されるのみである。 According to (output state III), writing to the register from the determination result of the interrupt factor to the corresponding function (in this case, packet transmission / reception processing to Endpoint # 1) is performed. In “Not Applicable”, the output of messages relating to the status register “EP0_S” and the control register “EP0_C” is repeated. On the other hand, in “applicable”, messages relating to the status register “EP0_S” and the control register “EP0_C” are only output once.
(出力状態IV)により、レジスタへの書き込み、レジスタからの読み出しが行われる。「適用無」では、状態レジスタ「EP0_S」及び制御レジスタ「EP0_C」の値を示すメッセージの出力が繰り返される。一方、「適用有」では、状態レジスタ「EP0_S」及び制御レジスタ「EP0_C」がアクセスされた時にのみメッセージが出力される。 According to (output state IV), writing to the register and reading from the register are performed. In “N / A”, the output of messages indicating the values of the status register “EP0_S” and the control register “EP0_C” is repeated. On the other hand, in “Applicable”, a message is output only when the status register “EP0_S” and the control register “EP0_C” are accessed.
(出力状態V)において、(出力状態III)から所定時間(1秒)経過後、「適用無」では、状態レジスタ「EP0_S」及び制御レジスタ「EP0_C」の値を示すメッセージの出力が繰り返される。一方、「適用有」では、メッセージの出力は行われない。 In (Output State V), after a predetermined time (1 second) has elapsed from (Output State III), in “Not Applicable”, output of messages indicating the values of the status register “EP0_S” and the control register “EP0_C” is repeated. On the other hand, in “Applicable”, no message is output.
次に、第1実施例において、ICE装置224を用いずに、ターゲットCPU211での動作も一つのCPUで行うようにしたデバッグシステムの他の例について以下に説明する。
Next, another example of a debugging system in which the operation of the
図19は、第1実施例に係るデバッグシステムの他の構成例を示す図である。図19に示すデバッグシステム101aは、一台のコンピュータ装置10−2で実現される。コンピュータ装置10−2は、CPU712と、記憶領域713と、IPマクロ714と、タイマー715と、メッセージ出力装置716と、記憶領域717と、接続先デバイス213とを有する。デバッグシステム101aは、メッセージ出力制御装置に相当する。
FIG. 19 is a diagram illustrating another configuration example of the debugging system according to the first embodiment. The debug system 101a shown in FIG. 19 is realized by a single computer apparatus 10-2. The computer apparatus 10-2 includes a
コンピュータ装置10−2は、CPU712によって制御され、デバッガ機能を含む。記憶領域713は、CPU712が処理を実行するために用いられる記憶領域であり、例えば、CPU712が処理中に使用するRAM等のメモリ装置によって提供される記憶領域である。記憶領域717は、実行可能形式や埋め込み指示ファイル、プログラムのソースコード、コンパイラ及びリンカ等のプログラムを格納する記憶領域であり、例えば、ハードディスクデバイス等の補助記憶装置によって提供される記憶領域である。記憶領域713と記憶領域717とが、図2に示す記憶部130の記憶領域に相当する。
The computer apparatus 10-2 is controlled by the
記憶領域717には、ソースコード200と、埋め込み指示ファイル202と、バイナリファイル710と、変換プログラム720とが記憶される。ソースコード200は、IPマクロ714を制御するプログラムのソースコードである。埋め込み指示ファイル202は、マクロ毎に、IPマクロ仕様・規格書202に基づいて作成され、所定レジスタを監視してその値を含むメッセージを出力するためのコードを含むデータファイルである。バイナリファイル710は、実行可能形式のバイナリファイルである。変換プログラム220は、埋め込み指示ファイル202と、プログラムのソースコード200とを入力して、実行形式のプログラムを出力する埋め込み(クロス)コンパイラ及びリンカプログラムである。IPマクロ仕様・規格書201は、データファイルの場合は、記憶領域717に格納されていても良い。
The storage area 717 stores a
IPマクロ714は、通信制御を行う機能部分に相当し、バス719を介して接続先デバイス213と通信を行う。タイマーモジュール715は、図1のタイマーモジュール218に相当し、メッセージの出力判定に利用されるタイマー機能である。メッセージ出力装置716は、図1のメッセージ出力装置217に相当し、プログラム実行中の指示によりメッセージを出力する装置であり、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)等の表示部を有する。
The
図19に示す構成のデバッグシステムにおける、開発者による処理の流れを説明する図20で説明する。図20は、図19のデバッグシステム101aにおける開発者による処理の流れを説明するための図である。図20において、開発者は、IPマクロ仕様・規格書201に基づいて、埋め込み指示ファイル202を手作業で作成し、記憶領域717に保存する(ステップS201)。開発者は、コンピュータ装置10−2に変換プログラム720の実行を指示する(ステップS202)。変換プログラム720は記憶領域221にロードされ、ホストCPU11によって実行される。変換プログラム720の実行によって、バイナリファイル710が作成され、記憶領域717に保存される。
The flow of processing by the developer in the debugging system having the configuration shown in FIG. 19 will be described with reference to FIG. FIG. 20 is a diagram for explaining the flow of processing by the developer in the debug system 101a of FIG. In FIG. 20, the developer manually creates an embedding
開発者は、コンピュータ装置10−2に対して、検証を開始させる(ステップS203)。CPU712がバイナリファイル710に従って動作することによりIPマクロ714が制御され、IPマクロ710は、バス719経由で接続先デバイス213と通信を行う。(ステップS204)。その際、埋め込み指示ファイル202で指定したレジスタの値などを含むメッセージがメッセージ出力装置716に出力される。
The developer causes the computer device 10-2 to start verification (step S203). The
開発者は、メッセージ出力装置716に出力されたメッセージや接続先デバイス213で出力されるメッセージ等を確認して(ステップS205)、問題が有るか否かを判断する(ステップS206)。開発者は、問題が有ると判断した場合、問題に関するメッセージを解析する(ステップS207)。
The developer checks the message output to the
開発者は、問題の解析にメッセージが不足しているか否かを判断する(ステップS208)。開発者は、メッセージは十分であると判断した場合、問題を解決するためにソースコード200を修正して(ステップS209)、ステップS202へと戻る。一方、開発者は、メッセージが不足していると判断した場合、埋め込み指示ファイル202を修正、追加して、記憶領域717に保存し(ステップS710)、ステップS202へと戻る。
The developer determines whether a message is insufficient for analyzing the problem (step S208). If the developer determines that the message is sufficient, the developer corrects the
ステップS206において、開発者は、問題が無いと判断した場合、この処理(作業)を終了する。 In step S206, when the developer determines that there is no problem, the process (work) is terminated.
上述したステップS202における、開発者による実行指示に従って、ホストCPU11による変換プログラム220の実行中、IPマクロ212へのレジスタ操作APIが利用されるソースコード200からバイナリファイル710を作成するまでのフローを図6で説明する。
FIG. 10 is a flowchart for creating a
次に、第2実施例に係るデバッグシステムの構成例について説明する。図21は、第2実施例に係るデバッグシステムの構成例を示す図である。図21に例示されるデバッグシステム102の構成において、図1に例示されるデバッグシステム101との違いは、出力判定ルーチン230と、ヘッダファイル231と、変換プログラム220の代わりに変換プログラム240とを有する点であり、その他の構成は同様であるので、その説明を省略する。デバッグシステム102は、メッセージ出力制御装置に相当する。
Next, a configuration example of the debug system according to the second embodiment will be described. FIG. 21 is a diagram illustrating a configuration example of the debug system according to the second embodiment. The configuration of the debug system 102 illustrated in FIG. 21 is different from the
出力判定ルーチン230は、メッセージの出力を判定するためのルーチンを予めコンパイラによりライブラリとしたものである。ヘッダファイル231は、ライブラリで定義されている出力判定ルーチン230のインタフェースを定義したヘッダファイルである。
The
変換プログラム240は、埋め込み指示ファイル202と、プログラムのソースコード200とを入力し、ソースコード200内のIPマクロへのアクセス部分を、出力判定ルーチン230とヘッダファイル231とで定義されたAPIに置き換える機能と、置き換えた結果をコンパイル及びリンクして実行形式のプログラムであるバイナリファイル210を作成するプログラムである。変換プログラム240がホストCPU11によって実行されて実現する処理部が、バイナリファイル210を作成する作成部に相当する。
The
変換プログラム240による、ホストCPU11によって実行可能な形式であるバイナリファイル210を作成する実行可能形式ファイルへの作成処理を図22で説明する。図22は、実行可能形式作成処理を説明するための図である。図22において、開発者が、IPマクロ212へのレジスタ操作APIと同じAPI形式でヘッダファイル231を作成する(ステップS221)。また、開発者が、埋め込み指示ファイル202の内容に応じて、出力判定ルーチン230を作成する(ステップS222)。
Processing for creating a
開発者は、コンパイル及びリンク時に指定するIPマクロ212へのレジスタ操作APIへのヘッダとライブラリのディレクトリを、作成した出力判定ルーチン230及びヘッダファイル231を格納したディレクトリに変更する(ステップS223)。
The developer changes the directory of the header and library to the register operation API to the
そして、開発者が、コンパイル及びリンクをホストCPU11に実施させ、バイナリファイル210を作成させる(ステップS224)。作成されたバイナリファイル210は、記憶領域222に格納される。
Then, the developer causes the
埋め込み指示ファイル202から出力判定ルーチン230を作成する際には、開発者の手作業で各機能判定や出力形式を埋め込むことは可能であるが、ツールなどにより、埋め込み指示ファイル202とIPマクロ212のメモリマップ情報などから自動的に作成することも可能である。
When creating the output determination routine 230 from the embedding
また、ステップS224による開発者の指示に応じて、バイナリファイル210を作成する作成処理は、図6及び図7、又は、図8及び図9の説明と同様であるので、詳細な説明を省略する。
In addition, the creation process for creating the
上記第1又は第2実施例において、レジスタへの書き込みを条件としてタイマーによる時間測定を開始していたが、他の条件、例えば、レジスタの特定のフィールドがある値になったことを条件としても良い。 In the first or second embodiment, the time measurement by the timer is started on the condition that writing to the register is performed, but other conditions such as a condition that a specific field of the register becomes a certain value may be used. good.
また、タイマーが使用できない環境では、実行形式中に一定のコード毎にカウンターをインクリメントする仕組みを付加することによっても実現可能である。 In an environment where the timer cannot be used, it can be realized by adding a mechanism for incrementing the counter for each predetermined code in the execution format.
上述したような第1又は第2実施例を適用した場合には、不要なメッセージの出力を削減すると共に、図23に例示されるような、適用が無い場合の問題点を解消することができる。図23は、適用することによって解消可能な問題点の例を説明するための図である。図23において、第1又は第2実施例を適用しなかった場合には、メッセージ出力部分を含むドライバソースコードに相当する適用無コード22aに対して手作業でメッセージ出力部分の削除が行われる。 When the first or second embodiment as described above is applied, the output of unnecessary messages can be reduced and the problems in the case of no application as illustrated in FIG. 23 can be solved. . FIG. 23 is a diagram for explaining an example of a problem that can be solved by applying. In FIG. 23, when the first or second embodiment is not applied, the message output part is manually deleted from the non-applied code 22a corresponding to the driver source code including the message output part.
作業後適用無コード22a'は、メッセージ出力部分の削除が行われた状態を示す。手作業で削除が行われた場合、例えば、誤消去22bのように、誤って、本来必要なレジスタへのアクセスの記述がコメント文に設定されてしまい実行されない、といった問題がある。また、削除対象のメッセージ出力の記述の消去し忘れ22cなどの問題も発生する。
The post-operation non-applied code 22a ′ indicates a state in which the message output part has been deleted. When the deletion is performed manually, for example, there is a problem that a description of access to a register that is originally necessary is erroneously set in a comment sentence and is not executed, such as
しかしながら、第1又は第2実施例を適用した場合には、開発者によるメッセージ出力部分の削除等の手作業が不要となるため、誤消去22b及び消去し忘れ22cなどを解消することができる。
However, when the first or second embodiment is applied, a manual operation such as deletion of a message output part by a developer is not necessary, and thus it is possible to eliminate
上述したように、通信系のIPマクロのドライバソフトウェアのデバッグのために、ソフトウェアのデバッグ用のメッセージ出力を行うソフトウェアプログラムに対して、通信系IPマクロの機能を分類し、その機能分類に応じてIPマクロのレジスタを分類しておく。そして、ドライバソフトウェアのソースコード200を解析し、埋め込み指示ファイル202に基づいて、当該機能のレジスタの値を含むデバッグ用のメッセージを出力させるプログラムを埋め込む。この埋め込まれたプログラムでは、アクセス時間から一定時間の間に当該機能の全レジスタを一定間隔で出力、又は、同機能のレジスタへのアクセスの時に出力する。この際の時間管理はドライバソフトウェアが走行する環境に搭載されているタイマーハードウェアを用いればよい。
As described above, in order to debug the driver software of the communication system IP macro, the function of the communication system IP macro is classified for the software program that outputs a message for debugging the software, and according to the function classification The IP macro registers are classified. Then, the
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。 The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims.
以上の第1及び第2実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
ソースコードと、メッセージ出力対象となるレジスタを指定した埋め込み指示ファイルとを記憶した記憶部と、
前記ソースコード内の、前記記憶部に記憶された前記埋め込み指示ファイルによって指定される前記レジスタへアクセスする記述を、出力期間の間、該レジスタの値を含むメッセージを出力装置に出力する記述を含む置き換え内容で置き換えて、該内容で置き換えられた該ソースコードから実行形式のバイナリファイルを前記記憶部に作成する作成部と
を有することを特徴とするコンピュータ装置。
(付記2)
前記埋め込み指示ファイルによって、機能毎に、前記出力期間を指定するメッセージ出力条件式と、レジスタ情報とが指定され、
前記置き換え内容は、メッセージ出力条件式によって指定されるタイマーに設定される前記出力期間と、対象のレジスタの指定情報を含むレジスタ情報によって指定されるメッセージ出力形式とを含むことを特徴とする付記1記載のコンピュータ装置。
(付記3)
前記作成部は、前記埋め込み指示ファイルに基づいて、機能毎に前記出力期間が設定される機能構造体と、該機能構造体から接続される前記レジスタ情報からレジスタ構造体とを含む埋め込み指示構造体を前記記憶部に作成することを特徴とする付記2記載のコンピュータ装置。
(付記4)
前記バイナリファイルを実行し、前記指定されたレジスタへのアクセス時に、該レジスタの値を含むメッセージの出力を開始し、該アクセス時に起動されたタイマーの設定値に前記出力期間を加算して設定することによって、該出力期間後、該メッセージの出力装置への出力を停止することを特徴とする付記2又は3のいずれか一項記載のコンピュータ装置。
(付記5)
前記ソースコードから読み出した記述が、前記記憶部に記憶された前記埋め込み指示ファイルによって指定される前記レジスタへアクセスする記述であるか否かを判定する判定ルーチンと、ライブラリで定義されている判定ルーチンのインタフェースを定義したヘッダファイルとを有することを特徴とする付記1乃至3のいずれか一項記載のコンピュータ装置。
(付記6)
前記ソースコードは、通信制御を行うマクロを記述したコードであることを特徴とする付記1乃至5のいずれか一項記載のコンピュータ装置。
(付記7)
コンピュータによって実行されるメッセージ出力制御方法であって、
記憶部に記憶されたソースコードと、メッセージ出力対象となるレジスタを指定した埋め込み指示ファイルとを入力し、
前記ソースコード内の、前記埋め込み指示ファイルによって指定される前記レジスタへアクセスする記述を、出力期間の間、該レジスタの値を含むメッセージを出力装置に出力する記述を含む置き換え内容で置き換え、
前記内容で置き換えられた前記ソースコードから実行形式のバイナリファイルを前記記憶部に作成する
ことを特徴とするメッセージ出力制御方法。
(付記8)
記憶部に記憶されたソースコードと、メッセージ出力対象となるレジスタを指定した埋め込み指示ファイルとを入力し、
前記ソースコード内の、前記埋め込み指示ファイルによって指定される前記レジスタへアクセスする記述を、出力期間の間、該レジスタの値を含むメッセージを出力装置に出力する記述を含む置き換え内容で置き換え、
前記内容で置き換えられた前記ソースコードから実行形式のバイナリファイルを前記記憶部に作成する
処理をコンピュータに実行させるプログラム。
Regarding the embodiment including the first and second examples, the following additional notes are disclosed.
(Appendix 1)
A storage unit that stores a source code and an embedding instruction file that specifies a register that is a message output target;
A description of accessing the register specified by the embedding instruction file stored in the storage unit in the source code includes a description of outputting a message including the value of the register to an output device during an output period. A computer apparatus, comprising: a creation unit that creates a binary file in an executable format in the storage unit from the source code that is replaced with the replacement content.
(Appendix 2)
The embedding instruction file specifies a message output conditional expression for specifying the output period and register information for each function,
The replacement content includes the output period set in a timer specified by a message output conditional expression and a message output format specified by register information including specification information of a target register. A computer device as described.
(Appendix 3)
The creation unit includes a function structure in which the output period is set for each function based on the embedding instruction file, and an embedding instruction structure including the register information from the register information connected from the function structure. Is created in the storage unit. The computer apparatus according to
(Appendix 4)
Executes the binary file, starts to output a message including the value of the register when accessing the designated register, and sets the output period to the set value of the timer activated at the time of accessing Accordingly, after the output period, the output of the message to the output device is stopped, The computer device according to any one of
(Appendix 5)
A determination routine for determining whether or not the description read from the source code is a description for accessing the register specified by the embedding instruction file stored in the storage unit; and a determination routine defined by the library The computer apparatus according to any one of
(Appendix 6)
6. The computer apparatus according to any one of
(Appendix 7)
A message output control method executed by a computer,
Input the source code stored in the storage unit and the embedding instruction file specifying the register that is the message output target,
In the source code, a description for accessing the register specified by the embedding instruction file is replaced with a replacement content including a description for outputting a message including the value of the register to an output device during an output period.
A message output control method, comprising: creating an executable binary file in the storage unit from the source code replaced with the content.
(Appendix 8)
Input the source code stored in the storage unit and the embedding instruction file specifying the register that is the message output target,
In the source code, a description for accessing the register specified by the embedding instruction file is replaced with a replacement content including a description for outputting a message including the value of the register to an output device during an output period.
A program that causes a computer to execute a process of creating an executable binary file in the storage unit from the source code replaced with the content.
10 ホスト装置
11 ホストCPU
12 主記憶装置
13 補助記憶装置
14 入力装置
15 表示装置
18 ドライバ
19 記憶媒体
101 デバッグシステム
200 ソースコード
201 IPマクロ仕様・規格書
202 埋め込み指示ファイル
210 バイナリファイル
211 ターゲットCPU
212 IPマクロ
213 接続先デバイス
214 記憶領域
217 メッセージ出力装置
218 タイマーモジュール
220 変換プログラム
221 記憶領域
224 ICE装置
230 出力判定ルーチン
231 ヘッダファイル
240 変換プログラム
10
DESCRIPTION OF
212
Claims (5)
前記ソースコードの、前記記憶部に記憶された前記埋め込み指示ファイルによって指定される前記レジスタへアクセスする記述を、出力期間の間、該レジスタの値を含むメッセージを出力装置に出力する記述を含む置き換え内容で置き換えて、該内容で置き換えられた該ソースコードから実行形式のバイナリファイルを前記記憶部に作成する作成部と
を有することを特徴とするメッセージ出力制御装置。 A storage unit that stores a source code and an embedding instruction file that specifies a register that is a message output target;
Of the source code, the description to access the register thus specified in the embedded instruction file stored in the storage unit, during the output period, contains a description of the output device a message containing the value of the register A message output control apparatus comprising: a creation unit that creates a binary file in an executable format in the storage unit from the source code replaced by the replacement content.
前記置き換え内容は、メッセージ出力条件式によって指定されるタイマーに設定される前記出力期間と、対象のレジスタの指定情報を含むレジスタ情報によって指定されるメッセージ出力形式とを含むことを特徴とする請求項1記載のメッセージ出力制御装置。 The embedding instruction file specifies a message output conditional expression for specifying the output period and register information for each function,
The replacement content includes the output period set in a timer specified by a message output conditional expression and a message output format specified by register information including specification information of a target register. The message output control device according to 1.
記憶部に記憶されたソースコードと、メッセージ出力対象となるレジスタを指定した埋め込み指示ファイルとを入力し、
前記ソースコード内の、前記埋め込み指示ファイルによって指定される前記レジスタへアクセスする記述を、出力期間の間、該レジスタの値を含むメッセージを出力装置に出力する記述を含む置き換え内容で置き換え、
前記内容で置き換えられた前記ソースコードから実行形式のバイナリファイルを前記記憶部に作成する
ことを特徴とするメッセージ出力制御方法。 A message output control method executed by a computer,
Input the source code stored in the storage unit and the embedding instruction file specifying the register that is the message output target,
In the source code, a description for accessing the register specified by the embedding instruction file is replaced with a replacement content including a description for outputting a message including the value of the register to an output device during an output period.
A message output control method, comprising: creating an executable binary file in the storage unit from the source code replaced with the content.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012033353A JP5906789B2 (en) | 2012-02-17 | 2012-02-17 | Message output control device and message output control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012033353A JP5906789B2 (en) | 2012-02-17 | 2012-02-17 | Message output control device and message output control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013171345A JP2013171345A (en) | 2013-09-02 |
JP5906789B2 true JP5906789B2 (en) | 2016-04-20 |
Family
ID=49265250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012033353A Active JP5906789B2 (en) | 2012-02-17 | 2012-02-17 | Message output control device and message output control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5906789B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9880818B2 (en) | 2014-11-05 | 2018-01-30 | Ab Initio Technology Llc | Application testing |
US10936289B2 (en) | 2016-06-03 | 2021-03-02 | Ab Initio Technology Llc | Format-specific data processing operations |
CN113810466B (en) * | 2021-08-12 | 2024-04-09 | 北京科东电力控制系统有限责任公司 | Middleware for multi-source heterogeneous data, system and method for applying middleware |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11224211A (en) * | 1998-02-06 | 1999-08-17 | Fuji Xerox Co Ltd | Software inspection support device |
US7231633B2 (en) * | 2003-07-15 | 2007-06-12 | Lsi Corporation | Debugging with set verbosity level during read and analysis of executable code and associated comments while logging according to set verbosity level |
JP5545054B2 (en) * | 2010-06-11 | 2014-07-09 | 富士通株式会社 | Debug circuit and debug system |
-
2012
- 2012-02-17 JP JP2012033353A patent/JP5906789B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013171345A (en) | 2013-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7328255B2 (en) | Execution control with cross-level tracking mapping | |
US20070288937A1 (en) | Virtual Device Driver | |
US9111033B2 (en) | Compiling source code for debugging with user preferred snapshot locations | |
US8826244B2 (en) | Providing programming support to debuggers | |
US8910126B2 (en) | Compiling source code for debugging with variable value restoration based on debugging user activity | |
US8645938B2 (en) | System and method for replacing code | |
US6543049B1 (en) | Ranked break points and method for debugging a computer program | |
US9009678B2 (en) | Software debugging with execution match determinations | |
US20080270842A1 (en) | Computer operating system handling of severe hardware errors | |
JP5218568B2 (en) | Information processing apparatus having configuration change function, system configuration change method, and system configuration change program | |
JP2015141539A (en) | Failure injection program | |
US9053229B2 (en) | Integrating compiler warnings into a debug session | |
EP3769222B1 (en) | Testing kernel mode computer code by executing the computer code in user mode | |
JP5906789B2 (en) | Message output control device and message output control method | |
US20080127118A1 (en) | Method and system for dynamic patching of software | |
US20240320127A1 (en) | Event tracing | |
US20180341723A1 (en) | Triggering untriggered assertions in design verification | |
TW588238B (en) | Program debugging method | |
CN113591422A (en) | System for generating test case flow information in chip verification and application | |
JP2005128692A (en) | Simulator and simulation method | |
CN108614704B (en) | Code compiling method and device | |
US8799873B2 (en) | Collecting tracepoint data | |
US10216525B1 (en) | Virtual disk carousel | |
US20130031534A1 (en) | Software Development With Information Describing Preceding Execution Of A Debuggable Program | |
JP7348492B2 (en) | Information processing system, information processing device, information processing program, and information processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141028 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20150501 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150501 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150714 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150911 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160223 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160307 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5906789 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |