JP2006227706A - プログラム開発装置およびプログラム開発プログラム - Google Patents

プログラム開発装置およびプログラム開発プログラム Download PDF

Info

Publication number
JP2006227706A
JP2006227706A JP2005037696A JP2005037696A JP2006227706A JP 2006227706 A JP2006227706 A JP 2006227706A JP 2005037696 A JP2005037696 A JP 2005037696A JP 2005037696 A JP2005037696 A JP 2005037696A JP 2006227706 A JP2006227706 A JP 2006227706A
Authority
JP
Japan
Prior art keywords
module
program
processor
information
debugger
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.)
Withdrawn
Application number
JP2005037696A
Other languages
English (en)
Inventor
Kiyohiko Sumida
清彦 隅田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005037696A priority Critical patent/JP2006227706A/ja
Publication of JP2006227706A publication Critical patent/JP2006227706A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】第2のプロセッサが第1のプロセッサにそのプログラムモジュールをロードする場合、デバッガがロード先アドレスを知ることができないため、ユーザに対してデバッグ機能を提供できない。
【解決手段】複数のモジュールから構成されたプログラムで動作する第1のプロセッサ10にデバッガ40が接続されている。第2のプロセッサは、モジュールを共有メモリ上にロードし、各モジュールとアドレスの対応関係を表すモジュール情報を生成し、第1のプロセッサに通知するモジュールロード処理手段23を有する。第1のプロセッサは、共有メモリからモジュール情報を取得してデバッガに通知するデバッガ通信処理手段12を有する。デバッガは、デバッガ通信処理手段から得た各モジュール情報を基に、各モジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段43を有する。
【選択図】図1

Description

