JP3971361B2 - デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム - Google Patents

デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム Download PDF

Info

Publication number
JP3971361B2
JP3971361B2 JP2003340811A JP2003340811A JP3971361B2 JP 3971361 B2 JP3971361 B2 JP 3971361B2 JP 2003340811 A JP2003340811 A JP 2003340811A JP 2003340811 A JP2003340811 A JP 2003340811A JP 3971361 B2 JP3971361 B2 JP 3971361B2
Authority
JP
Japan
Prior art keywords
communication
command
communication frame
frame
unit
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
JP2003340811A
Other languages
English (en)
Other versions
JP2005107909A (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 JP2003340811A priority Critical patent/JP3971361B2/ja
Publication of JP2005107909A publication Critical patent/JP2005107909A/ja
Application granted granted Critical
Publication of JP3971361B2 publication Critical patent/JP3971361B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、CPUで動作するプログラムをデバッグするためのデバッグ機能を備えるマルチプロセッサシステムに関する。
プリンタ装置、複写機、ファクシミリ装置等の情報処理装置において、装置を制御するために複数のCPUを協調動作させて動作させることは近年多く行われている。これらのCPUは通常、バス又はシリアルインターフェースにより接続される。これらの各CPU上で動作するプログラムをデバッグするためには一般に各CPUにデバッグ用のハードウェア資源を新たに設けることとなる。これには例えば各CPUにオンチップデバッグ機能を有するものを使用したり、各CPUにデバッグ用の装置であるICE(In Circuit Emulator)を接続するためのソケットを備えることが一般的である。また、各CPUに外部装置との通信手段を設けることも多く行われている。
また例えば下記特許文献1には、読み出し書き込み両用の第1のメモリ、第1のメモリ内のデータに基づいて制御対象を制御する制御部、及び監視用の第1の通信部を含むコントローラユニットと、読み出し書き込み両用の第2のメモリ、第2のメモリ内のデータを監視する監視部、及び監視用の第2の通信部を含む監視用ユニットと、前記コントローラユニットに設けたダイレクトメモリアクセス部と、を有し、前記コントローラユニットの第1のメモリ内のデータをダイレクトメモリアクセス部により第1の通信部に転送すると共に、当該データを第1の通信部から第2の通信部へ、更に監視用のユニットの第2のメモリに転送し、この転送されたデータに基づいて監視部にて第1のメモリ内のデータの時間的変化を監視し、この監視結果に基づいて第2のメモリのデータを更新し、この更新されたデータを第2の通信部から第1の通信部に転送し、更に前記ダイレクトメモリアクセス部により第1の通信部から第1のメモリに転送することを特徴とするコントローラユニットの監視装置について記載されている。
特許第3027062号公報
上記特許文献に記載された従来技術においてはデバッグ用のハードウェア資源として監視用ユニットを設けることが前提になっている。また、上記の従来技術においても各CPUにデバッグ用に特別なハードウェア資源を設けることが必要となっている。しかしながら、情報処理装置のコスト競争は激しさを増しておりデバッグのためのハードウェア資源を備えることはコスト面において問題となる。また、デバッグ手段を装備していない場合は、設計時、製造時、ユーザ使用時に不具合が発生してもそのデバッグに多くの時間を費やすこととなり問題となっていた。
本発明はかかる問題点に鑑みて成されたものであり、新たなハードウェア資源を必要としないマルチプロセッサシステムのデバッグ環境を提供することを目的とする。
請求項1に係るデバッグ機能を備えるマルチプロセッサシステムは、CPUで動作するファームウェアプログラムをデバッグするためのデバッグ機能を備えるマルチプロセッサシステムであって、前記ファームウェアプログラムを実行するCPUと前記ファームウェアプログラムを格納するメモリを備えるCPUユニットを複数通信可能に接続したマルチプロセッサシステムにおいて、外部装置との通信を行うための接続手段を備える第1のCPUユニットと、前記接続手段を備えない1つ以上の第2のCPUユニットとを有し、前記第1のCPUユニットは、前記外部装置から送信されたコマンドを含む通信フレームを受信するコマンド受信手段と、前記受信した通信フレームをプロセッサ間通信に用いられる通信フレームに変換して前記第2のCPUユニットに転送するコマンド転送手段とを備え、前記第2のCPUユニットは、前記コマンド転送手段により転送された前記プロセッサ間通信に用いられる通信フレームを受信する転送コマンド受信手段と、前記転送コマンド受信手段により受信した前記プロセッサ間通信に用いられる通信フレームに含まれるコマンドの内容に応じてデバッグ機能を実行する実行手段とを備え、前記コマンド転送手段は、前記外部装置との通信に用いられる通信フレームに含まれるコマンドの内容を解析し解析した内容に従って予め定められたフォーマットで前記プロセッサ間通信に用いられる通信フレームを作成する通信フレーム作成手段と、前記プロセッサ間通信に用いられる通信フレームを転送先に送信するフレーム送信手段とを更に備え、前記予め定められたフォーマットは、前記外部装置との通信に用いられる通信フレームと異なるフォーマットであり、前記プロセッサ間通信に用いられる通信フレームと同じフォーマットであり、前記プロセッサ間通信に用いられる通信フレームは、当該通信フレームがデバッグコマンド通信フレームであるかプロセッサ間通信フレームであるかを識別する識別コードを含み、前記転送コマンド受信手段は、前記識別コードにより、前記プロセッサ間通信に用いられる通信フレームが前記デバッグコマンド通信フレームであると識別された場合、前記デバッグコマンド通信フレームを前記実行手段へ転送し、前記識別コードにより、前記プロセッサ間通信に用いられる通信フレームが前記プロセッサ間通信フレームであると識別された場合、前記プロセッサ間通信フレームをファームウェアプロセスへ転送することを特徴とする。
請求項2に係るデバッグ機能を備えるマルチプロセッサシステムは、請求項1に記載のデバッグ機能を備えるマルチプロセッサシステムであって、前記コマンド転送手段は前記コマンドの内容を解析した内容に従って前記プロセッサ間通信に用いられる通信フレームの送信先を決定する送信先決定手段を備えることを特徴とする。
請求項3に係るデバッグ機能を備えるマルチプロセッサシステムは、請求項1又は2記載のデバッグ機能を備えるマルチプロセッサシステムであって、前記第2のCPUユニットは前記デバッグ機能の実行結果を格納する返信フレームを作成する返信フレーム作成手段と、前記返信フレームを前記第1のCPUユニットに送信するフレーム返信手段とを更に備え、前記第1のCPUユニットは前記フレーム返信手段により返信された返信フレームの内容を前記外部装置に転送する返信フレーム転送手段を更に備えることを特徴とする。
請求項4に係るマルチプロセッサシステムのプログラムは、CPUと前記CPUで実行されるファームウェアプログラムを格納するメモリを備えるCPUユニットを複数通信可能に接続したマルチプロセッサシステムのプログラムであって、第1のCPUユニットのプログラムは前記第1のCPUユニットのCPUを、前記第1のCPUユニットに接続された外部装置から送信されたコマンドを含む通信フレームを受信するコマンド受信手段と、前記受信した通信フレームをプロセッサ間通信に用いられる通信フレームに変換して前記第1のCPUユニットに接続された1つ以上の第2のCPUユニットに転送するコマンド転送手段として機能させ、前記第2のCPUユニットのプログラムは前記第2のCPUユニットのCPUを、前記コマンド転送手段により転送された前記プロセッサ間通信に用いられる通信フレームを受信する転送コマンド受信手段と、前記転送コマンド受信手段により受信した前記プロセッサ間通信に用いられる通信フレームに含まれるコマンドの内容に応じてデバッグ機能を実行する実行手段として機能させ、前記コマンド転送手段は、前記外部装置との通信に用いられる通信フレームに含まれるコマンドの内容を解析し解析した内容に従って予め定められたフォーマットで前記プロセッサ間通信に用いられる通信フレームを作成する通信フレーム作成手段と、前記プロセッサ間通信に用いられる通信フレームを転送先に送信するフレーム送信手段とを更に備え、前記予め定められたフォーマットは、前記外部装置との通信に用いられる通信フレームと異なるフォーマットであり、プロセッサ間通信に用いられる通信フレームと同じフォーマットであり、前記プロセッサ間通信に用いられる前記通信フレームは、当該通信フレームがデバッグコマンド通信フレームであるかプロセッサ間通信フレームであるかを識別する識別コードを含み、前記転送コマンド受信手段は、前記識別コードにより、前記プロセッサ間通信に用いられる通信フレームが前記デバッグコマンド通信フレームであると識別された場合、前記デバッグコマンド通信フレームを前記実行手段へ転送し、前記識別コードにより、前記プロセッサ間通信に用いられる通信フレームが前記プロセッサ間通信フレームであると識別された場合、前記プロセッサ間通信フレームをファームウェアプロセスへ転送することを特徴とする。
請求項1に記載の発明によれば、各CPUにファームウェアプログラムを格納するためのメモリを備えるマルチプロセッサシステムにおいて、第1のCPUユニットのみに外部装置との通信を行うための接続手段を備え、第1のCPUユニットにおいて、コマンド受信手段により外部装置から送信されたコマンドを含む通信フレームを受信し、コマンド転送手段によりその受信した通信フレームをプロセッサ間通信に用いられる通信フレームに変換して第1のCPUユニット以外の第2のCPUユニットに転送し、第2のCPUユニットにおいて、転送コマンド受信手段により第1のCPUユニットから転送されたプロセッサ間通信に用いられる通信フレームを受信し、実行手段によりそのプロセッサ間通信に用いられる通信フレームに含まれるコマンドの内容に応じてデバッグ機能を実行するので、第1のCPUユニットにのみデバッグ用のハードウェアとして前記接続手段を設けるのみで、第2のCPUユニットにはデバッグ用に新たなハードウェアを設けることなく第2のCPUユニットで動作するファームウェアプログラムのデバッグを行うことができる。
また、通信フレーム作成手段により前記コマンドの内容は所定のフォーマットの通信フレームに変換され、フレーム送信手段により通信フレームは送信先のCPUユニットに送信され、前記所定のフォーマットはプロセッサ間通信に使用されるフォーマットと同じであるので、デバッグに使用するための通信フレームの受信口をプロセッサ間通信に使用するための通信フレームの受信口と共有することができる。
請求項2に記載の発明によれば、コマンド転送手段に備えられた送信先決定手段により第1のCPUユニットで受信したコマンドの内容を解析しプロセッサ間通信に用いられる通信フレームの転送先を決定するので、コマンド内容の転送先が複数考えられる場合でも適切なCPUユニットにコマンド内容を転送できる。
請求項3に記載の発明によれば、第2のCPUユニットにおいて、返信フレーム作成手段によりデバッグ機能実行結果を格納する返信フレームを作成し、フレーム返信手段により前記返信フレームを第1のCPUユニットに返信し、第1のCPUユニットにおいて、返信フレーム転送手段によりこの返信フレームの内容を外部装置に転送するので、デバッグ機能の実行結果やエラー情報等を外部装置に戻したい場合等にも容易にこのような情報を外部装置に送信することができる。
請求項4に記載の発明によれば、各CPUにファームウェアプログラムを格納するためのメモリを備えるマルチプロセッサシステムにおいて、1のCPUユニットのCPUは、コマンド受信手段によりこのCPUユニットに接続された外部装置から送信されたコマンドを含む通信フレームを受信し、コマンド転送手段によりその受信した通信フレームをプロセッサ間通信に用いられる通信フレームに変換して第1のCPUユニット以外の第2のCPUユニットに転送するようにそのCPUユニットのプログラムにより機能させられ、その他のCPUユニットのCPUは、転送コマンド受信手段により第1のCPUユニットから転送されたプロセッサ間通信に用いられる通信フレームを受信し、実行手段によりそのプロセッサ間通信に用いられる通信フレームに含まれるコマンドの内容に応じてデバッグ機能を実行するようにそのCPUのプログラムにより機能させられるので、1のCPUユニットにのみデバッグ用のハードウェアとして外部装置に接続するための手段を設けるのみで、第2のCPUユニットにはデバッグ用に新たなハードウェアを設けることなく第2のCPUユニットで動作するファームウェアプログラムのデバッグを行うことができる。
また、通信フレーム作成手段により前記コマンドの内容は所定のフォーマットの通信フレームに変換され、フレーム送信手段により通信フレームは送信先のCPUユニットに送信され、前記所定のフォーマットはプロセッサ間通信に使用されるフォーマットと同じであるので、デバッグに使用するための通信フレームの受信口をプロセッサ間通信に使用するための通信フレームの受信口と共有することができる。
以下、本発明の一実施形態に係るデバッグ機能を備えるマルチプロセッサシステムについて図面を参照しながら説明する。図1は本発明の一実施形態としての、例えば複写機等の画像形成装置1等に搭載されるマルチプロセッサシステム(ただし、本実施形態においてはプロセッサ(CPU)は2つであるのでデュアルプロセッサシステムと呼ぶこともある。)及びそれに接続されたPC(パーソナルコンピュータ)4のハードウェア構成の概要を示すブロック図である。ただし、本実施形態においては画像形成装置に搭載されるマルチプロセッサシステムを例にとり説明するが、本発明は画像形成装置以外の装置等に搭載されるマルチプロセッサシステムに対しても適用可能である。
画像形成装置1は、通信により接続され協調して動作を行う2つのCPU21,31により制御される組み込み装置である。CPU21は通信インターフェース22、ROM23、RAM24、操作パネル部25、及び通信インターフェース26にローカルなバスにより接続される。これらをまとめて第1CPUユニット2とする。CPU31は通信インターフェース32、ROM33、RAM34、及びNVRAM(Non Volatile RAM:不揮発性RAM)35にローカルなバスにより接続される。これらをまとめて第2CPUユニット3とする。
第1CPUユニット2及び第2CPUユニット3は通信インターフェース26と通信インターフェース32を接続することにより接続されている。これらの通信インターフェース26,32は例えばシリアル通信インターフェースであり、シリアル通信により通信が行われる。これは例えばバスによる接続でもよい。画像形成装置1には第1及び第2CPUユニット2,3の他にこれらのCPUユニット2,3に接続されCPU21,31によって制御され画像形成機能(例えばコピー機能)を実行する部品群があるがここでは図示せず、説明も行わない。
画像形成装置1にはユーザがデバッグ機能を操作する端末としてPC4が通信インターフェース22に接続されている。PC4は主にCPU41,通信インターフェース42,RAM43,HDD44,ディスプレイ45,キーボード46により構成される。この他マウス等が接続されてもよい。以下に第1及び第2CPUユニット2,3及びPC4の各構成部の説明を行う。
CPU21はROM23に格納されたプログラムを実行しCPU31と協調して画像形成装置1を制御して画像形成等を行う。通信インターフェース22はPC4を接続するためのもので、例えばシリアル通信インターフェースである。ROM23はCPU21で実行するプログラムを格納するためのメモリである。このプログラムは画像形成装置1を制御するファームウェアとデバッグ機能を与えるためのデバッガプログラムを含む。RAM24はCPU21に一時的な作業領域等を与えるためのメモリである。操作パネル部25は画像形成装置1に対する操作指示をユーザが入力するためのもので例えば液晶ディスプレイ等の表示部とテンキー及びスタートキー等の操作キー部を有する。PC4の代わりに操作パネル部25をデバッグ機能の操作に使用するようにしてもよい。通信インターフェース26は通信インターフェース32と接続するためのものでCPUユニット2,3間でのプロセッサ間通信メッセージ等を送受信しCPU21及びCPU31が協調して動作を行うため等に使用される。
CPU31はROM33に格納されたプログラムを実行しCPU21と協調して画像形成装置1を制御して画像形成等を行う。通信インターフェース32は通信インターフェース26と接続するためのものでCPUユニット2,3間でのプロセッサ間通信メッセージ等を送受信しCPU21及びCPU31が協調して動作を行うため等に使用される。ROMメモリ33はCPU31で実行するプログラムを格納するためのメモリである。このプログラムは第1CPUユニット2の場合と同様、ファームウェアとデバッガプログラムを含む。RAM34はCPU31に一時的な作業領域等を与えるためのメモリである。NVRAM35は画像形成装置の動作設定値等のデータを保存するための不揮発性のメモリである。
CPU41はRAM43内のプログラムを実行する。通信インターフェース42は通信インターフェース22と接続するための例えばシリアル通信インターフェースで、この通信インターフェースによりPC4から第1CPUユニット2へのデバッグコマンドの送信及び逆経路でデバッグコマンドに対する返信の送信が行われる。RAM43はHDD44に格納されたプログラムのうちCPU41で実行する部分を一時的に格納するための主記憶装置である。HDD(Hard Disk Drive:ハードディスク駆動装置)44はCPU41で実行するプログラム等を格納する外部記憶装置である。ディスプレイ45はPC4の表示用ユーザインターフェースとして使用されるものである。キーボード46はPC4の入力用インターフェースとして使用されるものである。
図2は本実施形態におけるデュアルマルチプロセッサシステムの各CPU21及びCPU31並びにそれに接続されたPC4のCPU41で実行されるプログラムと各プログラム間の関係を示すブロック図である。CPU41で実行される(本発明に係る)プログラム400は主にデバッガプログラム401及びOS(オペレーティングシステム)402である。CPU21で実行されるプログラム200はファームウェア201とデバッガプログラム202である。CPU31で実行されるプログラム300はファームウェア301とデバッガプログラム302である。
OS402はPC4の基本ソフトウェアでPC4にて実行するアプリケーションソフトウェア(デバッガプログラム401を含む)とPC4のハードウェアとの仲介を行うソフトウェアである。デバッガプログラム401はPC4で動作するアプリケーションソフトウェアでユーザによりキーボード46を使用して起動・終了され操作される。ユーザはデバッガプログラム401の操作としてデバッグコマンド及びその引数を指定して実行すること、及びディスプレイ45へ表示されたデバッグコマンドの実行結果を確認することが行える。デバッグコマンド及びその引数については後述する。
ファームウェア201は画像形成装置1を制御するプログラムでデバッグ対象プログラム(デバッグされるプログラム)である。デバッガプログラム202はファームウェア201及びファームウェア301のデバッグのための処理を行うプログラムである。画像形成装置1が起動された時点でデバッガプログラム202は起動される。デバッガプログラム202は必要に応じてファームウェア201を起動する。
ファームウェア301は画像形成装置1を制御するプログラムでデバッグ対象プログラムである。デバッガプログラム302はファームウェア301のデバッグのための処理を行うプログラムである。画像形成装置が起動された時点でデバッガプログラム302は起動される。デバッガプログラム302は必要に応じてファームウェア301を起動する。
デバッガプログラム401においてユーザが実行指示したデバッグコマンドはOS402を介してデバッガプログラム202にデバッグコマンド送信文字列として送信され、このデバッグコマンドがファームウェア301に対するものである場合はデバッガプログラム202からデバッガプログラム302に(フォームを変換された上で)転送される。受信したデバッグコマンドに対する返信は送信と逆の経路でデバッガプログラム401に送られる。
ファームウェア201とファームウェア301間のプロセッサ間通信におけるプロセッサ間通信メッセージの送受信はデバッガプログラム202及びデバッガプログラム302を介して行われる。ファームウェア201からファームウェア301に対するプロセッサ間通信メッセージは所定の通信フレーム(通信において送受信されるデータの単位)をデバッガプログラム202からデバッガプログラム302を介してファームウェア301に送られる。ファームウェア301からファームウェア201への通信フレームの送信は逆の経路となる。
プロセッサ間通信メッセージで使用する所定の通信フレーム(フォーマット)はデバッグコマンド及びその返信をデバッガプログラム202,302間で送受信する場合にも使用される。この通信フレームフォーマットについては後述する。
図3はユーザがデバッガプログラム401において指示することの可能なデバッグコマンドの一覧及びその引数を示す図表である。コマンド名欄5aはコマンドの名称、コマンド文字列欄5bはプログラム上で使用するコマンドを表す文字列、引数欄5cはそのコマンドを実行するために必要な引数、送信文字列欄5dは引数を含めたPC4からCPUユニット2に送られる文字列(以下、デバッグコマンド送信文字列という。)のイメージが示される。
欄51のコマンドはメモリの読み出し(5a)で、内容はRAM34の指定されたアドレスから指定されたサイズ分の内容をPC4のディスプレイ45に表示するというものである。コマンド文字列5bは「remote_debug_mem_dump」で引数5cは読み出しデータの格納開始アドレスとサイズである。従って送信文字列5dは「remote_debug_mem_dump([アドレス],[サイズ])」である。ここで[]で囲まれた部分には示された文字列そのものでなく、該当する内容のデータを記入する。上記の場合にはアドレスを表す数値及びサイズを表す数値となる。欄52のコマンドはメモリの書き換え(5a)で、内容はRAM34の指定されたアドレスから指定されたデータを書き込むというものである。コマンド文字列5bは「remote_debug_mem_modify」で引数5cはデータの書き込みを開始するアドレスと書き込むデータである。従って送信文字列5dは「remote_debug_mem_modify([アドレス],[データ])」となる。
欄53のコマンドは関数の実行(5a)で、内容はファームウェア301中の関数を指定された(関数の)引数によって実行し、実行結果のリターン値を取得してPC4のディスプレイ45に表示するというものである。コマンド文字列5bは「remote_debug_func_exec」で引数5cは関数の格納開始アドレスと関数の引数である。引数については複数個あればそれらを列挙する。従って送信文字列5dは「remote_debug_func_exec([アドレス],[引数1],...)」となる。
欄54のコマンドは不揮発性メモリ(NVRAM:Non-Volatile RAM)の読み出し(5a)で、内容はNVRAM35の指定されたアドレスから指定されたサイズ分の内容をPC4のディスプレイ45に表示するというものである。コマンド文字列5bは「remote_debug_nvram_dump」で引数5cは読み出しデータの格納開始アドレスとサイズである。従って送信文字列5dは「remote_debug_nvram_dump([アドレス],[サイズ])」である。欄55のコマンドは不揮発性メモリの書き換え(5a)で、内容はNVRAM35の指定されたアドレスから指定されたデータを書き込むというものである。コマンド文字列5bは「remote_debug_nvram_modify」で引数5cはデータの書き込みを開始するアドレスと書き込むデータである。
図4は第1CPUユニット2と第2CPUユニット3の間での通信に使用するフレームのフォーマットを示す図である。この通信フレームはデバッグコマンド及びその返信データを第1CPUユニット2と第2CPUユニット3の間で運ぶためのもので(以下、デバッグコマンド送信フレーム及びデバッグコマンド返信フレームという。)基本構造は第1CPUユニット2と第2CPUユニット3の間で行うプロセッサ間通信メッセージに使用する通信フレーム(以下、プロセッサ間通信フレームという。)の構造と同じである。このためデバッグコマンド送信/返信フレーム及びプロセッサ間通信フレームに対する受信部を共通にすることができる。
識別コード61は2バイトで表され、デバッグコマンドの種別を識別するためのコードが格納される。例えばメモリの読み出し51は「0xf001」、メモリの書き換え52は「0xf002」、関数の実行53は「0xf003」、不揮発性メモリの読み出し54は「0xf004」、不揮発性メモリの書き換え55は「0xf005」とする。フレームがデバッグコマンド送信/返信フレームであるかプロセッサ間通信フレームであるかも識別コード61で識別する。例えば先頭バイトが0xf0であるか否かで識別する。
アドレス62は2バイトで表され、デバッグコマンドの引数5cであるアドレスが格納される。引数63はデバッグコマンドの引数5cでアドレス以外のものが格納される。引数63は引数1から引数10の固定の所定数、例えば10個の引数格納領域(各1バイト)で構成される。引数の数に応じて必要な引数領域のみ使用し必要でない引数領域には例えば0x00を格納する。
例えばメモリの読み出しコマンド51及び不揮発性メモリの読み出しコマンド54においては読み出しデータのサイズを引数1に格納し、その他(引数2から引数10)には0x00を格納する。例えばメモリの書き換えコマンド52及び不揮発性メモリの書き換えコマンド55においては格納データをそのバイト分(10バイトまで)引数63に格納する。例えば関数の実行コマンド53においては実行する関数への引数を引数63に格納する。
各コマンドに対する(CPUユニット3からCPUユニット2への)返信(デバッグコマンド返信フレーム)にも同じフォーマット6を使用する。例えば返信時には識別コード61及びアドレス62はデバッグコマンド送信フレーム(CPUユニット3が受信したもの)と同じで、例えばメモリの読み出しコマンド51及び不揮発性メモリの読み出しコマンド54に対する返信においては引数63に読み出しデータを格納して返信する。また例えばメモリの書き換えコマンド52及び不揮発性メモリの書き換えコマンド55の返信においては引数63に何も記入しない(例えば送信時のままとする。)。また例えば関数の実行コマンド53においては引数63にリターン値を格納して返信する。
チェックサム64は通信フレームのデータの整合性をチェックするための1バイトのコードである。終了コード65は通信フレームの末尾であることを示すためのコードである。
図5はCPU21で実行されるプログラム200及びCPU31で実行されるプログラム300の機能構成を示す図である。プログラム200はデバッグコマンド受信部211、送信先判別部212、フレーム変換部213、フレーム受信部214、フレーム判別部215、フレーム送信部216、コマンド送信部217、デバッグ実行部218、通信フレーム転送部219を備える。
デバッグコマンド受信部211は、PC4からデバッグコマンドを表す送信文字列5d(デバッグコマンド送信文字列)が送信されてきた場合にそれを受信する。送信先判別部212は、受信したデバッグコマンド送信文字列が第1CPUユニット2に対するコマンドであるか第2CPUユニット3に対するコマンドであるかを判定する。具体的には図3に示すように送信文字列5dの最初が「remote_」で始まるものは第2CPUユニット3に対するコマンド、それ以外のものは第1CPUユニット2に対するコマンドであると判断する。
フレーム変換部213は、PC4から受信した図3の送信文字列5dの形のデバッグコマンド送信文字列(ただし、文字列先頭は「remote_」で始まらない。)を解析し図4に示す通信フレーム(デバッグコマンド送信フレーム)の形に変換する。また、第2CPUユニット3から受信したデバッグコマンド返信フレームをPC4に返信するための返信用のデバッグコマンド文字列(以下、デバッグコマンド返信文字列という。)に変換する。
フレーム送信部216は、フレーム変換部213において作成されたデバッグコマンド送信フレームを第2CPUユニット3に対して送信する。フレーム受信部214は、第2CPUユニット3から通信フレーム(デバッグコマンド返信フレーム及びプロセッサ間通信フレーム)が送信されて来た場合にそれを受信する。フレーム判別部215は、フレーム受信部214にて受信した通信フレームをデバッグコマンド返信フレームであるかプロセッサ間通信フレームであるか判別する。例えば識別コード61の先頭バイトにより判別する。
デバッグ実行部218は、受信したデバッグコマンド送信文字列が第1CPUユニット2に対するものである場合にデバッグコマンド送信文字列の内容を解析しデバッグコマンド種別を判別し、そのデバッグコマンド種別に対応したデバッグ機能を実行する。本実施形態においては第2CPUユニット3に対するデバッグ機能の提供が本題であるので、ここでは第1CPUユニット2に対するデバッグ機能の実行に対する詳しい説明は省略する。
コマンド送信部217は、第1CPUユニット2に対するデバッグコマンドを実行した後にその実行結果を含む返信をデバッグコマンド返信文字列としてPC4に対して返信する。通信フレーム転送部219は、フレーム受信部214で受信した通信フレームがフレーム判別部215でプロセッサ間通信フレームであると判別された場合にこの通信フレームをファームウェアプロセス201に転送する。
プログラム300はフレーム受信部311、フレーム判別部312、通信フレーム転送部313、デバッグ実行部314、返信フレーム作成部315、フレーム送信部316を備える。デバッグ実行部314は更にデバッグコマンド判別部321、メモリ読出実行部322、メモリ書換実行部323、関数実行部324、不揮発性メモリ読出実行部325、不揮発性メモリ書換実行部326を備える。
フレーム受信部311は、第1CPUユニット2から通信フレーム(デバッグコマンド送信フレーム及びプロセッサ間通信フレーム)が送信されて来た場合にそれを受信する。
フレーム判別部312は、フレーム受信部311で受信した通信フレームをデバッグコマンド送信フレームであるかプロセッサ間通信フレームであるか判別する。通信フレーム転送部313は、フレーム受信部311で受信した通信フレームがフレーム判別部312でプロセッサ間通信フレームであると判別された場合にこのフレームをファームウェアプロセス301に転送する。
デバッグ実行部314は、デバッグコマンド送信文字列からデバッグコマンド種別を判別してデバッグコマンド種別に応じたデバッグ機能を実行する。デバッグコマンド判別部321は、フレーム判別部312が受信した通信フレームをデバッグコマンド送信フレームであると判別した場合にデバッグコマンド送信フレームの識別コード61をチェックしてデバッグコマンドの種別を判別する。
メモリ読出実行部322は、受信した通信フレームのアドレス領域62からアドレス、引数領域63からサイズを取得し、ROM33又はRAM34の上記アドレスから上記サイズ分のデータを読み出し、返信フレーム作成部315に渡す。メモリ書換実行部323は、受信した通信フレームのアドレス領域62からアドレス、引数領域63から格納データを取得し、RAM34の上記アドレスから上記格納データを書き込む。
関数実行部324は、受信した通信フレームのアドレス領域62からアドレス、引数領域63から関数の引数を取得し、RAM34の関数の引数が格納されるべき所定の位置に上記関数の引数を格納しROM33の上記アドレスからプログラム(関数)を実行する。プログラムの実行が終了したらRAM34のリターン値を格納されるべき所定の位置に格納された関数のリターン値を返信フレーム作成部315に渡す。
不揮発性メモリ読出実行部325は、受信した通信フレームのアドレス領域62からアドレス、引数領域63からサイズを取得し、NVRAM35の上記アドレスから上記サイズ分のデータを読み出し、返信フレーム作成部315に渡す。不揮発性メモリ書換実行部326は、受信した通信フレームのアドレス領域62からアドレス、引数領域63から格納データを取得し、NVRAM35の上記アドレスから上記格納データを書き込む。
返信フレーム作成部315は、受信したデバッグコマンド送信フレームの引数領域63にデバッグコマンド種別に応じて返信データを格納し、これをデバッグコマンド返信フレームとする。フレーム送信部316は、返信フレーム作成部315が作成したデバッグコマンド返信フレームを第1CPUユニット2へ送信する。
図6はプログラム200の処理の流れを示すフローチャートである。ステップS1では、デバッグコマンド受信部211はPC4からデバッグコマンド送信文字列を受信したか否かをチェックする。デバッグコマンド送信文字列を受信した場合は(ステップS1でYES)、ステップS3へ進む。ステップS3では、送信先判別部212は受信したデバッグコマンド送信文字列が第1CPUユニット2へのコマンドか否かを判別し、第1CPUユニット2へのコマンドであれば(ステップS3でYES)ステップS21へ進む。
ステップS21では、デバッグ実行部218は受信したデバッグコマンド送信文字列からデバッグコマンド種別を判別する。ステップS23では、デバッグ実行部218はデバッグコマンド種別に応じてデバッグ機能を実行する。ステップS25では、コマンド送信部217は受信したデバッグコマンド送信文字列に対する返信をデバッグコマンド返信文字列としてPC4へ送信する。
ステップS3の分岐において受信したデバッグコマンド送信文字列が第1CPUユニット2に対するコマンドでないと判定された場合には(ステップS3でNO)、ステップS5へ進む。ステップS5では送信先判別部212は受信したデバッグコマンド送信文字列が第2CPUユニット3に対するコマンドか否かを判別し、第2CPUユニット3へのコマンドでなければ(ステップS5でNO)ステップS19へ進む。この場合は受信したデバッグコマンド送信文字列はどのCPUユニットへのコマンドを表すものかが適切に判別できないということなので、ステップS19では、送信先判別部212が受信したデバッグコマンド送信文字列を破棄する。
ステップS5の分岐において受信したデバッグコマンド送信文字列が第2CPUユニット3へのコマンドであると判定された場合には(ステップS5でYES)、ステップS7へ進む。ステップS7では、フレーム変換部213は受信したデバッグコマンド送信文字列を図4に示すフレーム(デバッグコマンド送信フレーム)に変換する。ステップS9では、フレーム送信部216は作成したデバッグコマンド送信フレームを第2CPUユニット3へ送信する。
ステップS1の分岐においてデバッグコマンド送信文字列を受信しなかった場合(ステップS1でNO)又はステップS9を終了した場合にはステップS11へ進む。ステップS11では、フレーム受信部214は第2CPUユニット3から通信フレームを受信したか否かをチェックする。通信フレームを受信した場合は(ステップS11でYES)、ステップS13へ進む。ステップS13では、フレーム判別部215は受信した通信フレームをデバッグコマンド返信フレームであるかプロセッサ間通信フレームであるか判別する。デバッグコマンド返信フレームであれば(ステップS13でYES)、ステップS15へ進む。ステップS15では、フレーム変換部213は図4に示すフォーマットの返信用フレーム(デバッグコマンド返信フレーム)をPC4へ返信するためのデバッグコマンド返信文字列に変換する。ステップS17では、コマンド送信部217はステップS15で作成したデバッグコマンド返信文字列をPC4へ送信する。
ステップS13の分岐において受信した通信フレームがデバッグコマンド返信フレームでなかった場合は(ステップS13でNO)、ステップS27へ進む。ステップS27では、通信フレーム転送部219はファームウェアプロセス201にステップS11で受信した通信フレーム(プロセッサ間通信フレーム)を転送する。ステップS11の分岐において通信フレームを受信しなかった場合(ステップS11でNO)、並びに、ステップS17、ステップS27、及びステップS25の処理が終了した場合にはステップS1に戻り、ステップS1からの処理を繰り返す。
図7はプログラム300の処理の流れを示すフローチャートである。ステップS31では、フレーム受信部311は第1CPUユニット2から通信フレームを受信したか否かのチェックを受信するまで繰り返す(ステップS31でNO)。通信フレームを受信した場合(ステップS31でYES)には、ステップS33へ進む。ステップS33では、フレーム判別部312は受信した通信フレームをデバッグコマンド送信フレームであるかプロセッサ間通信フレームであるか判別する。デバッグコマンド送信フレームであれば(ステップS33でYES)、ステップS35へ進む。ステップS35では、デバッグコマンド判別部321はデバッグコマンド送信フレームの識別コード61をチェックしてデバッグコマンド種別を判別する。ステップS37では、デバッグ実行部314はデバッグコマンド種別に応じたデバッグ機能を実行する処理を行う。デバッグ機能の実行処理の流れについては後述する。ステップS39では、フレーム送信部316は返信フレーム作成部315により作成されたデバッグコマンド返信フレームを第1CPUユニット2へ送信する。
ステップS33の分岐において通信フレームがデバッグコマンド返信フレームでなかった場合には(ステップS33でNO)、ステップS41へ進む。ステップS41では、通信フレーム転送部313はステップS31で受信した通信フレーム(プロセッサ間通信フレーム)をファームウェアプロセス301に転送する。ステップS39及びステップS41の処理が終了したらステップS31に戻り、ステップS31からの処理を繰り返す。
図8は図7のフローチャートにおけるステップS37のデバッグコマンド実行処理の流れを示すフローチャートである。ステップS51では、デバッグコマンド判別部321はデバッグコマンドをメモリ読み出しコマンドであると判別したら(ステップS51でYES)、ステップS53へ進む。ステップS53では、メモリ読出実行部322は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数であるアドレスを取得する。ステップS55では、メモリ読出実行部322は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数であるサイズを取得する。ステップS57では、メモリ読出実行部322はステップS53で取得したアドレスを開始アドレスとしてステップS55で取得したサイズ分のデータをRAM34から取得する。ステップS59では、返信フレーム作成部315はステップS57で取得したデータを格納したデバッグコマンド返信フレームを作成する。
ステップS51の分岐においてデバッグコマンドがメモリ読み出しコマンドでなかった場合には(ステップS51でNO)、ステップS61へ進む。ステップS61では、デバッグコマンド判別部321はデバッグコマンドをメモリ書き換えコマンドであると判別したら(ステップS61でYES)、ステップS63へ進む。ステップS63では、メモリ書換実行部323は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数であるアドレスを取得する。ステップS65では、メモリ書換実行部323は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数である格納データを取得する。ステップS67では、メモリ書換実行部323はステップS63で取得したアドレスを開始アドレスとしてステップS65で取得した格納データをRAM34に格納する。ステップS69では、返信フレーム作成部315は受信したデバッグコマンド送信フレームをそのままデバッグコマンド返信フレームとする。
ステップS61の分岐においてデバッグコマンドがメモリ読み出しコマンドでなかった場合(ステップS61でNO)には、ステップS71へ進む。ステップS71では、デバッグコマンド判別部321はデバッグコマンドを不揮発性メモリ読み出しコマンドであると判別したら(ステップS71でYES)、ステップS73へ進む。ステップS73では、不揮発性メモリ読出実行部325は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数であるアドレスを取得する。ステップS75では、不揮発性メモリ読出実行部325は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数であるサイズを取得する。ステップS77では、不揮発性メモリ読出実行部325はステップS73で取得したアドレスを開始アドレスとしてステップS75で取得したサイズのデータをNVRAM35から取得する。ステップS79では、返信フレーム作成部315はステップS77で取得したデータを格納したデバッグコマンド返信フレームを作成する。
ステップS71の分岐においてデバッグコマンドが不揮発性メモリ読み出しコマンドでなかった場合(ステップS71でNO)には、ステップS81へ進む。ステップS81では、デバッグコマンド判別部321はデバッグコマンドを不揮発性メモリ書き換えコマンドであると判別したら(ステップS81でYES)、ステップS83へ進む。ステップS83では、不揮発性メモリ書換実行部326は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数であるアドレスを取得する。ステップS85では、不揮発性メモリ書換実行部326は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数である格納データを取得する。ステップS87では、不揮発性メモリ書換実行部326はステップS83で取得したアドレスを開始アドレスとしてステップS85で取得したデータのサイズ分の領域のデータをNVRAM35から消去する。ステップS89では、不揮発性メモリ書換実行部326はステップS83で取得したアドレスを開始アドレスとしてステップS85で取得した格納データをNVRAM35に格納する。ステップS91では、返信フレーム作成部315は受信したデバッグコマンド送信フレームをそのままデバッグコマンド返信フレームとする。
ステップS81の分岐においてデバッグコマンドが不揮発性メモリ書き換えコマンドでなかった場合(ステップS81でNO)には、ステップS93へ進む。ステップS93では、デバッグコマンド判別部321はデバッグコマンドを関数実行コマンドであると判別したら(ステップS93でYES)、ステップS95へ進む。ステップS95では、関数実行部324は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数であるアドレスを取得する。ステップS97では、関数実行部324は受信したデバッグコマンド送信フレームから当該デバッグコマンドの引数である関数引数を取得する。ステップS99では、関数実行部324は取得した関数引数を当該関数が引数の格納場所として認識するRAM34内の所定の格納位置に格納する。ステップS101では、関数実行部324は当該関数を含むファームウェア301を取得したアドレスから別プロセスとして実行する。ステップS103では、関数実行部324は当該関数の実行結果としてRAM34内の所定の位置に格納されるリターン値を取得する。ステップS105では、返信フレーム作成部315は取得したリターン値を格納したデバッグコマンド返信フレームを作成する。
ステップS93の分岐においてデバッグコマンドが関数実行コマンドでなかった場合(ステップS93でNO)には、ステップS107へ進む。この場合はプログラム300では処理できないデバッグコマンド送信フレームを受信したということなので、ステップS107では、返信フレーム作成部315はエラーである旨を格納したデバッグコマンド返信フレームを作成する。
このように本実施形態によれば、第1CPUユニット2に設けられた外部装置(PC4)への通信インターフェース22のみがデバッグ用ハードウェアとして設けられたのみで、マルチプロセッサシステム1に対してその他のハードウェアの付加又は変更を行うことなくマルチプロセッサシステム1における第1CPUユニット2以外のCPUユニット(第2CPUユニット3)で実行されるファームウェア301のデバッグを可能とした。
なお、本発明は、上記実施形態のものに限定されるものではなく、以下に述べる態様を採用することができる。例えば本実施形態においてはマルチプロセッサシステムとして2つのCPUユニットが結合されたデュアルプロセッサシステムを例に取り説明したが、これはデュアルプロセッサシステムである必要はなく、CPUユニットが3つ以上結合されたマルチプロセッサシステムであってもよい。この場合、デバッグコマンド送信フレームの送信先を第1CPUユニット2において判別する必要があるため、デバッグコマンド送信文字列及びデバッグコマンド送信フレームにおいてそのデバッグコマンドの送信先を判別可能にする必要がある。具体的には例えばデバッグコマンド送信フレームには送信先識別コード領域をフレームの例えば先頭に設け、送信先を識別するためのコードを格納するようにするとよい。また、デバッグコマンド送信文字列の先頭を例えば「remote1_」、「remote2_」のように番号等を設け送信先を識別できるようにすればよい。
本実施形態においては、デバッグコマンド送信文字列やデバッグコマンド送信フレームを受信した場合に必ずデバッグコマンド返信文字列やデバッグコマンド返信フレームをその返信として返すようにしたが、返信すべきデータがない場合には返信を返さないようにしてもよい。
本実施形態においては、図4に示すデバッグコマンド送信フレームの引数63に固定数、例えば10個の引数の格納領域を設けるようにしたが、これは引数の数に合わせた可変数の引数格納領域を設けるようにしてもよい。このためには例えば引数領域63の先頭に引数の数を格納する領域を設けるようにすればよい。また、本実施形態においては1バイトの引数10個分に対応する大きさ(10バイト)のデータしかRAM34またはNVRAM35に一度に読み出し又は書き換え出来なかったが、上記のように引数領域63を可変長にすることにより例えば10バイトより大きなデータを読み出し又は書き換え可能にすることができる。また、ユーザが例えば10バイトより大きなデータを読み出し又は書き換えに指定した場合に、複数の通信フレームにより複数回の通信で大きなデータの読み出し又は書き換えを行うようにしてもよい。また、通信フレーム6のチェックサム64及び終了コード65は必須のものではない。
本発明の一実施形態によるマルチプロセッサシステム及びそれに接続されたPCのハードウェア構成を示すブロック図である。 本発明の一実施形態によるマルチプロセッサシステム及びそれに接続されたPCにおいて実行されるソフトウェアの関係を示すブロック図である。 本発明の一実施形態によるデバッグコマンドの一覧を示す図表である。 本発明の一実施形態における送信用の通信フレームを示す図である。 本発明の一実施形態におけるマルチプロセッサシステムにおいて実行されるデバッガプログラムの機能構成を示すブロック図である。 本発明の一実施形態におけるマルチプロセッサシステムの主CPUにおいて実行されるデバッグプログラムの処理の流れを示すフローチャート図である。 本発明の一実施形態におけるマルチプロセッサシステムの副CPUにおいて実行されるデバッグプログラムの処理の流れを示すフローチャート図である。 本発明の一実施形態におけるマルチプロセッサシステムにおいて実行されるデバッグプログラムのうちデバッグコマンドを実行するサブルーチンの処理の流れを示すフローチャート図である。
符号の説明
1 画像形成装置(マルチプロセッサシステム)
2 第1CPUユニット(第1のCPUユニット)
3 第2CPUユニット(その他のCPUユニット)
4 PC(外部装置)
21,31 CPU
23,33 ROM(メモリ)
22 通信I/F(接続手段)
211 デバッグコマンド受信部(コマンド受信手段)
212 送信先判別部(コマンド転送手段、送信先決定手段)
213 フレーム変換部(コマンド転送手段、通信フレーム作成手段)
214 フレーム受信部(返信フレーム転送手段)
216 フレーム送信部(コマンド転送手段、フレーム送信手段)
217 コマンド送信部(返信フレーム転送手段)
311 フレーム受信部(転送コマンド受信手段)
314 デバッグ実行部(実行手段)
315 返信フレーム作成部(返信フレーム作成手段)
316 フレーム送信部(フレーム返信手段)

Claims (4)

  1. CPUで動作するファームウェアプログラムをデバッグするためのデバッグ機能を備えるマルチプロセッサシステムであって、
    前記ファームウェアプログラムを実行するCPUと前記ファームウェアプログラムを格納するメモリを備えるCPUユニットを複数通信可能に接続したマルチプロセッサシステムにおいて、
    外部装置との通信を行うための接続手段を備える第1のCPUユニットと、
    前記接続手段を備えない1つ以上の第2のCPUユニットとを有し、
    前記第1のCPUユニットは
    前記外部装置から送信されたコマンドを含む通信フレームを受信するコマンド受信手段と、
    前記受信した通信フレームをプロセッサ間通信に用いられる通信フレームに変換して前記第2のCPUユニットに転送するコマンド転送手段とを備え、
    前記第2のCPUユニットは
    前記コマンド転送手段により転送された前記プロセッサ間通信に用いられる通信フレームを受信する転送コマンド受信手段と、
    前記転送コマンド受信手段により受信した前記プロセッサ間通信に用いられる通信フレームに含まれるコマンドの内容に応じてデバッグ機能を実行する実行手段とを備え、
    前記コマンド転送手段は
    前記外部装置との通信に用いられる通信フレームに含まれるコマンドの内容を解析し解析した内容に従って予め定められたフォーマットで前記プロセッサ間通信に用いられる通信フレームを作成する通信フレーム作成手段と、
    前記プロセッサ間通信に用いられる通信フレームを転送先に送信するフレーム送信手段とを更に備え、
    前記予め定められたフォーマットは、前記外部装置との通信に用いられる通信フレームと異なるフォーマットであり、前記プロセッサ間通信に用いられる通信フレームと同じフォーマットであり、前記プロセッサ間通信に用いられる通信フレームは、当該通信フレームがデバッグコマンド通信フレームであるかプロセッサ間通信フレームであるかを識別する識別コードを含み、
    前記転送コマンド受信手段は、前記識別コードにより、前記プロセッサ間通信に用いられる通信フレームが前記デバッグコマンド通信フレームであると識別された場合、前記デバッグコマンド通信フレームを前記実行手段へ転送し、前記識別コードにより、前記プロセッサ間通信に用いられる通信フレームが前記プロセッサ間通信フレームであると識別された場合、前記プロセッサ間通信フレームをファームウェアプロセスへ転送することを特徴とするデバッグ機能を備えるマルチプロセッサシステム。
  2. 前記コマンド転送手段は前記コマンドの内容を解析した内容に従って前記プロセッサ間通信に用いられる通信フレームの送信先を決定する送信先決定手段を備えることを特徴とする請求項1に記載のデバッグ機能を備えるマルチプロセッサシステム。
  3. 前記第2のCPUユニットは
    前記デバッグ機能の実行結果を格納する返信フレームを作成する返信フレーム作成手段と、
    前記返信フレームを前記第1のCPUユニットに送信するフレーム返信手段とを更に備え、
    前記第1のCPUユニットは
    前記フレーム返信手段により返信された返信フレームの内容を前記外部装置に転送する返信フレーム転送手段を更に備えることを特徴とする請求項1又は2記載のデバッグ機能を備えるマルチプロセッサシステム。
  4. CPUと前記CPUで実行されるファームウェアプログラムを格納するメモリを備えるCPUユニットを複数通信可能に接続したマルチプロセッサシステムのプログラムであって、
    第1のCPUユニットのプログラムは前記第1のCPUユニットのCPUを
    前記第1のCPUユニットに接続された外部装置から送信されたコマンドを含む通信フレームを受信するコマンド受信手段と、
    前記受信した通信フレームをプロセッサ間通信に用いられる通信フレームに変換して前記第1のCPUユニットに接続された1つ以上の第2のCPUユニットに転送するコマンド転送手段として機能させ、
    前記第2のCPUユニットのプログラムは前記第2のCPUユニットのCPUを
    前記コマンド転送手段により転送された前記プロセッサ間通信に用いられる通信フレームを受信する転送コマンド受信手段と、
    前記転送コマンド受信手段により受信した前記プロセッサ間通信に用いられる通信フレームに含まれるコマンドの内容に応じてデバッグ機能を実行する実行手段として機能させ、
    前記コマンド転送手段は
    前記外部装置との通信に用いられる通信フレームに含まれるコマンドの内容を解析し解析した内容に従って予め定められたフォーマットで前記プロセッサ間通信に用いられる通信フレームを作成する通信フレーム作成手段と、
    前記プロセッサ間通信に用いられる通信フレームを転送先に送信するフレーム送信手段とを更に備え、
    前記予め定められたフォーマットは、前記外部装置との通信に用いられる通信フレームと異なるフォーマットであり、プロセッサ間通信に用いられる通信フレームと同じフォーマットであり、前記プロセッサ間通信に用いられる前記通信フレームは、当該通信フレームがデバッグコマンド通信フレームであるかプロセッサ間通信フレームであるかを識別する識別コードを含み、
    前記転送コマンド受信手段は、前記識別コードにより、前記プロセッサ間通信に用いられる通信フレームが前記デバッグコマンド通信フレームであると識別された場合、前記デバッグコマンド通信フレームを前記実行手段へ転送し、前記識別コードにより、前記プロセッサ間通信に用いられる通信フレームが前記プロセッサ間通信フレームであると識別された場合、前記プロセッサ間通信フレームをファームウェアプロセスへ転送することを特徴とするマルチプロセッサシステムのプログラム。
JP2003340811A 2003-09-30 2003-09-30 デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム Expired - Fee Related JP3971361B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003340811A JP3971361B2 (ja) 2003-09-30 2003-09-30 デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003340811A JP3971361B2 (ja) 2003-09-30 2003-09-30 デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム

Publications (2)

Publication Number Publication Date
JP2005107909A JP2005107909A (ja) 2005-04-21
JP3971361B2 true JP3971361B2 (ja) 2007-09-05

Family

ID=34535598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003340811A Expired - Fee Related JP3971361B2 (ja) 2003-09-30 2003-09-30 デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム

Country Status (1)

Country Link
JP (1) JP3971361B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180089003A1 (en) * 2016-09-27 2018-03-29 Fuji Xerox Co., Ltd. Electronic device and image processing device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4633553B2 (ja) * 2005-06-22 2011-02-16 ルネサスエレクトロニクス株式会社 デバッグシステム、デバッグ方法およびプログラム
JP4833907B2 (ja) 2007-04-23 2011-12-07 ルネサスエレクトロニクス株式会社 半導体装置
JP5716458B2 (ja) * 2011-03-02 2015-05-13 株式会社リコー プロセッサ装置のためのデバッグ回路、プロセッサ装置及びデバッグシステム
JP7073285B2 (ja) 2019-01-09 2022-05-23 ルネサスエレクトロニクス株式会社 動作検証プログラム、動作同期方法及び異常検出装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180089003A1 (en) * 2016-09-27 2018-03-29 Fuji Xerox Co., Ltd. Electronic device and image processing device
US10860392B2 (en) * 2016-09-27 2020-12-08 Fuji Xerox Co., Ltd. Electronic device and image processing device

Also Published As

Publication number Publication date
JP2005107909A (ja) 2005-04-21

Similar Documents

Publication Publication Date Title
US8898638B1 (en) Method and system for remote software debugging
US7155550B2 (en) Program-executing apparatus and portable information processing apparatus
CN109491759B (zh) 基于虚拟文件系统的进程调试方法、装置和计算机设备
CN108170494A (zh) 一种用于智能终端的应用程序启动方法及启动系统
JP3971361B2 (ja) デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム
JP4883314B2 (ja) Plcを用いたデータトレースシステム
JP2004185595A (ja) 情報処理装置およびそのプログラム
JP7093979B2 (ja) デバイスプロキシ装置及びそれを含む計算機システム
KR20070003454A (ko) 임베디드 시스템의 플래시 메모리 덤프 방법 및 그 시스템
US20050071812A1 (en) Combined emulation and simulation debugging techniques
JP2003108513A (ja) ハードウェア・チェーン・プル
JP4542180B2 (ja) 画像形成装置、プログラム、及び記録媒体
JP4494329B2 (ja) 情報処理装置
JPH10326203A (ja) 複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置
CN113703811B (zh) 一种dsp远程下载固件的方法、装置、设备及存储介质
JP2004062828A (ja) 画像形成装置およびカスタマイズプログラム試験方法
JP5144624B2 (ja) 画像形成装置
KR100682667B1 (ko) 컴퓨터 윈도우 기반의 디지털 텔레비젼 수신기 시뮬레이션시스템
KR101033591B1 (ko) 임베디드 시스템의 디버깅 방법
JP2009032241A (ja) 計算機システム及び計算機制御方法,制御プログラムを格納した記憶媒体
JP2007141139A (ja) 情報処理装置
JP3634163B2 (ja) ネットワークシステムおよびエミュレータプログラムを記録した記録媒体
JP2002073520A (ja) 情報処理装置およびデータ通信処理方法および記憶媒体
JPS6329852A (ja) マイクロコンピユ−タ応用機器の開発装置
JP2007094475A (ja) 半導体集積回路、並びに、デバッグ方法及びデバッグシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060711

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060905

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070213

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070330

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070607

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140615

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees