JP4494329B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP4494329B2
JP4494329B2 JP2005337006A JP2005337006A JP4494329B2 JP 4494329 B2 JP4494329 B2 JP 4494329B2 JP 2005337006 A JP2005337006 A JP 2005337006A JP 2005337006 A JP2005337006 A JP 2005337006A JP 4494329 B2 JP4494329 B2 JP 4494329B2
Authority
JP
Japan
Prior art keywords
unit
cpu
data
cpu unit
debug
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005337006A
Other languages
English (en)
Other versions
JP2007141138A (ja
Inventor
昭浩 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Mita Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyocera Mita Corp filed Critical Kyocera Mita Corp
Priority to JP2005337006A priority Critical patent/JP4494329B2/ja
Publication of JP2007141138A publication Critical patent/JP2007141138A/ja
Application granted granted Critical
Publication of JP4494329B2 publication Critical patent/JP4494329B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、プログラムを実行するCPUと前記プログラムを記憶するメモリとを備える複数のCPUユニットが互いに通信可能に接続された情報処理装置に関するものである。
既に広く利用されているプリンタ装置、複写機、ファクシミリ装置などの情報処理装置等において、装置を制御するために複数のCPUを協調動作させることは近年多く行われている。これらのCPUは通常、バス又はシリアルインターフェースにより接続される。これらの各CPU上で動作するファームウェアをデバッグするには、一般に各CPUにデバッグ用のハードウェア資源が搭載される。これには例えば各CPUにオンチップデバッグ機能を有するものを使用したり、各CPUにデバッグ用の装置であるICE(インサーキットエミュレータ)を接続するためのソケットを備えることが一般的である。また、各CPUに外部装置との通信手段を設けることも行われている。
また、CPUから読み書き可能なメモリをCPU毎に設け、そのメモリ間のデータ転送をDMA(ダイレクトメモリアクセス)により行い、一方のCPUが制御する制御部から他方のCPUが制御する制御部を監視する方法も提案されている。
例えば、特許文献1には、読み出し書き込み両用の第1のメモリ、この第1のメモリ内のデータにもとづいて制御対象を制御する制御部、及び監視用の第1の通信部を含むコントローラユニットと、読み出し書き込み両用の第2のメモリ、この第2のメモリ内のデータを監視する監視部、及び監視用の第2の通信部を含む監視用ユニットと、コントローラユニットに設けたダイレクトメモリアクセス部とを有するコントローラユニットの監視装置が提案されている。このコントローラユニットの監視装置は、コントローラユニットの第1のメモリ内のデータをダイレクトメモリアクセス部により第1の通信部に転送すると共に、当該データを第1の通信部から第2の通信部へ、更に監視用ユニットの第2のメモリに転送し、この転送されたデータに基づいて監視部にて第1のメモリ内のデータの時間的変化を監視し、この監視結果にもとづいて第2のメモリのデータを更新し、この更新されたデータを第2の通信部から第1の通信部に転送し、更にダイレクトメモリアクセス部により第1の通信部から第1のメモリに転送している。
また、上述のようにデバッグ機能を各CPUに設ける場合、デバッグ用のハードウェア資源が必要となるため、そのハードウェア資源は確実にコストに反映され特にローエンドを対象とした情報処理装置ではこのコスト増加は容認されないものである。そこで、複数のCPUのうち第1のCPUにはデバッグ機能を設け、第2のCPUにはデバッグ機能を設けないことが考えられる。この場合、第2のCPUのファームウェアをデバッグするデバッグ手段はICEに限られるが、ICEを使用するために高価なソケットを用意する必要があり、複数枚の量産基板毎にソケットを装備することはコストの面で困難であった。このようなデバッグ手段を装備していない場合は設計時、製造時、ユーザ使用時に不具合が発生してもその真の原因を突き止めるために多くの時間を費やしてしまい、メーカ、ユーザ双方にとって著しく不利となる問題点があった。
そこで、デバッグ機能を有する第1のCPUと、デバッグ機能を有しない第2のCPUとからなる複数のCPUで構成され、第1のCPUと第2のCPUとは通信にて協調動作する情報処理装置において、通信プロトコルに第2のCPUをデバッグする通信プロトコルを内包し、第1のCPUのデバッグ機能を利用して第2のCPUをデバッグするリモートデバッグ方法が提案されている。
また、上記のハード構成の情報処理装置において、デバッグ機能を有しない第2のCPUをデバッグする通信プロトコルに、第2のCPU上で動作するファームウェアのサブルーチンを直接実行する情報を通信プロトコルに内包するリモートデバッグ方法が提案されている。
特許第3027062号公報
しかしながら、上記のリモートデバッグ方法では、第2のCPUのファームウェアに不具合が発生した後のRAMの内容等を、第1のCPUのデバッグ機能を用いて取得し、確認するに過ぎなかった。そのため、ソフトウェアのデバッグとして最も有効と考えられる状態遷移を伴う状態の自動表示の機能を有しておらず、デバッグ機能を有していないCPUの不具合が発生した瞬間の状態を捉えることが困難であった。
本発明は、上記の問題を解決するためになされたもので、デバッグ機能を有していないCPUの不具合が発生した瞬間の状態を捉えることができる情報処理装置を提供することを目的とするものである。
本発明に係る情報処理装置は、プログラムを実行するCPUと前記プログラムを記憶するメモリとデータを送受信する通信部とを備える複数のCPUユニットが互いに通信可能に接続された情報処理装置であって、複数のCPUユニットが備える各CPUが実行するプログラムをデバッグし、前記プログラムの実行中における前記CPUユニットの状態をユーザに通知するためのデバッグ機能を有する第1のCPUユニットと、前記デバッグ機能を有しない第2のCPUユニットとを備え、前記第2のCPUユニットの通信部は、前記第1のCPUユニットによって送信された開始指示信号を受信する開始指示信号受信手段を備え、前記第2のCPUユニットのCPUは、前記開始指示信号受信手段によって前記開始指示信号が受信された場合、前記第2のCPUユニットのメモリに記憶されているプログラムを実行し、当該プログラムに含まれる所定のメッセージを出力するための出力関数を実行することで、前記メッセージを前記プログラムの実行中における前記第2のCPUユニットの状態を表すデータとして前記プログラムから抽出する抽出手段を備え、前記第2のCPUユニットの通信部は、前記抽出手段によって抽出されたデータを前記第1のCPUユニットへ送信するデータ送信手段をさらに備え、前記第1のCPUユニットの通信部は、前記データ送信手段によって送信されたデータを受信するデータ受信手段を備え、前記第1のCPUユニットのCPUは、前記データ受信手段によって受信されたデータを外部装置が有する表示装置に表示するための指示を前記外部装置に対して行うことにより、デバッグ機能を実行する実行手段を備え、前記第2のCPUユニットのメモリは、前記抽出手段によって抽出されたデータを記憶する記憶手段を備え、前記第2のCPUユニットのCPUは、前記記憶手段にデータが記憶されたか否かを判断する判断手段をさらに備え、前記第2のCPUユニットの通信部は、前記判断手段によって前記記憶手段にデータが記憶されたと判断された場合、前記第1のCPUユニットへ割り込み信号を送信する割り込み信号送信手段をさらに備え、前記第1のCPUユニットの通信部は、前記割り込み信号送信手段によって送信された割り込み信号を受信する割り込み信号受信手段と、前記割り込み信号受信手段によって割り込み信号が受信された場合、データを要求するためのデータ要求信号を前記第2のCPUユニットへ送信するデータ要求信号送信手段とをさらに備え、前記第2のCPUユニットの通信部は、前記データ要求信号送信手段によって送信されたデータ要求信号を受信するデータ要求信号受信手段をさらに備え、前記第2のCPUユニットのCPUは、前記データ要求信号受信手段によってデータ要求信号が受信された場合、前記記憶手段に記憶されているデータを読み出す読出手段をさらに備え、前記データ送信手段は、前記読出手段によって読み出されたデータを前記第1のCPUユニットへ送信し、前記第1のCPUユニットの通信部は、コマンドを前記第1のCPUユニットへ送信すると共に、前記コマンドの実行結果を前記表示装置に表示する前記外部装置によって送信されるコマンドを受信するコマンド受信手段をさらに備え、前記コマンドは、第1のCPUユニット及び第2のCPUユニットのうちのいずれをデバッグするかを指定する情報を含み、前記第1のCPUユニットのCPUは、前記コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、前記データ要求信号送信手段によるデータ要求信号を送信しないよう設定する第1の設定手段をさらに備え、前記実行手段は、前記コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、前記コマンドに応じて前記第1のCPUユニットのメモリに記憶されているプログラムを実行し、前記プログラムの実行中における前記第1のCPUユニットの状態を表すデータを前記表示装置に表示するための指示を前記外部装置に対して行う。
この構成によれば、情報処理装置は、複数のCPUユニットが備える各CPUが実行するプログラムをデバッグし、プログラムの実行中におけるCPUユニットの状態をユーザに通知するためのデバッグ機能を有する第1のCPUユニットと、デバッグ機能を有しない第2のCPUユニットとを備えている。そして、第2のCPUユニットにおいて、第1のCPUユニットによって送信された開始指示信号が受信された場合、第2のCPUユニットのメモリに記憶されているプログラムが実行され、当該プログラムに含まれる所定のメッセージを出力するための出力関数が実行されることで、メッセージがプログラムの実行中における第2のCPUユニットの状態を表すデータとしてプログラムから抽出され、抽出されたデータが第1のCPUユニットへ送信される。第1のCPUユニットにおいて、第2のCPUユニットから送信されたデータが受信され、受信されたデータを外部装置が有する表示装置に表示するための指示を外部装置に対して行うことにより、デバッグ機能が実行される。そして、第2のCPUユニットにおいて、抽出されたデータが記憶手段に記憶され、記憶手段にデータが記憶されたか否かが判断され、記憶手段にデータが記憶されたと判断された場合、第1のCPUユニットへ割り込み信号が送信される。第1のCPUユニットにおいて、第2のCPUユニットから送信された割り込み信号が受信された場合、データを要求するためのデータ要求信号が第2のCPUユニットへ送信される。第2のCPUユニットにおいて、第1のCPUユニットから送信されたデータ要求信号が受信された場合、記憶手段に記憶されているデータが読み出され、読み出されたデータが第1のCPUユニットへ送信される。
また、第1のCPUユニットにおいて、外部装置によって送信されるコマンドが受信される。このコマンドには、第1のCPUユニット及び第2のCPUユニットのうちのいずれをデバッグするかを指定する情報が含まれる。第1のCPUユニットにおいて、コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、データ要求信号送信手段によるデータ要求信号を送信しないよう設定される。そして、第1のCPUユニットにおいて、コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、コマンドに応じて第1のCPUユニットのメモリに記憶されているプログラムが実行され、プログラムの実行中における第1のCPUユニットの状態を表すデータを表示装置に表示するための指示が外部装置に対して行われる。
したがって、デバッグ機能を有しない第2のCPUユニットにおいてデバッグに用いるデータが自動的に抽出され、第1のCPUユニットへ送信されるので、デバッグ機能を有していないCPUの不具合が発生した瞬間の状態を捉えることができる。
また、第2のCPUユニットのメモリに記憶されているプログラムが実行され、当該プログラムに含まれる所定のメッセージを出力するための出力関数が実行されることで、メッセージがプログラムの実行中における第2のCPUユニットの状態を表すデータとしてプログラムから抽出されるので、予めプログラムに記述されている出力関数を実行することにより、容易にデバッグに用いるデータを抽出することができる。
また、デバッグ用のデータが記憶手段に記憶された場合、第2のCPUユニットから第1のCPUユニットへ割り込み信号が送信されるので、第1のCPUユニットは常に第2のCPUユニットを監視する必要がなく、第2のCPUユニットにおいてデバッグ用のデータが抽出された場合にのみ第2のCPUユニットをデバッグすることができる。
また、第1のCPUユニットをデバッグする場合、第2のCPUユニットからの割り込み信号を受信したとしてもデータ要求信号が送信されず、第2のCPUユニットからデバッグ用のデータが送信されないので、第1のCPUユニットにおけるデバッグ用のデータと第2のCPUユニットにおけるデバッグ用のデータとが同時に出力されることがなくなり、第1のCPUユニットのみをデバッグすることができる。
本発明に係る情報処理装置は、プログラムを実行するCPUと前記プログラムを記憶するメモリとデータを送受信する通信部とを備える複数のCPUユニットが互いに通信可能に接続された情報処理装置であって、複数のCPUユニットが備える各CPUが実行するプログラムをデバッグし、前記プログラムの実行中における前記CPUユニットの状態をユーザに通知するためのデバッグ機能を有する第1のCPUユニットと、前記デバッグ機能を有しない第2のCPUユニットとを備え、前記第2のCPUユニットの通信部は、前記第1のCPUユニットによって送信された開始指示信号を受信する開始指示信号受信手段を備え、前記第2のCPUユニットのCPUは、前記開始指示信号受信手段によって前記開始指示信号が受信された場合、前記第2のCPUユニットのメモリに記憶されているプログラムを実行し、当該プログラムに含まれる所定のメッセージを出力するための出力関数を実行することで、前記メッセージを前記プログラムの実行中における前記第2のCPUユニットの状態を表すデータとして前記プログラムから抽出する抽出手段を備え、前記第2のCPUユニットの通信部は、前記抽出手段によって抽出されたデータを前記第1のCPUユニットへ送信するデータ送信手段をさらに備え、前記第1のCPUユニットの通信部は、前記データ送信手段によって送信されたデータを受信するデータ受信手段を備え、前記第1のCPUユニットのCPUは、前記データ受信手段によって受信されたデータを外部装置が有する表示装置に表示するための指示を前記外部装置に対して行うことにより、デバッグ機能を実行する実行手段を備え、前記第2のCPUユニットのメモリは、前記抽出手段によって抽出されたデータを記憶する記憶手段を備え、前記第2のCPUユニットのCPUは、前記記憶手段にデータが記憶されたか否かを判断する判断手段をさらに備え、前記第2のCPUユニットの通信部は、前記判断手段によって前記記憶手段にデータが記憶されたと判断された場合、前記第1のCPUユニットへ割り込み信号を送信する割り込み信号送信手段をさらに備え、前記第1のCPUユニットの通信部は、前記割り込み信号送信手段によって送信された割り込み信号を受信する割り込み信号受信手段と、前記割り込み信号受信手段によって割り込み信号が受信された場合、データを要求するためのデータ要求信号を前記第2のCPUユニットへ送信するデータ要求信号送信手段とをさらに備え、前記第2のCPUユニットの通信部は、前記データ要求信号送信手段によって送信されたデータ要求信号を受信するデータ要求信号受信手段をさらに備え、前記第2のCPUユニットのCPUは、前記データ要求信号受信手段によってデータ要求信号が受信された場合、前記記憶手段に記憶されているデータを読み出す読出手段をさらに備え、前記データ送信手段は、前記読出手段によって読み出されたデータを前記第1のCPUユニットへ送信し、前記第1のCPUユニットの通信部は、コマンドを前記第1のCPUユニットへ送信すると共に、前記コマンドの実行結果を前記表示装置に表示する前記外部装置によって送信されるコマンドを受信するコマンド受信手段をさらに備え、前記コマンドは、第1のCPUユニット及び第2のCPUユニットのうちのいずれをデバッグするかを指定する情報を含み、前記第1のCPUユニットのCPUは、前記コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、第2のCPUユニットが割り込み信号を送信しないように設定するための設定信号を出力する設定信号出力手段をさらに備え、前記第1のCPUユニットの通信部は、前記設定信号出力手段によって出力された前記設定信号を第2のCPUユニットへ送信する設定信号送信手段をさらに備え、前記第2のCPUユニットの通信部は、前記設定信号送信手段によって送信された前記設定信号を受信する設定信号受信手段をさらに備え、前記第2のCPUユニットのCPUは、前記設定信号受信手段によって前記設定信号が受信された場合、前記割り込み信号送信手段による割り込み信号を送信しないよう設定する第2の設定手段をさらに備え、前記実行手段は、前記コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、前記コマンドに応じて前記第1のCPUユニットのメモリに記憶されているプログラムを実行し、前記プログラムの実行中における前記第1のCPUユニットの状態を表すデータを前記表示装置に表示するための指示を前記外部装置に対して行うことが好ましい。
この構成によれば、情報処理装置は、複数のCPUユニットが備える各CPUが実行するプログラムをデバッグし、プログラムの実行中におけるCPUユニットの状態をユーザに通知するためのデバッグ機能を有する第1のCPUユニットと、デバッグ機能を有しない第2のCPUユニットとを備えている。そして、第2のCPUユニットにおいて、第1のCPUユニットによって送信された開始指示信号が受信された場合、第2のCPUユニットのメモリに記憶されているプログラムが実行され、当該プログラムに含まれる所定のメッセージを出力するための出力関数が実行されることで、メッセージがプログラムの実行中における第2のCPUユニットの状態を表すデータとしてプログラムから抽出され、抽出されたデータが第1のCPUユニットへ送信される。第1のCPUユニットにおいて、第2のCPUユニットから送信されたデータが受信され、受信されたデータを外部装置が有する表示装置に表示するための指示を外部装置に対して行うことにより、デバッグ機能が実行される。そして、第2のCPUユニットにおいて、抽出されたデータが記憶手段に記憶され、記憶手段にデータが記憶されたか否かが判断され、記憶手段にデータが記憶されたと判断された場合、第1のCPUユニットへ割り込み信号が送信される。第1のCPUユニットにおいて、第2のCPUユニットから送信された割り込み信号が受信された場合、データを要求するためのデータ要求信号が第2のCPUユニットへ送信される。第2のCPUユニットにおいて、第1のCPUユニットから送信されたデータ要求信号が受信された場合、記憶手段に記憶されているデータが読み出され、読み出されたデータが第1のCPUユニットへ送信される。
また、第1のCPUユニットにおいて、外部装置によって送信されるコマンドが受信される。このコマンドには、第1のCPUユニット及び第2のCPUユニットのうちのいずれをデバッグするかを指定する情報が含まれる。第1のCPUユニットにおいて、コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、第2のCPUユニットが割り込み信号を送信しないように設定するための設定信号が出力され、出力された設定信号が第2のCPUユニットへ送信される。第2のCPUユニットにおいて、第1のCPUユニットによって送信された設定信号が受信された場合、割り込み信号送信手段による割り込み信号を送信しないよう設定される。そして、第1のCPUユニットにおいて、コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、コマンドに応じて第1のCPUユニットのメモリに記憶されているプログラムが実行され、プログラムの実行中における第1のCPUユニットの状態を表すデータを表示装置に表示するための指示が外部装置に対して行われる。
したがって、デバッグ機能を有しない第2のCPUユニットにおいてデバッグに用いるデータが自動的に抽出され、第1のCPUユニットへ送信されるので、デバッグ機能を有していないCPUの不具合が発生した瞬間の状態を捉えることができる。
また、第2のCPUユニットのメモリに記憶されているプログラムが実行され、当該プログラムに含まれる所定のメッセージを出力するための出力関数が実行されることで、メッセージがプログラムの実行中における第2のCPUユニットの状態を表すデータとしてプログラムから抽出されるので、予めプログラムに記述されている出力関数を実行することにより、容易にデバッグに用いるデータを抽出することができる。
また、デバッグ用のデータが記憶手段に記憶された場合、第2のCPUユニットから第1のCPUユニットへ割り込み信号が送信されるので、第1のCPUユニットは常に第2のCPUユニットを監視する必要がなく、第2のCPUユニットにおいてデバッグ用のデータが抽出された場合にのみ第2のCPUユニットをデバッグすることができる。
また、第1のCPUユニットをデバッグする場合、第2のCPUユニットから割り込み信号が送信されず、第2のCPUユニットからデバッグ用のデータが送信されないので、第1のCPUユニットにおけるデバッグ用のデータと第2のCPUユニットにおけるデバッグ用のデータとが同時に出力されることがなくなり、第1のCPUユニットのみをデバッグすることができる。
また、上記の情報処理装置において、前記情報処理装置は、画像を形成する画像形成装置であり、前記第1のCPUユニットは、前記画像形成装置全体を制御する制御部を含み、前記第2のCPUユニットは、前記画像形成装置が内蔵する駆動源を制御するエンジン制御部を含むことが好ましい。
この構成によれば、画像形成装置が内蔵する駆動源を制御するエンジン制御部のように装置内部に組み込まれており、外部装置を接続して直接デバッグすることが困難なCPUユニットであっても、外部装置を接続することが容易な画像形成装置全体を制御する制御部を介してデバッグすることができる。
本発明によれば、デバッグ機能を有しない第2のCPUユニットにおいてデバッグに用いるデータが自動的に抽出され、第1のCPUユニットへ送信されるので、デバッグ機能を有していないCPUの不具合が発生した瞬間の状態を捉えることができる。
また、第2のCPUユニットのメモリに記憶されているプログラムが実行され、当該プログラムに含まれる所定のメッセージを出力するための出力関数が実行されることで、メッセージがプログラムの実行中における第2のCPUユニットの状態を表すデータとしてプログラムから抽出されるので、予めプログラムに記述されている出力関数を実行することにより、容易にデバッグに用いるデータを抽出することができる。
また、デバッグ用のデータが記憶手段に記憶された場合、第2のCPUユニットから第1のCPUユニットへ割り込み信号が送信されるので、第1のCPUユニットは常に第2のCPUユニットを監視する必要がなく、第2のCPUユニットにおいてデバッグ用のデータが抽出された場合にのみ第2のCPUユニットをデバッグすることができる。
また、第1のCPUユニットをデバッグする場合、第2のCPUユニットからの割り込み信号を受信したとしてもデータ要求信号が送信されず、第2のCPUユニットからデバッグ用のデータが送信されないので、第1のCPUユニットにおけるデバッグ用のデータと第2のCPUユニットにおけるデバッグ用のデータとが同時に出力されることがなくなり、第1のCPUユニットのみをデバッグすることができる。
以下、本発明の一実施形態に係る情報処理装置について図面を参照しながら説明する。図1は、本発明に係る情報処理装置の一例である画像形成装置及びそれに接続されるPC(パーソナルコンピュータ)のハードウェア構成の概要を示すブロック図である。画像形成装置10は、例えばプリンタ、複写機及びファクシミリ装置等である。なお、本実施形態においては画像形成装置10を情報処理装置の一例として説明するが、本発明は特にこれに限定されず、画像形成装置10以外の情報処理装置等にも適用可能である。
画像形成装置10は、通信により接続され協調して動作を行う2つのCPU(中央演算処理装置)11,21により制御される組み込み装置である。画像形成装置10は、第1CPUユニット1及び第2CPUユニット2を備えて構成される。第1CPUユニット1は、CPU11、ROM(リードオンリメモリ)12、RAM(ランダムアクセスメモリ)13、操作パネル部14、通信部15及び通信部16を備える。CPU11、ROM12、RAM13、操作パネル部14、通信部15及び通信部16は、ローカルなバスにより接続される。第2CPUユニット2は、CPU21、通信部22、ROM23及びRAM24を備える。CPU21、通信部22、ROM23及びRAM24は、ローカルなバスにより接続される。
第1CPUユニット1及び第2CPUユニット2は通信部15と通信部22とを接続することにより通信可能に接続されている。これらの通信部15,22は、例えばシリアル通信インターフェースであり、シリアル通信により通信が行われる。これは例えばバスによる接続であってもよい。画像形成装置10には第1及び第2CPUユニット1,2の他にこれらのCPUユニット1,2に接続されCPU11,21によって制御され画像形成機能(例えばコピー機能)を実行する部品群があるがここでは図示せず、説明を省略する。
なお、情報処理装置が画像形成装置である場合、第1CPUユニット1は、例えば画像形成装置全体を制御するコントローラ(制御部)であり、第2CPUユニット2は、例えば第1CPUユニット1によって制御され、画像形成装置が内蔵するローラやクラッチ等を駆動するモータ(駆動源)等を制御するエンジン制御部である。この場合、画像形成装置が内蔵する駆動源を制御するエンジン制御部のように装置内部に組み込まれており、PCを接続して直接デバッグすることが困難なCPUユニットであっても、PCを接続することが比較的容易な画像形成装置全体を制御する制御部を介してデバッグすることができる。また、第2CPUユニット2は、例えば第1CPUユニット1によって制御され、画像形成された用紙の後処理(ソート処理やステイプル処理等)を行う後処理装置であってもよい。
画像形成装置10にはユーザがデバッグ機能を操作する端末としてPC3が通信部16を介して接続されている。PC3は主にCPU31、通信部32、RAM33、HDD34、表示装置35及び入力装置36により構成される。以下に第1及び第2CPUユニット1,2及びPC3の各構成部の説明を行う。
CPU11は、ROM12に格納されたプログラムを実行しCPU21と協調して画像形成装置10を制御して画像形成等を行う。通信部16は、PC3を接続するためのもので、例えばシリアル通信インターフェースである。ROM12は、CPU11で実行するプログラムを格納するためのメモリである。このプログラムは、画像形成装置10を制御するファームウェアとデバッグ機能を与えるためのデバッガプログラムとを含む。RAM13は、CPU11に一時的な作業領域等を与えるためのメモリである。操作パネル部14は、画像形成装置10に対する操作指示をユーザが入力するためのもので例えば液晶ディスプレイ等の表示部とテンキー及びスタートキー等の操作キー部を有する。PC3の代わりに操作パネル部14をデバッグ機能の操作に使用するようにしてもよい。通信部15は、第2CPUユニット2の通信部22と接続するためのものであり、CPUユニット1,2間でのプロセッサ間通信メッセージ等を送受信しCPU11及びCPU21が協調して動作を行うため等に使用される。通信部16は、PC3の通信部32と接続するための例えばシリアル通信インターフェースである。
CPU21は、ROM23に格納されたプログラムを実行しCPU11と協調して画像形成装置10を制御して画像形成等を行う。通信部22は、通信部15と接続するためのものでCPUユニット1,2間でのプロセッサ間通信メッセージ等を送受信しCPU11及びCPU21が協調して動作を行うため等に使用される。ROM23は、CPU21で実行するプログラムを格納するためのメモリである。このプログラムは、第1CPUユニット1とは異なり、デバッガプログラムを含まず、ファームウェアのみを含む。RAM24は、CPU21に一時的な作業領域等を与えるためのメモリである。RAM24は、後述する送信バッファと変化ステータスバッファとを含む。
CPU31は、RAM33内のプログラムを実行する。通信部32は、第1CPUユニット1の通信部16と接続するための例えばシリアル通信インターフェースである。この通信インターフェースによりPC3から第1CPUユニット1へのデバッグコマンドの送信及び逆経路でデバッグコマンドに対する返信が行われる。RAM33は、HDD34に格納されたプログラムのうちCPU31で実行する部分を一時的に格納するための主記憶装置である。HDD(ハードディスク駆動装置)34は、CPU31で実行するプログラム等を格納する外部記憶装置である。表示装置35は、例えば液晶表示装置等で構成され、PC3の表示用ユーザインターフェースとして使用されるものである。入力装置36は、例えばキーボード及びマウスなどで構成され、PC3の入力用インターフェースとして使用されるものである。
ここで、第1CPUユニット1のCPU11、第2CPUユニット2のCPU21及びPC3のCPU31で実行されるプログラムについて説明する。CPU31で実行されるプログラムは、主にPC側デバッガプログラム及びOS(オペレーティングシステム)である。OSは、PC3の基本ソフトウェアでPC3にて実行するアプリケーションソフトウェア(PC側デバッガプログラムを含む)とPC3のハードウェアとの仲介を行うソフトウェアである。PC側デバッガプログラムは、PC3で動作するアプリケーションソフトウェアであり、ユーザにより入力装置36を使用して起動/終了され操作される。ユーザは、PC側デバッガプログラムの操作としてデバッグコマンド、及び第1CPUユニット1と第2CPUユニット2とのうちのいずれをデバッグするかを指定する。また、ユーザは、表示装置35へ表示されたデバッグコマンドの実行結果を確認することが可能である。
CPU11で実行されるプログラムは、第1CPUユニット側ファームウェア及び第1CPUユニット側デバッガプログラムである。第1CPUユニット側ファームウェアは、画像形成装置10、すなわち第1CPUユニット1及び第2CPUユニット2を制御するプログラムであり、デバッグ対象プログラム(デバッグされるプログラム)である。第1CPUユニット側デバッガプログラムは、CPU11が実行する第1CPUユニット側ファームウェア及びCPU21が実行する第2CPUユニット側ファームウェアのデバッグのための処理を行うプログラムである。画像形成装置10が起動された時点で第1CPUユニット側デバッガプログラムは起動される。第1CPUユニット側デバッガプログラムは必要に応じて第1CPUユニット側ファームウェアを起動する。
CPU21で実行されるプログラムは、第2CPUユニット側ファームウェアである。第2CPUユニット側ファームウェアは、第2CPUユニット2を制御するプログラムであり、デバッグ対象プログラムである。
PC側デバッガプログラムにおいてユーザが実行指示したデバッグコマンドはOSを介して第1CPUユニット側デバッガプログラムにデバッグコマンド送信文字列として送信される。受信したデバッグコマンドに対する返信は送信と逆の経路でPC側デバッガプログラムに送られる。
第1CPUユニット側ファームウェアと第2CPUユニット側ファームウェア間のプロセッサ間通信におけるプロセッサ間通信メッセージの送受信は第1CPUユニット側デバッガプログラム及び第2CPUユニット側ファームウェアを介して行われる。第1CPUユニット側ファームウェアから第2CPUユニット側ファームウェアに対するプロセッサ間通信メッセージは所定の通信フレーム(通信において送受信されるデータの単位)を第1CPUユニット側デバッガプログラムから第2CPUユニット側ファームウェアに送られる。第2CPUユニット側ファームウェアから第1CPUユニット側ファームウェアへの通信フレームの送信は逆の経路となる。
プロセッサ間通信メッセージで使用する所定の通信フレーム(フォーマット)はデバッグコマンド及びその返信を第1CPUユニット側デバッガプログラム及び第2CPUユニット側ファームウェア間で送受信する場合にも使用される。
図2は、第1CPUユニット1及び第2CPUユニット2の機能構成を示すブロック図である。第1CPUユニット1は、CPU11、通信部15及び通信部16を備える。通信部16はデバッグコマンド受信部161を備える。デバッグコマンド受信部161は、PC3によって送信されるデバッグコマンドを受信する。なお、デバッグコマンドには、第1CPUユニット1及び第2CPUユニット2のうちのいずれをデバッグするかを指定する情報が含まれる。また、デバッグコマンドには、ファームウェアに含まれる所定の関数の実行指示、メモリからのデータの読み出し指示、メモリへのデータの書き換え指示なども含まれる。
CPU11は、デバッグ設定部111及びデバッグ実行部112を備える。デバッグ設定部111は、デバッグコマンド受信部161によって受信されたデバッグコマンドを解析し、デバッグ対象が第1CPUユニット1及び第2CPUユニット2のいずれであるかを判断する。デバッグ設定部111は、デバッグ対象が第1CPUユニット1である場合、データ要求信号送信部153に対してデータ要求信号を送信しないよう設定する。また、デバッグ設定部111は、デバッグ対象が第2CPUユニット2である場合、開始指示信号を第2CPUユニット2へ送信するべく開始指示信号送信部151に指示する。
デバッグ実行部112は、デバッグ対象が第1CPUユニット1である場合、第1CPUユニット1に記憶されているファームウェアのデバッグを実行する。また、デバッグ実行部112は、デバッグ対象が第2CPUユニット2である場合、デバッグデータ受信部154によって受信されたデバッグデータを用いてデバッグを実行する。
通信部15は、開始指示信号送信部151、割り込み信号受信部152、データ要求信号送信部153及びデバッグデータ受信部154を備える。開始指示信号送信部151は、デバッグ設定部111からの指示に基づき開始指示信号を第2CPUユニット2へ送信する。割り込み信号受信部152は、第2CPUユニット2によって送信された割り込み信号を受信する。データ要求信号送信部153は、割り込み信号受信部152によって割り込み信号が受信された場合、デバッグデータを要求するためのデータ要求信号を第2CPUユニット2へ送信する。デバッグデータ受信部154は、第2CPUユニット2によって送信されたデバッグデータを受信する。
第2CPUユニット2は、CPU21、通信部22及びRAM24を備える。通信部22は、開始指示信号受信部221、割り込み信号送信部222、データ要求信号受信部223及びデバッグデータ送信部224を備える。CPU21は、デバッグデータ抽出部211、判断部212及びデバッグデータ読出部213を備える。
開始指示信号受信部221は、第1CPUユニット1によって送信された開始指示信号を受信する。デバッグデータ抽出部211は、開始指示信号受信部221によって開始指示信号が受信された場合、第2CPUユニット2に記憶されているファームウェアを実行し、デバッグに用いるデバッグデータを抽出する。デバッグデータ抽出部211は、送信バッファ241及び変化ステータスバッファ242に格納されるデータ内容を監視し、抽出したデバッグデータを送信バッファ241へ出力するとともに、送信バッファ241から変化ステータスバッファ242へデバッグデータを出力する。
判断部212は、変化ステータスバッファ242にデバッグデータが記憶されたか否かを判断する。割り込み信号送信部222は、判断部212によって変化ステータスバッファ242にデバッグデータが記憶されたと判断された場合、第1CPUユニット1へ割り込み信号を送信する。データ要求信号受信部223は、第1CPUユニット1によって送信されたデータ要求信号を受信する。
デバッグデータ読出部213は、データ要求信号受信部223によってデータ要求信号が受信された場合、変化ステータスバッファ242からデバッグデータを読み出す。デバッグデータ送信部224は、デバッグデータ読出部213によって読み出されたデバッグデータを第1CPUユニット1へ送信する。
RAM24は、送信バッファ241及び変化ステータスバッファ242を備える。送信バッファ241は、デバッグデータ抽出部211によって抽出されたデバッグデータを記憶する。なお、送信バッファ241が記憶するデバッグデータは、例えば複数の文字で構成される。変化ステータスバッファ242は、第2CPUユニット2の状態変化情報を記憶するものであり、送信バッファ241から出力されたデバッグデータを記憶する。なお、送信バッファ241は、複数の文字を1文字ずつ順次変化ステータスバッファ242へ出力する。変化ステータスバッファ242が記憶するデバッグデータは、例えば複数の文字を1文字ずつ記憶する。
なお、変化ステータスバッファ242が記憶する第2CPUユニット2の状態変化情報とは、例えば第2CPUユニット2が後処理装置である場合、側面カバーが開いた状態であることを表す情報等である。つまり、状態変化情報とは、第2CPUユニット2の状態が変化した場合に、当該変化した状態を自発的に第1CPUユニット1へ通知するための情報である。
本実施の形態において、画像形成装置10が情報処理装置の一例に相当し、第1CPUユニット1が第1のCPUユニットの一例に相当し、第2CPUユニット2が第2のCPUユニットの一例に相当し、デバッグデータ抽出部211が抽出手段の一例に相当し、デバッグデータ送信部224がデータ送信手段の一例に相当し、デバッグデータ受信部154がデータ受信手段の一例に相当し、デバッグ実行部112が実行手段の一例に相当する。
また、RAM24が記憶手段の一例に相当し、判断部212が判断手段の一例に相当し、割り込み信号送信部222が割り込み信号送信手段の一例に相当し、割り込み信号受信部152が割り込み信号受信手段の一例に相当し、データ要求信号送信部153がデータ要求信号送信手段の一例に相当し、データ要求信号受信部223がデータ要求信号受信手段の一例に相当し、デバッグデータ読出部213が読出手段の一例に相当する。さらに、デバッグコマンド受信部161がコマンド受信手段の一例に相当し、デバッグ設定部111が第1の設定手段の一例に相当する。
次に、第1CPUユニット1及び第2CPUユニット2によるデバッグ動作について説明する。図3は、図2に示す第1CPUユニット1及び第2CPUユニット2によるデバッグ動作について説明するためのフローチャートである。
まず、PC3の入力装置36は、ユーザによるデバッグコマンドの入力を受け付ける。このとき、入力装置36は、第1CPUユニット1及び第2CPUユニット2のうちのいずれのユニットのプログラムをデバッグするかを受け付ける。通信部32は、入力装置36によって受け付けられたデバッグコマンドを第1CPUユニット1へ送信する。そして、第1CPUユニット1のデバッグコマンド受信部161は、PC3によって送信されたデバッグコマンドを受信する(ステップS1)。デバッグコマンド受信部161は、受信したデバッグコマンドをデバッグ設定部111へ出力する。
次に、デバッグ設定部111は、デバッグコマンド受信部161によって受信されたデバッグコマンドを解析する(ステップS2)。デバッグコマンドを解析した結果、デバッグコマンドに第1CPUユニット1をデバッグする旨を表す情報が含まれている場合、デバッグ設定部111は、割り込み信号が受信されたとしてもデータ要求信号を送信しないようデータ要求信号送信部153を設定する(ステップS3)。また、デバッグコマンドを解析した結果、デバッグコマンドに第2CPUユニット2をデバッグする旨を表す情報が含まれている場合、デバッグ設定部111は、第2CPUユニット2をデバッグするべく開始指示信号を開始指示信号送信部151へ出力する。
次に、デバッグ設定部111は、第1CPUユニット1をデバッグするか否かを判断する(ステップS4)。ここで、第1CPUユニット1をデバッグすると判断された場合(ステップS4でYES)、ステップS9の処理へ移行し、デバッグ実行部112は、ROM12に記憶されているファームウェアのデバッグを実行する。
一方、第1CPUユニット1をデバッグしない、すなわち第2CPUユニット2をデバッグすると判断された場合(ステップS4でNO)、開始指示信号送信部151は、開始指示信号を第2CPUユニット2へ送信する(ステップS5)。
次に、第2CPUユニット2の開始指示信号受信部221は、第1CPUユニット1によって送信された開始指示信号を受信する(ステップS11)。開始指示信号受信部221によって開始指示信号が受信されると、デバッグデータ抽出部211は、ROM23に記憶されているファームウェアを実行し、デバッグ用のデータ(デバッグデータ)を抽出し(ステップS12)、抽出したデバッグデータを送信バッファ241へ出力する(ステップS13)。なお、デバッグデータの抽出は、デバッグデータ抽出部211がファームウェアに含まれるデバッグデータを出力するための出力関数を実行することにより抽出される。この出力関数としては、例えばC言語の汎用出力関数であるprintf関数を用いる。
このように、プログラムの中からデバッグに用いるデータを出力するための出力関数が実行されることでデバッグに用いるデータが抽出されるので、予めプログラムに記述されている出力関数を実行することにより、容易にデバッグに用いるデータを抽出することができる。なお、本実施の形態では、C言語の汎用出力関数であるprintf関数を用いているが、本発明は特にこれに限定されず、他の言語の出力関数を用いてもよい。
次に、デバッグデータ抽出部211は、送信バッファ241の記憶内容を監視し、送信バッファ241にデバッグデータが格納されているか否かを判断する(ステップS14)。ここで、送信バッファ241にデバッグデータが格納されていないと判断された場合(ステップS14でNO)、ステップS12の処理へ戻り、デバッグデータを抽出する処理を実行する。
一方、送信バッファ241にデバッグデータが格納されていると判断された場合(ステップS14でYES)、デバッグデータ抽出部211は、送信バッファ241に記憶されているデバッグデータを変化ステータスバッファ242へ出力する(ステップS15)。このとき、送信バッファ241に複数の文字で構成されるデバッグデータが記憶されている場合、デバッグデータ抽出部211は、先頭の文字から順番に1文字ずつ送信バッファ241から取り出し、変化ステータスバッファ242へ出力する。
次に、判断部212は、変化ステータスバッファ242の記憶内容を監視し、変化ステータスバッファ242が空であるか否かを判断する(ステップS16)。ここで、変化ステータスバッファ242が空であると判断された場合(ステップS16でYES)、判断部212は、変化ステータスバッファ242にデバッグデータが格納されるまで所定間隔でステップS16の判断を繰り返し実行する。
一方、変化ステータスバッファ242が空でないと判断された場合(ステップS16でNO)、判断部212は、第1CPUユニット1において割り込み処理を発生させるべく割り込み信号を割り込み信号送信部222へ出力する。次に、割り込み信号送信部222は、割り込み信号を第1CPUユニット1へ送信する(ステップS17)。
次に、第1CPUユニット1の割り込み信号受信部152は、第2CPUユニット2によって送信された割り込み信号を受信する(ステップS6)。割り込み信号受信部152によって割り込み信号が受信されると、データ要求信号送信部153は、デバッグデータの送信を要求するためのデータ要求信号を第2CPUユニット2へ送信する(ステップS7)。
次に、第2CPUユニット2のデータ要求信号受信部223は、第1CPUユニット1によって送信されたデータ要求信号を受信する(ステップS18)。次に、データ要求信号受信部223によってデータ要求信号が受信されると、デバッグデータ読出部213は、変化ステータスバッファ242に記憶されているデバッグデータを読み出す(ステップS19)。デバッグデータ読出部213は、読み出したデバッグデータをデバッグデータ送信部224へ出力する。
次に、デバッグデータ送信部224は、デバッグデータ読出部213によって変化ステータスバッファ242から読み出されたデバッグデータを第1CPUユニット1へ送信する(ステップS20)。そして、デバッグデータが第1CPUユニット1へ送信された後、ステップS14の処理へ戻り、送信バッファ241にデバッグデータがあるか否かが判断され、以降の処理が実行される。
次に、第1CPUユニット1のデバッグデータ受信部154は、第2CPUユニット2によって送信されたデバッグデータを受信する(ステップS8)。デバッグデータ受信部154は、受信したデバッグデータをデバッグ実行部112へ出力する。
次に、デバッグ実行部112は、デバッグデータ受信部154によって受信されたデバッグデータを用いてデバッグ機能を実行する(ステップS9)。具体的に、デバッグ実行部112は、通信部16を介してデバッグデータをPC3へ出力する。PC3の通信部32は、第1CPUユニット1によって送信されたデバッグデータを受信し、表示装置35へ出力する。表示装置35は、通信部32によって受信されたデバッグデータを表示する。このようにして、入力装置36により入力されたデバッグコマンドに対するデバッグ結果が、表示装置35に表示される。
次に、図2に示す第1CPUユニット1及び第2CPUユニット2による具体的なデバッグ動作について説明する。図4は、図2に示す第1CPUユニット1及び第2CPUユニット2による具体的なデバッグ動作について説明するための模式図である。
まず、第2CPUユニット2のデバッグデータ抽出部211は、ROM23に記憶されているプログラム(ファームウェア)231を実行し、デバッグ用のデータ(デバッグデータ)を抽出し、抽出したデバッグデータを送信バッファ241へ出力する。なお、図4では、“BUG”というデバッグデータを送信する処理について説明する。このとき、デバッグデータ抽出部211は、プログラム231に含まれるprintf関数を実行することにより、“BUG”というデバッグデータが抽出され、送信バッファ241に格納される。
送信バッファ241にデバッグデータが格納されると、デバッグデータ抽出部211は、送信バッファ241の先頭から1文字目のデバッグデータを変化ステータスバッファ242へ出力する。この場合、送信バッファ241の先頭に位置する“B”というデバッグデータが変化ステータスバッファ242へ出力される。
そして、変化ステータスバッファ242に“B”というデバッグデータが格納されると、割り込み信号送信部222は、割り込み信号(割り込み要求)を第1CPUユニット1へ送信する(ステップS101)。次に、第1CPUユニット1において、割り込み信号受信部152によって割り込み信号が受信されると、データ要求信号送信部153は、データ要求信号(データ要求)を第2CPUユニット2へ送信する(ステップS102)。
次に、第2CPUユニット2において、データ要求信号受信部223によってデータ要求信号が受信されると、デバッグデータ読出部213は、変化ステータスバッファ242に記憶されている“B”というデバッグデータを読み出し、デバッグデータ送信部224へ出力する。次に、デバッグデータ送信部224は、データ要求信号の応答信号として、変化ステータスバッファ242から読み出された“B”というデバッグデータを第1CPUユニット1へ送信する(ステップS103)。
次に、第1CPUユニット1のデバッグデータ受信部154によって“B”というデバッグデータが受信されると、デバッグ実行部112は、通信部16を介して“B”というデバッグデータをPC3へ送信する。PC3の表示装置35は、受信した“B”というデバッグデータを表示する。
以上のようにして、“BUG”という複数の文字で構成されるデバッグデータのうちの“B”というデバッグデータがPC3の表示装置35に表示される。
続いて、デバッグデータ抽出部211は、送信バッファ241の先頭から2文字目のデバッグデータを変化ステータスバッファ242へ出力する。この場合、送信バッファ241の先頭から2文字目に位置する“U”というデバッグデータが変化ステータスバッファ242へ出力される。
そして、変化ステータスバッファ242に“U”というデバッグデータが格納されると、割り込み信号送信部222は、割り込み信号(割り込み要求)を第1CPUユニット1へ送信する(ステップS104)。次に、第1CPUユニット1において、割り込み信号受信部152によって割り込み信号が受信されると、データ要求信号送信部153は、データ要求信号(データ要求)を第2CPUユニット2へ送信する(ステップS105)。
次に、第2CPUユニット2において、データ要求信号受信部223によってデータ要求信号が受信されると、デバッグデータ読出部213は、変化ステータスバッファ242に記憶されている“U”というデバッグデータを読み出し、デバッグデータ送信部224へ出力する。次に、デバッグデータ送信部224は、データ要求信号の応答信号として、変化ステータスバッファ242から読み出された“U”というデバッグデータを第1CPUユニット1へ送信する(ステップS106)。
次に、第1CPUユニット1のデバッグデータ受信部154によって“U”というデバッグデータが受信されると、デバッグ実行部112は、通信部16を介して“U”というデバッグデータをPC3へ送信する。PC3の表示装置35は、受信した“U”というデバッグデータを表示する。
以上のようにして、“BUG”という複数の文字で構成されるデバッグデータのうちの“BU”というデバッグデータがPC3の表示装置35に表示される。
同様に、デバッグデータ抽出部211は、送信バッファ241の先頭から3文字目のデバッグデータを変化ステータスバッファ242へ出力する。この場合、送信バッファ241の先頭から3文字目に位置する“G”というデバッグデータが変化ステータスバッファ242へ出力される。
そして、変化ステータスバッファ242に“G”というデバッグデータが格納されると、割り込み信号送信部222は、割り込み信号(割り込み要求)を第1CPUユニット1へ送信する(ステップS107)。次に、第1CPUユニット1において、割り込み信号受信部152によって割り込み信号が受信されると、データ要求信号送信部153は、データ要求信号(データ要求)を第2CPUユニット2へ送信する(ステップS108)。
次に、第2CPUユニット2において、データ要求信号受信部223によってデータ要求信号が受信されると、デバッグデータ読出部213は、変化ステータスバッファ242に記憶されている“G”というデバッグデータを読み出し、デバッグデータ送信部224へ出力する。次に、デバッグデータ送信部224は、データ要求信号の応答信号として、変化ステータスバッファ242から読み出された“G”というデバッグデータを第1CPUユニット1へ送信する(ステップS109)。
次に、第1CPUユニット1のデバッグデータ受信部154によって“G”というデバッグデータが受信されると、デバッグ実行部112は、通信部16を介して“G”というデバッグデータをPC3へ送信する。PC3の表示装置35は、受信した“G”というデバッグデータを表示する。
以上のようにして、“BUG”という複数の文字で構成されるデバッグデータのうちの“BUG”というデバッグデータがPC3の表示装置35に表示される。
このように、画像形成装置10は、CPU11及びCPU21が実行するプログラムをデバッグするためのデバッグ機能を有する第1CPUユニット1と、デバッグ機能を有しない第2CPUユニット2とを備えている。そして、第2CPUユニット2において、デバッグに用いるデータ(デバッグデータ)が抽出され、抽出されたデバッグデータが第1CPUユニット1へ送信される。第1CPUユニット1において、第2CPUユニット2から送信されたデバッグデータが受信され、受信されたデバッグデータを用いてデバッグ機能が実行される。
したがって、デバッグ機能を有しない第2CPUユニット2においてデバッグに用いるデータが自動的に抽出され、第1CPUユニット1へ送信されるので、デバッグ機能を有していないCPU21の不具合が発生した瞬間の状態を捉えることができる。
また、第2CPUユニット2において、抽出されたデバッグデータがRAM24の変化ステータスバッファ242に記憶され、変化ステータスバッファ242にデータが記憶されたか否かが判断され、変化ステータスバッファ242にデータが記憶されたと判断された場合、第1CPUユニット1へ割り込み信号が送信される。そして、第1CPUユニット1において、第2CPUユニット2によって送信された割り込み信号が受信された場合、デバッグデータを要求するためのデータ要求信号が第2CPUユニット2へ送信される。続いて、第2CPUユニット2において、第1CPUユニット1によって送信されたデータ要求信号が受信された場合、変化ステータスバッファ242に記憶されているデバッグデータが読み出され、読み出されたデバッグデータが第1CPUユニット1へ送信される。
したがって、デバッグ用のデータがRAM24の変化ステータスバッファ242に記憶された場合、第2CPUユニット2から第1CPUユニット1へ割り込み信号が送信されるので、第1CPUユニット1は常に第2CPUユニット2を監視する必要がなく、第2CPUユニット2においてデバッグ用のデータが抽出された場合にのみ第2CPUユニット2をデバッグすることができる。
さらに、第1CPUユニット1において、PC3によって送信されるデバッグコマンドが受信される。このデバッグコマンドには、第1CPUユニット1及び第2CPUユニット2のうちのいずれをデバッグするかを指定する情報が含まれる。第1CPUユニット1において、デバッグコマンドに第1CPUユニット1をデバッグする情報が含まれている場合、データ要求信号送信部153によるデータ要求信号を送信しないよう設定される。
したがって、第1CPUユニット1をデバッグする場合、第2CPUユニット2からの割り込み信号を受信したとしてもデータ要求信号が送信されず、第2CPUユニット2からデバッグ用のデータが送信されないので、第1CPUユニット1におけるデバッグ用のデータと第2CPUユニット2におけるデバッグ用のデータとが同時に出力されることがなくなり、第1CPUユニット1のみをデバッグすることができる。
なお、本実施の形態では、デバッグコマンドに第1CPUユニット1をデバッグする旨を表す情報が含まれている場合、割り込み信号が受信されたとしてもデータ要求信号を送信しないようデータ要求信号送信部153を設定しているが、本発明は特にこれに限定されず、デバッグコマンドに第1CPUユニット1をデバッグする旨を表す情報が含まれている場合、割り込み信号を送信しないよう割り込み信号送信部222を設定してもよい。
図5は、割り込み信号を送信しないよう割り込み信号送信部222を設定する場合における第1CPUユニット1及び第2CPUユニット2の機能構成を示すブロック図である。なお、図5において、図2に示す第1CPUユニット1及び第2CPUユニット2と同じ構成については説明を省略し、異なる構成のみを説明する。
CPU11は、デバッグ実行部112及び第1デバッグ設定部113を備える。通信部15は、開始指示信号送信部151、割り込み信号受信部152、データ要求信号送信部153、デバッグデータ受信部154及び設定信号送信部155を備える。通信部22は、開始指示信号受信部221、割り込み信号送信部222、データ要求信号受信部223、デバッグデータ送信部224及び設定信号受信部225を備える。CPU21は、デバッグデータ抽出部211、判断部212、デバッグデータ読出部213及び第2デバッグ設定部214を備える。
第1デバッグ設定部113は、デバッグ対象が第2CPUユニット2である場合、開始指示信号を第2CPUユニット2へ送信するべく開始指示信号送信部151に指示する。また、第1デバッグ設定部113は、デバッグ対象が第1CPUユニット1である場合、第2CPUユニット2が割り込み信号を送信しないように設定するための設定信号を設定信号送信部155に出力する。
設定信号送信部155は、第1デバッグ設定部113によって出力された設定信号を第2CPUユニット2へ送信する。設定信号受信部225は、第1CPUユニット1の設定信号送信部155によって送信された設定信号を受信する。設定信号受信部225は、受信した設定信号を第2デバッグ設定部214に出力する。第2デバッグ設定部214は、設定信号受信部225によって設定信号が受信された場合、割り込み信号送信部222に対して割り込み信号を送信しないよう設定する。
なお、本実施の形態において、第1デバッグ設定部113、設定信号送信部155、設定信号受信部225及び第2デバッグ設定部214が第2の設定手段の一例に相当する。
このように、設定信号受信部225によって第2CPUユニット2が割り込み信号を送信しないように設定するための設定信号が受信された場合、割り込み信号送信部222に対して割り込み信号を送信しないよう設定される。したがって、第1CPUユニット1をデバッグする場合、第2CPUユニット2から割り込み信号が送信されず、第2CPUユニット2からデバッグデータが送信されないので、第1CPUユニット1におけるデバッグデータと第2CPUユニット2におけるデバッグデータとが同時に出力されることがなくなり、第1CPUユニット1のみをデバッグすることができる。
本発明に係る情報処理装置の一例である画像形成装置及びそれに接続されるPC(パーソナルコンピュータ)のハードウェア構成の概要を示すブロック図である。 第1CPUユニット及び第2CPUユニットの機能構成を示すブロック図である。 図2に示す第1CPUユニット及び第2CPUユニットによるデバッグ動作について説明するためのフローチャートである。 図2に示す第1CPUユニット及び第2CPUユニットによる具体的なデバッグ動作について説明するための模式図である。 割り込み信号を送信しないよう割り込み信号送信部を設定する場合における第1CPUユニット及び第2CPUユニットの機能構成を示すブロック図である。
1 第1CPUユニット
2 第2CPUユニット
10 画像形成装置
11,21,31 CPU
12,23 ROM
13,24,33 RAM
14 操作パネル部
15,16,22,32 通信部
34 HDD
35 表示装置
36 入力装置
111 デバッグ設定部
112 デバッグ実行部
113 第1デバッグ設定部
151 開始指示信号送信部
152 割り込み信号受信部
153 データ要求信号送信部
154 デバッグデータ受信部
155 設定信号送信部
161 デバッグコマンド受信部
211 デバッグデータ抽出部
212 判断部
213 デバッグデータ読出部
214 第2デバッグ設定部
221 開始指示信号受信部
222 割り込み信号送信部
223 データ要求信号受信部
224 デバッグデータ送信部
225 設定信号受信部
241 送信バッファ
242 変化ステータスバッファ

Claims (3)

  1. プログラムを実行するCPUと前記プログラムを記憶するメモリとデータを送受信する通信部とを備える複数のCPUユニットが互いに通信可能に接続された情報処理装置であって、
    複数のCPUユニットが備える各CPUが実行するプログラムをデバッグし、前記プログラムの実行中における前記CPUユニットの状態をユーザに通知するためのデバッグ機能を有する第1のCPUユニットと、
    前記デバッグ機能を有しない第2のCPUユニットとを備え、
    前記第2のCPUユニットの通信部は、前記第1のCPUユニットによって送信された開始指示信号を受信する開始指示信号受信手段を備え、
    前記第2のCPUユニットのCPUは、前記開始指示信号受信手段によって前記開始指示信号が受信された場合、前記第2のCPUユニットのメモリに記憶されているプログラムを実行し、当該プログラムに含まれる所定のメッセージを出力するための出力関数を実行することで、前記メッセージを前記プログラムの実行中における前記第2のCPUユニットの状態を表すデータとして前記プログラムから抽出する抽出手段を備え、
    前記第2のCPUユニットの通信部は、前記抽出手段によって抽出されたデータを前記第1のCPUユニットへ送信するデータ送信手段をさらに備え、
    前記第1のCPUユニットの通信部は、前記データ送信手段によって送信されたデータを受信するデータ受信手段を備え、
    前記第1のCPUユニットのCPUは、前記データ受信手段によって受信されたデータを外部装置が有する表示装置に表示するための指示を前記外部装置に対して行うことにより、デバッグ機能を実行する実行手段を備え、
    前記第2のCPUユニットのメモリは、前記抽出手段によって抽出されたデータを記憶する記憶手段を備え、
    前記第2のCPUユニットのCPUは、前記記憶手段にデータが記憶されたか否かを判断する判断手段をさらに備え、
    前記第2のCPUユニットの通信部は、前記判断手段によって前記記憶手段にデータが記憶されたと判断された場合、前記第1のCPUユニットへ割り込み信号を送信する割り込み信号送信手段をさらに備え、
    前記第1のCPUユニットの通信部は、前記割り込み信号送信手段によって送信された割り込み信号を受信する割り込み信号受信手段と、前記割り込み信号受信手段によって割り込み信号が受信された場合、データを要求するためのデータ要求信号を前記第2のCPUユニットへ送信するデータ要求信号送信手段とをさらに備え、
    前記第2のCPUユニットの通信部は、前記データ要求信号送信手段によって送信されたデータ要求信号を受信するデータ要求信号受信手段をさらに備え、
    前記第2のCPUユニットのCPUは、前記データ要求信号受信手段によってデータ要求信号が受信された場合、前記記憶手段に記憶されているデータを読み出す読出手段をさらに備え、
    前記データ送信手段は、前記読出手段によって読み出されたデータを前記第1のCPUユニットへ送信し、
    前記第1のCPUユニットの通信部は、コマンドを前記第1のCPUユニットへ送信すると共に、前記コマンドの実行結果を前記表示装置に表示する前記外部装置によって送信されるコマンドを受信するコマンド受信手段をさらに備え、
    前記コマンドは、第1のCPUユニット及び第2のCPUユニットのうちのいずれをデバッグするかを指定する情報を含み、
    前記第1のCPUユニットのCPUは、前記コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、前記データ要求信号送信手段によるデータ要求信号を送信しないよう設定する第1の設定手段をさらに備え、
    前記実行手段は、前記コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、前記コマンドに応じて前記第1のCPUユニットのメモリに記憶されているプログラムを実行し、前記プログラムの実行中における前記第1のCPUユニットの状態を表すデータを前記表示装置に表示するための指示を前記外部装置に対して行うことを特徴とする情報処理装置。
  2. プログラムを実行するCPUと前記プログラムを記憶するメモリとデータを送受信する通信部とを備える複数のCPUユニットが互いに通信可能に接続された情報処理装置であって、
    複数のCPUユニットが備える各CPUが実行するプログラムをデバッグし、前記プログラムの実行中における前記CPUユニットの状態をユーザに通知するためのデバッグ機能を有する第1のCPUユニットと、
    前記デバッグ機能を有しない第2のCPUユニットとを備え、
    前記第2のCPUユニットの通信部は、前記第1のCPUユニットによって送信された開始指示信号を受信する開始指示信号受信手段を備え、
    前記第2のCPUユニットのCPUは、前記開始指示信号受信手段によって前記開始指示信号が受信された場合、前記第2のCPUユニットのメモリに記憶されているプログラムを実行し、当該プログラムに含まれる所定のメッセージを出力するための出力関数を実行することで、前記メッセージを前記プログラムの実行中における前記第2のCPUユニットの状態を表すデータとして前記プログラムから抽出する抽出手段を備え、
    前記第2のCPUユニットの通信部は、前記抽出手段によって抽出されたデータを前記第1のCPUユニットへ送信するデータ送信手段をさらに備え、
    前記第1のCPUユニットの通信部は、前記データ送信手段によって送信されたデータを受信するデータ受信手段を備え、
    前記第1のCPUユニットのCPUは、前記データ受信手段によって受信されたデータを外部装置が有する表示装置に表示するための指示を前記外部装置に対して行うことにより、デバッグ機能を実行する実行手段を備え、
    前記第2のCPUユニットのメモリは、前記抽出手段によって抽出されたデータを記憶する記憶手段を備え、
    前記第2のCPUユニットのCPUは、前記記憶手段にデータが記憶されたか否かを判断する判断手段をさらに備え、
    前記第2のCPUユニットの通信部は、前記判断手段によって前記記憶手段にデータが記憶されたと判断された場合、前記第1のCPUユニットへ割り込み信号を送信する割り込み信号送信手段をさらに備え、
    前記第1のCPUユニットの通信部は、前記割り込み信号送信手段によって送信された割り込み信号を受信する割り込み信号受信手段と、前記割り込み信号受信手段によって割り込み信号が受信された場合、データを要求するためのデータ要求信号を前記第2のCPUユニットへ送信するデータ要求信号送信手段とをさらに備え、
    前記第2のCPUユニットの通信部は、前記データ要求信号送信手段によって送信されたデータ要求信号を受信するデータ要求信号受信手段をさらに備え、
    前記第2のCPUユニットのCPUは、前記データ要求信号受信手段によってデータ要求信号が受信された場合、前記記憶手段に記憶されているデータを読み出す読出手段をさらに備え、
    前記データ送信手段は、前記読出手段によって読み出されたデータを前記第1のCPUユニットへ送信し、
    前記第1のCPUユニットの通信部は、コマンドを前記第1のCPUユニットへ送信すると共に、前記コマンドの実行結果を前記表示装置に表示する前記外部装置によって送信されるコマンドを受信するコマンド受信手段をさらに備え、
    前記コマンドは、第1のCPUユニット及び第2のCPUユニットのうちのいずれをデバッグするかを指定する情報を含み、
    前記第1のCPUユニットのCPUは、前記コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、第2のCPUユニットが割り込み信号を送信しないように設定するための設定信号を出力する設定信号出力手段をさらに備え、
    前記第1のCPUユニットの通信部は、前記設定信号出力手段によって出力された前記設定信号を第2のCPUユニットへ送信する設定信号送信手段をさらに備え、
    前記第2のCPUユニットの通信部は、前記設定信号送信手段によって送信された前記設定信号を受信する設定信号受信手段をさらに備え、
    前記第2のCPUユニットのCPUは、前記設定信号受信手段によって前記設定信号が受信された場合、前記割り込み信号送信手段による割り込み信号を送信しないよう設定する第2の設定手段をさらに備え、
    前記実行手段は、前記コマンドに第1のCPUユニットをデバッグする情報が含まれている場合、前記コマンドに応じて前記第1のCPUユニットのメモリに記憶されているプログラムを実行し、前記プログラムの実行中における前記第1のCPUユニットの状態を表すデータを前記表示装置に表示するための指示を前記外部装置に対して行うことを特徴とする情報処理装置。
  3. 前記情報処理装置は、画像を形成する画像形成装置であり、
    前記第1のCPUユニットは、前記画像形成装置全体を制御する制御部を含み、
    前記第2のCPUユニットは、前記画像形成装置が内蔵する駆動源を制御するエンジン制御部を含むことを特徴とする請求項1又は2記載の情報処理装置。
JP2005337006A 2005-11-22 2005-11-22 情報処理装置 Expired - Fee Related JP4494329B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005337006A JP4494329B2 (ja) 2005-11-22 2005-11-22 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005337006A JP4494329B2 (ja) 2005-11-22 2005-11-22 情報処理装置

Publications (2)

Publication Number Publication Date
JP2007141138A JP2007141138A (ja) 2007-06-07
JP4494329B2 true JP4494329B2 (ja) 2010-06-30

Family

ID=38203888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005337006A Expired - Fee Related JP4494329B2 (ja) 2005-11-22 2005-11-22 情報処理装置

Country Status (1)

Country Link
JP (1) JP4494329B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009031689A (ja) * 2007-07-30 2009-02-12 Ricoh Co Ltd 温度監視装置及び温度監視方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005292988A (ja) * 2004-03-31 2005-10-20 Sharp Corp 情報処理装置,画像形成装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3001205B2 (ja) * 1988-10-06 2000-01-24 日本電気株式会社 情報処理装置
JP2522158B2 (ja) * 1993-05-25 1996-08-07 日本電気株式会社 マルチプロセッサシステムのプログラムデバッグ方法
JPH09198277A (ja) * 1996-01-19 1997-07-31 Mitsubishi Electric Corp エミュレータ装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005292988A (ja) * 2004-03-31 2005-10-20 Sharp Corp 情報処理装置,画像形成装置

Also Published As

Publication number Publication date
JP2007141138A (ja) 2007-06-07

Similar Documents

Publication Publication Date Title
US7752029B2 (en) Method to change USB device descriptors from host to emulate a new device
US9164875B2 (en) Error detection method, information processing circuit, and error detection computer program product
US8756592B2 (en) Information processor and information updating method
JP2009015657A (ja) 画像形成システム及びそのデバイス管理方法、並びにプログラム
JP5726000B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN114253841A (zh) 测试脚本生成方法、装置及存储介质
US9894243B2 (en) Non-transitory computer-readable medium storing instructions and image forming apparatus, to perform monitoring of status information
JP4494329B2 (ja) 情報処理装置
US8886712B2 (en) Communication device
JP2007141139A (ja) 情報処理装置
JP2017201736A (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
JP3971361B2 (ja) デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム
US20150146237A1 (en) Simulation Apparatus, Simulation System, and Simulation Method That Ensure Use of General-Purpose PC
JP5533760B2 (ja) 画像読取装置
JP4562439B2 (ja) プログラム検証システムおよびプログラム検証システム制御用コンピュータプログラム
JP6164823B2 (ja) 印刷装置
JP6904189B2 (ja) プリンタ
JP6150048B2 (ja) 画像形成システムおよび画像形成システムの診断方法
JP2008033472A (ja) プリンタの自動評価システム
JP4208461B2 (ja) ソフトウエアシステム動作確認装置
JP5071744B2 (ja) 印刷装置、印刷システム、及びプリンタドライバ
JP2008217574A (ja) 開発プログラム、記録媒体、開発装置および開発方法
JP4208460B2 (ja) ソフトウエアシステム動作確認装置
JP2009009466A (ja) ログ情報処理装置およびログ情報処理プログラム
JP2004240556A (ja) 印刷装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100319

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: 20100406

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100407

R150 Certificate of patent or registration of utility model

Ref document number: 4494329

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees