図面 (/)

技術 画像処理装置、デバッグ支援方法およびデバッグ支援プログラム

出願人 コニカミノルタ株式会社
発明者 大迫了敏上田滋之細野真央
出願日 2016年6月24日 (4年5ヶ月経過) 出願番号 2016-125226
公開日 2017年12月28日 (2年11ヶ月経過) 公開番号 2017-228191
状態 特許登録済
技術分野 デバッグ/監視 マルチプログラミング
主要キーワード 対象変数 延長コマンド マスクROM 対象パラメータ パラメータチェック 仮想化レイヤ メイン回路 オペレーティングプログラム
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年12月28日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

ハードウェア資源を変更することなく、動作を変更した状態を再現するデバッグ支援方法およびデバッグ支援プログラムを提供する。

解決手段

MFPは、オペレーティングシステムプログラムを実行するホスト制御部51およびゲスト制御部53と、ゲスト制御部53によるハードウェア資源の制御を可能とするエミュレート部55と、ハードウェア資源が実行可能な処理をハードウェア記述言語記述したHDLプログラムを変更する変更部67と、を備える。ゲスト制御部53は、ハードウェア資源を制御するドライバープログラムを実行するゲストドライバー部69を含み、エミュレート部55は、変更されたHDLプログラムを実行するデバイスエミュレート部73と、ホスト制御部51を制御してハードウェア資源を制御させる第1の制御と、デバイスエミュレート部73を制御する第2の制御とのいずれかに切り換える切換部71とを含む。

概要

背景

画像を処理する画像処理装置で代表されるMFP(Multi Function Periferal)は、種々のハードウェア資源が搭載されており、CPUによってそれらが制御される。ハードウェア資源は、例えば、画像データを処理するためのASIC(Application Specific IntegratedCircuit)、用紙に画像を形成するエンジン等である。また、MFPには、アプリケーションプログラムインストールされており、そのアプリケーションプログラムが、ハードウェア資源を制御する処理を含む場合がある。このようなアプリケーションプログラムを開発する段階で、アプリケーションプログラムで定められたハードウェア資源を制御する処理と、ハードウェア資源の動作とを整合させる必要がある。特に、複数のアプリケーションプログラムが1つのハードウェア資源を制御する場合に、制御が競合することによるエラーが発生する場合がある。この場合、実際にアプリケーションプログラムが完成した段階で、アプリケーションプログラムを実行して、ハードウェア資源の動作との整合性チェックする方法がある。

しかしながら、アプリケーションプログラムがハードウェア資源を制御してからハードウェア資源から応答があるまでの間にエラーの原因が存在するような場合、ハードウェア資源を制御してから応答があるまでの期間が短いために、エラーが発生する確率が低く、エラーの原因を特定することが困難であるといった問題がある。例えば、特開2013−012196号公報には、ターゲットハードウェアプラットフォームにより実行されるソフトウェアアプリケーションの実行に使用される方法であって、ターゲットハードウェアプラットフォームのハードウェア記述言語HDL)の記述を決定すること、HDL記述に基づいてターゲットハードウェアプラットフォームと機能的に等価なプログラマブルハードウェアコンポーネントを構成する技術が記載されている。しかしながら、特開2013−012196号公報に記載の方法を適用したとしても、ASICのレスポンスを遅らせた仕様のプログラマブルハードウェアコンポーネントを構成しなければならず、そのような仕様のプログラマブルハードウェアコンポーネントを構成するために費やされるコストの面で現実的でない。
特開2013−012196号公報

概要

ハードウェア資源を変更することなく、動作を変更した状態を再現するデバッグ支援方法およびデバッグ支援プログラムを提供する。MFPは、オペレーティングシステムプログラムを実行するホスト制御部51およびゲスト制御部53と、ゲスト制御部53によるハードウェア資源の制御を可能とするエミュレート部55と、ハードウェア資源が実行可能な処理をハードウェア記述言語で記述したHDLプログラムを変更する変更部67と、を備える。ゲスト制御部53は、ハードウェア資源を制御するドライバープログラムを実行するゲストドライバー部69を含み、エミュレート部55は、変更されたHDLプログラムを実行するデバイスエミュレート部73と、ホスト制御部51を制御してハードウェア資源を制御させる第1の制御と、デバイスエミュレート部73を制御する第2の制御とのいずれかに切り換える切換部71とを含む。

目的

この発明は上述した問題点を解決するためになされたもので、この発明の目的の1つは、ハードウェア資源を変更することなく、ハードウェア資源の動作を変更した状態を再現することが可能な画像処理装置を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

オペレーティングシステムプログラムを実行し、ハードウェア資源を制御するホスト制御手段と、前記オペレーティングシステムプログラムと同じオペレーティングシステムプログラムを実行するゲスト制御手段と、前記ホスト制御手段と前記ゲスト制御手段との間に設けられ、前記ゲスト制御手段による前記ハードウェア資源の制御を可能とするエミュレート手段と、前記ハードウェア資源が実行可能な処理をハードウェア記述言語記述したHDLプログラムを変更する変更手段と、を備え、前記ゲスト制御手段は、前記ハードウェア資源を制御するためドライバープログラムを実行するゲストドライバー手段を含み、前記エミュレート手段は、前記変更されたHDLプログラムを実行することにより前記ハードウェア資源をエミュレートするデバイスエミュレート手段と、前記ゲストドライバー手段による前記ハードウェア資源の制御に従って前記ホスト制御手段を制御して前記ハードウェア資源を制御させる第1の制御と、前記ゲストドライバー手段による前記ハードウェア資源の制御に従って前記デバイスエミュレート手段を制御する第2の制御とのいずれかに切り換え切換手段と、を含む、画像処理装置

請求項2

前記ハードウェア資源は、複数あり、前記複数のハードウェア資源のうちからユーザーにより選択されたハードウェア資源を特定する資源特定手段と、前記特定されたハードウェア資源に対応するHDLプログラムを取得するプログラム取得手段と、をさらに備え、前記変更手段は、前記取得されたHDLプログラムをユーザーによる指示に基づいて変更し、前記切換手段は、前記特定されたハードウェア資源に対して前記第1の制御と前記第2の制御とのいずれかに切り換える、請求項1に記載の画像処理装置。

請求項3

前記変更手段は、前記ハードウェア資源が処理を実行してから結果を出力するまでの応答時間を延長するコマンドを追加する延長コマンド追加手段を、含む、請求項1または2に記載の画像処理装置。

請求項4

前記変更手段は、前記ハードウェア資源が処理を実行するために前記ゲストドライバー手段から受け付けパラメータチェックするコマンドを追加するパラメータチェックコマンド追加手段を、含む、請求項1〜3のいずれかに記載の画像処理装置。

請求項5

前記変更手段は、前記ハードウェア資源が処理を実行することにより変化する変数をチェックするコマンドを追加する変数チェックコマンド追加手段を、含む、請求項1〜4のいずれかに記載の画像処理装置。

請求項6

前記ハードウェア資源は、ASIC(ApplicationSpecificIntegratedCircuit)である、請求項1〜5のいずれかに記載の画像処理装置。

請求項7

前記ハードウェア資源は、FPGA(FieldProgrammableGateArray)である、請求項1〜5のいずれかに記載の画像処理装置。

請求項8

前記ゲスト制御手段を制御して前記ハードウェア資源を制御する処理を定めたアプリケーションプログラムを実行するアプリ実行手段を、さらに備えた請求項1〜7のいずれかに記載の画像処理装置。

請求項9

画像処理装置で実行されるアプリケーションプログラムをデバッグするデバッグ支援方法であって、前記画像処理装置は、オペレーティングシステムプログラムを実行し、前記ハードウェア資源を制御するホスト制御手段と、前記オペレーティングシステムプログラムと同じオペレーティングシステムプログラムを実行するゲスト制御手段と、前記ホスト制御手段と前記ゲスト制御手段との間に設けられ、前記ゲスト制御手段による前記ハードウェア資源の制御を可能とするエミュレート手段と、を備え、前記ゲスト制御手段は、前記ハードウェア資源を制御するためドライバープログラムを実行するゲストドライバー手段を含み、前記デバッグ支援方法は、前記ハードウェア資源が実行可能な処理をハードウェア記述言語で記述したHDLプログラムを変更する変更ステップと、前記ゲストドライバー手段による前記ハードウェア資源の制御に従って前記ホスト制御手段を制御して前記ハードウェア資源を制御させる第1の制御と、前記ゲストドライバー手段による前記ハードウェア資源の制御に従って、前記ハードウェア資源をエミュレートするために前記変更されたHDLプログラムを実行する第2の制御とのいずれかに切り換える切換ステップと、を含むデバッグ支援方法。

請求項10

前記ハードウェア資源は、複数あり、前記複数のハードウェア資源のうちからユーザーにより選択されたハードウェア資源を特定する資源特定ステップと、前記特定されたハードウェア資源に対応するHDLプログラムを取得するプログラム取得ステップを、をさらに含み、前記変更ステップは、前記取得されたHDLプログラムをユーザーによる指示に基づいて変更するステップを含み、前記切換ステップは、前記特定されたハードウェア資源に対して前記第1の制御と前記第2の制御とのいずれかに切り換えるステップを含む、請求項9に記載のデバッグ支援方法。

請求項11

前記変更ステップは、前記ハードウェア資源が処理を実行してから結果を出力するまでの応答時間を延長するコマンドを追加する延長コマンド追加ステップを、含む、請求項9または10に記載のデバッグ支援方法。

請求項12

前記変更ステップは、前記ハードウェア資源が処理を実行するために前記ゲストドライバー手段から受け付けるパラメータをチェックするコマンドを追加するパラメータチェックコマンド追加ステップを、含む、請求項9〜11のいずれかに記載のデバッグ支援方法。

請求項13

前記変更ステップは、前記ハードウェア資源が処理を実行することにより変化する変数をチェックするコマンドを追加する変数チェックコマンド追加ステップを、含む、請求項9〜12のいずれかに記載のデバッグ支援方法。

請求項14

前記ハードウェア資源は、ASIC(ApplicationSpecificIntegratedCircuit)である、請求項10〜13のいずれかに記載のデバッグ支援方法。

請求項15

前記ハードウェア資源は、FPGA(FieldProgrammableGateArray)である、請求項9〜13のいずれかに記載のデバッグ支援方法。

請求項16

前記画像処理装置は、前記ゲスト制御手段を制御して前記ハードウェア資源を制御する処理を定めたアプリケーションプログラムを実行するアプリ実行手段を、さらに備えた請求項9〜15のいずれかに記載のデバッグ支援方法。

請求項17

請求項9〜16のいずれかに記載のデバッグ支援方法を、前記画像装置を制御するコンピューターに実行させるデバッグ支援プログラム

技術分野

0001

この発明は、画像処理装置デバッグ支援方法およびデバッグ支援プログラムに関し、特に、複数のオペレーティングシステムインストールされた画像処理装置、その画像処理装置で実行されるデバッグ支援方法およびデバッグ支援プログラムに関する。

背景技術

0002

画像を処理する画像処理装置で代表されるMFP(Multi Function Periferal)は、種々のハードウェア資源が搭載されており、CPUによってそれらが制御される。ハードウェア資源は、例えば、画像データを処理するためのASIC(Application Specific IntegratedCircuit)、用紙に画像を形成するエンジン等である。また、MFPには、アプリケーションプログラムがインストールされており、そのアプリケーションプログラムが、ハードウェア資源を制御する処理を含む場合がある。このようなアプリケーションプログラムを開発する段階で、アプリケーションプログラムで定められたハードウェア資源を制御する処理と、ハードウェア資源の動作とを整合させる必要がある。特に、複数のアプリケーションプログラムが1つのハードウェア資源を制御する場合に、制御が競合することによるエラーが発生する場合がある。この場合、実際にアプリケーションプログラムが完成した段階で、アプリケーションプログラムを実行して、ハードウェア資源の動作との整合性チェックする方法がある。

0003

しかしながら、アプリケーションプログラムがハードウェア資源を制御してからハードウェア資源から応答があるまでの間にエラーの原因が存在するような場合、ハードウェア資源を制御してから応答があるまでの期間が短いために、エラーが発生する確率が低く、エラーの原因を特定することが困難であるといった問題がある。例えば、特開2013−012196号公報には、ターゲットハードウェアプラットフォームにより実行されるソフトウェアアプリケーションの実行に使用される方法であって、ターゲットハードウェアプラットフォームのハードウェア記述言語HDL)の記述を決定すること、HDL記述に基づいてターゲットハードウェアプラットフォームと機能的に等価なプログラマブルハードウェアコンポーネントを構成する技術が記載されている。しかしながら、特開2013−012196号公報に記載の方法を適用したとしても、ASICのレスポンスを遅らせた仕様のプログラマブルハードウェアコンポーネントを構成しなければならず、そのような仕様のプログラマブルハードウェアコンポーネントを構成するために費やされるコストの面で現実的でない。
特開2013−012196号公報

発明が解決しようとする課題

0004

この発明は上述した問題点を解決するためになされたもので、この発明の目的の1つは、ハードウェア資源を変更することなく、ハードウェア資源の動作を変更した状態を再現することが可能な画像処理装置を提供することである。

0005

この発明の他の目的は、ハードウェア資源を変更することなく、ハードウェア資源の動作を変更した状態を再現することが可能なデバッグ支援方法を提供することである。

0006

この発明のさらに他の目的は、ハードウェア資源を変更することなく、ハードウェア資源の動作を変更した状態を再現することが可能なデバッグ支援プログラムを提供することである。

課題を解決するための手段

0007

上述した目的を達成するためにこの発明のある局面によれば、画像処理装置は、オペレーティングシステムプログラムを実行し、ハードウェア資源を制御するホスト制御手段と、オペレーティングシステムプログラムと同じオペレーティングシステムプログラムを実行するゲスト制御手段と、ホスト制御手段とゲスト制御手段との間に設けられ、ゲスト制御手段によるハードウェア資源の制御を可能とするエミュレート手段と、ハードウェア資源が実行可能な処理をハードウェア記述言語で記述したHDLプログラムを変更する変更手段と、を備え、ゲスト制御手段は、ハードウェア資源を制御するためドライバープログラムを実行するゲストドライバー手段を含み、エミュレート手段は、変更されたHDLプログラムを実行することによりハードウェア資源をエミュレートするHDL実行手段と、ゲストドライバー手段によるハードウェア資源の制御に従ってホスト制御手段を制御してハードウェア資源を制御させる第1の制御と、ゲストドライバー手段によるハードウェア資源の制御に従ってデバイスエミュレート手段を制御する第2の制御とのいずれかに切り換え切換手段と、を含む。

0008

この局面に従えば、ハードウェア資源が実行可能な処理をハードウェア記述言語で記述したHDLプログラムを変更し、ハードウェア資源の制御に従ってハードウェア資源を制御させる第1の制御と、ハードウェア資源の制御に従って変更されたHDLプログラムを実行する第2の制御とのいずれかに切り換える。このため、第2の制御に切り換える場合には、ハードウェア資源が実行可能な処理を変更した動作をエミュレートすることができる。その結果、ハードウェア資源を変更することなく、ハードウェア資源の動作を変更した状態を再現することが可能な画像処理装置を提供することができる。

0009

好ましくは、ハードウェア資源は、複数あり、複数のハードウェア資源のうちからユーザーにより選択されたハードウェア資源を特定する資源特定手段と、特定されたハードウェア資源に対応するHDLプログラムを取得するプログラム取得手段と、をさらに備え、変更手段は、取得されたHDLプログラムをユーザーによる指示に基づいて変更し、切換手段は、特定されたハードウェア資源に対して第1の制御と第2の制御とのいずれかに切り換える。

0010

この局面に従えば、複数のハードウェア資源のうちからユーザーにより選択されたハードウェア資源の動作を、ユーザーによる指示に基づいて変更した状態で再現することができる。

0011

好ましくは、変更手段は、ハードウェア資源が処理を実行してから結果を出力するまでの応答時間を延長するコマンドを追加する延長コマンド追加手段を、含む。

0012

この局面に従えば、ハードウェア資源が処理を実行してから結果を出力するまでの応答時間を延長した状態でハードウェアの動作を再現するので、ハードウェア資源が処理を実行してから結果を出力するまでの間に発生する不具合が発生する頻度を高めることができる。

0013

好ましくは、変更手段は、ハードウェア資源が処理を実行するためにゲストドライバー手段から受け付けパラメータをチェックするコマンドを追加するパラメータチェックコマンド追加手段を、含む。

0014

この局面に従えば、ハードウェア資源が受け付けるパラメータをチェックする処理を再現するので、ハードウェア資源に入力されるデータをチェックすることができる。

0015

好ましくは、変更手段は、ハードウェア資源が処理を実行することにより変化する変数をチェックするコマンドを追加する変数チェックコマンド追加手段を、含む。

0016

この局面に従えば、ハードウェア資源が処理に用いる変数をチェックする処理を再現するので、ハードウェア資源の処理をチェックすることができる。

0017

好ましくは、ハードウェア資源は、ASIC(Application Specific IntegratedCircuit)である。

0018

この局面に従えば、ASICの動作を変更した状態で、ASICの動作を再現することができる。

0019

好ましくは、ハードウェア資源は、FPGA(Field Programmable Gate Array)である。

0020

この局面に従えば、FPGAの動作を変更した状態で、ASICの動作を再現することができる。

0021

好ましくは、ゲスト制御手段を制御してハードウェア資源を制御する処理を定めたアプリケーションプログラムを実行するアプリ実行手段を、さらに備える。

0022

この局面に従えば、アプリケーションプログラムがハードウェア資源を制御する処理の不具合の発見を容易にすることができる。

0023

この発明の他の局面によれば、デバッグ支援方法は、画像処理装置で実行されるアプリケーションプログラムをデバッグするデバッグ支援方法であって、画像処理装置は、オペレーティングシステムプログラムを実行し、ハードウェア資源を制御するホスト制御手段と、オペレーティングシステムプログラムと同じオペレーティングシステムプログラムを実行するゲスト制御手段と、ホスト制御手段とゲスト制御手段との間に設けられ、ゲスト制御手段によるハードウェア資源の制御を可能とするエミュレート手段と、を備え、ゲスト制御手段は、ハードウェア資源を制御するためドライバープログラムを実行するゲストドライバー手段を含み、デバッグ支援方法は、ハードウェア資源が実行可能な処理をハードウェア記述言語で記述したHDLプログラムを変更する変更ステップと、ゲストドライバー手段によるハードウェア資源の制御に従ってホスト制御手段を制御してハードウェア資源を制御させる第1の制御と、ゲストドライバー手段によるハードウェア資源の制御に従って、ハードウェア資源をエミュレートするために変更されたHDLプログラムを実行する第2の制御とのいずれかに切り換える切換ステップと、を含む。

0024

この局面に従えば、ハードウェア資源を変更することなく、ハードウェア資源の動作を変更した状態を再現することが可能なデバッグ支援方法を提供することができる。

0025

好ましくは、ハードウェア資源は、複数あり、複数のハードウェア資源のうちからユーザーにより選択されたハードウェア資源を特定する資源特定ステップと、特定されたハードウェア資源に対応するHDLプログラムを取得するプログラム取得ステップを、をさらに含み、変更ステップは、取得されたHDLプログラムをユーザーによる指示に基づいて変更するステップを含み、切換ステップは、特定されたハードウェア資源に対して第1の制御と第2の制御とのいずれかに切り換えるステップを含む。

0026

好ましくは、変更ステップは、ハードウェア資源が処理を実行してから結果を出力するまでの応答時間を延長するコマンドを追加する延長コマンド追加ステップを、含む。

0027

好ましくは、変更ステップは、ハードウェア資源が処理を実行するためにゲストドライバー手段から受け付けるパラメータをチェックするコマンドを追加するパラメータチェックコマンド追加ステップを、含む。

0028

好ましくは、変更ステップは、ハードウェア資源が処理を実行することにより変化する変数をチェックするコマンドを追加する変数チェックコマンド追加ステップを、含む。

0029

好ましくは、ハードウェア資源は、ASICである。

0030

好ましくは、ハードウェア資源は、FPGAである。

0031

好ましくは、画像処理装置は、ゲスト制御手段を制御してハードウェア資源を制御する処理を定めたアプリケーションプログラムを実行するアプリ実行手段を、さらに備える。

0032

この発明のさらに他の局面によれば、デバッグ支援プログラムは、上記デバッグ支援方法を、画像装置を制御するコンピューターに実行させる。

0033

この局面に従えば、ハードウェア資源を変更することなく、ハードウェア資源の動作を変更した状態を再現することが可能なデバッグ支援プログラムを提供することができる。

図面の簡単な説明

0034

本実施の形態におけるMFPの外観を示す斜視図である。
本実施の形態におけるMFPのハードウェア構成概要を示すブロック図である。
本実施の形態におけるMFPが備えるCPUが有する機能の一例を示す図である。
変更部の詳細な機能の一例を示すブロック図である。
延長コマンドの追加を説明するための図である。
パラメータチェックコマンドの追加を説明するための図である。
変数チェックコマンドの追加を説明するための図である。
デバッグ処理の流れの一例を示すフローチャートである。
デバイスエミュレータ生成処理の流れの一例を示すフローチャートである。

実施例

0035

以下、本発明の実施の形態を図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。

0036

図1は、本実施の形態におけるMFPの外観を示す斜視図である。図2は、本実施の形態におけるMFPのハードウェア構成の概要を示すブロック図である。図1および図2を参照して、画像処理装置として機能するMFP100は、メイン回路110と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、ユーザーインターフェースとしての操作パネル160とを含む。

0037

メイン回路110は、CPU(中央演算装置)111と、通信インターフェース(I/F)部112と、ROM113と、RAM114と、ASIC115と、大容量記憶装置としてのハードディスクドライブ(HDD)116と、ファクシミリ部117と、CD−ROM(Compact Disk ROM)119が装着される外部記憶装置118と、を含む。CPU111は、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、および操作パネル160と接続され、MFP100の全体を制御する。

0038

ROM113は、CPU111が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM114は、CPU111がプログラムを実行する際の作業領域として用いられる。

0039

ASIC115は、CPU111により制御され、画像データを処理する。ASIC115が実行する画像処理は、限定するものではないが、例えば、画像データのフォーマットを変換するフォーマット変換処理、画像データを符号化する圧縮処理、画像データの画像を処理する画像処理、を含む。画像処理は、例えば、画像のエッジを強調する処理、階調を滑らかにするスムージング処理、色をマッチングさせるカラーマッチング処理、画像を合成する合成処理等を含む。

0040

通信I/F部112は、MFP100をネットワークに接続するためのインターフェースである。CPU111は、通信I/F部112を介して、ネットワークに接続されたコンピューターとの間で通信し、データを送受信する。また、通信I/F部112は、ネットワークを介してインターネットに接続されたコンピューターと通信が可能である。

0041

ファクシミリ部117は、公衆交換電話網(PSTN)に接続され、PSTNにファクシミリデータを送信する、またはPSTNからファクシミリデータを受信する。ファクシミリ部117は、受信したファクシミリデータを、HDD116に記憶する、または画像形成部140に出力する。画像形成部140は、ファクシミリ部117により受信されたファクシミリデータを用紙にプリントする。また、ファクシミリ部117は、HDD116に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。

0042