本発明は、組み込み向けプロセッサのプログラム開発装置およびプログラム開発プログラムにかかわり、特にはプログラムの検証・動作確認のためのデバッグの技術に関するものである。
組み込み向けプロセッサで動作するプログラムおよびプログラムが使用するデータについては、プログラムファイルの生成時にターゲット環境上でのアドレスが決定され、プログラムファイル内にそのアドレスについての情報が記録される。そのアドレスについての情報を基に、そのデータがターゲット環境上にロードされる。このとき、プログラムファイルに含まれているデバッグ情報は、プログラムおよびプログラムが使用するデータが配置されるアドレスとソースプログラムとの対応関係を表している。PC(パソコン)上で動作しターゲットプロセッサと接続しているデバッグ環境では、このデバッグ情報を使用する。
一方、ターゲット上で動作するプログラムが複数のモジュールファイルから構成されている場合には、プログラム実行時に各モジュールファイルがターゲット環境にロードされる。各モジュールファイルにはロードされるべきアドレスについての情報が含まれていない。ターゲット環境にロードされる際に、アドレスが決定される。このような環境でプログラムのデバッグを行う場合、ターゲットプロセッサ上で動作するオペレーティングシステムがモジュールファイルをロードする際のアドレスを決定し、デバッガに対してそのアドレスを通知する(例えば、特許文献1参照。)。
図16に示すシステムは、ターゲット環境が複数のプロセッサ(ホストプロセッサ20、メディアプロセッサ10)で構成されている。メディアプロセッサ10にデバッガ40が接続されている。第1のプロセッサであるメディアプロセッサ10のプログラムモジュールを、第2のプロセッサであるホストプロセッサ20が共有メモリ30上にロードする。
特開平7−306800号公報(第4頁、第1図)
図16のシステムにおいては、デバッガ40は、モジュールのロード先アドレスを知ることができない。そのため、モジュール内のデバッグ情報に含まれているプログラム中の関数や変数のアドレスを特定できない。結局、ユーザに対してデバッグ機能を提供することができない。
本発明によるプログラム開発装置は、
複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
前記第2のプロセッサは、前記第1のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールとアドレスの対応関係を表すモジュール情報を生成し、前記モジュール情報を前記第1のプロセッサに通知するモジュールロード処理手段を有し、
前記第1のプロセッサは、前記共有メモリから前記モジュール情報を取得して前記デバッガに通知するデバッガ通信処理手段を有し、
前記デバッガは、前記デバッガ通信処理手段から得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段を有している。
これに対応する本発明によるプログラム開発プログラムは、
複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
前記第2のプロセッサが前記第1のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第1のプロセッサに通知するモジュールロード処理と、
前記第1のプロセッサが前記共有メモリから前記モジュール情報を取得して前記デバッガに通知するデバッガ通信処理と、
前記デバッガが前記デバッガ通信処理で得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築処理とを含むコンピュータ実行可能なプログラムである。
上記の構成によれば、第2のプロセッサのモジュールロード処理手段が第1のプロセッサのプログラムである複数のモジュールから構成されたプログラムを共有メモリにロードするとともに、個々のプログラムモジュールについてアドレスを示すモジュール情報を生成して共有メモリにロードし、さらに第1のプロセッサのデバッガ通信処理手段によってデバッガに伝える。そして、デバッガのデバッグ情報構築手段においてモジュール情報に基づいてプログラムの実体のアドレスを決定するので、第1のプロセッサのプログラムのデバッグ機能を実現できる。
上記の構成において好ましくは、前記モジュールロード処理手段は、
ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する手段と、
前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する手段と、
前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する手段と、
プログラムモジュール間の各参照を解決する手段とを備えるものである。
また、上記の構成において好ましくは、前記モジュールロード処理手段は、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を前記共有メモリ上に生成する手段を備えるものである。
また、上記の構成において好ましくは、前記デバッガ通信処理手段は、前記共有メモリ上に生成された前記モジュール情報を読み取り、各々のモジュールとそのモジュールがロードされたアドレスを知る手段を備えるものである。
また、上記の構成において好ましくは、前記第2のプロセッサは、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を直接、前記デバッガに通知する手段を備えるものである。
また、本発明によるプログラム開発装置は、
複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
前記第1のプロセッサは、前記デバッガからモジュールファイルを前記共有メモリに転送してロードするデバッガ通信処理手段を有し、
前記デバッガは、
前記第1のプロセッサ用のプログラムのモジュールファイルを前記共有メモリにロードするために前記デバッガ通信処理手段に転送するモジュールファイルロード処理手段と、
前記デバッガ通信処理手段から得た各モジュールのロード先の情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段とを有している。
これに対応する本発明によるプログラム開発プログラムは、
複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
前記第1のプロセッサが前記デバッガからモジュールファイルを前記共有メモリに転送してロードするデバッガ通信処理と、
前記デバッガが前記第1のプロセッサ用のプログラムのモジュールファイルを前記共有メモリにロードするために前記デバッガ通信処理に転送するモジュールファイルロード処理と、
前記デバッガが前記デバッガ通信処理から得た各モジュールのロード先の情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築とを含むコンピュータ実行可能なプログラムである。
上記の構成によれば、モジュールファイルロード処理の機能をデバッガ内に持つので、第1のプロセッサのプログラムのデバッグ作業を第2のプロセッサの動作から切り離し、第2のプロセッサの動作から独立した第1のプロセッサだけの動作に着目することができるプログラムデバッグ環境を実現できる。
上記の構成において好ましくは、前記モジュールファイルロード処理手段は、
ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する手段と、
前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する手段と、
前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する手段と、
各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段と
を備えるものである。
また、上記の構成において好ましくは、前記メモリ領域を確保する手段は、
前記プログラムモジュールに含まれる、各種データのための領域の大きさを示す値を前記収集したモジュール全てから取得する手段と、
前記手段で得た領域サイズから前記共有メモリ上に確保する領域のサイズを求める手段とを含むものである。
また、本発明によるプログラム開発装置は、
複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
前記第2のプロセッサは、
前記第1のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第1のプロセッサに通知するモジュールロード処理手段と、
前記モジュール情報を前記デバッガに通知するデバッガ通信処理手段を有し、
前記デバッガは、前記デバッガ通信処理手段から得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段を有している。
これに対応する本発明によるプログラム開発プログラムは、
複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
前記第2のプロセッサが前記第1のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第1のプロセッサに通知するモジュールロード処理と、
前記第2のプロセッサが前記モジュール情報を前記デバッガに通知するデバッガ通信処理と、
前記デバッガが前記デバッガ通信処理で得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築処理とを含むコンピュータ実行可能なプログラムである。
上記の構成によれば、第2のプロセッサがモジュール情報を直接にデバッガに通知するデバッガ通信処理の機能を有するので、モジュール情報を高速にデバッガへ通知することが可能であるとともに、共有メモリにモジュール情報の領域を確保する必要がなく、メモリ資源を有効利用することが可能になる。
上記の構成において好ましくは、前記メモリ領域確保処理は、
前記プログラムモジュールに含まれる、各種データのための領域の大きさを示す値を前記収集したモジュール全てから取得する処理と、
前記処理で得た領域サイズから前記共有メモリ上に確保する領域のサイズを求める処理とを含むものである。
また、上記の構成において好ましくは、前記第2のプロセッサは、前記第1のプロセッサを起動し、前記デバッガに前記第1のプロセッサの起動を通知する手段を備えるものである。
本発明によれば、個々のプログラムモジュールについてアドレスを示すモジュール情報を生成して間接的または直接的にデバッガに伝え、デバッガのデバッグ情報構築手段においてモジュール情報に基づいてプログラムの実体のアドレスを決定するので、複数のプログラムモジュールから構成された組み込みシステムであっても、第1のプロセッサのプログラムのデバッグ機能を実現できる。
以下、本発明にかかわるプログラム開発装置の実施の形態を図面に基づいて詳細に説明する。
(実施の形態1)
本発明の実施の形態1におけるプログラム開発装置の全体構成を図1に示す。このシステムは、第1のプロセッサとしてのメディアプロセッサ10と第2のプロセッサとしてのホストプロセッサ20と両プロセッサの共有メモリ30とデバッガ40とを備えている。
ホストプロセッサ20はターゲットシステム上で動作する組み込みプロセッサで、機器の制御、データの処理を行う。動画、音声などのメディアデータ処理はメディアプロセッサ10が主に処理する。ホストプロセッサ20は、メディアプロセッサ10に対するデータ供給などの処理も行う。さらに、ホストプロセッサ20は、メディアプロセッサ10の起動時にメディアプロセッサ10用のプログラムのロード処理も行う。メディアプロセッサ10のプログラムは複数のモジュールから構成され、モジュールのうちいくつかを入れ替えることで、プログラムの不具合修正・機能追加などを実現可能である。モジュールのデータをホストプロセッサ20に対して供給する箇所については、本発明の主眼ではないので説明を省略する。
ホストプロセッサ20は、メディアプロセッサ起動処理部21、モジュール保持部22、モジュールロード処理部23、モジュールロード部24およびモジュール情報生成通知部25などを備えている。
メディアプロセッサ起動処理部21は、ホストプロセッサ20がメディアプロセッサ10を起動する処理を行う。
モジュール保持部22は、メディアプロセッサ10で動作するプログラム、データを構成するモジュールを保持する。
モジュールロード処理部23は、モジュール保持部22で保持しているメディアプロセッサ10で動作するプログラムを構成するモジュールを共有メモリ30上へロードする処理を行う。処理の内容は、モジュールロード部24の処理とモジュール情報生成通知部25の処理から構成される。
モジュールロード処理部23は、モジュール保持部22に格納されているモジュールの依存関係を調べ、各モジュールのコードサイズ、データサイズ、管理情報領域サイズを調べ、共有メモリ30上に配置する。
モジュール情報生成通知部25は、モジュールロード処理部23が行ったモジュールの共有メモリ30上へのロードの結果、どのモジュールのデータがどのアドレスにロードされたかを示すモジュール情報を生成する。
共有メモリ30は、ホストプロセッサ20とメディアプロセッサ10の両方からアクセス可能なメモリである。
メディアプロセッサ10は、起動処理部11およびデバッガ通信処理部12を備えている。
メディアプロセッサ10はターゲットシステム上で動作する組み込みプロセッサで、動画、音声などのメディアデータ処理を主に担当する。メディアプロセッサ10で動作するプログラムは、ホストプロセッサ20で動作するモジュールロード処理部23によってロードされる。ホストプロセッサ20から起動されると、プログラムの実行を開始する。
起動処理部11は、ホストプロセッサ20からメディアプロセッサ10が起動された際に動作し、デバッガ40に対してプログラムがロードされたことを通知する処理も行う。
デバッガ通信処理部12は、メディアプロセッサ10の状態をデバッガ40に通知するための処理を行い、メモリダンプ、プロセッサ状態の通知などを行う。
デバッガ40は、メディアプロセッサ10のプログラムをデバッグするためのもので、メディアプロセッサ10と接続している。デバッガ40は、モジュールファイル保持部41、デバッグ情報保持部42およびモジュールデバッグ情報構築部43を備えている。
モジュールファイル保持部41は、メディアプロセッサ10で動作するプログラム、データを構成するモジュールのデータと、そのソースプログラムとの対応をとるためのデバッグ情報とで構成されているモジュールファイルを格納している。
デバッグ情報保持部42は、モジュールファイル保持部41に格納されているモジュールファイルからデバッグ情報を取り出して保持する。
モジュールデバッグ情報構築部43は、メディアプロセッサ10のプログラムが共有メモリ30上にロードされて各モジュールが配置されたアドレスが確定した後、各モジュールのデバッグ情報内のアドレスを確定し、デバッグ可能な状態にする処理を行う。
なお、ここでの説明では、各モジュールに含まれる情報領域をコード領域31・データ領域32・管理情報領域33の3種類としているが、モジュール内の構成に応じて複数の領域を設けることが可能であり、必ずしもこの3種類に限定するものではない。
次に、上記構成での動作を説明する。
図2は、ホストプロセッサ20がメディアプロセッサ10のプログラムをロードし、メディアプロセッサ10を起動する手順を示したフローチャートである。
ステップS11において、モジュールロード処理部23を起動し、モジュール保持部22に保持されているモジュール間の依存関係を調べ、必要なモジュールが全て保持されていることを確認し、図3に示すモジュールテーブル50を生成する。
ステップS12において、共有メモリ30上にモジュールをロードするための準備として、コード・データ・管理情報などの各領域がどの程度必要かを計算し、共有メモリ30上に領域を確保する。
ステップS13において、モジュールロード部24が、ステップS12で確保した各領域にモジュールのデータを配置する処理を行い、モジュール情報生成通知部25がモジュールの配置に関する情報を作成する。
ステップS14において、ステップS13でメモリ上に配置したコード・データを各モジュール間で参照するためのモジュール間結合に関する処理を行う。
ステップS15において、モジュールロード処理を完了し、メディアプロセッサ10を起動する処理を行う。
上記の処理についての詳細と、処理の中で使用するデータ構造について以下で述べる。
図3は、ステップS11で生成するモジュールテーブル50の構造を図示している。列51はモジュール名を表し、列52はそのモジュールのコード領域31のサイズを、列53はそのモジュールのデータ領域32のサイズを、列54はそのモジュールの管理情報領域33のサイズをそれぞれ表している。
図4は、各モジュールが保持する当該のモジュールについての情報を格納するモジュールヘッダ部の構造を図示している。
フィールド61はモジュール名を表し、フィールド62はモジュールのコード領域が格納されている位置(オフセット)を、フィールド63はモジュールのコード領域のサイズを、フィールド64はモジュールのデータ領域が格納されている位置(オフセット)を、フィールド65はモジュールのデータ領域のサイズを、フィールド66はモジュールの管理情報領域が格納されている位置(オフセット)を、フィールド67はモジュールの管理情報領域のサイズを、フィールド68はそのモジュールが使用するモジュールの名前(依存モジュール情報)をそれぞれ表している。複数のモジュールを使用する場合には、複数のモジュール名が格納される。あるモジュールAが他のモジュールBを使用するとき、「モジュールAはモジュールBに依存する。」と呼ぶときがある。よって、「このフィールドの内容は、そのモジュールが依存するモジュール名を格納している。」と表現できる。
図5は、ステップS13で生成するモジュール情報の構造を図示している。
フィールド71はモジュール名を表し、フィールド72はモジュールのコード領域がロードされたアドレスを、フィールド73はモジュールのコード領域のサイズを、フィールド74はモジュールのデータ領域がロードされたアドレスを、フィールド75はモジュールのデータ領域のサイズを、フィールド76はモジュールの管理情報領域がロードされたアドレスを、フィールド77はモジュールの管理情報領域のサイズをそれぞれ表している。
なお、ホストプロセッサ20のモジュール保持部22で保持されている「モジュール」は、デバッガ40のモジュールファイル保持部41で保持されている「モジュールファイル」と一対一に対応するもので、コンパイラなどのプログラム処理系で生成された「モジュールファイル」から、ターゲット環境上で必要な情報(プログラムコード、データ、管理情報など)だけを取り出したものが「モジュール」である。「モジュールファイル」には、この他にシンボリックデバッグのためのデバッグ情報、シンボル情報などが含まれている。
図6は、図2のステップS11の処理を詳細化したものである。
ステップS21において、先頭モジュールについての情報をモジュールテーブル50に登録する。モジュールテーブル50に登録する情報は、図4に示すモジュールヘッダ60のモジュール名61と、コード領域サイズ63と、データ領域サイズ65と、管理情報領域サイズ67から得て、図3に示すモジュールテーブル50のモジュール名51と、コード領域サイズ52と、データ領域サイズ53と、管理情報領域サイズ54とにそれぞれ登録する。
ステップS22において、モジュールテーブル50上にある依存関係について調べていないモジュールを一つ処理対象として選択し、そのようなモジュールが存在する間繰り返すループを構成する。
ステップS23において、処理対象のモジュールが持つ依存モジュール情報を順番に選択し、依存モジュール情報それぞれについて繰り返すループを構成する。
ステップS24において、選択した依存モジュール情報が表すモジュールが既にモジュールテーブル50に登録されているかどうかを判定する。もし既にモジュールテーブル50に含まれていればステップS25はスキップする。
ステップS25において、選択した依存モジュール情報が表すモジュールをモジュールテーブル50に登録する。モジュールテーブル50に登録する情報は、図4に示すモジュールヘッダ60のモジュール名61と、コード領域サイズ63と、データ領域サイズ65と、管理情報領域サイズ67から得て、図3に示すモジュールテーブル50のモジュール名51と、コード領域サイズ52と、データ領域サイズ53と、管理情報領域サイズ54とにそれぞれ登録する。
図7は、図2のステップS12の処理を詳細化したものである。
ステップS31において、モジュールテーブル50の各領域のサイズを合計し、メモリ上で必要となるモジュール情報、コード領域31、データ領域32、管理情報領域33のサイズを求める。
ステップS32において、コード領域31の先頭アドレスを求める。使用可能なメモリの先頭アドレスにモジュール情報のサイズを加えて、適当なアライメントを行い、当該のアドレスを求める。
ステップS33において、データ領域32の先頭アドレスを求める。ステップS32で求めたアドレスにコード領域31のサイズを加えて、適当なアライメントを行い、当該のアドレスを求める。
ステップS34において、管理情報領域33の先頭アドレスを求める。ステップS33で求めたアドレスに管理情報領域33のサイズを加えて、適当なアライメントを行い、当該のアドレスを求める。
図8は、図2のステップS13の処理を詳細化したものである。
ステップS41において、ステップS12で求めた各領域の先頭アドレスを、コード領域割り当てアドレス、データ領域割り当てアドレス、管理情報領域割り当てアドレスとして保持し、後続の処理に備える。
ステップS42は、モジュールテーブル50にあるモジュールを順に選択し、それぞれについて、各領域にロードするアドレスを決定し、モジュール情報を作成するためのループを構成する。
ステップS43において、選択したモジュールについてのコード領域31のアドレスを前記コード領域割り当てアドレスの値にし、選択したモジュールのコード領域分をそのアドレスからの領域にロードする。また、コード領域割り当てアドレスの値に、選択したモジュールのコード領域31のサイズを加算して、コード領域割り当てアドレスの値を更新する。
ステップS44において、選択したモジュールについてのデータ領域32のアドレスを前記データ領域割り当てアドレスの値にし、選択したモジュールのデータ領域分をそのアドレスからの領域にロードする。また、データ領域割り当てアドレスの値に、選択したモジュールのデータ領域32のサイズを加算して、データ領域割り当てアドレスの値を更新する。
ステップS45において、選択したモジュールについての管理情報領域33のアドレスを前記管理情報領域割り当てアドレスの値にし、選択したモジュールの管理情報領域分をそのアドレスからの領域にロードする。また、管理情報領域割り当てアドレスの値に、選択したモジュールの管理情報領域33のサイズを加算して、管理情報領域割り当てアドレスの値を更新する。
ステップS46において、前記ステップS43〜ステップS45で決定した、選択したモジュールのアドレスを反映したモジュール情報のエントリを作成し、モジュール情報領域34に格納する。
図9は、デバッガ40がモジュールをロードし、デバッグ情報を処理してデバッグ機能を有効にするための手順を示したフローチャートである。
デバッガ40で扱うデータとして、各モジュール内に格納されているデバッグ情報がある。デバッグ情報は、図10に示すような情報を含んでいる。デバッグ情報は、各モジュール内に含まれる関数や変数などのソースプログラムの要素が機械語プログラムに翻訳されたときに、メモリ上のどの位置に配置されているかを表すための情報である。関数や変数などのメモリ上の位置は、モジュールがメモリ上にロードされたときに決定するため、モジュール内に保持されているデバッグ情報には、モジュールがロードされた位置からアドレスを求める式を表す再配置情報が付帯している。再配置情報は、デバッグ情報内のどの位置のアドレスを再配置するための情報かを表すオフセットと、アドレスを求める式とから構成される。
ステップS51において、モジュールファイルロードの指示が来たときに、モジュールファイル保持部41に格納されているモジュールについて、前記ステップS11と同様に依存関係をチェックし、ロードされるモジュールの一覧を得る。
ステップS52において、各モジュールファイル内に格納されているデバッグ情報を取り出し、デバッグ情報保持部42が取り出したデバッグ情報を保持する。
ステップS53において、メディアプロセッサ10の起動処理部11からの、メディアプロセッサ10の起動通知を待つ。
ステップS54において、デバッガ通信処理部12を介して共有メモリ30上にあるモジュール情報を取得し、各モジュールがロードされたアドレスを取得する。
ステップS55において、モジュールデバッグ情報構築部43が、モジュール情報に含まれる各モジュールがロードされたアドレスと再配置情報を基に、デバッグ情報保持部42で保持しているデバッグ情報内のアドレスを算出する処理を行う。
ステップS56において、デバッグ機能を有効化し、ユーザに対してデバッグ機能を提供する。
以上のような構成および処理によって、複数のモジュールで構成されるメディアプロセッサ10のプログラムをホストプロセッサ20がロードするようなターゲット環境において、メディアプロセッサ10のプログラムのデバッガを実現できる。
(実施の形態2)
本発明の実施の形態2の全体構成を図11に示す。
実施の形態1との違いは、ホストプロセッサが行うモジュールファイルロード処理部44をデバッガ40内に持ち、その結果、メディアプロセッサ10のプログラムのデバッグ作業をホストプロセッサの動作から切り離した状態にすることができる。
図12は、図11に示した構成でのデバッガ40の動作手順を示したフローチャートである。
ステップS61において、モジュールファイルロードの指示が来たときに、モジュールファイル保持部41に格納されているモジュールについて、前記ステップS11およびステップS21〜ステップS25と同様に依存関係をチェックし、ロードされるモジュールの一覧を得る。
ステップS62において、前記ステップS12およびステップS31〜ステップS34と同様に、共有メモリ30上にモジュールをロードするための準備として、コード・データ・管理などの各領域がどの程度必要かを計算し、共有メモリ30上に領域を確保する。
ステップS63において、前記ステップS13およびステップS41〜ステップS46と同様に、ステップS62で確保された各領域に、各モジュールをロードする際のアドレスを決定する。
ステップS64において、モジュールのデータをメディアプロセッサ10のデバッガ通信処理部12を通じて共有メモリ30上へ転送する。
ステップS65において、各モジュールファイル内のデバッグ情報を取り出し、各モジュールがロードされたアドレスとデバッグ情報内の再配置情報を基に、デバッグ情報内のアドレスの値を算出する。
ステップS66において、デバッグ機能を有効化し、ユーザに対してデバッグ機能を提供する。
以上のような構成および処理によって、複数のモジュールで構成されるメディアプロセッサ10のプログラムを、ホストプロセッサ20がロードするようなターゲット環境において、ホストプロセッサの動作から独立したメディアプロセッサ10だけの動作に着目することができるプログラムデバッグ環境を実現できる。
(実施の形態3)
本発明の実施の形態3の全体構成を図13に示す。
実施の形態1との違いは、ホストプロセッサ20内にデバッガ通信処理部26を設けて、モジュール情報をメディアプロセッサ10のデバッガ40に直接通知する。すなわち、処理手順は、図2に示したステップS13(図8のステップS41〜ステップS46)の処理手順を置き換える。図14が、図13に示した構成での、ステップS13に相当するホストプロセッサ20がメディアプロセッサ10のプログラムをロードする手順を示したフローチャートである。
ステップS71において、ステップS12で求めた各領域の先頭アドレスを、コード領域割り当てアドレス、データ領域割り当てアドレス、管理情報領域割り当てアドレスとして保持し、後続の処理に備える。
ステップS72は、モジュールテーブル50にあるモジュールを順に選択し、それぞれについて、各領域にロードするアドレスを決定し、モジュール情報を作成するためのループを構成する。
ステップS73において、選択したモジュールについてのコード領域31のアドレスを前記コード領域割り当てアドレスの値にし、選択したモジュールのコード領域分をそのアドレスからの領域にロードする。また、コード領域割り当てアドレスの値に、選択したモジュールのコード領域31のサイズを加算して、コード領域割り当てアドレスの値を更新する。
ステップS74において、選択したモジュールについてのデータ領域32のアドレスを前記データ領域割り当てアドレスの値にし、選択したモジュールのデータ領域分をそのアドレスからの領域にロードする。また、データ領域割り当てアドレスの値に、選択したモジュールのデータ領域32のサイズを加算して、データ領域割り当てアドレスの値を更新する。
ステップS75において、選択したモジュールについての管理情報領域33のアドレスを前記管理情報領域割り当てアドレスの値にし、選択したモジュールの管理情報領域分をそのアドレスからの領域にロードする。また、管理情報領域割り当てアドレスの値に、選択したモジュールの管理情報領域33のサイズを加算して、管理情報領域割り当てアドレスの値を更新する。
ステップS76において、前記ステップS43〜ステップS45で決定した、選択したモジュールのアドレスを反映したモジュール情報を作成し、デバッガ通信処理部26を経由してデバッガ40に通知する。
以上のような構成および処理によって、複数のモジュールで構成されるメディアプロセッサ10のプログラムを、ホストプロセッサ20がロードするようなターゲット環境において、メディアプロセッサ10のプログラムのデバッガを実現できる。実施の形態1の場合と比較して、モジュール情報を高速にデバッガへ通知することが可能なほか、共有メモリ30上にモジュール情報の領域を確保する必要がなく、メモリ資源を有効利用することが可能になる。
また、モジュールロード処理部23でモジュールをロードする領域を求める際に、そのモジュールをロードする領域の最大値をモジュールヘッダから得る方法を示す。これは、実行時にモジュールを置き換えることを可能にするもので、モジュールヘッダにて、当該モジュールを実行時環境で置き換える可能性のあるモジュールが持つ各領域のサイズを示し、メモリ上での各領域の確保を可能にすることで実現される。図15に、この場合のモジュールヘッダの構造を示す。
フィールド81はモジュール名を表し、フィールド82はモジュールのコード領域が格納されている位置(オフセット)を、フィールド83はモジュールのコード領域のサイズを、フィールド84は当該モジュールを置き換えるモジュールが取り得るコード領域のサイズの最大値を、フィールド85はモジュールのデータ領域が格納されている位置(オフセット)を、フィールド86はモジュールのデータ領域のサイズを、フィールド87は当該モジュールを置き換えるモジュールが取り得るデータ領域のサイズの最大値を、フィールド88はモジュールの管理情報領域が格納されている位置(オフセット)を、フィールド89はモジュールの管理情報領域のサイズを、フィールド90は当該モジュールを置き換えるモジュールが取り得る管理情報領域のサイズの最大値を、フィールド91はそのモジュールが使用するモジュールの名前(依存モジュール情報)をそれぞれ表している。
このモジュールヘッダの情報を用いて、モジュールテーブル50を生成する手順を示すフローチャート(図6)での処理は次のようになる。
ステップS21において、先頭モジュールについての情報をモジュールテーブル50に登録する。モジュールテーブル50に登録する情報は、図15に示すモジュールヘッダのモジュール名81と、コード領域最大サイズ84と、データ領域最大サイズ87と、管理情報領域最大サイズ90から得て、図3に示すモジュールテーブル50のモジュール名51と、コード領域サイズ52と、データ領域サイズ53と、管理情報領域サイズ54とにそれぞれ登録する。
ステップS22は、モジュールテーブル50上にある、依存関係について調べていないモジュールを一つ処理対象として選択し、そのようなモジュールが存在する間繰り返すループを構成する。
ステップS23は、処理対象のモジュールが持つ依存モジュール情報を順番に選択し、依存モジュール情報それぞれについて繰り返すループを構成する。
ステップS24において、選択した依存モジュール情報が表すモジュールが、既にモジュールテーブル50に登録されているかどうかを判定する。もし既にモジュールテーブル50に含まれていればステップS25はスキップする。
ステップS25において、選択した依存モジュール情報が表すモジュールをモジュールテーブル50に登録する。モジュールテーブル50に登録する情報は、図15に示すモジュールヘッダのモジュール名81と、コード領域最大サイズ84と、データ領域最大サイズ87と、管理情報領域最大サイズ90から得て、図3に示すモジュールテーブル50のモジュール名51と、コード領域サイズ52と、データ領域サイズ53と、管理情報領域サイズ54とにそれぞれ登録する。
上記の処理により、メモリ上に確保される領域は、ロード対象となったモジュールを置き換えることができる大きさが確保され、全てのモジュールを再ロードすることなく、一部のモジュールのみを置き換えることが可能になる。
なお、ここで説明した実施形態では、すべてのモジュールのロード処理後にプロセッサを起動しデバッガに通知する形をとっているが、各々のモジュールがロードされる都度デバッガに通知する形態も構成可能である。
また、上記すべての実施形態における各プロセッサ部は、それを模擬するシミュレーション機能を有する装置でもよい。
本発明にかかるプログラム開発装置は、複数のモジュールでプログラムが構成されるターゲット環境のデバッガ等として有用である。
本発明の実施の形態1におけるプログラム開発装置の構成を示すブロック図 本発明の実施の形態1におけるホストプロセッサでのモジュールロード手順を示したフローチャート 本発明の実施の形態1におけるモジュールロード処理部で作成する、ロードするモジュールとその各領域のサイズを保持したテーブルの例 本発明の実施の形態1におけるモジュール自身の各種情報を収めたモジュールヘッダ部の例 本発明の実施の形態1におけるロードされたモジュールの各領域の情報を表すモジュール情報の例 本発明の実施の形態1におけるモジュールの依存関係を調べる手順を示したフローチャート 本発明の実施の形態1におけるモジュールをロードするために必要な領域を確保するための手順を示したフローチャート 本発明の実施の形態1におけるモジュールのメモリ配置を行う手順を示したフローチャート 本発明の実施の形態1におけるデバッガでのモジュールロードからデバッグ開始までの手順を示したフローチャート 本発明の実施の形態1におけるモジュールファイル内に格納されたデバッグ情報および再配置情報の例 本発明の実施の形態2におけるプログラム開発装置の構成を示すブロック図 本発明の実施の形態2におけるデバッガのモジュールロードからデバッグ開始までの手順を示したフローチャート 本発明の実施の形態3におけるプログラム開発装置の構成を示すブロック図 本発明の実施の形態3におけるモジュールロード処理部の処理手順を示したフローチャート 本発明の実施の形態3におけるモジュール自身の各種情報を収めたモジュールヘッダ部の第2の例 従来技術のプログラム開発装置の構成を示すブロック図
符号の説明
10 メディアプロセッサ(第1のプロセッサ)
11 起動処理部
12 デバッガ通信処理部
20 ホストプロセッサ(第2のプロセッサ)
21 メディアプロセッサ起動処理部
22 モジュール保持部
23 モジュールロード処理部
24 モジュールロード部
25 モジュール情報生成部
26 デバッガ通信処理部
30 共有メモリ
31 コード領域
32 データ領域
33 管理情報領域
34 モジュール情報領域
40 デバッガ
41 モジュールファイル保持部
42 デバッグ情報保持部
43 モジュールデバッグ情報構築部
44 モジュールファイルロード処理部
50 モジュールテーブル
60 モジュールヘッダ

Claims (20)

  1. 複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
    前記第2のプロセッサは、前記第1のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第1のプロセッサに通知するモジュールロード処理手段を有し、
    前記第1のプロセッサは、前記共有メモリから前記モジュール情報を取得して前記デバッガに通知するデバッガ通信処理手段を有し、
    前記デバッガは、前記デバッガ通信処理手段から得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段を有しているプログラム開発装置。
  2. 前記モジュールロード処理手段は、
    ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する手段と、
    前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する手段と、
    前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する手段と、
    プログラムモジュール間の各参照を解決する手段とを備える請求項1に記載のプログラム開発装置。
  3. 前記モジュールロード処理手段は、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を前記共有メモリ上に生成する手段を備える請求項2に記載のプログラム開発装置。
  4. 前記デバッガ通信処理手段は、前記共有メモリ上に生成された前記モジュール情報を読み取り、各々のモジュールとそのモジュールがロードされたアドレスを知る手段を備える請求項1から請求項3までのいずれかに記載のプログラム開発装置。
  5. 前記第2のプロセッサは、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を直接、前記デバッガに通知する手段を備える請求項1から請求項4までのいずれかに記載のプログラム開発装置。
  6. 複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
    前記第1のプロセッサは、前記デバッガからモジュールファイルを前記共有メモリに転送してロードするデバッガ通信処理手段を有し、
    前記デバッガは、
    前記第1のプロセッサ用のプログラムのモジュールファイルを前記共有メモリにロードするために前記デバッガ通信処理手段に転送するモジュールファイルロード処理手段と、
    前記デバッガ通信処理手段から得た各モジュールのロード先の情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段とを有しているプログラム開発装置。
  7. 前記モジュールファイルロード処理手段は、
    ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する手段と、
    前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する手段と、
    前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する手段と、
    各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段と
    を備える請求項6に記載のプログラム開発装置。
  8. 前記メモリ領域を確保する手段は、
    前記プログラムモジュールに含まれる、各種データのための領域の大きさを示す値を前記収集したモジュール全てから取得する手段と、
    前記手段で得た領域サイズから前記共有メモリ上に確保する領域のサイズを求める手段とを含む請求項2または請求項7に記載のプログラム開発装置。
  9. 複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
    前記第2のプロセッサは、
    前記第1のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第1のプロセッサに通知するモジュールロード処理手段と、
    前記モジュール情報を前記デバッガに通知するデバッガ通信処理手段を有し、
    前記デバッガは、前記デバッガ通信処理手段から得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段を有しているプログラム開発装置。
  10. 前記第2のプロセッサは、前記第1のプロセッサを起動し、前記デバッガに前記第1のプロセッサの起動を通知する手段を備える請求項1から請求項9までのいずれかに記載のプログラム開発装置。
  11. 複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
    前記第2のプロセッサが前記第1のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第1のプロセッサに通知するモジュールロード処理と、
    前記第1のプロセッサが前記共有メモリから前記モジュール情報を取得して前記デバッガに通知するデバッガ通信処理と、
    前記デバッガが前記デバッガ通信処理で得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築処理とを含むコンピュータ実行可能なプログラム開発プログラム。
  12. 前記モジュールロード処理は、
    ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する処理と、
    前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する処理と、
    前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する処理と、
    プログラムモジュール間の各参照を解決する処理と含む請求項11に記載のプログラム開発プログラム。
  13. 前記モジュールロード処理は、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を前記共有メモリ上に生成する処理を含む請求項12に記載のプログラム開発プログラム。
  14. 前記デバッガ通信処理は、前記共有メモリ上に生成された前記モジュール情報を読み取り、各々のモジュールとそのモジュールがロードされたアドレスを知る処理を含む請求項11から請求項13までのいずれかに記載のプログラム開発プログラム。
  15. 前記第2のプロセッサは、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を直接、前記デバッガに通知する処理を含む請求項11から請求項14までのいずれかに記載のプログラム開発プログラム。
  16. 複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
    前記第1のプロセッサが前記デバッガからモジュールファイルを前記共有メモリに転送してロードするデバッガ通信処理と、
    前記デバッガが前記第1のプロセッサ用のプログラムのモジュールファイルを前記共有メモリにロードするために前記デバッガ通信処理に転送するモジュールファイルロード処理と、
    前記デバッガが前記デバッガ通信処理から得た各モジュールのロード先の情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築とを含むコンピュータ実行可能なプログラム開発プログラム。
  17. 前記モジュールファイルロード処理は、
    ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する処理と、
    前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する処理と、
    前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する処理と、
    各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定する処理とを含む請求項16に記載のプログラム開発プログラム。
  18. 複数のプログラムモジュールから構成されたプログラムで動作する第1のプロセッサと前記第1のプロセッサの起動を行う第2のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第1のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
    前記第2のプロセッサが前記第1のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第1のプロセッサに通知するモジュールロード処理と、
    前記第2のプロセッサが前記モジュール情報を前記デバッガに通知するデバッガ通信処理と、
    前記デバッガが前記デバッガ通信処理で得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築処理とを含むコンピュータ実行可能なプログラム開発プログラム。
  19. 前記メモリ領域確保処理は、
    前記プログラムモジュールに含まれる、各種データのための領域の大きさを示す値を前記収集したモジュール全てから取得する処理と、
    前記処理で得た領域サイズから前記共有メモリ上に確保する領域のサイズを求める処理とを含む請求項12または請求項17に記載のプログラム開発プログラム。
  20. 前記第2のプロセッサが前記第1のプロセッサを起動し、前記デバッガに前記第1のプロセッサの起動を通知する処理を含む請求項11から請求項19までのいずれかに記載のプログラム開発プログラム。


JP2005037696A 2005-02-15 2005-02-15 プログラム開発装置およびプログラム開発プログラム Withdrawn JP2006227706A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005037696A JP2006227706A (ja) 2005-02-15 2005-02-15 プログラム開発装置およびプログラム開発プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005037696A JP2006227706A (ja) 2005-02-15 2005-02-15 プログラム開発装置およびプログラム開発プログラム

Publications (1)

Publication Number Publication Date
JP2006227706A true JP2006227706A (ja) 2006-08-31

Family

ID=36989066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005037696A Withdrawn JP2006227706A (ja) 2005-02-15 2005-02-15 プログラム開発装置およびプログラム開発プログラム

Country Status (1)

Country Link
JP (1) JP2006227706A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010507855A (ja) * 2006-10-24 2010-03-11 アーム・リミテッド 非対称型マルチプロセッサ装置上の診断動作の実行

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010507855A (ja) * 2006-10-24 2010-03-11 アーム・リミテッド 非対称型マルチプロセッサ装置上の診断動作の実行

Similar Documents

Publication Publication Date Title
JP5171790B2 (ja) 情報処理装置、通信システムおよびプログラム
JP2011113435A (ja) データ配信装置、データ配信方法および情報処理装置
JP2008021249A (ja) 画像処理装置及びプログラム
US20120154433A1 (en) Platform agnostic screen capture tool
CN111552508A (zh) 应用程序版本构建方法、装置、电子设备
JP2014170515A (ja) 機器、情報記録プログラム、及び情報記録方法
JP6163707B2 (ja) 組み込み機器、プログラム作成装置、プログラム
TW201721412A (zh) 選擇及載入韌體卷區之技術
JP4717426B2 (ja) 情報処理装置及びその方法
JP4626675B2 (ja) 通信ネットワークを利用したファームウェアの提供方法、そのシステムおよびサービスサーバ
JP2006227706A (ja) プログラム開発装置およびプログラム開発プログラム
JP2023054082A (ja) プログラム、情報処理装置及びその処理方法
US9940334B2 (en) Image forming apparatus and control method thereof
JP2017142574A (ja) 制御プログラム、制御装置、及び制御方法
JP5353891B2 (ja) 分散処理システム、分散処理方法およびプログラム
JP2008011513A (ja) パイプライン化されたデータフロー文書処理システムおよびその方法
JP5216624B2 (ja) ソフトウェア開発システムおよびソフトウェア開発方法
JP2019046001A (ja) アプリケーション移植支援装置、アプリケーション移植支援プログラムおよびアプリケーション移植方法
CN114020607B (zh) Bmc调试方法、装置及计算机设备
JP5337686B2 (ja) アプリケーションプログラム生成方法および画像形成装置
JP5083197B2 (ja) コンピュータ、記録媒体、および分散処理システム
JP2010102446A (ja) ソフトウェア自動試験装置
JP4080739B2 (ja) 画像形成装置用アプリケーション生成方法およびその方法をコンピュータに実行させるプログラム
JP2017091027A (ja) システム開発支援システム
JP2007172514A (ja) スタブ対応型ソフトウエア開発支援システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080107

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090313