(57)【要約】【課題】エミュレータを用いずにプログラムのデバックを実現することが可能な、情報処理装置、情報処理方法、プログラム、および情報処理システムを提供する。【解決手段】プログラムを記憶可能な第１の記憶部と、第２の記憶部と、設定命令に基づいてブレークポイントを設定する設定部と、実行命令に基づいてプログラムを実行する実行部とを備え、設定部は、設定命令が示すブレークポイントのアドレスを含む第１の記憶部に記憶されているプログラムの一部のコードを第２の記憶部に記憶させ、記憶されたコードにブレークポイントを設定し、実行部は、実行命令が示す実行開始アドレスから第１の記憶部に記憶されているプログラムの実行を開始し、第１の記憶部に記憶されているプログラムのうち、第２の記憶部に記憶されたコード部分については、第２の記憶部に記憶されているコードを実行する、情報処理装置が提供される。【選択図】図６
2013137664.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記憶可能な第１の記憶部と、
第２の記憶部と、
プログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定する設定部と、
プログラムの実行を開始させる実行命令に基づいて、プログラムを実行する実行部と、
を備え、
前記設定部は、
前記設定命令が示すブレークポイントのアドレスを含む、前記第１の記憶部に記憶されているプログラムの一部のコードを、前記第２の記憶部に記憶させ、
記憶されたコードに前記設定命令に基づくブレークポイントを設定し、
前記実行部は、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された一部のコード部分については、前記第２の記憶部に記憶されているコードを実行する、情報処理装置。
【請求項２】
前記設定部は、前記設定命令が示すブレークポイントのアドレスを含むプログラムの一部のコードが、前記第２の記憶部に記憶されている場合には、
前記第２の記憶部に記憶されているコードに前記設定命令に基づくブレークポイントを設定する、請求項１に記載の情報処理装置。
【請求項３】
プログラムが受信された場合、
前記実行部は、
受信された前記プログラムと、受信された前記プログラムと対応する、前記第１の記憶部に記憶されているプログラムとを比較し、
コードが異なる部分がある場合には、受信された前記プログラムのうち、コードが異なる部分を含む一部のコードを、前記第２の記憶部に記憶させ、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された前記一部のコードに対応するコード部分については、前記第２の記憶部に記憶されているコードを実行する、請求項１に記載の情報処理装置。
【請求項４】
前記第１の記憶部には、前記プログラムを管理するシステムプログラムが記憶され、
前記設定部と前記実行部とは、前記システムプログラムを用いて処理を行う、請求項１に記載の情報処理装置。
【請求項５】
前記設定命令と前記実行命令とを送信する制御装置と通信を行う、通信部をさらに備える、請求項１に記載の情報処理装置。
【請求項６】
前記第２の記憶部における、プログラムの一部のコードを記憶することが可能な領域のサイズは、前記第１の記憶部における、プログラムを記憶することが可能な領域のサイズよりも小さい、請求項１に記載の情報処理装置。
【請求項７】
前記設定部は、前記設定命令が示すブレークポイントのアドレスを含む、前記第１の記憶部に記憶されているプログラムの一部のコードを、前記第２の記憶部にコピーすることによって、前記プログラムの一部のコードを前記第２の記憶部に記憶させる、請求項１に記載の情報処理装置。
【請求項８】
プログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定するステップと、
プログラムの実行を開始させる実行命令に基づいて、プログラムを実行するステップと、
を有し、
前記設定するステップでは、
前記設定命令が示すブレークポイントのアドレスを含む、第１の記憶部に記憶されているプログラムの一部のコードを、第２の記憶部に記憶させ、
記憶されたコードに前記設定命令に基づくブレークポイントを設定し、
前記実行するステップでは、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された一部のコード部分については、前記第２の記憶部に記憶されているコードを実行する、情報処理方法。
【請求項９】
プログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定する機能、
プログラムの実行を開始させる実行命令に基づいて、プログラムを実行する機能、
をコンピュータに実現させ、
前記設定する機能は、
前記設定命令が示すブレークポイントのアドレスを含む、第１の記憶部に記憶されているプログラムの一部のコードを、第２の記憶部に記憶させ、
記憶されたコードに前記設定命令に基づくブレークポイントを設定し、
前記実行する機能は、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された一部のコード部分については、前記第２の記憶部に記憶されているコードを実行する、プログラム。
【請求項１０】
プログラムに対してブレークポイントを設定させる設定命令と、プログラムの実行を開始させる実行命令とを送信する制御装置と、
前記制御装置と通信を行う情報処理装置と、
を有し、
前記情報処理装置は、
前記制御装置と通信を行う通信部と、
プログラムを記憶可能な第１の記憶部と、
第２の記憶部と、
前記通信部が受信した設定命令に基づいて、ブレークポイントを設定する設定部と、
前記通信部が受信した実行命令に基づいて、プログラムを実行する実行部と、
を備え、
前記設定部は、
前記設定命令が示すブレークポイントのアドレスを含む、前記第１の記憶部に記憶されているプログラムの一部のコードを、前記第２の記憶部に記憶させ、
記憶されたコードに前記設定命令に基づくブレークポイントを設定し、
前記実行部は、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された一部のコード部分については、前記第２の記憶部に記憶されているコードを実行する、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法、プログラム、および情報処理システムに関する。
【背景技術】
【０００２】
コンピュータで実行可能なプログラムには、誤り（いわゆる、バグ）が存在しうる。そのため、プログラムの誤りを取り除くために、デバックが行われている。このような中、デバックに関する技術が開発されている。例えば、プログラムを毎回ＲＯＭ（Read  Only  Memory）に書き込むことなく、また膨大なエミュレーションメモリをインサーキットエミュレータに内蔵させる必要なく、プログラムの実時間特性を実際の状態で評価する技術としては、例えば、特許文献１に記載の技術が挙げられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０４−１８６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば特許文献１に記載の技術では、ＲＯＭの代わりにＲＡＭ（Random  Access  Memory）を実装することによって、プログラムを毎回ＲＯＭに書き込むことと、エミュレーションメモリをインサーキットエミュレータに内蔵させることとを回避している。よって、例えば特許文献１に記載の技術を用いる場合には、エミュレータを使用することなくデバッグすることができる可能性がある。しかしながら、特許文献１に記載の技術を用いる場合には、ＲＯＭの代わりとなる、ＲＯＭと同サイズのＲＡＭを実装しなければならない。よって、特許文献１に記載の技術を用いる場合には、コストの増加が生じうる。
【０００５】
本開示では、エミュレータを用いずにプログラムのデバックを実現することが可能な、新規かつ改良された情報処理装置、情報処理方法、プログラム、および情報処理システムを提案する。
【課題を解決するための手段】
【０００６】
本開示によれば、プログラムを記憶可能な第１の記憶部と、第２の記憶部と、プログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定する設定部と、プログラムの実行を開始させる実行命令に基づいて、プログラムを実行する実行部と、を備え、上記設定部は、上記設定命令が示すブレークポイントのアドレスを含む、上記第１の記憶部に記憶されているプログラムの一部のコードを、上記第２の記憶部に記憶させ、記憶されたコードに上記設定命令に基づくブレークポイントを設定し、上記実行部は、上記実行命令が示す実行開始アドレスから、上記第１の記憶部に記憶されているプログラムの実行を開始し、上記第１の記憶部に記憶されているプログラムのうち、上記第２の記憶部に記憶された一部のコード部分については、上記第２の記憶部に記憶されているコードを実行する、情報処理装置が提供される。
【０００７】
また、本開示によれば、プログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定するステップと、プログラムの実行を開始させる実行命令に基づいて、プログラムを実行するステップと、を有し、上記設定するステップでは、上記設定命令が示すブレークポイントのアドレスを含む、第１の記憶部に記憶されているプログラムの一部のコードを、第２の記憶部に記憶させ、記憶されたコードに上記設定命令に基づくブレークポイントを設定し、上記実行するステップでは、上記実行命令が示す実行開始アドレスから、上記第１の記憶部に記憶されているプログラムの実行を開始し、上記第１の記憶部に記憶されているプログラムのうち、上記第２の記憶部に記憶された一部のコード部分については、上記第２の記憶部に記憶されているコードを実行する、情報処理方法。が提供される。
【０００８】
また、本開示によれば、プログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定する機能、プログラムの実行を開始させる実行命令に基づいて、プログラムを実行する機能、をコンピュータに実現させ、上記設定する機能は、上記設定命令が示すブレークポイントのアドレスを含む、第１の記憶部に記憶されているプログラムの一部のコードを、第２の記憶部に記憶させ、記憶されたコードに上記設定命令に基づくブレークポイントを設定し、上記実行する機能は、上記実行命令が示す実行開始アドレスから、上記第１の記憶部に記憶されているプログラムの実行を開始し、上記第１の記憶部に記憶されているプログラムのうち、上記第２の記憶部に記憶された一部のコード部分については、上記第２の記憶部に記憶されているコードを実行する、プログラムが提供される。
【０００９】
また、本開示によれば、プログラムに対してブレークポイントを設定させる設定命令と、プログラムの実行を開始させる実行命令とを送信する制御装置と、上記制御装置と通信を行う情報処理装置と、を有し、上記情報処理装置は、上記制御装置と通信を行う通信部と、プログラムを記憶可能な第１の記憶部と、第２の記憶部と、上記通信部が受信した設定命令に基づいて、ブレークポイントを設定する設定部と、上記通信部が受信した実行命令に基づいて、プログラムを実行する実行部と、を備え、上記設定部は、上記設定命令が示すブレークポイントのアドレスを含む、上記第１の記憶部に記憶されているプログラムの一部のコードを、上記第２の記憶部に記憶させ、記憶されたコードに上記設定命令に基づくブレークポイントを設定し、上記実行部は、上記実行命令が示す実行開始アドレスから、上記第１の記憶部に記憶されているプログラムの実行を開始し、上記第１の記憶部に記憶されているプログラムのうち、上記第２の記憶部に記憶された一部のコード部分については、上記第２の記憶部に記憶されているコードを実行する、情報処理システムが提供される。
【発明の効果】
【００１０】
本開示によれば、エミュレータを用いずにプログラムのデバックを実現することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る第１の記憶部、および第２の記憶部の構成の一例を示す説明図である。
【図２】本実施形態に係る第１の記憶部、および第２の記憶部の状態の一例を示す説明図である。
【図３】本実施形態に係る第１の記憶部、および第２の記憶部の状態の一例を示す説明図である。
【図４】本実施形態に係る情報処理方法に係る処理の第１の例を示す流れ図である。
【図５】本実施形態に係る情報処理方法に係る処理の第２の例を示す流れ図である。
【図６】本実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図７】本実施形態に係る情報処理装置のハードウェア構成の一例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１３】
また、以下では、下記に示す順序で説明を行う。
１．本実施形態に係る情報処理方法
２．本実施形態に係る情報処理装置
３．本実施形態に係るプログラム
【００１４】
（本実施形態に係る情報処理方法）
本実施形態に係る情報処理装置の構成について説明する前に、本実施形態に係る情報処理方法について説明する。また、以下では、本実施形態に係る情報処理装置が、本実施形態に係る情報処理方法に係る処理を行うものとして説明する。
【００１５】
［本実施形態に係る情報処理方法の概要］
本実施形態に係る情報処理装置は、プログラムが記憶される記録媒体（以下、「第１の記憶部」と示す。）に記憶されている、プログラムのデバックを、エミュレータを用いることなく行う。より具体的には、本実施形態に係る情報処理装置は、第１の記憶部に記憶されているデバック対象のプログラムの一部を、第１の記憶部とは異なる記録媒体（以下、「第２の記憶部」と示す。）に記憶させて、デバックを行うことによって、エミュレータを用いないデバックを実現する。
【００１６】
ここで、本実施形態に係る第１の記憶部としては、例えば、フラッシュＲＯＭなどのＮＯＲデバイスが挙げられる。また、本実施形態に係る第２の記憶部としては、例えば、ＭＰＵ（Micro  Processing  Unit）により実行されるプログラムやアプリケーションなどを一時的に記憶するＲＡＭが挙げられる。以下では、第１の記憶部が「ＲＯＭ」であり、第２の記憶部が「ＲＡＭ」である場合を例に挙げて説明する。
【００１７】
また、本実施形態に係るプログラムとしては、例えば、本実施形態に係る情報処理装置のユーザなどによって作成されたプログラムである、ユーザプログラムが挙げられる。ここで、本実施形態に係るユーザプログラムは、例えば、情報処理装置の外部装置やユーザープログラムに対してサービスを提供するためのプログラムである、システムプログラムによって、ＲＯＭに記録される。システムプログラムが実行されることによって、本実施形態に係る情報処理装置では、例えば、外部装置から受信したユーザプログラムに基づきユーザプログラムの更新を行うサービスや、ＲＯＭに記憶されているユーザプログラムのデバックを行うためのサービスが実現される。以下では、本実施形態に係るデバック対象のプログラムが、ユーザプログラムである場合を例に挙げて説明する。なお、本実施形態に係るデバック対象のプログラムが、ユーザプログラムに限られないことは、言うまでもない。
【００１８】
図１は、本実施形態に係る第１の記憶部、および第２の記憶部の構成の一例を示す説明図である。ここで、図１のＡは、ＲＯＭ（第１の記憶部の一例）の構成の一例を示しており、また、図１のＢは、ＲＡＭ（第２の記憶部の一例）の構成の一例を示している。
【００１９】
図１のＡに示すように、ＲＯＭは、システムをブートするためのブートプログラムが記憶されるブートプログラム領域と、当該システムを実現するシステムプログラムが記憶されるシステムプログラム領域と、ユーザプログラムが記憶されるユーザプログラム領域とを有する。図１のＡは、デバッグを行う対象となる、２［ＭＢｙｔｅ］のユーザープログラムが、ＲＯＭに記憶されている例を示している。なお、ＲＯＭへのユーザプログラムの記録（登録）は、システムプログラムを介すことによって、本実施形態に係る情報処理装置のユーザが自由に行うことが可能であるが、ブート領域に記憶されているブートプログラム、およびシステム領域に記憶されているシステムプログラムは、例えば、ファイヤーウォールによって破壊や改竄から保護される。
【００２０】
また、図１のＢに示すように、ＲＡＭには、ブートプログラムやシステムプログラムの実行において使用されるヒープ領域と、ユーザプログラムの実行において使用されるヒープ領域と、デバックにおいて用いられるデバック用の領域とが、確保されている。図１のＢでは、ブートプログラムやシステムプログラムの実行において使用されるヒープ領域が１［ＭＢｙｔｅ］、ユーザプログラムの実行において使用されるヒープ領域が５１２［ＫＢｙｔｅ］、デバック用の領域が５１２［ＫＢｙｔｅ］確保されている例を示している。
【００２１】
本実施形態に係る情報処理装置は、例えば図１に示すように、ＲＡＭにおけるデバック用の領域のサイズ（すなわち、ユーザプログラムの一部のコードを記憶することが可能な領域のサイズ）が、ＲＯＭに記憶されているデバック対象のユーザプログラムのサイズ（すなわち、第１の記憶部における、ユーザプログラムを記憶することが可能な領域のサイズ）よりも小さい場合であっても、エミュレータを用いないデバックを実現する。
【００２２】
以下、本実施形態に係る情報処理装置が、図１に示す構成のＲＯＭ（第１の記憶部の一例）とＲＡＭ（第２の記憶部の一例）とを備える場合を例に挙げて、本実施形態に係る情報処理方法に係る処理の一例について説明する。以下では、デバックに係る処理として、［１］ユーザプログラムにブレークポイントを設定して、ブレークポイントが設定されたユーザプログラムを実行する処理（第１の例に係る処理）と、［２］、修正されたユーザプログラムを実行する処理（第２の例に係る処理）と、［３］デバックを終了する処理（第２の例に係る処理）と、について説明する。
【００２３】
［本実施形態に係る情報処理方法に係る処理の一例］
［１］第１の例に係る処理
まず、本実施形態に係るデバックに係る処理として、本実施形態に係る情報処理装置が、ユーザプログラムにブレークポイントを設定して、ブレークポイントが設定されたユーザプログラムを実行する処理について、説明する。以下では、本実施形態に係る情報処理装置において、システムプログラムが実行されることによって起動するシステムによって、デバックに係る処理が行われる場合を例に挙げて説明する。なお、本実施形態に係る情報処理方法に係る処理が、システムプログラムが実行されることによって起動するシステムによって行われることに限られないことは、言うまでもない。
【００２４】
本実施形態に係る情報処理装置は、第１の例に係る処理として、例えば、（１）設定処理、および（２）実行処理を行う。ここで、（１）の処理（設定処理）とは、ユーザプログラムにブレークポイントを設定する処理であり、（２）の処理（実行処理）とは、ユーザプログラムを実行する処理である。
【００２５】
（１）設定処理
本実施形態に係る情報処理装置は、ユーザプログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定する。ここで、本実施形態に係る設定命令には、例えば、ユーザープログラム上のメモリアドレスを示すデータが含まれる。
【００２６】
ここで、本実施形態に係る設定命令は、例えば、ネットワークを介して（または、直接的に）有線／無線で、本実施形態に係る情報処理装置と接続された、制御装置（外部装置の一例）において、ユーザ操作などに基づき生成される。そして、本実施形態に係る情報処理装置は、制御装置から送信された設定命令を受信し、受信した設定命令に基づいて、ブレークポイントを設定する。なお、本実施形態に係る設定命令は、制御装置において生成されることに限られない。例えば、本実施形態に係る情報処理装置は、操作部（後述する）に対するユーザ操作に基づいて、設定命令を生成し、生成した設定命令に基づいて、ブレークポイントを設定することも可能である。
【００２７】
より具体的には、本実施形態に係る情報処理装置は、設定命令が示すアドレスを含む、ＲＯＭに記憶されているユーザプログラムの一部のコードを、ＲＡＭのデバック用の領域にコピーする。例えば上記のように、ＲＯＭに記憶されているユーザプログラムの一部のコードがＲＡＭにコピーされることによって、本実施形態に係る情報処理装置は、ＲＯＭに記憶されているユーザプログラムの一部のコードをＲＡＭに記憶させる。また、本実施形態に係る情報処理装置は、ＲＡＭにコピーしたユーザプログラムの一部のコードのアドレスが、ＲＯＭにおけるコピー元のアドレスに対応するように、論理アドレスを割り当てる。また、本実施形態に係る情報処理装置は、コピーを行ったＲＡＭ上の領域に対して、ＲＯＭと同様のアクセス権（例えば、ＲＯＭに対しては、読み出しのみ許可されるものとする。）を、ＭＭＵ（Memory  Management  Unit）機能によって割り当てる。
【００２８】
ここで、設定命令が示すアドレスを含むＲＯＭに記憶されているユーザプログラムの一部としては、例えば、設定命令が示すアドレス（ブレーク対象のアドレス）を含むメモリ領域をＭＭＵにおいて、論理アドレス−物理アドレス変換（以下、「論物変換」と示す場合がある。）可能な最小サイズが挙げられる。第１の例に係る処理では、論物変換可能な最小サイズが、４［ＫＢｙｔｅ］である場合を例に挙げる。
【００２９】
図２は、本実施形態に係る第１の記憶部、および第２の記憶部の状態の一例を示す説明図である。ここで、図２に示すＡは、ＲＯＭ（第１の記憶部の一例）のユーザプログラム領域を示しており、また、図２に示すＢは、ＲＡＭ（第２の記憶部の一例）のデバック用の領域を示している。例えば図２に示すように、本実施形態に係る情報処理装置は、設定命令が示すアドレス（ブレークポイントとして指定されたアドレス）を含む、ＲＯＭに記憶されているユーザプログラムの一部のコードを、ＲＡＭのデバック用の領域にコピーする。
【００３０】
そして、本実施形態に係る情報処理装置は、ＲＡＭにコピーされたコードに、設定命令に基づくブレークポイントを設定する。より具体的には、本実施形態に係る情報処理装置は、ＲＡＭにコピーされたコードのうち、設定命令が示すアドレスに対応するコードを、ブレークコードに置き換えることによって、ブレークポイントを設定する。
【００３１】
本実施形態に係る情報処理装置は、例えば、上記のような処理を行うことによって、設定命令に基づいてブレークポイントを設定する。なお、本実施形態に係る情報処理装置における設定処理は、上記に限られない。例えば、本実施形態に係る情報処理装置は、複数のブレークポイントを設定することも可能である。
【００３２】
例えば、新たな設定命令を受信した場合や、設定命令に複数のアドレスが指定されている場合、本実施形態に係る情報処理装置は、基本的には、上記のように、設定命令が示すアドレスを含むＲＯＭに記憶されているユーザプログラムの一部のコードを、ＲＡＭのデバック用の領域にコピーして、ＲＡＭにコピーされたコードにブレークポイントを設定する。また、本実施形態に係る情報処理装置は、設定命令が示すアドレスが、既にＲＡＭにコピーされた領域内である場合には、ＲＡＭにコピーされているコードにブレークポイントを設定する。
【００３３】
図３は、本実施形態に係る第１の記憶部、および第２の記憶部の状態の一例を示す説明図である。ここで、図３に示すＡは、ＲＯＭ（第１の記憶部の一例）のユーザプログラム領域を示しており、また、図３に示すＢは、ＲＡＭ（第２の記憶部の一例）のデバック用の領域を示している。例えば、新たな設定命令を受信した場合や、設定命令に複数のアドレスが指定されている場合において、本実施形態に係る情報処理装置が上記のような処理を行うことによって、ＲＡＭには、例えば図３に示すように、設定命令が示すアドレスに対応するコードを含む複数の領域がコピーされうる。
【００３４】
なお、例えば図１〜図３に示すように、ＲＡＭにおけるデバック用の領域のサイズが、ＲＯＭに記憶されているデバック対象のユーザプログラムのサイズよりも小さい場合には、ＲＡＭにコピー可能なコードに限りがあるため、設定可能なブレークポイントの数に制限がでる可能性がある。複数のブレークポイントの設定を行う場合において、ＲＡＭにおけるデバック用の領域のサイズに起因してブレークポイントの設定が行えないときには、本実施形態に係る情報処理装置は、例えば、他のブレークポイント削除する旨のエラー通知を、（制御装置および／または本実施形態に係る情報処理装置の）ユーザに通知する。
【００３５】
（２）実行処理
本実施形態に係る情報処理装置は、ユーザプログラムの実行を開始させる実行命令に基づいて、ユーザプログラムを実行する。ここで、本実施形態に係る実行命令には、例えば、実行を開始する実行開始アドレスを示すデータが含まれる。なお、本実施形態に係る実効命令は、例えば、上記本実施形態に係る設定命令に含まれていてもよい。
【００３６】
ここで、本実施形態に係る実行命令は、例えば、本実施形態に係る設定命令と同様に、制御装置（外部装置の一例）において、ユーザ操作などに基づき生成される。そして、本実施形態に係る情報処理装置は、制御装置から送信された実行命令を受信し、受信した実行命令に基づいて、指定された実行開始アドレスからユーザプログラムを実行する。なお、本実施形態に係る実行命令は、制御装置において生成されることに限られない。例えば、本実施形態に係る情報処理装置は、操作部（後述する）に対するユーザ操作に基づいて、実行命令を生成し、生成した実行命令に基づいて、ユーザプログラムを実行することも可能である。
【００３７】
より具体的には、本実施形態に係る情報処理装置は、実行命令が示す実行開始アドレスから、ＲＯＭに記憶されているユーザプログラムの実行を開始する。そして、本実施形態に係る情報処理装置は、ＲＯＭに記憶されているユーザプログラムのうち、ＲＡＭにコピーされた一部のコード部分については、ＲＡＭに記憶されているコードを実行する。
【００３８】
上記（１）の処理（設定処理）において設定されたブレークポイントに対応するコードが実行された場合、本実施形態に係る情報処理装置は、ユーザプログラムの実行を一時停止させる。より具体的には、例えば、ブレークポイントに対応するコードが実行された場合に、システムへとブレークの例外が通知されて、ユーザプログラムの実行が一時的に停止される。また、このとき、本実施形態に係る情報処理装置は、例えば、ブレークポイントが設定されて、現在ＲＡＭに展開されているプログラムコードのアクセス権、および、論理アドレスを元に戻してもよい。
【００３９】
本実施形態に係る情報処理装置では、例えば上記（１）の処理（設定処理）および（２）の処理（実行処理）が行われることによって、ユーザプログラムにブレークポイントを設定して、ブレークポイントが設定されたユーザプログラムを実行する処理が実現される。例えば上記のように、ブレークポイントの設定と、ブレークポイントが設定されたユーザプログラムの実行とが行われることによって、デバックを行うユーザ（いわゆる、デバッガ）は、エミュレータを用いることなく、デバックを行うことができる。
【００４０】
したがって、本実施形態に係る情報処理装置は、エミュレータを用いずにプログラムのデバックを実現することができる。
【００４１】
〔本実施形態に係る第１の例に係る処理の具体例〕
ここで、本実施形態に係る情報処理装置における、上記第１の例に係る処理について、より具体的に説明する。図４は、本実施形態に係る情報処理方法に係る処理の第１の例を示す流れ図である。ここで、図４は、本実施形態に係る情報処理装置における、ユーザプログラムにブレークポイントを設定して、ブレークポイントが設定されたユーザプログラムを実行する処理の一例を示している。また、以下では、本実施形態に係る情報処理装置が、制御装置から送信される設定命令に基づいて処理を行う場合を例に挙げて説明する。なお、図４に示す第１の例に係る処理では、ステップＳ１０４〜ステップＳ１２２の処理が、上記（１）の処理（設定処理）に相当し、また、ステップＳ１２４の処理が（２）の処理（実行処理）に相当する。
【００４２】
設定命令が受信されると、本実施形態に係る情報処理装置は、設定命令に対応するユーザプログラムがＲＯＭに記憶されているか否かを判定する（Ｓ１００）。本実施形態に係る情報処理装置では、例えば、ユーザプログラムを管理するシステム（システムプログラムが実行されることによって起動するシステム。以下、同様とする。）によって、ステップＳ１００の判定が行われる。
【００４３】
ステップＳ１００において設定命令に対応するユーザプログラムがＲＯＭに記憶されていると判定されない場合には、本実施形態に係る情報処理装置は、例えば、本実施形態に係る制御装置や、サーバなどの外部装置から、設定命令に対応するユーザプログラムをダウンロードする（Ｓ１０２）。そして、本実施形態に係る情報処理装置は、ダウンロードしたユーザプログラムを、ユーザプログラムを管理するシステムを介してＲＯＭに記録する。
【００４４】
ステップＳ１００において設定命令に対応するユーザプログラムがＲＯＭに記憶されていると判定された場合、または、ステップＳ１０２において設定命令に対応するユーザプログラムがダウンロードされた場合には、本実施形態に係る情報処理装置は、設定命令に含まれるブレークポイントの指定の数分、後述するステップＳ１０４〜Ｓ１１４、Ｓ１１８〜Ｓ１２２の処理（原則処理）を繰り返す。
【００４５】
本実施形態に係る情報処理装置は、設定命令において指定されたブレークポイントのアドレスが、ユーザプログラムのアドレス内か否かを判定する（Ｓ１０４）。ステップＳ１０４において設定命令において指定されたブレークポイントのアドレスが、ユーザプログラムのアドレス内であると判定されない場合には、本実施形態に係る情報処理装置は、設定命令において指定された本ブレークポイントに対する処理を行わない。
【００４６】
また、ステップＳ１０４において設定命令において指定されたブレークポイントのアドレスが、ユーザプログラムのアドレス内であると判定された場合には、本実施形態に係る情報処理装置は、ブレークポイントのアドレスをＭＭＵ変換単位で丸めた領域（以下、「領域Ａ」と示す。）を計算する（Ｓ１０６）。ここで、本実施形態に係る領域Ａとしては、例えば、４［ＫＢｙｔｅ］のサイズの領域など、論物変換可能な最小サイズに対応する領域が挙げられる。
【００４７】
ステップＳ１０６の処理を行うと、本実施形態に係る情報処理装置は、領域Ａが既にＲＡＭ上に展開されているか否か（領域Ａが既にＲＡＭにコピーされているか否か）を判定する（Ｓ１０８）。
【００４８】
ステップＳ１０８において領域Ａが既にＲＡＭ上に展開されていると判定された場合には、本実施形態に係る情報処理装置は、後述するステップＳ１１８の処理を行う。
【００４９】
また、ステップＳ１０８において領域Ａが既にＲＡＭ上に展開されていると判定されない場合には、本実施形態に係る情報処理装置は、ＲＡＭ上に領域Ａをコピーする領域があるか否かを判定する（Ｓ１１０）。
【００５０】
ステップＳ１１０においてＲＡＭ上に領域Ａをコピーする領域があると判定されない場合には、本実施形態に係る情報処理装置は、ユーザにエラーを通知する（Ｓ１１６。例外処理）。ここで、本実施形態に係る情報処理装置は、例えば、表示画面にエラー画面を表示することによる視覚的なエラーの通知や、音声（音楽も含む。）による聴覚的なエラーの通知を行うことによって、本実施形態に係る情報処理装置のユーザに対して、エラーを通知する。なお、本実施形態に係る情報処理が行うエラーの通知は、上記に限られない。例えば、本実施形態に係る情報処理装置は、設定命令を送信した制御装置などの外部装置にエラーが発生したことを示すデータを送信することによって、当該外部装置に、エラーを通知させてもよい。
【００５１】
また、ステップＳ１１０においてＲＡＭ上に領域Ａをコピーする領域があると判定された場合には、本実施形態に係る情報処理装置は、ＲＡＭに領域Ａをコピーする（Ｓ１１２）。そして、本実施形態に係る情報処理装置は、ＲＡＭ上の領域ＡにＲＯＭの実行アドレスを論理アドレスとして設定する（Ｓ１１４）。
【００５２】
ステップＳ１０８において領域Ａが既にＲＡＭ上に展開されていると判定された場合、または、ステップＳ１１４の処理が行われた場合には、本実施形態に係る情報処理装置は、ＲＡＭ上の領域Ａのアクセス権を、読み出しのみ可能な状態（リードオンリー）から読み書き可能な状態（リードライト）へと変更する（Ｓ１１８）。また、本実施形態に係る情報処理装置は、ＲＡＭ上の領域Ａにブレークコードを書き込む（Ｓ１２０）。ここで、ステップＳ１２０の処理は、ブレークポイントを設定する処理に該当する。
【００５３】
ステップＳ１２０の処理が行われると、本実施形態に係る情報処理装置は、ＲＡＭ上の領域Ａのアクセス権を、読み書き可能な状態（リードライト）から読み出しのみ可能な状態（リードオンリー）へと変更する（Ｓ１２２）。
【００５４】
本実施形態に係る情報処理装置は、例えば、設定命令に含まれるブレークポイントの指定の数分、上記ステップＳ１０４〜Ｓ１１４、Ｓ１１８〜Ｓ１２２の処理（原則処理）を繰り返す。また、本実施形態に係る情報処理装置は、ステップＳ１１０においてＲＡＭ上に領域Ａをコピーする領域があると判定されない場合には、ユーザにエラーを通知する（例外処理）。
【００５５】
設定命令において指定されたブレークポイントの設定が完了すると、本実施形態に係る情報処理装置は、実行命令に基づいてユーザプログラムを実行する（Ｓ１２４）。ここで、本実施形態に係る実行命令は、制御装置から送信される設定命令に含まれていてもよいし、制御装置から別途送信されたものであってもよい。
【００５６】
本実施形態に係る情報処理装置は、例えば図４に示す処理を行うことによって、上記（１）の処理（設定処理）および（２）の処理（実行処理）を実現する。よって、本実施形態に係る情報処理装置が例えば図４に示す処理を行うことによって、ユーザプログラムのデバックを行うユーザ（いわゆる、デバッガ）は、エミュレータを用いることなく、当該ユーザプログラムのデバックを行うことができる。なお、本実施形態に係る情報処理装置における上記第１の例に係る処理が、図４に示す処理に限られないことは、言うまでもない。
【００５７】
［２］第２の例に係る処理
次に、本実施形態に係るデバックに係る処理として、本実施形態に係る情報処理装置が、修正されたユーザプログラムを実行する処理について説明する。例えば上記第１の例に係る処理によるデバックなどによって、ユーザプログラムに誤り（いわゆる、バグ）が発見された場合には、ユーザプログラムの修正が行われる。以下では、第２の例に係る処理として、修正後のユーザプログラムを動作させる場合の処理について説明する。
【００５８】
本実施形態に係る情報処理装置は、例えば修正されたユーザプログラムが受信される場合には、ＲＡＭのデバック用領域に記憶されているデータを削除する（デバック用領域のクリア）。
【００５９】
ここで、本実施形態に係る情報処理装置は、例えば、受信されたユーザプログラムと対応するユーザプログラム（例えば、プログラム名が同一のユーザプログラム）がＲＯＭに記憶されている場合に、修正されたユーザプログラムが受信されると判定するが、本実施形態に係る情報処理装置における修正されたユーザプログラムが受信されるか否か判定方法は、上記に限られない。例えば、本実施形態に係る情報処理装置は、実行命令にユーザプログラムが含まれる場合に、修正されたユーザプログラムが受信されると判定してもよい。また、本実施形態に係る情報処理装置は、本実施形態に係る制御装置などの外部装置から送信された、ユーザプログラムの送信を開始する送信開始通知を受信した場合に、修正されたユーザプログラムが受信されると判定してもよい。
【００６０】
また、本実施形態に係るユーザプログラムは、例えば、ネットワークを介して（または、直接的に）有線／無線で、本実施形態に係る情報処理装置と接続された、制御装置（外部装置の一例）から送信されて、本実施形態に係る情報処理装置によって受信されるが、本実施形態に係る情報処理装置におけるユーザプログラムの取得方法は、上記に限られない。例えば、本実施形態に係る情報処理装置は、着脱可能な記録媒体を介して、ユーザプログラムを取得してもよい。
【００６１】
修正されたユーザプログラムが受信されると、本実施形態に係る情報処理装置は、ＲＯＭに記憶されているユーザプログラム（修正前のユーザプログラム）と、受信した修正後のプログラムとを比較して差分を確認する。そして、本実施形態に係る情報処理装置は、差分がある場合、すなわちコードが異なる部分がある場合には、受信されたユーザプログラムのうち、コードが異なる部分を含む一部のコードを、ＲＡＭ（第２の記憶部）コピーする。ここで、上記コードが異なる部分を含む一部のコードとしては、例えば、論理アドレス−物理アドレス変換可能な最小サイズが挙げられる。
【００６２】
ＲＡＭへのコピーが行われると、本実施形態に係る情報処理装置は、例えば、コピーを行った領域に対して、ユーザプログラムが実行されるＲＯＭ領域のアドレスを割り当てる。
【００６３】
また、本実施形態に係る情報処理装置は、実行命令に基づいて、ユーザプログラムを実行する。ここで、本実施形態に係る情報処理装置は、実行命令が示す実行開始アドレスから、ＲＯＭ（第１の記憶部）に記憶されているユーザプログラムの実行を開始し、ＲＯＭに記憶されているユーザプログラムのうち、ＲＡＭ（第２の記憶部）にコピーされた一部のコードに対応するコード部分については、ＲＡＭに記憶されているコードを実行する。
【００６４】
本実施形態に係る情報処理装置は、例えば上記のような処理を行うことによって、修正されたユーザプログラムを実行する。
【００６５】
〔本実施形態に係る第２の例に係る処理の具体例〕
ここで、本実施形態に係る情報処理装置における、上記第２の例に係る処理について、より具体的に説明する。図５は、本実施形態に係る情報処理方法に係る処理の第２の例を示す流れ図である。
【００６６】
修正後のユーザプログラムが受信される場合、本実施形態に係る情報処理装置は、ベースとなるユーザプログラム（修正前のユーザプログラムに対応）がＲＯＭに記憶されているか否かを判定する（Ｓ２００）。本実施形態に係る情報処理装置では、例えば、ユーザプログラムを管理するシステムによって、ステップＳ２００の判定が行われる。
【００６７】
ステップＳ２００においてベースとなるユーザプログラムがＲＯＭに記憶されていると判定されない場合には、本実施形態に係る情報処理装置は、例えば、本実施形態に係る制御装置や、サーバなどの外部装置から、ベースとなるユーザプログラムをダウンロードする（Ｓ２０２）。そして、本実施形態に係る情報処理装置は、ダウンロードしたユーザプログラムを、ユーザプログラムを管理するシステムを介してＲＯＭに記録する。
【００６８】
ステップＳ２００においてベースとなるユーザプログラムがＲＯＭに記憶されていると判定された場合、または、ステップＳ２０２においてベースとなるユーザプログラムがダウンロードされた場合には、本実施形態に係る情報処理装置は、ＲＡＭのデバック用領域の内容をクリアする（Ｓ２０４）。ここで、ステップＳ２０４の処理は、ＲＡＭのデバック用領域の初期化に相当する。
【００６９】
ステップＳ２０４の処理が行われると、本実施形態に係る情報処理装置は、論物アドレスを元の状態（コピー前の状態）に戻し（Ｓ２０６）、ＲＡＭのデバック用領域に対するアクセス権を、読み出しのみ可能な状態（リードオンリー）から読み書き可能な状態（リードライト）へと変更する（Ｓ２０８）。
【００７０】
ステップＳ２０８の処理が行われると、本実施形態に係る情報処理装置は、修正後のユーザプログラムのダウンロードが完了するまで、後述するステップＳ２１０〜Ｓ２１２の処理（原則処理）を繰り返す。
【００７１】
本実施形態に係る情報処理装置は、ＭＭＵ変換単位サイズ分、ユーザプログラムを受信する（Ｓ２１０）。
【００７２】
ユーザプログラムが受信されると、本実施形態に係る情報処理装置は、受信したユーザプログラムのコードと、ＲＯＭに記憶されている、対応するユーザプログラムのコードとを比較し（Ｓ２１２）、コードが等しいか否かを判定する（Ｓ２１４）。ステップＳ２１４においてコードが等しいと判定された場合には、本実施形態に係る情報処理装置は、受信したＭＭＵ変換単位サイズ分のユーザプログラムに対する処理を行わない。
【００７３】
また、ステップＳ２１４においてコードが等しいと判定されない場合には、本実施形態に係る情報処理装置は、ＲＡＭ上に領域Ｂをコピーする領域があるか否かを判定する（Ｓ２１６）。
【００７４】
ステップＳ２１６においてＲＡＭ上に領域Ｂをコピーする領域があると判定されない場合には、本実施形態に係る情報処理装置は、例えば、ステップＳ２０２からの処理を繰り返す。なお、ステップＳ２１６においてＲＡＭ上に領域Ｂをコピーする領域があると判定されない場合において、本実施形態に係る情報処理装置が行う処理は、上記に限られない。例えば、本実施形態に係る情報処理装置は、図４に示すステップＳ１１６と同様に、エラーを通知してもよい。
【００７５】
また、ステップＳ２１６においてＲＡＭ上に領域Ｂをコピーする領域があると判定された場合には、本実施形態に係る情報処理装置は、ＲＡＭのデバック用領域に、受信したＭＭＵ変換単位サイズ分のユーザプログラムに対応する領域（以下、「領域Ｂ」と示す。）をコピーする（Ｓ２１８）。そして、本実施形態に係る情報処理装置は、ＲＡＭ上の領域ＢにＲＯＭの実行アドレスを論理アドレスとして設定する（Ｓ２２０）。
【００７６】
ステップＳ２２０の処理が行われると、本実施形態に係る情報処理装置は、ＲＡＭ上の領域Ｂのアクセス権を、読み書き可能な状態（リードライト）から読み出しのみ可能な状態（リードオンリー）へと変更する（Ｓ２２２）。
【００７７】
本実施形態に係る情報処理装置は、例えば、修正後のユーザプログラムのダウンロードが完了するまで、上記ステップＳ２１０〜Ｓ２１２の処理（原則処理）を繰り返す。
【００７８】
修正後のユーザプログラムのダウンロードが完了すると、本実施形態に係る情報処理装置は、実行命令に基づいてユーザプログラムを実行する（Ｓ２２４）。ここで、本実施形態に係る実行命令は、例えば、制御装置から送信される。
【００７９】
本実施形態に係る情報処理装置は、例えば図５に示す処理を行うことによって、修正されたユーザプログラムを実行することができる。なお、本実施形態に係る情報処理装置における上記第２の例に係る処理は、図５に示す処理に限られない。例えば、図５では、本実施形態に係る情報処理装置が、ステップＳ２１０においてＭＭＵ変換単位サイズ分ずつユーザプログラムを受信する例を示しているが、本実施形態に係る情報処理装置は、ユーザプログラム全体を受信して処理を行うことも可能である。
【００８０】
［３］第３の例に係る処理
次に、本実施形態に係るデバックに係る処理として、本実施形態に係る情報処理装置が、デバックを終了する処理について、説明する。
【００８１】
本実施形態に係る情報処理装置は、デバックを終了する場合には、ＲＡＭのデバック用領域に記憶されているコードを削除し、また、ＭＭＵ変換により論理物理変換を行っているアドレスを、元（ＲＡＭにコピーを行う前の状態）に戻す。
【００８２】
本実施形態に係る情報処理装置は、本実施形態に係る情報処理方法に係る処理として、例えば上記第１の例に係る処理〜上記第３の例に係る処理を行う。なお、本実施形態に係る情報処理方法に係る処理が、上記第１の例に係る処理〜上記第３の例に係る処理に限られないことは、言うまでもない。
【００８３】
（本実施形態に係る情報処理装置）
次に、上述した本実施形態に係る情報処理方法に係る処理を行うことが可能な、本実施形態に係る情報処理装置１００の構成の一例について、説明する。なお、以下では、情報処理装置１００が、本実施形態に係る制御装置２００と通信を行い、本実施形態に係る制御装置２００から送信される設定命令や実行命令などに基づいて処理を行う場合を例に挙げて説明する。つまり、以下では、上述した本実施形態に係る情報処理方法に係る処理が、情報処理装置１００と、設定命令と実行命令とを送信する制御装置２００とを有する情報処理システムにおいて行われる場合を例に挙げて説明する。
【００８４】
図６は、本実施形態に係る情報処理装置１００の構成の一例を示すブロック図である。また、図６では、制御装置２００を併せて示している。
【００８５】
情報処理装置１００は、例えば、通信部１０２と、第１の記憶部１０４と、第２の記憶部１０６と、制御部１０８とを備える。
【００８６】
また、情報処理装置１００は、例えば、ユーザが操作可能な操作部（図示せず）や、様々な画面を表示画面に表示する表示部（図示せず）などを備えていてもよい。情報処理装置１００は、例えば、データの伝送路としてのバス（bus）により上記各構成要素間を接続する。
【００８７】
ここで、操作部（図示せず）としては、例えば、ボタンや、方向キー、ジョグダイヤルなどの回転型セレクター、あるいは、これらの組み合わせなどが挙げられる。また、情報処理装置１００は、例えば、情報処理装置１００の外部装置としての操作入力デバイス（例えば、キーボードやマウスなど）と接続することもできる。
【００８８】
表示部（図示せず）としては、例えば、液晶ディスプレイ（Liquid  Crystal  Display；ＬＣＤ）や有機ＥＬディスプレイ（organic  ElectroLuminescence  display。または、ＯＬＥＤディスプレイ（Organic  Light  Emitting  Diode  display）ともよばれる。）などが挙げられる。なお、表示部（図示せず）は、例えばタッチスクリーンなどのように、表示とユーザ操作とが可能なデバイスであってもよい。また、情報処理装置１００は、表示部（図示せず）の有無に関わらず、情報処理装置１００の外部装置としての表示デバイス（例えば、外部ディスプレイなど）と接続することもできる。
【００８９】
［情報処理装置１００のハードウェア構成例］
図７は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示す説明図である。情報処理装置１００は、例えば、ＭＰＵ１５０と、ＲＯＭ１５２と、ＲＡＭ１５４と、記録媒体１５６と、入出力インタフェース１５８と、操作入力デバイス１６０と、表示デバイス１６２と、通信インタフェース１６４とを備える。また、情報処理装置１００は、例えば、データの伝送路としてのバス１６６で各構成要素間を接続する。
【００９０】
ＭＰＵ１５０は、例えば、ＭＰＵや、ＭＭＵなどの各種処理回路などで構成され情報処理装置１００全体を制御する制御部１０８として機能する。また、ＭＰＵ１５０は、情報処理装置１００において、例えば、後述する設定部１１０、および実行部１１２の役目を果たす。
【００９１】
ＲＯＭ１５２は、第１の記憶部１０４として機能し、例えば、ブートプログラムやシステムプログラムなどの制御部１０８が使用するプログラムや、演算パラメータなどの制御用データ、ユーザプログラムなどを記憶する。ここで、ＲＯＭ１５２としては、例えば、フラッシュＲＯＭなどのＮＯＲデバイスが挙げられる。また、ＲＯＭ１５２の構成としては、例えば図１のＡに示す構成が挙げられる。
【００９２】
ＲＡＭ１５４は、第２の記憶部１０６として機能し、例えば、ＭＰＵ１５０により実行されるプログラムやアプリケーションなどを一時的に記憶する。ＲＡＭ１５４の構成としては、例えば図１のＢに示す構成が挙げられる。
【００９３】
記録媒体１５６は、情報処理装置１００が備える他の記録媒体であり、例えば、アプリケーションなど様々なデータを記憶する。ここで、記録媒体１５６としては、例えば、ハードディスクなどの磁気記録媒体や、フラッシュメモリなどの不揮発性メモリが挙げられる。また、記録媒体１５６は、情報処理装置１００から着脱可能であってもよい。
【００９４】
入出力インタフェース１５８は、例えば、操作入力デバイス１６０や、表示デバイス１６２を接続する。操作入力デバイス１６０は、操作部（図示せず）として機能し、また、表示デバイス１６２は、表示部（図示せず）として機能する。ここで、入出力インタフェース１５８としては、例えば、ＵＳＢ（Universal  Serial  Bus）端子や、ＤＶＩ（Digital  Visual  Interface）端子、ＨＤＭＩ（High-Definition  Multimedia  Interface）端子、各種処理回路などが挙げられる。また、操作入力デバイス１６０は、例えば、情報処理装置１００上に備えられ、情報処理装置１００の内部で入出力インタフェース１５８と接続される。操作入力デバイス１６０としては、例えば、ボタン、方向キー、ジョグダイヤルなどの回転型セレクター、あるいは、これらの組み合わせなどが挙げられる。また、表示デバイス１６２は、例えば、情報処理装置１００上に備えられ、情報処理装置１００の内部で入出力インタフェース１５８と接続される。表示デバイス１６２としては、例えば、液晶ディスプレイや有機ＥＬディスプレイなどが挙げられる。
【００９５】
なお、入出力インタフェース１５８が、情報処理装置１００の外部装置としての操作入力デバイス（例えば、キーボードやマウスなど）や、表示デバイスなどの外部デバイスと接続することもできることは、言うまでもない。また、表示デバイス１６２は、例えばタッチスクリーンなど、表示とユーザ操作とが可能なデバイスであってもよい。
【００９６】
通信インタフェース１６４は、情報処理装置１００が備える通信手段であり、ネットワークを介して（あるいは、直接的に）、外部装置と無線／有線で通信を行うための通信部１０２として機能する。ここで、通信インタフェース１６４としては、例えば、通信アンテナおよびＲＦ（Radio  Frequency）回路（無線通信）や、ＩＥＥＥ８０２．１５．１ポートおよび送受信回路（無線通信）、ＩＥＥＥ８０２．１１ｂポートおよび送受信回路（無線通信）、シリアルポートおよび送受信回路（有線通信）、あるいはＬＡＮ（Local  Area  Network）端子および送受信回路（有線通信）などが挙げられる。
【００９７】
情報処理装置１００は、例えば図７に示す構成によって、本実施形態に係る情報処理方法に係る処理を行う。なお、本実施形態に係る情報処理装置１００のハードウェア構成は、図７に示す構成に限られない。
【００９８】
例えば、情報処理装置１００は、同種の通信方式または異種の通信方式の通信インタフェースを、複数備えていてもよい。また、情報処理装置１００は、スタンドアロンで処理を行う構成である場合には、通信デバイス１６４を備えていなくてもよい。さらに、情報処理装置１００は、例えば、記録媒体１５６や、操作デバイス１６０、表示デバイス１６２を備えない構成をとることも可能である。
【００９９】
また、情報処理装置１００は、本実施形態に係る情報処理方法に係る処理を行う機能（例えば、後述する設定部１１０および実行部１１２が有する機能）を実現するためのＩＣであってもよい。
【０１００】
［制御装置２００のハードウェア構成例］
本実施形態に係る制御装置２００は、例えば、図７に示す本実施形態に係る情報処理装置１００のハードウェア構成と、同様の構成をとる。例えば上記のような構成をとることによって、制御装置２００は、設定命令と実行命令とを生成し、生成した設定命令や実行命令を、情報処理装置１００へ送信することができる。また、制御装置２００は、例えば上記のような構成をとることによって、ユーザ操作に基づくユーザプログラムの修正に係る処理や、修正後のユーザプログラムを情報処理装置１００へ送信する処理を行うことが可能である。
【０１０１】
再度図６を参照して、情報処理装置１００の構成の一例について説明する。通信部１０２は、情報処理装置１００が備える通信手段であり、ネットワークを介して（あるいは、直接的に）、制御装置２００やサーバなどの外部装置と無線／有線で通信を行う。また、通信部１０２は、例えば制御部１０８により通信が制御される。通信部１０２を備えることによって、情報処理装置１００は、制御装置２００などの外部装置から送信される設定命令や実行命令などに基づいて、本実施形態に係る情報処理方法に係る処理を行うことができる。
【０１０２】
ここで、通信部１０２としては、例えば、通信アンテナおよびＲＦ回路や、シリアルポートおよび送受信回路、ＬＡＮ端子および送受信回路などが挙げられるが、通信部１０２の構成は、上記に限られない。例えば、通信部１０２は、ＵＳＢ端子および送受信回路など通信を行うことが可能な任意の規格に対応する構成や、ネットワークに対応する構成をとることができる。
【０１０３】
第１の記憶部１０４は、情報処理装置１００が備える記憶手段であり、例えば、ブートプログラムやシステムプログラムなどの制御部１０８が使用するプログラムや、演算パラメータなどの制御用データ、ユーザプログラムなどを記憶する。図６では、ブートプログラム１２０と、システムプログラム１２２と、ユーザプログラム１２４、・・・とが、第１の記憶部１０４に記憶されている例を示している。
【０１０４】
ここで、第１の記憶部１０４としては、例えば、フラッシュＲＯＭなどのＮＯＲデバイスが挙げられる。また、第１の記憶部１０４の構成としては、例えば図１のＡに示す構成が挙げられる。
【０１０５】
第２の記憶部１０６は、情報処理装置１００が備える他の記憶手段であり、例えば、制御部１０８により実行されるプログラムやアプリケーションなどを一時的に記憶する。第２の記憶部１０６の構成としては、例えば図１のＢに示す構成が挙げられる。
【０１０６】
制御部１０８は、例えばＭＰＵやＭＭＵなどで構成され、情報処理装置１００全体を制御する役目を果たす。また、制御部１０８は、例えば、設定部１１０と、実行部１１２とを備え、本実施形態に係る情報処理方法に係る処理を主導的に行う役目を果たす。
【０１０７】
設定部１１０は、上記（１）の処理（設定処理）を主導的に行う役目を果たし、設定命令に基づいて、ブレークポイントを設定する。
【０１０８】
より具体的には、設定部１１０は、例えば、設定命令が示すブレークポイントのアドレスを含む、第１の記憶部１０４に記憶されているユーザプログラムの一部のコードを、第２の記憶部１０６にコピーし、コピーされたコードに対して設定命令に基づくブレークポイントを設定する。また、設定命令が示すブレークポイントのアドレスを含むユーザプログラムの一部のコードが、第２の記憶部１０６に記憶されている場合には、設定部１１０は、例えば、第２の記憶部１０６に記憶されているコードに対して、設定命令に基づくブレークポイントを設定する。
【０１０９】
また、設定部１１０は、上記第３の例に係る処理を主導的に行う役目を果たしてもよい。
【０１１０】
実行部１１２は、上記（２）の処理（実行処理）を主導的に行う役目を果たし、実行命令に基づいて、ユーザプログラムを実行する。より具体的には、実行部１１２は、実行命令が示す実行開始アドレスから、第１の記憶部１０４に記憶されているユーザプログラムの実行を開始する。そして、実行部１１２は、第１の記憶部１０４に記憶されているユーザプログラムのうち、第２の記憶部１０６にコピーされた一部のコード部分については、第２の記憶部１０６に記憶されているコードを実行する。
【０１１１】
また、実行部１１２は、上記第２の例に係る処理を主導的に行う役目を果たしてもよい。
【０１１２】
より具体的には、実行部１１２は、例えば、受信されたユーザプログラムと、第１の記憶部１０４に記憶されているユーザプログラムとを比較し、コードが異なる部分がある場合には、受信されたユーザプログラムのうち、コードが異なる部分を含む一部のコードを、第２の記憶部１０６にコピーする。また、実行部１１２は、実行命令が示す実行開始アドレスから、第１の記憶部１０４に記憶されているユーザプログラムの実行を開始し、第１の記憶部１０４に記憶されているユーザプログラムのうち、第２の記憶部１０６にコピーされた一部のコードに対応するコード部分については、第２の記憶部１０６に記憶されているコードを実行する。
【０１１３】
なお、実行部１１２は、設定部１１０と連携して上記第２の例に係る処理を行うことも可能である。設定部１１０と実行部１１２とが連携して処理を行う場合には、情報処理装置１００では、上記ユーザプログラムの比較に係る処理と、上記一部のコードを第２の記憶部１０６にコピーする処理とは、設定部１１０が行い、実行命令に基づく処理を実行部１１２が行う。
【０１１４】
また、実行部１１２は、上記第３の例に係る処理を主導的に行う役目を果たしてもよい。
【０１１５】
制御部１０８は、例えば、設定部１１０、および実行部１１２を備えることによって、本実施形態に係る情報処理方法に係る処理を主導的に行う。また、設定部１１０と実行部１１２とは、例えば、第１の記憶部１０４に記憶されているシステムプログラム１２２を用いて処理を行う（例えば、システムプログラムが実行されることによって起動するシステムに処理を行わせる）。なお、設定部１１０と実行部１１２とが、システムプログラム１２２を用いて処理を行わないことも可能である。
【０１１６】
情報処理装置１００は、例えば図６に示す構成によって、本実施形態に係る情報処理方法に係る処理（例えば、上記（１）の処理（設定処理）および上記（２）の処理（実行処理）や、上記第２の例に係る処理、上記第３の例に係る処理）を行う。したがって、情報処理装置１００は、例えば図６に示す構成によって、エミュレータを用いずにプログラムのデバックを実現することができる。
【０１１７】
なお、本実施形態に係る情報処理装置の構成は、図６に示す構成に限られない。例えば、本実施形態に係る情報処理装置がスタンドアロンで処理を行う構成である場合には、本実施形態に係る情報処理装置は、通信部１０２を備えていなくてもよい。
【０１１８】
以上のように、本実施形態に係る情報処理装置は、本実施形態に係る情報処理方法に係る処理として、例えば、上記（１）の処理（設定処理）および上記（２）の処理（実行処理）を行う。ここで、本実施形態に係る情報処理装置は、上記（１）の処理（設定処理）において、例えば、設定命令が示すアドレスを含むＲＯＭ（第１の記憶部）に記憶されているユーザプログラムの一部のコードを、ＲＡＭ（第２の記憶部）のデバック用の領域にコピーして、ＲＡＭにコピーされたコードにブレークポイントを設定する。また、本実施形態に係る情報処理装置は、上記（２）の処理（実行処理）において、実行命令が示す実行開始アドレスから、ＲＯＭに記憶されているユーザプログラムの実行を開始し、ＲＯＭに記憶されているユーザプログラムのうち、ＲＡＭにコピーされた一部のコード部分については、ＲＡＭに記憶されているコードを実行する。例えば上記のように、ブレークポイントの設定と、ブレークポイントが設定されたユーザプログラムの実行とが行われることによって、デバックを行うユーザ（いわゆる、デバッガ）は、エミュレータを用いることなく、デバックを行うことができる。
【０１１９】
したがって、本実施形態に係る情報処理装置は、エミュレータを用いずにプログラムのデバックを実現することができる。
【０１２０】
また、本実施形態に係る情報処理装置は、ＲＡＭ（第２の記憶部）におけるデバック用の領域（ユーザプログラムの一部のコードをコピーすることが可能な領域）のサイズが、ＲＯＭ（第１の記憶部）における、ユーザプログラムを記憶することが可能な領域のサイズよりも小さくても、デバックを実現することが可能である。よって、本実施形態に係る情報処理装置では、本実施形態に係る情報処理装置が組み込み機器である場合においても、本実施形態に係る情報処理装置を、例えば、ユーザープログラム開発時にＲＡＭ（第２の記憶部）を拡張するなど、デバッグ環境用のハードウェア構成とする必要がない。
【０１２１】
したがって、本実施形態に係る情報処理装置は、デバックに係るコストの削減を図ることができる。
【０１２２】
また、エミュレータを用いてデバックが行われる場合には、例えば、システムのプログラムや、ＭＰＵのアーキテクチャなどのハードウェアに係る情報などが、エミュレータを用いるユーザに公開される恐れがある。これに対して、本実施形態に係る情報処理装置では、本実施形態に係る情報処理方法に係る処理を、システムプログラムが実行されることによって起動するシステム上で行うことが可能であるので、ユーザに公開する情報を制限する（または、制御する）ことができる。また、本実施形態に係る情報処理装置では、システムプログラムが実行されることによって起動するシステムによってユーザプログラムを管理することが可能であるので、ユーザプログラムごとに権限を管理することができる。さらに、本実施形態に係る情報処理装置では、システムプログラムが実行されることによって起動するシステムによってユーザプログラムを管理することが可能であるので、ユーザプログラムにより実現されるサービスの切り替えが生じても、当該切り替えに影響を受けることなく処理を行うことが可能である。
【０１２３】
したがって、本実施形態に係る情報処理装置は、システムプログラムの保護や、セキュリティの向上を図ることができる。
【０１２４】
また、ＲＯＭにユーザプログラムが展開（記憶）される機器において、ＲＯＭ上でデバックを行うと、コード修正などによって生じるプログラムコードの展開に時間がかかる可能性が高い。これに対して、本実施形態に係る情報処理装置は、例えば、修正後のユーザプログラムと修正前のユーザプログラムの差分のみをＲＡＭ（第２の記憶部）上に展開させるので、プログラムコードの展開に要する時間をより短縮することが可能である。また、プログラムコードの展開に要する時間をより短縮することが可能であるので、制御装置などの外部装置から修正後のユーザプログラムをダウンロードする場合においても、ダウンロードが完了する時間も併せて短縮することができる。
【０１２５】
したがって、本実施形態に係る情報処理装置は、デバック効率の向上を図ることができる。
【０１２６】
以上、本実施形態として情報処理装置１００を挙げて説明したが、本実施形態は、かかる形態に限られない。本実施形態は、例えば、ＰＣ（Personal  Computer）やサーバなどのコンピュータ、テレビ受像機などの表示装置、携帯電話やスマートフォンなどの通信装置、映像／音楽再生装置（または映像／音楽記録再生装置）、ゲーム機など、様々な機器に適用することができる。また、本実施形態は、例えば、上記のような様々な機器に組み込むことが可能な、記録媒体の制御ＩＣに適用することもできる。
【０１２７】
また、本実施形態として制御装置２００を挙げて説明したが、本実施形態は、かかる形態に限られない。本実施形態は、例えば、ＰＣやサーバなどのコンピュータ、携帯電話やスマートフォンなどの通信装置、ゲーム機など、様々な機器に適用することができる。
【０１２８】
（本実施形態に係るプログラム）
コンピュータを、本実施形態に係る情報処理装置として機能させるためのプログラム（例えば、上記（１）の処理（設定処理）および上記（２）の処理（実行処理）や、上記第２の例に係る処理、上記第３の例に係る処理など、本実施形態に係る情報処理方法に係る処理を実行することが可能なプログラム）によって、エミュレータを用いることなくプログラムのデバックを行うことができる。
【０１２９】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１３０】
例えば、本実施形態に係る情報処理装置は、図６に示す設定部１１０、および実行部１１２を個別に備える（例えば、それぞれを個別の処理回路で実現する）ことができる。
【０１３１】
また、上記では、コンピュータを、本実施形態に係る情報処理装置として機能させるためのプログラム（コンピュータプログラム）が提供されることを示したが、本実施形態は、さらに、上記プログラムをそれぞれ記憶させた記録媒体も併せて提供することができる。
【０１３２】
上述した構成は、本実施形態の一例を示すものであり、当然に、本開示の技術的範囲に属するものである。
【０１３３】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
プログラムを記憶可能な第１の記憶部と、
第２の記憶部と、
プログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定する設定部と、
プログラムの実行を開始させる実行命令に基づいて、プログラムを実行する実行部と、
を備え、
前記設定部は、
前記設定命令が示すブレークポイントのアドレスを含む、前記第１の記憶部に記憶されているプログラムの一部のコードを、前記第２の記憶部に記憶させ、
記憶されたコードに前記設定命令に基づくブレークポイントを設定し、
前記実行部は、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された一部のコード部分については、前記第２の記憶部に記憶されているコードを実行する、情報処理装置。
（２）
前記設定部は、前記設定命令が示すブレークポイントのアドレスを含むプログラムの一部のコードが、前記第２の記憶部に記憶されている場合には、
前記第２の記憶部に記憶されているコードに前記設定命令に基づくブレークポイントを設定する、（１）に記載の情報処理装置。
（３）
プログラムが受信された場合、
前記実行部は、
受信された前記プログラムと、受信された前記プログラムと対応する、前記第１の記憶部に記憶されているプログラムとを比較し、
コードが異なる部分がある場合には、受信された前記プログラムのうち、コードが異なる部分を含む一部のコードを、前記第２の記憶部に記憶させ、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された前記一部のコードに対応するコード部分については、前記第２の記憶部に記憶されているコードを実行する、（１）または（２）に記載の情報処理装置。
（４）
前記第１の記憶部には、前記プログラムを管理するシステムプログラムが記憶され、
前記設定部と前記実行部とは、前記システムプログラムを用いて処理を行う、（１）〜（３）のいずれか１つに記載の情報処理装置。
（５）
前記設定命令と前記実行命令とを送信する制御装置と通信を行う、通信部をさらに備える、（１）〜（４）のいずれか１つに記載の情報処理装置。
（６）
前記第２の記憶部における、プログラムの一部のコードを記憶することが可能な領域のサイズは、前記第１の記憶部における、プログラムを記憶することが可能な領域のサイズよりも小さい、（１）〜（５）のいずれか１つに記載の情報処理装置。
（７）
前記設定部は、前記設定命令が示すブレークポイントのアドレスを含む、前記第１の記憶部に記憶されているプログラムの一部のコードを、前記第２の記憶部にコピーすることによって、前記プログラムの一部のコードを前記第２の記憶部に記憶させる、（１）〜（６）のいずれか１つに記載の情報処理装置。
（８）
プログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定するステップと、
プログラムの実行を開始させる実行命令に基づいて、プログラムを実行するステップと、
を有し、
前記設定するステップでは、
前記設定命令が示すブレークポイントのアドレスを含む、第１の記憶部に記憶されているプログラムの一部のコードを、第２の記憶部に記憶させ、
記憶されたコードに前記設定命令に基づくブレークポイントを設定し、
前記実行するステップでは、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された一部のコード部分については、前記第２の記憶部に記憶されているコードを実行する、情報処理方法。
（９）
プログラムに対してブレークポイントを設定させる設定命令に基づいて、ブレークポイントを設定する機能、
プログラムの実行を開始させる実行命令に基づいて、プログラムを実行する機能、
をコンピュータに実現させ、
前記設定する機能は、
前記設定命令が示すブレークポイントのアドレスを含む、第１の記憶部に記憶されているプログラムの一部のコードを、第２の記憶部に記憶させ、
記憶されたコードに前記設定命令に基づくブレークポイントを設定し、
前記実行する機能は、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された一部のコード部分については、前記第２の記憶部に記憶されているコードを実行する、プログラム。
（１０）
プログラムに対してブレークポイントを設定させる設定命令と、プログラムの実行を開始させる実行命令とを送信する制御装置と、
前記制御装置と通信を行う情報処理装置と、
を有し、
前記情報処理装置は、
前記制御装置と通信を行う通信部と、
プログラムを記憶可能な第１の記憶部と、
第２の記憶部と、
前記通信部が受信した設定命令に基づいて、ブレークポイントを設定する設定部と、
前記通信部が受信した実行命令に基づいて、プログラムを実行する実行部と、
を備え、
前記設定部は、
前記設定命令が示すブレークポイントのアドレスを含む、前記第１の記憶部に記憶されているプログラムの一部のコードを、前記第２の記憶部に記憶させ、
記憶されたコードに前記設定命令に基づくブレークポイントを設定し、
前記実行部は、
前記実行命令が示す実行開始アドレスから、前記第１の記憶部に記憶されているプログラムの実行を開始し、
前記第１の記憶部に記憶されているプログラムのうち、前記第２の記憶部に記憶された一部のコード部分については、前記第２の記憶部に記憶されているコードを実行する、情報処理システム。
【符号の説明】
【０１３４】
１００    情報処理装置
１０２    通信部
１０４    第１の記憶部
１０６    第２の記憶部
１０８    制御部
１１０    設定部
１１２    実行部
【図１】
2013137664.tif 000003
【図２】
2013137664.tif 000004
【図３】
2013137664.tif 000005
【図４】
2013137664.tif 000006
【図５】
2013137664.tif 000007
【図６】
2013137664.tif 000008
【図７】
2013137664.tif 000009