外部記憶装置118は、CD−ROM119が装着される。CPU111は、外部記憶装置118を介してCD−ROM119にアクセス可能である。CPU111は、外部記憶装置118に装着されたCD−ROM119に記憶されたプログラムをRAM114にロードして実行する。なお、CPU111が実行するプログラムを記憶する媒体としては、CD−ROM119に限られず、光ディスク(MO(Magnetic Optical disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード光カードマスクROMEPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)などの半導体メモリであってもよい。

0043

また、CPU111が実行するプログラムは、CD−ROM119に記憶されたプログラムに限られず、HDD116に記憶されたプログラムをRAM114にロードして実行するようにしてもよい。この場合、ネットワークに接続された他のコンピューターが、MFP100のHDD116に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、MFP100が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD116に記憶するようにしてもよい。ここでいうプログラムは、CPU111が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。

0044

操作パネル160は、表示部161と操作部163とを含む。表示部161は、例えば、液晶表示装置(LCD)または有機EL表示装置(organic electroluminescence display)であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部163は、タッチパネル165と、ハードキー部167とを含む。タッチパネル165は、静電容量方式である。なお、タッチパネル165は、静電容量方式に限らず、例えば、抵抗膜方式表面弾性波方式赤外線方式電磁誘導方式等の他の方式を用いることができる。ハードキー部167は、複数のハードキーを含む。ハードキーは、例えば接点スイッチである。

0045

図3は、本実施の形態におけるMFPが備えるCPUが有する機能の一例を示す図である。図3を参照して、CPU111は、オペレーティングシステムプログラムを実行するホスト制御部51と、オペレーティングシステムプログラムを実行するゲスト制御部53と、エミュレートプログラムを実行するエミュレート部55と、第1アプリケーションプログラムを実行する第1アプリケーション部57と、第2アプリケーションプログラムを実行する第2アプリケーション部59と、を含む。

0046

ホスト制御部51は、CPU111がオペレーティングシステムプログラムを実行するタスクである。ホスト制御部51は、MFP100が備えるハードウェア資源を制御する。ハードウェア資源は、通信I/F部112、ROM113、RAM114、ASIC115、HDD116、ファクシミリ部117、外部記憶装置118、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、および操作パネル160を、含む。ホスト制御部51は、MFP100が備える複数のハードウェア資源をそれぞれ制御するための複数のドライバープログラムをそれぞれ実行する複数のタスクを含む。ここでは、ドライバープログラムとして、ASIC115を制御するためのドライバープログラムを例に説明する。ホスト制御部51は、ASIC115を制御するためのドライバープログラムを実行するタスクであるホストドライバー部77を含む。

0047

ゲスト制御部53は、CPU111がオペレーティングシステムプログラムを実行するタスクである。ゲスト制御部53が実行するオペレーティングシステムプログラムは、ホスト制御部51が実行するオペレーティングプログラムと同じである。ゲスト制御部53は、MFP100が備える複数のハードウェア資源をそれぞれ制御するための複数のドライバープログラムをそれぞれ実行する複数のタスクを含む。ここでは、ドライバープログラムとして、ASIC115を制御するためのドライバープログラムを例に説明する。ホスト制御部51は、ASIC115を制御するためのドライバープログラムを実行するタスクであるゲストドライバー部69を含む。

0048

エミュレート部55は、CPU111がエミュレートプログラムを実行するタスクである。エミュレートプログラムは、ホスト制御部51が実行するオペレーティングシステムプログラムに適合したアプリケーションプログラムである。エミュレート部55は、ゲスト制御部53に対する仮想デバイスであり、ホスト制御部51によるハードウェア資源の制御をエミュレートする。エミュレート部55は、ゲスト制御部53を仮想マシンとして機能させる。これにより、ゲスト制御部53は、MFP100が備えるハードウェア資源を制御可能となる。

0049

第1アプリケーション部57は、オペレーティングシステムプログラムに適合した第1アプリケーションプログラムを実行するタスクである。第1アプリケーション部57は、ホスト制御部51を制御して、MFP100が備えるハードウェア資源を制御可能である。

0050

第1アプリケーション部57およびエミュレート部55それぞれは、ホスト制御部51を制御可能であり、ホスト制御部51によって管理される。このため、第1アプリケーション部57とエミュレート部55とは、互いに他方を認識することができるので、プロセス間通信等を用いて通信することができる。

0051

第2アプリケーション部59は、オペレーティングシステムプログラムに適合した第2アプリケーションプログラムを実行するタスクである。第2アプリケーション部59は、ゲスト制御部53を制御して、MFP100が備えるハードウェア資源を制御可能である。換言すれば、第2アプリケーション部59は、第2アプリケーションプログラムがハードウェア資源を制御する処理を記述する場合、ゲスト制御部53を制御して、MFP100が備えるハードウェア資源を制御する。

0052

第1アプリケーション部57は、ユーザーによる操作を受け付ける操作受付部61と、ハードウェア資源のいずれかを特定する資源特定部63と、プログラム取得部65と、変更部67と、を含む。操作受付部61は、操作パネル160を制御して、ユーザーが操作部163に入力する操作を受け付ける。ユーザーがスマートフォン等の携帯情報装置を操作してMFP100を遠隔操作する場合、操作受付部61は、通信I/F部112を制御して、通信I/F部112が通信する携帯情報装置から受信する操作を受け付ける。操作受付部61は、ユーザーによる操作を受け付ける場合、受け付けられた操作を資源特定部63および変更部67に出力する。

0053

資源特定部63は、ハードウェア資源を特定する。例えば、資源特定部63は、ハードウェア資源である通信I/F部112、ROM113、RAM114、ASIC115、HDD116、ファクシミリ部117、外部記憶装置118、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、および操作パネル160を、選択可能なリストを表示部161に表示し、操作受付部61から入力される操作により選択されるハードウェア資源を特定する。資源特定部63は、特定されたハードウェア資源を識別するためのプログラム識別情報をプログラム取得部65に出力する。ここでは、ASIC115がユーザーにより選択される場合を例に説明する。

0054

プログラム取得部65は、資源特定部63からハードウェア資源の識別情報が入力されることに応じて、その識別情報で識別されるハードウェア資源に対応するハードウェア記述言語(HDL)プログラムを取得する。例えば、HDD116に、複数のハードウェア資源の少なくとも1つのHDLプログラムを記憶している場合、HDD116に資源特定部63から入力されるプログラム識別情報で特定されるハードウェア資源に対応するHDLプログラムがHDD116に記憶されていれば、そのHDLプログラムを読み出す。ハードウェア資源に対応するHDLプログラムは、そのハードウェア資源の製造者から取得するようにすればよい。プログラム取得部65は、取得されたHDLプログラムを変更部67に出力する。ここでは、資源特定部63によってASIC115がユーザーにより選択されるので、プログラム取得部65は、ASIC115に対応するHDLプログラムを取得し、変更部67に出力する。

0055

変更部67は、操作受付部61から入力されるユーザーの操作に従って、HDLプログラムを変更する。変更部67は、変更されたHDLプログラムをコンパイルすることによって、実行形式のデバイスエミュレートプログラムを生成し、デバイスエミュレートプログラムを、エミュレート部55に出力する。ここでは、ASIC115に対応するHDLプログラムを変更し、コンパイルすることによってASIC115に対応するデバイスエミュレートプログラムをエミュレート部55に出力する。

0056

エミュレート部55は、切換部71と、デバイスエミュレート部73と、仮想デバイス部75と、を含む。デバイスエミュレート部73は、変更部67から入力されるASIC115に対応するデバイスエミュレートプログラムを実行する。デバイスエミュレート部73は、ゲストドライバー部69によるASIC115の制御に従って、ASIC115をエミュレートする。ただし、デバイスエミュレート部73は、変更部67により変更された処理については、ASIC115と異なる処理を実行する。

0057

仮想デバイス部75は、ゲストドライバー部69に対してASIC115の仮想デバイスとして機能する。具体的には、仮想デバイス部75は、ゲストドライバー部69によるASIC115の制御に従ってホスト制御部51のホストドライバー部77を制御してASIC115を制御させる。

0058

切換部71は、ゲストドライバー部69の出力を仮想デバイス部75に出力する第1の制御と、ゲストドライバー部69の出力をデバイスエミュレート部73に出力する第2の制御と、のいずれかに切り換える。切換部71は、ユーザーが操作部163に入力する切換指示に従って、第1の制御と第2の制御とのいずれかに切り換える。切換部71が第1の制御に切り換える場合、ゲストドライバー部69によるASIC115の制御がASIC115に出力されるので、ASIC115が制御される。切換部71が第2の制御に切り換える場合、ゲストドライバー部69によるASIC115の制御がデバイスエミュレート部73に出力されるので、デバイスエミュレート部73が制御される。

0059

図4は、変更部の詳細な機能の一例を示すブロック図である。図4を参照して、変更部67は、延長コマンド追加部81と、パラメータチェックコマンド追加部83と、変数チェックコマンド追加部85と、を含む。延長コマンド追加部81は、ユーザーにより指定された変更対象処理について応答するタイミングを遅延するコマンドを追加する。例えば、延長コマンド追加部81は、HDLプログラムを解析して、HDLプログラムで定められた1以上の処理を特定し、特定された1以上の処理を選択可能なリストを表示部161に表示し、操作受付部61から入力されるユーザーによる操作により選択された処理を、変更対象処理に特定する。延長コマンド追加部81は、遅延時間を設定する画面を表示部161に表示し、操作受付部61から入力されるユーザーによる操作により特定される遅延時間を設定する。延長コマンド追加部81は、HDLプログラム中で変更対象処理を記述する部分の最後に、遅延時間だけ待機する延長コマンドを追加する。

0060

パラメータチェックコマンド追加部83は、ASIC115に入力されるパラメータをチェックするコマンドを追加する。例えば、パラメータチェックコマンド追加部83は、HDLプログラムを解析して、HDLプログラムで定められた1以上の処理を特定し、特定された1以上の処理を選択可能なリストを表示部161に表示し、操作受付部61から入力されるユーザーによる操作により選択された処理を、変更対象処理に特定する。次に、パラメータチェックコマンド追加部83は、HDLプログラムを解析して、変更対象処理に対してHDLプログラムで定められたパラメータを特定し、特定された1以上のパラメータを選択可能なリストを表示部161に表示し、操作受付部61から入力されるユーザーによる操作により選択されたパラメータを、対象パラメータに特定する。パラメータチェックコマンド追加部83は、パラメータの取り得る範囲を設定する画面を表示部161に表示し、操作受付部61から入力されるユーザーによる操作により特定される範囲を設定する。パラメータチェックコマンド追加部83は、HDLプログラム中で対象パラメータを用いた処理を記述する部分の前に、パラメータが設定された範囲外であることを検出するコマンドと、パラメータが設定された範囲外であることが検出される場合に実行する処理を示すコマンドと、を含むパラメータチェックコマンドを追加する。

0061

変数チェックコマンド追加部85は、ASIC115が用いる変数をチェックするコマンドを追加する。例えば、変数チェックコマンド追加部85は、HDLプログラムを解析して、HDLプログラムで定められた1以上の処理を特定し、特定された1以上の処理を選択可能なリストを表示部161に表示し、操作受付部61から入力されるユーザーによる操作により選択された処理を、変更対象処理に特定する。次に、変数チェックコマンド追加部85は、HDLプログラムを解析して、変更対象処理に対してHDLプログラムで定められた変数を特定し、特定された1以上の変数を選択可能なリストを表示部161に表示し、操作受付部61から入力されるユーザーによる操作により選択された変数を、対象変数に特定する。変数チェックコマンド追加部85は、対象変数の取り得る範囲を設定する画面を表示部161に表示し、操作受付部61から入力されるユーザーによる操作により特定される範囲を設定する。変数チェックコマンド追加部85は、HDLプログラム中で対象変数を用いた処理を記述する部分の後に、対象変数が設定された範囲外であることを検出するコマンドと、対象変数が設定された範囲外であることが検出される場合に実行する処理を示すコマンドと、を含む変数チェックコマンドを追加する。

0062

図5は、延長コマンドの追加を説明するための図である。図5(A)は、延長コマンドを追加する前のHDLプログラムの一例を示す図である。図5(A)を参照して、HDLプログラムは、変更対象処理の記述301を含む。ここでは、変更対象処理は、プロセスdo_add()として示される。図5(B)は、延長コマンドを追加した後のHDLプログラムの一例を示す図である。図5(B)を参照して、変更対象処理の記述301の最後に、wait(20,SC_MS)で示される延長コマンド303が追加されている。ここでは、延長コマンド303であるwait(20,SC_MS)は、20msだけ待機することを示している。

0063

図6は、パラメータチェックコマンドの追加を説明するための図である。図6(A)は、パラメータチェックコマンドを追加する前のHDLプログラムの一例を示す図である。図6(A)を参照して、HDLプログラムは、変更対象処理の記述311を含む。ここでは、変更対象処理は、プロセスdo_add()として示される。また、HDLプログラムは、変更対象処理に入力されるデータとしてパラメータの記述312を含む。ここでは、パラメータは、aとbで示される。変更対象処理であるプロセスdo_add()は、パラメータa,bを処理する記述315を含む。パラメータa,bを処理する記述315は、sum a+bで示される。

0064

図6(B)は、パラメータチェックコマンドを追加した後のHDLプログラムの一例を示す図である。図6(B)を参照して、HDLプログラムは、パラメータa,bを処理する記述315の前に、パラメータチェックコマンドの記述313を含む。パラメータチェックコマンドは、パラメータが設定された範囲外であることを検出するコマンドとしてif(a<0)||(a>255)と、パラメータが設定された範囲外であることが検出される場合に実行する処理を示すコマンドとして「エラー処理」と、を含む。なお、パラメータの範囲を、0以上255以下としている。また、パラメータが設定された範囲外であることが検出される場合に実行する処理を示すコマンドを、実際のコマンドを省略した「エラー処理」として示している。

0065

図7は、変数チェックコマンドの追加を説明するための図である。図7(A)は、変数チェックコマンドを追加する前のHDLプログラムの一例を示す図である。図7(A)を参照して、HDLプログラムは、変更対象処理の記述321を含む。ここでは、変更対象処理は、プロセスdo_add()として示される。また、HDLプログラムは、変更対象処理で用いられる変数の記述322を含む。ここでは、変数は、sum2で示される。変更対象処理であるプロセスdo_add()は、変数sum2を処理する記述325を含む。変数sum2を処理する記述325は、sum2=sum2+sum1で示される。

0066

図7(B)は、変数チェックコマンドを追加した後のHDLプログラムの一例を示す図である。図7(B)を参照して、HDLプログラムは、変数sum2を処理する記述325の後に、変数チェックコマンドの記述323を含む。変数チェックコマンドの記述323は、変数が設定された範囲外であることを検出するコマンドとしてif(sum2<1023)||(sum2>65536)と、変数が設定された範囲外であることが検出される場合に実行する処理を示すコマンドとして「エラー処理」と、を含む。なお、変数の範囲を、1023以上65536以下としている。また、変数が設定された範囲外であることが検出される場合に実行する処理を示すコマンドを、実際のコマンドを省略した「エラー処理」として示している。

0067

図8は、デバッグ支援処理の流れの一例を示すフローチャートである。図8を参照して、CPU111は、デバイスエミュレートプログラム生成処理を実行する(ステップS01)。デバイスエミュレートプログラム生成処理の詳細は後述するが、ハードウェア資源、ここでは、ASIC115をエミュレートするデバイスエミュレートプログラムを生成する処理である。次のステップS02においては、エミュレートプログラムをインストールし、仮想化レイヤを生成する。そして、デバイスエミュレータを生成する(ステップS03)。具体的には、仮想化レイヤにステップS01において生成されたデバイスエミュレートプログラムをインストールすることにより、デバイスエミュレータを生成する。デバイスエミュレータは、CPU111がデバイスエミュレートプログラムを実行するタスクである。

0068

次のステップS04においては、仮想マシンを生成する。具体的には、仮想化レイヤの基で、オペレーティングシステムプログラムをインストールする。オペレーティングシステムプログラムは、CPU111に元々インストールされているオペレーティングシステムプログラムと同じオペレーティングシステムプログラムである。

0069

次のステップS05においては、仮想マシンにアプリケーションプログラムをインストールする。アプリケーションプログラムは、MFP100のハードウェア資源、ここでは、ASIC115を制御した処理を定めたプログラムであり、デバッグの対象となるプログラムである。

0070

次のステップS06においては、切換指示を受け付けたか否かを判断する。ユーザーが操作部163に入力する操作に従って切換指示を受け付ける。切換指示は、第1の制御に切り換える指示と、第2の制御に切り換える指示と、のいずれかである。第1の制御に切り換える指示を受け付けたならば、ASIC115を有効に設定し(ステップS07)、処理をステップS09に進める。第2の制御に切り換える指示を受け付けたならば、ステップS03において生成されたデバイスエミュレータを有効に設定し(ステップS08)、処理をステップS09に進める。

0071

ステップS09においては、ステップS05においてインストールされたアプリケーションプログラムを実行し、処理をステップS10に進める。CPU111がアプリケーションプログラムを実行するタスクは、ASIC115を制御する処理を定める場合がある。CPU111は、ステップS07においてASIC115が有効に設定されている状態においては、アプリケーションプログラムを実行するタスクによりASIC115が制御される場合は、ASIC115に処理を実行させる。また、CPU111は、ステップS08において、デバイスエミュレータが有効に設定されている場合には、CPU111がアプリケーションプログラムを実行するタスクによりASIC115が制御される場合は、ステップS03において生成されたデバイスエミュレータに処理を実行させる。

0072

ステップS10においては、エラーが発生したか否かを判断する。エラーが発生したならば処理をステップS11に進めるが、そうでなければ処理をステップS13に進める。ここで発生するエラーは、CPU111がアプリケーションプログラムを実行するタスクによって発生するエラーの他、デバイスエミュレータにおいて発生するエラーを含む。MFP100のユーザーは、発生したエラーに基づいて、アプリケーションプログラム中でエラーの原因を特定することが可能である。ユーザーは、特定したエラーの原因に基づいて、アプリケーションプログラムを変更する。ステップS11においては、アプリケーションプログラムの変更を受け付け(ステップS11)、処理をステップS12に進める。なお、必要に応じて、変更後のアプリケーションプログラムをコンパイルする。ステップS12においては、変更されたアプリケーションプログラムを実行し、処理をステップS10に戻す。

0073

ステップS13においては、デバッグが終了したか否かを判断する。ユーザーが操作部163に入力する操作が、デバッグの終了を示す操作ならば処理をステップS14に進めるが、そうでなければ処理をステップS10に戻す。ステップS14においては、アプリケーションプログラムを終了させ、処理をステップS15に進める。ステップS15においては、仮想化解除する。具体的には、仮想マシンを生成するためにインストールしたオペレーティングシステムプログラムをアンインストールし、エミュレートプログラムをアンインストールする。そして、デバッグの終了したアプリケーションプログラムをインストールし(ステップS16)、処理を終了する。

0074

図9は、デバイスエミュレータ生成処理の流れの一例を示すフローチャートである。デバイスエミュレータ生成処理は、図8のステップS01において、CPU111により実行される処理である。図9を参照して、CPU111は、対象となるハードウェア資源を特定する。MFP100が備える複数のハードウェア資源を選択可能なリストを表示部161に表示し、ユーザーが操作部163に入力する操作により選択されるハードウェア資源を特定する。ここでは、ASIC115がユーザーにより選択される場合を例に説明する。

0075

次のステップS22においては、ステップS21において特定されたハードウェア資源、ここでは、ASIC115に対応するHDLプログラムを取得する。ASIC115に対応するHDLプログラムが、ASIC115の製造者から予め取得され、HDD116に記憶されていれば、そのHDLプログラムを読み出す。

0076

次のステップS23においては、変更対象処理を受け付けるまで待機状態となり、変更対象処理を受け付けたならば処理をステップS24に進める。例えば、HDLプログラムを解析して、HDLプログラムで定められた1以上の処理を特定し、特定された1以上の処理を選択可能なリストを表示部161に表示し、ユーザーが操作部163に入力する操作により選択された処理を、変更対象処理に特定する。

0077

ステップS24においては、変更内容を受け付けるまで待機状態となり、変更内容を受け付けたならば処理をステップS25に進める。ここでは、変更内容として、レスポンス遅延と、パラメータチェックと、変数チェックと、が予め定められている場合を例に説明する。レスポンス遅延の変更内容は、ASIC115が制御されてから応答を出力するタイミングを遅延させる処理を追加することを示す。パラメータチェックは、ASICに入力されるパラメータが正しい値であるか否かを判断する処理を追加することを示す。変数チェックは、ASICで用いられる変数が正しい値であるか否かを判断する処理を追加することを示す。ステップS25においては、ステップS24において受け付けられた変更内容によって処理を分岐させる。変更内容がレスポンス遅延ならば処理をステップS26に進め、変更内容がパラメータチェックならば処理をステップS28に進め、変更内容が変数チェックならば処理をステップS31に進める。

0078

ステップS26においては、遅延時間を受け付け、処理をステップS27に進める。例えば、遅延時間を設定する画面を表示部161に表示し、ユーザーが操作部163に入力する操作により特定される遅延時間を受け付ける。そして、ステップS22において取得されたHDLプログラムに、待機コマンドを追加し(ステップS27)、処理をステップS34に進める。具体的には、HDLプログラム中で、ステップS23において受け付けられた変更対象処理を記述する部分の最後に、ステップS26において受け付けられた遅延時間だけ待機する待機コマンドを追加する。

0079

ステップS28においては、パラメータを選択し、処理をステップS29に進める。ステップS22において取得されたHDLプログラムを解析して、ステップS23において受け付けられた変更対象処理に対してHDLプログラムで定められたパラメータを特定し、特定された1以上のパラメータを選択可能なリストを表示部161に表示し、ユーザーが操作部163に入力する操作により選択されたパラメータを、対象パラメータに特定する。ステップS29においては、パラメータの取り得る範囲を受け付け、処理をステップS30に進める。範囲を設定する画面を表示部161に表示し、ユーザーが操作部163に入力する操作により特定される範囲を特定する。そして、ステップS22において取得されたHDLプログラムに、パラメータチェックコマンドを追加し(ステップS30)、処理をステップS34に進める。具体的には、HDLプログラム中で、ステップS23において受け付けられた変更対象処理を記述する部分に含まれる対象パラメータを記述する部分の前に、パラメータが設定された範囲外であることを検出するコマンドと、パラメータが設定された範囲外であることが検出される場合に実行する処理を示すコマンドと、を追加する。

0080

ステップS31においては、変数を選択し、処理をステップS32に進める。ステップS22において取得されたHDLプログラムを解析して、ステップS23において受け付けられた変更対象処理に対してHDLプログラムで定められた変数を特定し、特定された1以上の変数を選択可能なリストを表示部161に表示し、ユーザーが操作部163に入力する操作により選択された変数を、対象変数に特定する。ステップS32においては、変数の取り得る範囲を受け付け、処理をステップS33に進める。範囲を設定する画面を表示部161に表示し、ユーザーが操作部163に入力する操作により特定される範囲を特定する。そして、ステップS22において取得されたHDLプログラムに、変数チェックコマンドを追加し(ステップS33)、処理をステップS34に進める。具体的には、HDLプログラム中で、ステップS23において受け付けられた変更対象処理を記述する部分に含まれる対象変数を記述する部分の前に、変数が設定された範囲外であることを検出するコマンドと、変数が設定された範囲外であることが検出される場合に実行する処理を示すコマンドと、を追加する。

0081

ステップS34においては、HDDプログラムの変更が終了したか否かを判断する。操作部163が、HDDプログラムの変更を終了させることを示す操作を受け付けたならば、処理をステップS35に進めるが、そうでなければ処理をステップS23に戻す。

0082

ステップS35においては、変更された後のHDDプログラムをコンパイルし、処理をデバッグ処理に戻す。変更された後のHDDプログラムをコンパイルすることにより、デバイスエミュレートプログラムが生成される。

0083

以上説明したように本実施の形態におけるMFP100は、ASIC155に対応するHDLプログラムで記述された処理を変更し、第2アプリケーションプログラムを実行するタスクによるASIC155の制御に従ってASIC155を制御させる第1の制御と、第2アプリケーションプログラムを実行するタスクによるASIC155の制御に従って変更されたHDLプログラムを実行する第2の制御とのいずれかに切り換える。このため、第2の制御に切り換える場合には、ASIC115が実行可能な処理を変更した動作をエミュレートすることができる。したがって、ハードウェア資源を変更することなく、ハードウェア資源の動作を変更した状態を再現することができる。また、第2アプリケーションプログラムのASIC115を制御する処理の部分のバグの発見を容易にすることができる。

0084

また、MFP100は、複数のハードウェア資源のうちからユーザーにより選択されたASIC115に対応するHDLプログラムを取得し、取得されたHDLプログラムをユーザーによる指示に基づいて変更するので、ユーザーにより選択されたASIC115の動作を、ユーザーによる指示に基づいて変更した状態で再現することができる。

0085

また、MFP100は、ASIC115のHDLプログラムのうちユーザーにより指定された処理の記述の最後に待機コマンドを追加するので、ASIC115がユーザーにより指定された処理を実行した結果を出力するタイミングを遅延させることができる。このため、ASIC115がユーザーにより指定された処理を実行してから結果を出力するまでの間に発生する不具合が発生する頻度を高めることができる。したがって、第2アプリケーションプログラムがASIC115を制御する処理の記述のバグの発見を容易にすることができる。

0086

また、MFP100は、ASIC115のHDLプログラムのうちユーザーにより指定された処理で用いられるパラメータをチェックするコマンドを追加するので、ASIC115が外部から受け付けるパラメータをチェックすることができる。したがって、第2アプリケーションプログラムがASIC115を制御する処理の記述のバグの発見を容易にすることができる。

0087

また、MFP100は、ASIC115のHDLプログラムのうちユーザーにより指定された処理で用いられる変数をチェックするコマンドを追加するので、ASIC115が処理で用いる変数をチェックすることができる。したがって、第2アプリケーションプログラムがASIC115を制御する処理の記述のバグの発見を容易にすることができる。

0088

なお、上述した実施の形態においては、ハードウェア資源の一例として、ASIC115を例に説明したが、他のハードウェア資源である通信I/F部112、ROM113、RAM114、HDD116、ファクシミリ部117、外部記憶装置118、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、および操作パネル160についても、同様に処理を再現することができる。また、ASICに代えて、FPGA(Field Programmable Gate Array)を用いるようにしてもよい。

0089

なお、本実施の形態においては、画像処理装置の一例としてMFP100を例に説明したが、ハードウェア資源を制御する処理を定めたアプリケーションプログラムがインストールされる装置であれば、例えば、ファクシミリ装置、スキャナ装置カメラ等であってもよい。また、図8および図9に示したデバッグ支援処理をMFP100に実行させるデバッグ支援方法として発明を捉えることができる。

0090

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。

0091

100MFP、110メイン回路、111 CPU、112通信I/F部、113 ROM、114 RAM、115ASIC、116 HDD、117ファクシミリ部、118外部記憶装置、119CD−ROM、120自動原稿搬送装置、130原稿読取部、140画像形成部、150 給紙部、160操作パネル、161 表示部、163 操作部、165タッチパネル、167ハードキー部、51 ホスト制御部、53ゲスト制御部、55エミュレート部、57アプリケーション部、59 アプリケーション部、61操作受付部、63資源特定部、65プログラム取得部、67 変更部、69 ゲストドライバー部、71 切換部、73デバイスエミュレート部、75仮想デバイス部、77ホストドライバー部、81延長コマンド追加部、83パラメータチェックコマンド追加部、85変数チェックコマンド追加部。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