(57)【要約】【課題】  ターゲットシステムへのファイルの転送時間、プログラムローダの実行処理サイクル期間を短縮するプログラムローディング装置及びローディング方法を提供する。【解決手段】  リロケータブルファイル記憶装置２、リロケータブルオブジェクトファイルをターゲットシステム４７に転送するデータ出力部１８、ターゲットシステム４７から転送されるセクションテーブルデータを記憶するセクションデータ記憶装置３、リロケータブルファイル記憶装置２及びセクションデータ記憶装置３に接続し、アブソリュートオブジェクトファイルを生成するリンカ５、このアブソリュートオブジェクトファイルを記憶するアブソリュートファイル記憶装置４、リロケータブルファイル記憶装置２、セクションデータ記憶装置３、及びアブソリュートファイル記憶装置４とリンカ５を制御する中央処理装置３３と、を備える。【選択図】        図１
2005284963.tif 000002
【特許請求の範囲】
【請求項１】
プログラムのリロケータブルオブジェクトファイルを記憶するリロケータブルファイル記憶装置と、
前記リロケータブルファイル記憶装置から読出したリロケータブルオブジェクトファイルをターゲットシステムに転送するデータ出力部と、
前記ターゲットシステムからデータ入力部を通して転送されるセクションテーブルデータを記憶するセクションデータ記憶装置と、
前記リロケータブルファイル記憶装置及び前記セクションデータ記憶装置に接続し、前記リロケータブルオブジェクトファイルと前記セクションテーブルデータを読出して、プログラムのアブソリュートオブジェクトファイルを生成するリンカと、
前記リンカで生成されたアブソリュートオブジェクトファイルを記憶するアブソリュートファイル記憶装置と、
前記リロケータブルファイル記憶装置、セクションデータ記憶装置、及びアブソリュートファイル記憶装置と前記リンカを制御する中央処理装置と、
を備えることを特徴とするプログラムローディング装置。
【請求項２】
前記中央処理装置は、入力部から入力されたプログラムローダ起動命令をデータ通信部を通して前記ターゲットシステムへ転送し、前記ターゲットシステムのメモリ内のプログラムローダを起動させ、前記リロケータブルファイル記憶装置から前記データ出力部を通して転送された前記リロケータブルオブジェクトファイルのテスト結果を、前記中央処理装置に接続した出力部へ出力することを特徴とする請求項１に記載のプログラムローディング装置。
【請求項３】
プログラムのリロケータブルオブジェクトファイルを記憶するリロケータブルファイル記憶装置と、
前記リロケータブルファイル記憶装置から読出したリロケータブルオブジェクトファイルをターゲットシステムに送信するデータ出力部と、
前記ターゲットシステムからデータ入力部を通して転送されるプログラムのアブソリュートオブジェクトファイルを記憶するアブソリュートファイル記憶装置と、
前記アブソリュートファイル記憶装置から読出した前記アブソリュートオブジェクトファイルを前記データ出力部を経由して前記ターゲットシステムに転送させるロードパスと、
前記リロケータブルファイル記憶装置及びアブソリュートファイル記憶装置を制御する中央処理装置と、
を備えることを特徴とするプログラムローディング装置。
【請求項４】
前記中央処理装置は、入力部から入力されたプログラムローダ起動命令をデータ通信部を通して前記ターゲットシステムへ転送し、前記ターゲットシステムのメモリ内のプログラムローダを起動させ、前記リロケータブルファイル記憶装置から前記データ出力部を通して転送された前記リロケータブルオブジェクトファイルのテスト結果を、前記中央処理装置に接続した出力部へ出力することを特徴とする請求項３に記載のプログラムローディング装置。
【請求項５】
中央処理装置がプログラムのソースファイルをソースファイル記憶装置に記憶するソースファイル記憶工程と、
前記中央処理装置が前記ソースファイル記憶装置からソースファイルを読出してコンパイルしたプログラムのリロケータブルオブジェクトファイルをリロケータブルファイル記憶装置に記憶するリロケータブルファイル記憶工程と、
前記中央処理装置が前記リロケータブルファイル記憶装置からターゲットシステムへリロケータブルオブジェクトファイルを転送し、リロケータブルオブジェクトファイルのテスト及びデバッグを実行するデバッグ工程と、
前記中央処理装置が前記デバッグ工程で前記リロケータブルオブジェクトファイルのテストを完了させた段階で、前記ターゲットシステム側で生成されるプログラムのアブソリュートオブジェクトファイルをアブソリュートファイル記憶装置に記憶するアブソリュートファイル記憶工程と、
前記中央処理装置が前記アブソリュートファイル記憶装置からアブソリュートオブジェクトファイルを読出して、前記ターゲットシステムへ転送しプログラムのテストをするテスト工程と、
を備えることを特徴とするプログラムローディング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リロケータブルオブジェクトファイル形式のプログラムをロードするプログラムローディング装置およびプログラムローディング方法に関する。
【背景技術】
【０００２】
従来のプログラムローディング装置は、ホストシステムでプログラムのロードアドレス情報とフック（設定）情報とをシンボルテーブルに追加してリロケータブルオブジェクトファイルを作成し、ターゲットシステムへリロケータブルオブジェクトファイルを転送し、ターゲットシステム上で、そのロードアドレス情報に従ってシンボル配置アドレスを決定し、また、フック情報に従ってシンボルのフック処理を実行し、プログラムのシンボル毎にユーザが指定したターゲットシステム上のアドレスへシンボルを配置していた（特許文献１参照。）。
【特許文献１】特開２００２−１３２５２１号公報（段落００６１、図１参照）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、リロケータブルオブジェクトファイルは、オブジェクト中でアドレス未解決セクションや、未解決シンボルを参照する度に計算式で表現されるため、アブソリュートオブジェクトファイルに比べてオブジェクトファイルの容量が大きくなり、ターゲットシステムへの転送時間又はプログラムローダの実行処理サイクル期間が増大するという課題が存在していた。
【０００４】
そこで、ターゲットシステムへのファイルの転送時間又はプログラムローダの実行処理サイクル期間を短縮するプログラムローディング装置およびプログラムローディング方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の第１の特徴は、例えば、プログラムのリロケータブルオブジェクトファイルを記憶するリロケータブルファイル記憶装置と、リロケータブルファイル記憶装置から読出したリロケータブルオブジェクトファイルをターゲットシステムに転送するデータ出力部と、ターゲットシステムからデータ入力部を通して転送されるセクションテーブルデータを記憶するセクションデータ記憶装置と、リロケータブルファイル記憶装置及びセクションデータ記憶装置に接続し、リロケータブルオブジェクトファイルとセクションテーブルデータを読出して、プログラムのアブソリュートオブジェクトファイルを生成するリンカと、リンカで生成されたアブソリュートオブジェクトファイルを記憶するアブソリュートファイル記憶装置と、リロケータブルファイル記憶装置、セクションデータ記憶装置、及びアブソリュートファイル記憶装置とリンカを制御する中央処理装置と、を備えるプログラムローディング装置であることを要旨とする。
【０００６】
上記目的を達成するために、本発明の第２の特徴は、例えば、プログラムのリロケータブルオブジェクトファイルを記憶するリロケータブルファイル記憶装置と、リロケータブルファイル記憶装置から読出したリロケータブルオブジェクトファイルをターゲットシステムに送信するデータ出力部と、ターゲットシステムからデータ入力部を通して転送されるプログラムのアブソリュートオブジェクトファイルを記憶するアブソリュートファイル記憶装置と、アブソリュートファイル記憶装置から読出したアブソリュートオブジェクトファイルをデータ出力部を経由してターゲットシステムに転送させるロードパスと、リロケータブルファイル記憶装置及びアブソリュートファイル記憶装置を制御する中央処理装置と、を備えるプログラムローディング装置であることを要旨とする。
【０００７】
上記目的を達成するために、本発明の第３の特徴は、例えば、中央処理装置がプログラムのソースファイルをソースファイル記憶装置に記憶するソースファイル記憶工程と、中央処理装置がソースファイル記憶装置からソースファイルを読出してコンパイルしたプログラムのリロケータブルオブジェクトファイルをリロケータブルファイル記憶装置に記憶するリロケータブルファイル記憶工程と、中央処理装置がリロケータブルファイル記憶装置からターゲットシステムへリロケータブルオブジェクトファイルを転送し、リロケータブルオブジェクトファイルのテスト及びデバッグを実行するデバッグ工程と、中央処理装置がデバッグ工程でリロケータブルオブジェクトファイルのテストを完了させた段階で、ターゲットシステム側で生成されるプログラムのアブソリュートオブジェクトファイルをアブソリュートファイル記憶装置に記憶するアブソリュートファイル記憶工程と、中央処理装置がアブソリュートファイル記憶装置からアブソリュートオブジェクトファイルを読出して、ターゲットシステムへ転送しプログラムのテストをするテスト工程と、を備えるプログラムローディング方法であることを要旨とする。
【発明の効果】
【０００８】
本発明のプログラムローディング装置およびプログラムローディング方法は、ターゲットシステムへのファイルの転送時間又はプログラムローダの実行処理サイクル期間を短縮するという格別な効果を奏する。
【発明を実施するための最良の形態】
【０００９】
（第１の実施の形態）
図１は、本発明の第１の実施形態に係るプログラムローディング装置のブロック図である。
【００１０】
プログラムローディング装置は、ホストシステム１とターゲットシステム４７を備え、ホストシステム１で作成したリロケータブルオブジェクトファイルを、ターゲットシステム４７に設けたランダムアクセスメモリ１０（以下、「ＲＡＭ」と略記する）に転送し、プログラムローダ１２を動作させて、未解決アドレスを決定する。
【００１１】
ターゲットシステム４７は、ホストシステム１からの指令に従いプログラムローダ１２で作成したセクション・シンボルテーブル１６をホストシステム１へ転送するように構成している。
【００１２】
ホストシステム１は、リロケータブルファイル記憶装置２、セクションデータ記憶装置３、アブソリュートファイル記憶装置４、リンカ５、中央処理装置３３（以下、「ＣＰＵ」と略記する）を備え、ＣＰＵ３３は、入力部８と出力部７に接続し、命令（コマンド）入力やデバッグ処理やプログラムのテスト状況を入出力する。
【００１３】
また、ホストシステム１は、データ通信部９、データ出力部１８、データ入力部１９を通してターゲットシステム４７と接続し、ファイルやデータやコマンドの送受信を実行する。
【００１４】
ここで、入力部８の形態としては、キーボード、マウスポインタ、テンキー、タッチパネルを採用することができ、出力部７の形態としては、ディスプレイ装置や印刷装置を採用することができる。
【００１５】
ターゲットシステム４７は、ＲＡＭ１０とＣＰＵ３４を備え、ＲＡＭ１０内にリロケータブルオブジェクトセクションデータロード部１１と、プログラムローダ１２と、セクション・シンボルテーブル１６と、プログラムのロード後のセクションデータ記憶装置１５を備えている。
【００１６】
プログラムローダ１２は、未解決アドレス決定部１３とセクションデータロード部１４を備え、リロケータブルオブジェクトセクションデータロード部１１を解析し、ロード後のセクションデータを生成するように構成されている。
【００１７】
ここで、リロケータブルファイル記憶装置２に記憶するリロケータブルオブジェクト形式のプログラムは、リロケータブルオブジェクトがプログラムの最終的な実行可能形式ではなく、セクション配置アドレスやシンボル値を未解決にして、ターゲットシステム４７のＲＡＭ１０の空き状態に対応させたアドレスにシンボルを配置する自由度の高いプログラムである。
【００１８】
ＣＰＵ３３は、入力部８からのコマンドに応答し、リロケータブルファイル記憶装置２からデータ出力部１８を通して、ターゲットシステム４７側のＲＡＭ１０にリロケータブルオブジェクトファイル（プログラム）を転送する。
【００１９】
ホストシステム１側のＣＰＵ３３からリロケータブルオブジェクトファイルを転送した後に、データ通信部９を通してＣＰＵ３４へプログラムローダ開始のコマンドを送信し、プログラムローダ１２を起動させ、リロケータブルオブジェクトセクションデータロード部１１のロード処理を実行する。
【００２０】
ターゲットシステム４７側のＣＰＵ３４は、プログラムローダ１２を動作させ、セクション・シンボルテーブル１６にセクションテーブルデータを記憶させてから、データ入力部１９へセクションテーブルデータを転送する。
【００２１】
ＣＰＵ３３は、転送されたセクションテーブルデータをセクションデータ記憶装置３に記憶し、リンカ５にセクションテーブルデータを与え、リロケータブルファイル記憶装置２に記憶したリロケータブルオブジェクトファイルとリンクさせたアブソリュートオブジェクトファイルをアブソリュートファイル記憶装置４に記憶する。
【００２２】
図２は、本発明の第1の実施形態に用いるプログラムローディング処理のフローチャートである。図１のブロック図及び図２のフローチャートを参照して、プログラムローディング装置の動作を説明する。
【００２３】
ＣＰＵ３４は、セクションアドレス解析ステップ２０（以下、ステップを「ＳＴ」と略記する）で未解決アドレス決定部１３を動作させ、リロケータブルオブジェクトセクションデータロード部１１のセクション定義部を解析する。
【００２４】
ＣＰＵ３４は、判定ＳＴ２１でセクションアドレスが未解決と判定（ＹＥＳ）した場合は、ＳＴ２２に分岐し、ＲＡＭ１０の空き領域から「サイズ」で定義されている容量をセクションデータ領域として確保し、このデータ領域の先頭アドレスを「セクションアドレス」として決定する。
【００２５】
一方、ＣＰＵ３４は、判定ＳＴ２１でセクションアドレス解決と判定（ＮＯ）した場合は、ＳＴ２３へ分岐し、「アドレス」で指定されているＲＡＭ１０の空き領域から「サイズ」で定義されている容量をセクションデータ領域として確保する。
【００２６】
次に、ＣＰＵ３４は、処理をＳＴ２４へ移行させ、セクション定義部の解析結果をＲＡＭ１０内部のセクション・シンボルテーブル１６に登録し、ＳＴ２５へ進ませセクション定義部解析終了か否かを判定する。判定結果が非（ＮＯ）であれば判定ＳＴ２１へ復帰させ、判定結果が是（ＹＥＳ）であればシンブル定義解析処理ＳＴ２６へ移行させる。
【００２７】
ＣＰＵ３４は、解析処理ＳＴ２６の中のＳＴ２７を実行し、シンボル定義部を解析し、シンボル値が表現式で与えられる場合はセクションテーブル中のアドレスを使ってアドレス値を計算する。次に、ＳＴ２８へ進みＲＡＭ１０内部のセクション・シンボルテーブル１６にシンボル名とシンボル値を登録（記憶）する。
【００２８】
ＣＰＵ３４は、処理をＳＴ４８へ進ませシンボル定義部解析終了か否かを判定する。判定結果が非（ＮＯ）であればＳＴ２７へ復帰させ、判定結果が是（ＹＥＳ）であればデータ部解析処理ＳＴ２９へ移行させる。
【００２９】
ＣＰＵ３４は、解析処理ＳＴ２９の中のＳＴ３０を実行し、データ定義部（図１参照）を解析してセクション領域へデータをロードする。また、ロードデータが表現式で与えられる場合はＣＰＵ３４がシンボル値を使ってデータ値を計算し、ＲＡＭ１０内部にロード後のセクションデータを記憶する。
【００３０】
ＣＰＵ３４は、ロード処理の段階で、各セクションの先頭からオフセットで指定される位置にロードデータで指定された値をロードする。ロードデータが未解決セクションアドレスあるいは未解決シンボルを参照した計算式の場合は、後述する図３のセクションテーブル１１０あるいは図４のセクション・シンボルテーブル１１４中の値を用いて計算する。
【００３１】
ＣＰＵ３４は、処理をＳＴ３１へ進ませデータ部解析終了か否かを判定する。判定結果が非（ＮＯ）であればＳＴ３０へ復帰させ、判定結果が是（ＹＥＳ）であればデータ転送処理ＳＴ３２へ移行させる。
【００３２】
ＣＰＵ３４は、全セクションデータのロード終了後、データ転送処理ＳＴ３２を実行し、ホストシステム１側のデータ入力部１９へセクション・シンボルテーブル１６のすべてのデータを転送し、プログラムローディング処理を終了する。
【００３３】
なお、セクション・シンボルテーブル１６は、セクションテーブルデータ格納領域およびテーブルサイズで構成する。
【００３４】
図３は、セクションテーブル１１０の構成図である。マトリクス状のテーブルには、セクション名欄３５、セクションサイズ欄３６、セクションアドレス欄３７が設けられ、ＳＴ２３（図２参照）の処理で算出された未解決セクションアドレスがすべて記憶されている。
【００３５】
図４は、セクション・シンボルテーブル１１４の構成図である。マトリクス状のテーブルには、シンボル名欄３８、シンボル値欄３９を設けて、リロケータブルオブジェクト中の未解決シンボル名（例えば、シンボルＭ１、シンボルＭ２、シンボルＭ３）のシンボル値（例えば、シンボル値Ｍ１、シンボル値Ｍ２、シンボル値Ｍ３）がすべて記憶されている。
【００３６】
ＣＰＵ３４は、例えば、図３に示すセクションアドレス欄３７の「アドレス」を用いてシンボル値欄３９の「シンボル値」を計算（図２のＳＴ２７）し、ＲＡＭ１０内部のセクション・シンボルテーブル１６に記憶（図２の登録処理ＳＴ２４）する。
【００３７】
図５は、第１の実施の形態に用いるターゲットシステム４７用のプログラム開発処理のフローチャートである。図１のブロック図及び図５のフローチャートを参照して、プログラム開発のフローを説明する。
【００３８】
ＣＰＵ３３は、編集ＳＴ４０で作成したプログラムソースファイルをプログラム記憶装置１７から読出し、ＳＴ４１でコンパイルしてリロケータブルオブジェクトファイルを作成し、リロケータブルファイル記憶装置２へ記憶する。
【００３９】
ＣＰＵ３３は、リロケータブルファイル記憶装置２のリロケータブルオブジェクトファイルをターゲットシステム４７に転送し、プログラムローダ１２を動作させて、プログラムのテスト及びデバッグを実行する（ＳＴ４２）。
【００４０】
ユーザは、プログラムの修正・変更判定ＳＴ４３で入力部８と出力部７を使用してＣＰＵ３３に指令を送信し、ＳＴ４０からＳＴ４２を繰り返すように、プログラムの修正判定（ＮＯ）を実行することができる。
【００４１】
ユーザは、プログラムの修正・変更判定ＳＴ４３で、プログラムの構成が固まった判定（ＹＥＳ）結果を、入力部８を使用してＣＰＵ３３に指令を送信し、プログラムのローディング命令を与える。
【００４２】
ＣＰＵ３３は、ターゲットシステム４７から得られるセクションテーブルデータの情報をリンカ５に与えてリロケータブルオブジェクトをリンクし直しアブソリュートオブジェクファイルをアブソリュートファイル記憶装置４に記憶させる（ＳＴ４４）。
【００４３】
ユーザは、アブソリュートファイル記憶装置４に記憶したアブソリュートオブジェクトファイルを磁気記憶装置やフラッシュメモリのような記憶媒体９８を使用して、ターゲットシステム４７にロードし、アブソリュートオブジェクト形式のプログラムのテストやデバッグを実行する（ＳＴ４５）。
【００４４】
なお、ターゲットシステム４７へのロードは、データ出力部１８を経由して転送してもよいことは勿論である。
【００４５】
ターゲットシステム４７側のＣＰＵ３４は、アブソリュートオブジェクト形式のプログラムのロードを検知し、プログラムを起動させ判定ＳＴ４６でプログラムのテスト・デバッグ完了判定（ＹＥＳ）を検出したときはプログラム開発終了に移行し、プログラムの修正・変更が必要と判定（ＮＯ）した場合は、処理をＳＴ４０へ戻し、プログラムの修正又は変更をユーザへ促す。
【００４６】
図６は、第１の実施形態に用いるリロケータブルオブジェクトのフォーマットを示す図である。このリロケータブルオブジェクト５０には、セクション定義部５７とシンボル定義部５８とデータ部６４が設けられ、リロケータブルファイル記憶装置２（図１参照）に記憶されている。
【００４７】
ただし、本発明は、この構成に限定されるものではなく、３種類のパート以外にも他のパートが存在する場合もある。
【００４８】
セクション定義部５７にはプログラム中の各セクションのセクション名５１、セクションのサイズ５２、セクションのアドレス５３が定義されている。アドレスが解決されている第２段目５５の「セクションＳ２」は、セクションのアドレス５３に絶対値アドレスが指定されている。このようなセクションをアブソリュートセクションと定義する。
【００４９】
一方、アドレスが未解決なセクション（例えば、リロケータブルセクション）は、第１段目５４の「セクションＳ１」、第３段目５６の「セクションＳ３」が該当し、セクションアドレスの指定がなく、セクション定義「指定なし」、「指定なし」が共に記述されている。なお、リロケータブルオブジェクトにはリロケータブルセクションが定義されている場合がある。
【００５０】
シンボル定義部５８は、プログラム中の各シンボルのシンボル名５９、シンボル値６０が定義される。リロケータブルセクション中の第１段目６１の「シンボルＭ１」と、第３段目６３の「シンボルＭ３」のシンボル値の定義部には共に、対応するシンボルが配置されるセクションのアドレスを表す計算式が定義されている。
【００５１】
例えば、変数Ｒ、セクションのインデックスＩ、及びセクション先頭からのオフセット値Ｖを用いて、セクションのシンボルＳを、変数Ｒ（Ｉ）にオフセット値Ｖを加算したアドレスに配置する。
【００５２】
なお、計算式Ｍ１、Ｍ３は、
Ｓ＝Ｒ（Ｉ）＋Ｖ    …・・  （１）
の式（１）で定義する。また、第２段目６２のアブソリュートセクション中のシンボルＭ２のシンボル値を絶対値で定義する。
【００５３】
データ部６４には、プログラム中の各セクションデータの定義部がセクション毎に設けられる。例えば、セクションＳ１の定義部６５、セクションＳ２の定義部６９、セクションＳ３の定義部７０を設ける。
【００５４】
セクションＳ１の定義部６５は、各セクションの先頭アドレスからのオフセット６６とロードデータ６７で構成する。ロードデータ６７の定義において、リロケータブルセクションや、未解決のシンボルを参照する場合には、セクションアドレスやシンボル値を表す変数を用いた計算式６８を記述する。
【００５５】
リロケータブルオブジェクトは、ターゲットシステム４７のＲＡＭ１０の空き状況に応じてプログラムを動作させることが可能となる。また、プログラム作成者がプログラムのコンパイル時にアドレス解決を行う必要がなくなるので、プログラム開発初期の段階でプログラムのコード、データサイズが流動的に変更される場合に有効である。
【００５６】
（第２の実施の形態）
図７は、本発明の第２の実施形態に係るプログラムローディング装置のブロック図である。プログラムローディング装置は、第１の実施形態と同様にホストシステム１とターゲットシステム４７を備え、重複する構成要素に付いては説明を省略する。
【００５７】
ホストシステム１内部にリロケータブルオブジェクト形式のプログラムファイルを記憶するリロケータブルファイル記憶装置２を設け、データ出力部１８を通してターゲットシステム４７のＲＡＭ１０にリロケータブルオブジェクトファイルを転送する。
【００５８】
ターゲットシステム４７のＲＡＭ１０内部には、リロケータブルオブジェクトセクションデータロード部１１が設けられ、リロケータブルオブジェクト形式のプログラムを転送した後に、データ通信部９を通してＣＰＵ３４へ指令を送信し、ターゲットシステム４７のプログラムローダ１２ａを起動しリロケータブルオブジェクト形式のプログラムをロードする。
【００５９】
プログラムローダ１２ａは、内部に未解決アドレス決定部１３と、セクションデータロード部１４と、新たに追加したアブソリュートオブジェクト作成部７２を備える。
【００６０】
ＣＰＵ３４は、アブソリュートオブジェクト作成部７２を動作させ、セクションデータ記憶装置１５に記憶したロード後のセクションデータとセクション・シンボルテーブル１６の情報を用いて、アブソリュートオブジェクトファイル７３を生成する。
【００６１】
ＣＰＵ３４は、アブソリュートオブジェクトファイル７３をホストシステム１側のデータ入力部１９経由でアブソリュートファイル記憶装置４に記憶させる。
【００６２】
ＣＰＵ３４は、アブソリュートオブジェクトファイル７３を生成させながら、同時並行的にアブソリュートオブジェクトファイル７３の先頭データから順番に、アブソリュートファイル記憶装置４に記憶させることもできる。この場合、ターゲットシステム４７のＲＡＭ１０の容量を少なくすることができるという利点がある。
【００６３】
ホストシステム１は、ＣＰＵ３３を操作し、アブソリュートファイル記憶装置４に記憶したアブソリュートオブジェクト形式のプログラム全体をロードパス７１及びデータ出力部１８を経由させて、ターゲットシステム４７のＲＡＭ１０へ転送する。
【００６４】
ターゲットシステム４７側のＣＰＵ３４は、アブソリュートオブジェクト形式のプログラムのロードを検知し、プログラムを起動させプログラム完了判定を検出したときはプログラム開発を終了させ、プログラム不具合判定の場合は、プログラム開発のやり直しをユーザに促す。
【００６５】
図８は、第２の実施形態に用いるプログラムローダ１２ａの動作フローを示すフローチャートである。図７のブロック図及び図８のフローチャートを参照して、プログラムローダ１２ａの動作を説明する。まず、ＣＰＵ３４は、ＳＴ７５でプログラムローダ１２ａ中の未解決アドレス決定部１３がリロケータブルオブジェクト形式のプログラム中のセクション定義部（図６参照）を解析する。
【００６６】
ＣＰＵ３４は、セクションアドレスが未解決（例えば、「セクションＳ１」、「セクションＳ３」）の場合は、ＲＡＭ１０の空き領域からサイズで定義されているサイズ分をセクションデータ領域として確保し、その領域の先頭アドレスをセクションアドレスに決定する。
【００６７】
一方、ＣＰＵ３４は、セクションアドレスが解決されている（例えば、「セクションＳ２」）の場合は、ＲＡＭ１０の空き領域からアドレスで指定されるアドレスからサイズで指定されるサイズ分の領域をセクションデータ領域として確保する。
【００６８】
ＣＰＵ３４は、ＳＴ７６で、セクション定義部の解析結果をＲＡＭ上のセクションテーブル１１０（図３参照）に登録（又は記録）する。第２の実施形態でも図３に例示したセクションテーブル１１０及び図４に例示したセクション・シンボルテーブル１１４を使用することができるので重複する説明を省略する。
【００６９】
ＣＰＵ３４は、セクション定義部、シンボル定義部を解析した後に、プログラムローダ１２ａ中のセクションデータロード部１４が、リロケータブルオブジェクト中のデータ部を解析して各セクションのデータ領域へデータのロードを実行する（ＳＴ７７）。
【００７０】
ＣＰＵ３４は、ＳＴ７７で、第１の実施形態と同様に、各セクションの先頭からオフセットで指定される位置にロードデータで指定された値をロードする。
【００７１】
ＣＰＵ３４は、ＳＴ７８で、ロードデータが未解決セクションアドレスあるいは未解決シンボルを参照した計算式の場合は、セクションテーブル若しくはシンボルテーブル中の値を用いて計算しロードデータを求めセクション定義部を作成する。
【００７２】
ＣＰＵ３４は、ＳＴ７９で、セクション定義部の情報に基づき、全セクションデータのロードを完了させ、データ定義部を完成させてから、ＳＴ８０へ遷移する。
【００７３】
ＣＰＵ３４は、ＳＴ８０で、アブソリュートオブジェクトファイル７３の格納領域の容量を算出する。例えば、セクションテーブルデータに登録されているセクション数と全セクションサイズから算出することができる。
【００７４】
ＣＰＵ３４は、ＳＴ８０で、プログラムローダ１２ａ中のアブソリュートオブジェクト作成部７２がＲＡＭ１０の内部にアブソリュートオブジェクトファイル７３の格納領域を確保し、生成したアブソリュートオブジェクトファイル７３を記憶する。
【００７５】
ＣＰＵ３４は、ＳＴ８０で、セクション・シンボルテーブル１６のデータ情報をアブソリュートオブジェクトファイル７３内部のセクション定義部に対応するフォーマットへ変換し、アブソリュートオブジェクトファイル７３の格納領域へ転送しセクション定義部を完成させる。
【００７６】
ＣＰＵ３４は、セクション定義部完成後、ＳＴ８０で、各セクションのロード後のセクションデータをアブソリュートオブジェクトファイル７３内部のデータ部に対応するフォーマットに変換し、アブソリュートオブジェクトファイル７３の格納領域へ転送してデータ定義部を完成させる。
【００７７】
ＣＰＵ３４は、ＳＴ８０で、データ定義部を完成させた後に、プログラムローダ１２ａを動作させ。ホストシステム１側のデータ入力部１９を通して、アブソリュートファイル記憶装置４へアブソリュートオブジェクトファイルを転送し記憶させることができる。
【００７８】
また、アブソリュートオブジェクトファイル７３を構成するセクション定義部及びデータ部のデータ情報を分割しながらホストシステム１側へ転送してもよい。この場合、ターゲットシステム４７のＲＡＭ１０の容量に余裕ができるという利点がある。
【００７９】
すべてのアブソリュートオブジェクトファイル７３を転送した段階でプログラムローディング処理を終了させることができる。
【００８０】
図９は、アブソリュートオブジェクトファイル７３のフォーマット変換処理のブロック図である。
【００８１】
オブジェクトデータ８５は、ＣＰＵ３４がセクション・シンボルテーブル１６のセクションテーブルのデータをアブソリュートオブジェクトファイル７３内部のセクション定義部８６のフォーマットへ変換したデータであり、セクション定義部８６は、セクション名８７、サイズ８８、アドレス８９で構成されている。
【００８２】
ロード後のセクションデータ１５ａは、ＣＰＵ３４がセクションデータをアブソリュートオブジェクトファイル７３内部のデータ定義部９０のフォーマットへ変換したデータである。
【００８３】
セクションデータ１５ａは、セクションＳ１の先頭アドレス１５ｂから絶対値Ｓ１１、Ｓ１２、Ｓ１３のデータに変換され、セクションＳ２の先頭アドレス１５ｃも同様に絶対値のデータに変換され、セクションＳ３の先頭アドレス１５ｄも同様に絶対値のデータに変換されている。
【００８４】
アブソリュートオブジェクトファイル７３のデータ定義部９０は、ＣＰＵ３４を経由してセクションデータ１５ａが対応する格納領域にオフセット９１ａとロードデータ９１ｂが書込まれる。
【００８５】
例えば、オフセット９１ａにセクションＳ１の先頭アドレス１５ｂに対応する「オフセットＳ１１」のロードデータ「絶対値Ｓ１１」がＣＰＵ３４を介して書込まれ、「オフセットＳ１２」のロードデータ「絶対値Ｓ１２」がＣＰＵ３４を介して書込まれ、「オフセットＳ１３」のロードデータ「絶対値Ｓ１３」がＣＰＵ３４を介して書込まれる。
【００８６】
また、「セクションＳ２」９１ｃの「先頭アドレスＳ２」１５ｃ、「セクションＳ３」９１ｄの「先頭アドレスＳ３」１５ｄも同様に、オフセットと絶対値が対応つけられてＣＰＵ３４によって書込まれるように構成されている。
【００８７】
図１０は、第２の実施の形態に用いるプログラム開発のフローチャートである。ＳＴ９２、ＳＴ９３、ＳＴ９４、ＳＴ９５、ＳＴ９７はすべて、第１の実施形態のソースファイル編集ＳＴ４０、コンパイルＳＴ４１、テスト・デバッグＳＴ４２、判定ＳＴ４３、判定ＳＴ４６と同一であり重複する説明を省略する。
【００８８】
第２の実施形態では、アブソリュートオブジェクト形式のプログラムをアブソリュートファイル記憶装置４（図７参照）からターゲットシステム４７へデータ出力部１８（図７参照）を経由してロードしてから、テスト・デバッグＳＴ９６でターゲットシステム４７側のＣＰＵ３４が、ロードしたプログラムを起動させる。
【００８９】
第２の実施形態のホストシステム１は、起動したターゲットシステム４７側のプログラムのテスト及びデバッグをホストシステム１側の入力部８及び出力部７を用いてデータ通信部９を経由して実行することができる点が第１の実施形態と相違するので、リンカ５（図１参照）やセクションデータ記憶装置３（図１参照）を必要としない点で第１の実施形態より有利である。
【００９０】
以上のようなプログラムローダ１２又は１２ａによれば、ターゲットシステム４７で、リロケータブルオブジェクトファイルを受け、未解決アドレスを決定することにより、ＩＣＥのような特別な装置を使用せずに、簡易デバッグを行うことができる。
【００９１】
また、リロケータブルオブジェクトファイルの各シンボルのロードアドレス情報よりプログラムローダ１２、１２ａが各シンボルの配置アドレスを決定し、ロード後のセクションデータ処理を行うことができる。
【００９２】
さらに、プログラムローダ１２、１２ａが、シンボルテーブルを作成することにより、各シンボル毎のターゲットシステム４７上へのきめ細かなシンボル配置や、ＩＣＥのような特別な装置を使用せずに容易に簡易デバッグが実行でき、ターゲットシステム４７のデバッグ効率を向上させることができる。
【００９３】
しかも、ホストシステム１から余分なデータを削除したアブソリュートオブジェクト形式のプログラムをターゲットシステム４７へ転送するので、転送速度が向上し、ターゲットシステム４７のＲＡＭ容量を削減することができる。
【００９４】
なお、本発明の実施形態に記載された、作用及び効果は、本発明から生じる最も好適な作用及び効果を列挙したに過ぎず、本発明による作用及び効果は、本発明の実施の形態に記載されたものに限定されるものではない。
【図面の簡単な説明】
【００９５】
【図１】本発明の第１の実施形態に係るプログラムローディング装置のブロック図。
【図２】第１の実施形態に用いるプログラムローディング処理のフローチャート。
【図３】各実施形態に用いるセクションテーブルの構成図。
【図４】各実施形態に用いるセクションテーブルの構成図。
【図５】第１の実施の形態に用いるプログラム開発処理のフローチャート。
【図６】第１の実施形態に用いるリロケータブルオブジェクトのフォーマット。
【図７】本発明の第２の実施形態に係るプログラムローディング装置のブロック図。
【図８】第２の実施形態に用いるプログラムロディング処理のフローチャート。
【図９】第２の実施形態に用いるフォーマット変換処理のブロック図。
【図１０】第２の実施の形態に用いるプログラム開発のフローチャート。
【符号の説明】
【００９６】
１…ホストシステム
２…リロケータブルファイル記憶装置
３…セクションデータ記憶装置
４、４ａ…アブソリュートファイル記憶装置
５…リンカ
７…出力部
８…入力部
９…データ通信部
１０…ランダムアクセスメモリ
１１…リロケータブルオブジェクトセクションデータロード部
１２、１２ａ…プログラムローダ
１３…未解決アドレス決定部
１４…セクションデータロード部
１６…セクション・シンボルテーブル
１７…プログラム記憶装置
１８…データ出力部
１９…データ入力部
３３、３４…中央処理装置
４７…ターゲットシステム
７１…ロードパス
７２…アブソリュートオブジェクト作成部
８６…セクション定義部
９０…データ定義部
１１０…セクションテーブル
１１４…セクション・シンボルテーブル
【図１】
2005284963.tif 000003
【図２】
2005284963.tif 000004
【図３】
2005284963.tif 000005
【図４】
2005284963.tif 000006
【図５】
2005284963.tif 000007
【図６】
2005284963.tif 000008
【図７】
2005284963.tif 000009
【図８】
2005284963.tif 000010
【図９】
2005284963.tif 000011
【図１０】
2005284963.tif 000012