(57)【特許請求の範囲】
【請求項１】
画像の処理手順や条件を指示するユーザープログラムがメモリに格納される画像処理装置とユーザプログラムを作成するコンピュータ装置とをデータ通信可能に接続し、コンピュータ装置で作成した実行形式プログラムをコンピュータ装置から画像処理装置に転送するプログラム転送方法であって、コンピュータ装置を用いて作成されたソースプログラムをコンピュータ装置においてコンパイルした複数個のモジュールからなる実行形式プログラムが作成され、コンピュータ装置にはメモリの記憶空間のうちユーザプログラムの格納に不都合な記憶領域をユーザがあらかじめ記述した配置情報ファイルが設定されており、コンピュータ装置から画像処理装置のメモリに実行形式プログラムを転送する際にコンピュータ装置では前記配置情報ファイルに照合することによりメモリにおいて格納に不都合のない記憶領域にユーザプログラムをモジュールごとに配置することを特徴とする画像処理装置のプログラム転送方法。
【請求項２】
配置情報ファイルにはモジュールごとにユーザープログラムの格納に不都合な記憶領域が記述され、配置情報ファイルに記述されているモジュールのみが画像処理装置に転送されることを特徴とする請求項１記載の画像処理装置のプログラム転送方法。
【請求項３】
配置情報ファイルにはユーザープログラムの書込に警告を与える記憶領域が警告領域として記述され、実行形式プログラムをコンピュータ装置から画像処理装置に転送する際にメモリへの書込領域が警告領域に重複しているとコンピュータ装置から警告を与えることを特徴とする請求項１記載の画像処理装置のプログラム転送方法。
【請求項４】
配置情報ファイルにはユーザープログラムの書込に警告を与える記憶領域が警告領域として記述され、実行形式プログラムをコンピュータ装置から画像処理装置に転送する際にメモリへの書込領域が警告領域に重複しているとコンピュータ装置から転送の可否が質問され、転送が否定されると転送を中止することを特徴とする請求項１記載の画像処理装置のプログラム転送方法。
【請求項５】
ソースプログラムはＣ言語により記述されることを特徴とする請求項１記載の画像処理装置のプログラム転送方法。
【請求項６】
配置情報ファイルはモジュールごとにユーザープログラムの格納に不都合な記憶領域が記述され、モジュールごとに格納に不都合のない記憶領域が照合されることを特徴とする請求項１記載の画像処理装置のプログラム転送方法。
【請求項７】
配置情報ファイルはモジュールごとにユーザープログラムの格納に不都合な記憶領域が記述され、モジュールの転送先の記憶領域が配置情報ファイルに記述されているどの記憶領域とも一致しないときにのみユーザープログラムが転送されることを特徴とする請求項１記載の画像処理装置のプログラム転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主として生産ラインなどでの検査に用いる画像処理装置のプログラム転送方法に関する。
【０００２】
【従来の技術】
近年、マイクロコンピュータ（以下、マイコンと略称する）を用いた画像処理技術が進歩してきており、工場などで従来は人の視覚に頼っていた各種の目視検査を、この種の画像処理技術を用いて行なうようになってきた。マイコンを用いた画像処理技術を用いた目視検査では、個人差あるいは疲労などによる結果のばらつきがなく、正確かつ高速で自動的な検査を行なうことができる。たとえば、工場での生産工程であれば各種部品、中間組立品、製品などの検査対象をＴＶカメラにより撮像し、ＴＶカメラより出力される画像信号に各種の画像処理を施すことによって、形状、寸法、良否などの各種の情報を画像から求めることができる。したがって、工場における生産設備としてマイコンを内蔵した画像処理装置が数多く導入されるようになってきている。
【０００３】
検査対象は多種多様であるから、検査対象ごとに対応する画像処理装置を個別に作成すると設備コストが非常に高くなり導入が困難になる。そこで、画像処理装置側に各種の基本的な処理のプログラムをあらかじめ用意しておき、各処理を用いる順序（処理手順）や、各処理に用いるパラメータ（各種の閾値や検査精度など）をユーザーが設定することによって、ユーザー側で検査対象ごとにカスタマイズすることができる画像処理装置が提供されている。つまり、処理の組み合わせやパラメータに関する情報を画像処理装置に与えるための簡単なプログラムをユーザー側で記述するだけで、各種の検査対象用にカスタマイズされた画像処理装置として用いることができるようにしてある。この種の画像処理装置はプログラミング型の画像処理装置と呼ばれている。このようなプログラミング型の画像処理装置は大きく分けて２種類の形式がある。つまり、ソースプログラムからデバッグまでのプログラミングの全工程を画像処理装置単体で行なう形式のものと、画像処理装置とは別に設けたコンピュータ装置と接続して行なうものとである。
【０００４】
前者は画像処理装置のみでプログラミングの全工程を行なうものであるから、ソースプログラムを編集するためのエディタのように、画像処理装置を用いた検査中には使用されることのない機能も画像処理装置に組み込んでおくことになり、メモリ容量が増加するなどコスト高につながるものである。また、この種の機能を実現するプログラムは、ほとんどの場合、画像処理装置を提供している製造者からしか供給されないから、プログラムの開発環境を向上させるような機能の変更や追加などがなかなか行なわれないという問題もある。また、コストの増加を抑制するために、画像処理装置に用意される開発環境は必要最小限のものになることが多い。
【０００５】
これに対して後者は、コンピュータ装置として汎用のコンピュータ（いわゆるパーソナルコンピュータやワークステーション）を用いることができるようにしておけば、この種のコンピュータ（とくに、パーソナルコンピュータ）において提供されている各種のプログラム開発用のソフトウェアを用いてプログラミングを行なうことができ、よい開発環境を容易に得ることができる。たとえば、ソースプログラムの作成や編集を行なうために高機能なスクリーンエディタを使用することができる。
【０００６】
このように別途のコンピュータ装置を接続してプログラミングを行なう画像処理装置は、プログラムの開発環境を容易に向上させることができ、しかも画像処理装置にプログラミング用の機能を持たせる必要がなくコストを低減することができるという利点を有している。この種の画像処理装置のプログラムの開発手順は、汎用のインターフェース（ＲＳ−２３２Ｃ，ＲＳ−４２２など）を用いてコンピュータ装置と接続し、コンピュータ装置により作成、編集したプログラムを画像処理装置に転送し、その後、画像処理装置でプログラムを実行するということになる。
【０００７】
【発明が解決しようとする課題】
ところで、画像処理装置のメモリには、ユーザーが作成したユーザープログラムだけではなく、画像処理装置としての基本的な処理のプログラムや画像処理装置を構成するハードウェアを連携させるためのプログラムであるシステムプログラムや、ＴＶカメラで撮像された画像や画像処理により生成された画像などの各種の画像データなどが格納される。
【０００８】
画像処理装置のメモリ内でユーザープログラムや画像データの格納場所は、ユーザープログラムによって操作される。このような格納場所の登録には、メモリマップを作成し、メモリマップに従ってプログラミングする必要がある。もちろん、ユーザープログラムを格納する領域もメモリマップ上に用意される。
しかしながら、ユーザープログラムが予想以上に大きくなることがあり、このようなときには、ユーザープログラムの格納場所として用意した領域にユーザープログラムを保存することができなくなる。とくに、ユーザープログラムが連続した一つの領域に格納されるように作成されていると、メモリ内に他に空き領域が存在していたとしてもその領域を利用することができず、画像処理装置でそのユーザープログラムを実行することができない。
【０００９】
ところで、一般的なプログラムの開発手順として、ソースプログラムをコンパイルしてオブジェクトファイルに変換し、リンカによりメモリへのアドレスの割り付けを行なうという手法が確立されている。リンカは、ユーザープログラムをモジュールに分割し、各モジュールをメモリのアドレスに割り当てるものである。したがって、画像処理装置におけるユーザープログラムの開発にも、リンカを用いることができれば、画像処理装置のメモリのアドレス空間を有効利用できると考えられる。
【００１０】
しかしながら、現状では、モジュールに分割されアドレスが割り付けられた実行形式のユーザープログラムを画像処理装置に転送する手段がなく、また、システムプログラムや画像データを破壊しないようにユーザープログラムをメモリに格納することができるかどうかを検出する手段がない。
本発明は上記事由に鑑みて為されたものであり、その目的は、既製のリンカを用いてモジュールに分割した実行形式のユーザープログラムを転送することができ、しかも、このユーザープログラムによる他の情報の破壊を防止することができる画像処理装置のプログラム転送方法を提供することにある。
【００１１】
【課題を解決するための手段】
請求項１の発明は、画像の処理手順や条件を指示するユーザープログラムがメモリに格納される画像処理装置とユーザプログラムを作成するコンピュータ装置とをデータ通信可能に接続し、コンピュータ装置で作成した実行形式プログラムをコンピュータ装置から画像処理装置に転送するプログラム転送方法であって、コンピュータ装置を用いて作成されたソースプログラムをコンピュータ装置においてコンパイルした複数個のモジュールからなる実行形式プログラムが作成され、コンピュータ装置にはメモリの記憶空間のうちユーザプログラムの格納に不都合な記憶領域をユーザがあらかじめ記述した配置情報ファイルが設定されており、コンピュータ装置から画像処理装置のメモリに実行形式プログラムを転送する際にコンピュータ装置では前記配置情報ファイルに照合することによりメモリにおいて格納に不都合のない記憶領域にユーザプログラムをモジュールごとに配置するのである。
【００１２】
請求項２の発明は、請求項１の発明において、配置情報ファイルにはモジュールごとにユーザープログラムの格納に不都合な記憶領域が記述され、配置情報ファイルに記述されているモジュールのみが画像処理装置に転送されるものである。
請求項３の発明は、請求項１の発明において、配置情報ファイルにはユーザープログラムの書込に警告を与える記憶領域が警告領域として記述され、実行形式プログラムをコンピュータ装置から画像処理装置に転送する際にメモリへの書込領域が警告領域に重複しているとコンピュータ装置から警告を与えるものである。
【００１３】
請求項４の発明は、請求項１の発明において、配置情報ファイルにはユーザープログラムの書込に警告を与える記憶領域が警告領域として記述され、実行形式プログラムをコンピュータ装置から画像処理装置に転送する際にメモリへの書込領域が警告領域に重複しているとコンピュータ装置から転送の可否が質問され、転送が否定されると転送を中止するものである。
【００１４】
請求項５の発明は、請求項１の発明において、ソースプログラムはＣ言語により記述されるものである。
請求項６の発明は、請求項１の発明において、配置情報ファイルはモジュールごとにユーザープログラムの格納に不都合な記憶領域が記述され、モジュールごとに格納に不都合のない記憶領域が照合されるものである。
【００１５】
請求項７の発明は、請求項１の発明において、配置情報ファイルにモジュールごとにユーザープログラムの格納に不都合な記憶領域が記述され、モジュールの転送先の記憶領域が配置情報ファイルに記述されているどの記憶領域とも一致しないときにのみユーザープログラムが転送されるものである。
【００１６】
【発明の実施の形態】
（実施形態１）
本実施形態は、図１に示す手順で実行形式のユーザープログラムを画像処理装置のメモリに格納するものである。すなわち、ユーザーが最初にすべきことは、画像処理装置で実現する機能に応じてメモリマップを作成することである（Ｓ１）。メモリマップには、システムプログラムを格納するシステムエリア、画像処理装置が動作するのに必要なデータ（ＴＶカメラで撮像した画像データ、これを画像処理した画像データ、画像処理の実行中に発生するデータなど）を保存するためのデータエリア、ユーザープログラムを格納する標準のユーザープログラムエリアがある。
【００１７】
ここにおいて、システムプログラムは画像処理装置を構成するハードウェアを制御するプログラムであって、別に接続されるコンピュータ装置とのデータ伝送もシステムプログラムが行なう。また、データエリアに保存するデータの種類が異なっていて各データを格納する領域の先頭アドレスとしてきりのよいアドレス値を用いようとするときには、アドレスの管理の都合から複数個のデータエリアを用いることになる。このようなときには、アドレスの連続していない領域が選ばれることが多いので、メモリのアドレス空間には空き領域が生成される。本発明はこのような空き領域を有効利用するものである。
【００１８】
標準プログラムエリアは、ユーザープログラムを保存するために通常利用される領域である。ただし、ユーザープログラムが大きくなると標準プログラムエリアだけでは容量が不足することがる。このような容量の不足分を上述した空き領域の利用によって解消するのである。
しかして、メモリマップを決定した後、ユーザーは、ユーザープログラムの書込を禁止する禁止領域およびユーザープログラムの書込の禁止はしないが警告を与える警告領域を決定する（Ｓ２）。メモリマップと禁止領域および警告領域が決定されると、ユーザープログラムをどのように配置するかを決め、リンク情報ファイルと配置情報ファイルを作成する（Ｓ３）。
【００１９】
リンク情報ファイルはソースプログラムをコンパイルして得られたオブジェクトファイルのリンク処理の際にリンカに与えられるファイルであって、ユーザープログラムをどのようにモジュールに分割し各モジュールをどのように配置するかが記述される。画像処理装置のメモリマップが確定していれば、ユーザープログラムをどのように配置すべきかが決定されているので、メモリマップに従ってリンク情報ファイルに記述を行なう。ここに、リンク情報ファイルにおいて、通常は、ユーザープログラムを複数のモジュールに分割するように指定しなくてもよいが、メモリマップからみて複数のモジュールに分割する必要があれば、リンク情報ファイルを変更してユーザープログラムを複数のモジュールに分割すればよい。
【００２０】
配置情報ファイルは、各モジュールごとの禁止領域と警告領域とを記述したものであって、ユーザープログラムを書き込むことができない領域や書き込む際に警告すべき領域を指定するものである。
ところで、画像処理装置で実行されるユーザープログラムは画像処理装置とは別に設けたコンピュータ装置により作成される。コンピュータ装置には、ソースプログラムをコンパイルしてオブジェクトファイルを生成するコンパイラと、オブジェクトファイルを適宜サイズのモジュールに分割しモジュールのメモリへの割り付けを行なうリンカとが設けられている（つまり、コンパイラとリンカとがインストールされている）。
【００２１】
これらのコンパイラおよびリンカを用いて、コンピュータ装置ではソースファイルから実行形式プログラムを作成する（Ｓ４）。このようにして作成された実行形式プログラムは転送プログラムを用いて画像処理装置に転送される。転送プログラムでは上述した配置情報ファイルを参照する。配置情報ファイルには、画像処理装置のメモリのアドレス空間のうちユーザープログラムの格納が不可能であるか不適切である領域に関する情報がモジュールごとに格納されている。
【００２２】
転送プログラムは、実行形式プログラムの内部構造を調べ（Ｓ５）、実行形式プログラムが画像処理装置のメモリのどの領域に格納されるかの配置情報を解析する（Ｓ６）。また、ユーザーがメモリマップに従って作成した配置情報ファイルと、実行形式プログラムから得られた上述の配置情報とを比較し、実行形式プログラムが禁止領域や警告領域に格納されないかどうかを判断する（Ｓ７）。ここで、実行形式プログラムが問題なく格納されると判断したときには、実行形式プログラムを転送する（Ｓ８）。また、不適切に配置されると判断したときには、転送するかどうかをユーザーに質問して決定させる（Ｓ９）。ここで、ステップＳ７の判断において実行形式プログラムが禁止領域に書き込まれると判断された場合や、ユーザーに対する質問に対して転送中止と中止と判断されたときには、実行形式プログラムの転送を中止して終了する。
【００２３】
ユーザープログラムを分割したモジュールのうちの特定のモジュールのみを転送する場合には、そのモジュールに対応する転送情報のみを配置情報ファイルに書き込んでおけばよい。逆に言えば、実行形式プログラムがモジュールに分割されていて、配置情報ファイルがモジュールの情報のみからなるときには、転送プログラムは指定されているモジュールのみを転送する。
【００２４】
上述のような手順の処理を行なうために、図２に示すように、コンピュータ１０は、エディタなどによって作成されたソースファイル１１をコンパイルしリンクするコンパイル・リンク処理部１２を備え、コンパイル・リンク処理部１２ではリンク情報ファイルＦ１を参照する。また、コンパイル・リンク処理部１２からは実行形式プログラム１３が出力され、実行形式プログラム１３は転送プログラム１４によって通信インターフェース１５を介して画像処理装置２０に対する転送処理が行なわれる。転送プログラム１４では上述のように配置情報ファイルＦ２が用いられる。
【００２５】
一方、画像処理装置２０は、マイクロプロセッサ２１とメモリ２２とを備えており、メモリ２２の中には転送プログラム１４を通してユーザープログラムがモジュールに分割された形で書き込まれる。
以下にユーザープログラムを画像処理装置のメモリに書き込む手順について、さらに具体的に説明する。なお、本実施形態ではソースプログラムがＣ言語を用いて記述されるものとする。Ｃ言語を使用すると、機械語コードを含むプログラムセクション、定数データを含む定数データセクション、初期化される変数領域である初期化データセクション、初期化されない変数領域である未初期化データセクションに分けてコードを生成することができる。デフォルトではこれらの４つのセクションはメモリの連続したアドレス領域に配置される。なお、多くのリンカではセクションを自由に作ることができるが、本実施形態では、説明を簡略化するためにＣ言語によりデフォルトで生成されるセクションを用いることにする。
【００２６】
ここで、ソースファイルをコンパイルして、以下のような形でリンク情報ファイルをリンカに入力すると、各セクションを分割して実行形式プログラムを４つのデータエリアに割り当てることができる（なお、コンパイラには日立製のマイクロプロセッサであるＳＨシリーズ用のものを用いた）。
＜ソースファイル（source.c）＞
const.int.a=0;    /*定数データセクション     */
int       b=0;    /*初期化データセクション   */
int       c;      /*未初期化データセクョン   */
main()｛｝        /*プログラムセクション     */
＜リンク情報ファイル＞
input  source
output execute
entry   ＿main
start  P(041000000),C(04130000),D(04150000),B(04170000)
exit
ただし、Ｐはプログラムセクション、Ｃは定数データセクション、Ｄは初期化データセクション、Ｂは未初期化データセクションを示す。また、メモリマップが図３に示すように設定されているものとする。ここで、アドレス値を具体的に記載しているが、一例であって本発明の要旨でなない。
【００２７】
上述のコードを含むプログラムをコンパイルしリンクすると、実行形式プログラム（ファイル名：execute.abs ）が作成される。転送プログラムは、実行形式プログラムを読み込み、内部構造を解析すると、たとえば以下のようなユーザープログラムの配置情報が得られる。
＜実行形式プログラムから取得した配置情報＞
プログラムセクション      H'04100000  -  H'04100003
定数データセクション      H'04130000  -  H'04130003
初期化データセクション    H'04150000  -  H'04150003
未初期化データセクション  H'04170000  -  H'04170003
なお、ここでＨ’は１６進数を意味する。次に、転送プログラムが配置情報ファイルを読み取り、転送しようとしている実行形式プログラムから取得した配置情報と比較する。配置情報ファイルは、以下のように構成されているものとする。また、右欄は各行の意味を説明している。
＜配置情報ファイル＞
Ｐ；                                    プログラムセクション
０４００００００−０４０５ＦＦＦＦ      システムエリアヘの配置禁止
０４１８００００−０４１ＢＦＦＦＦ      データエリア１への配置禁止
０４３Ｆ００００−０４３ＦＦＦＦＦ      データエリア２への配置禁止
０４２１００００−０４２３ＦＦＦＦ      データエリア３への配置禁止
０４２Ｅ００００−０４２ＥＦＦＦＦ；    スタックエリアヘの配置禁止
０４０６００００−０４０ＦＦＦＦＦ      警告領域
０４１Ｃ００００−０４２０ＦＦＦＦ      警告領域
０４２４００００−０４２ＤＦＦＦＦ      警告領域
０４２Ｆ００００−０４３ＥＦＦＦＦ；    警告領域
Ｃ；                                    定数データセクション
０４００００００−０４０５ＦＦＦＦ      システムエリアヘの配置禁止
０４１８００００−０４１ＢＦＦＦＦ      データエリア１への配置禁止
０４３Ｆ００００−０４３ＦＦＦＦＦ      データエリア２への配置禁止
０４２１００００−０４２３ＦＦＦＦ      データエリア３への配置禁止
０４２Ｅ００００−０４２ＥＦＦＦＦ；    スタックエリアヘの配置禁止
；                                      警告領域なし
Ｄ；                                    初期化データセクション
０４００００００−０４０５ＦＦＦＦ      システムエリアヘの配置禁止
０４１８００００−０４１ＢＦＦＦＦ      データエリア１への配置禁止
０４３Ｆ００００−０４３ＦＦＦＦＦ      データエリア２への配置禁止
０４２１００００−０４２３ＦＦＦＦ      データエリア３への配置禁止
０４２Ｅ００００−０４２ＥＦＦＦＦ；    スタックエリアヘの配置禁止
０４１Ｃ００００−０４２０ＦＦＦＦ      警告領域
０４２４００００−０４２ＤＦＦＦＦ      警告領域
０４２Ｆ００００−０４３ＥＦＦＦＦ；    警告領域
Ｂ；                                    未初期化データセクション
０４００００００−０４０５ＦＦＦＦ      システムエリアヘの配置禁止
０４１８００００−０４１ＢＦＦＦＦ      データエリア１への配置禁止
０４３Ｆ００００−０４３ＦＦＦＦＦ      データエリア２への配置禁止
０４２１００００−０４２３ＦＦＦＦ      データエリア３への配置禁止
０４２Ｅ００００−０４２ＥＦＦＦＦ；    スタックエリアヘの配置禁止
０４０６００００−０４０ＦＦＦＦＦ      警告領域
０４１Ｃ００００−０４２０ＦＦＦＦ      警告領域
０４２Ｆ００００−０４３ＥＦＦＦＦ；    警告領域
ただし、Ｐはプログラムセクション、Ｃは定数データセクション、Ｄは初期化データセクション、Ｂは未初期化データセクションを示す。また、各セクションの１つ目のセミコロンまでがセクション名を表し、２つ目のセミコロンまでが配置禁止領域を表し、３番目のセミコロンまでが警告領域を表す。
【００２８】
定数データセクションには警告領域が存在しないから、禁止領域以外の領域には警告を生じることなく配置することができる。また、初期化データセクションは、たとえば０４０６０００００−０４０ＦＦＦＦＦに配置すれば警告が生じることはなく、未初期化データセクションは、たとえば０４１Ｃ００００−０４２０ＦＦＦＦのアドレス領域に配置すると警告が生じる。
【００２９】
上記した例では、実行形式プログラムは図３に示すメモリマップの標準ユーザープログラムエリア内に配置されることになり、配置情報ファイルで指定されている禁止領域や警告領域に実行形式プログラムが配置されることがないから、実行形式プログラムの転送が行なわれる。その結果、図３に示すメモリマップのようにシステムエリア、標準ユーザープログラムエリア、データエリア１〜３を設けることができる。未初期化データセクションには実際の転送は行なわれないが、未初期化データ用にメモリが確保されたとみなされる。
【００３０】
ところで、上述したように、配置情報ファイルを一部だけ記述することによって、指定されたセクションだけを転送する場合がある。このようなときには、配置情報ファイルを以下のような形で記述すれば、定数データセクションだけを転送することができる。
Ｄ；                                    初期化データセクション
０４００００００−０４０５ＦＦＦＦ      システムエリアヘの配置禁止
０４１８００００−０４１ＢＦＦＦＦ      データエリア１への配置禁止
０４３Ｆ００００−０４３ＦＦＦＦＦ      データエリア２への配置禁止
０４２１００００−０４２３ＦＦＦＦ      データエリア３への配置禁止
０４２Ｅ００００−０４２ＥＦＦＦＦ；    スタックエリアヘの配置禁止
０４０６００００−４０ＦＦＦＦＦＦ      警告領域
０４１Ｃ００００−０４２０ＦＦＦＦ      警告領域
０４２４００００−０４２ＤＦＦＦＦ      警告領域
０４２Ｆ００００−０４３ＥＦＦＦＦ；    警告領域
このような記述は、実行形式プログラムを転送するときに、すべてのコードを送らなくてもよい場合に適用されるものである。たとえば、Ｃ言語を用いたときに初期化データセクションは初期値をもった変数を意味するから、実行形式プログラムを実行すればデータが変更されることになる。仮に、プログラムを転送し１回だけプログラムを実行してプログラムを終了したとして、転送直後の初めの状態に戻すのであれば、すべての情報を転送する必要はなく、初期化データセクションだけを送ればよいことになる。このように、転送する情報量を低減させることによってトラフィックの増加を抑制し転送を効率化することができる。
【００３１】
上述したように、リンク情報ファイルに従ってリンクされた実行形式プログラムの配置が、配置情報の禁止領域と重なるとき転送禁止となり、警告領域と重なるとき警告を発生してユーザーに転送するかどうか間い合わせ、転送中止か転送続行かを入力させるのであるから、これを実現するためには、以下のような記述を採用する。
＜リンク情報ファイル＞
input   source
output  execue
entry   ＿main
start   P(041000000),C(04130000),D(04210000),B(04300000)
exit
とすれば、実行形式プログラムから取得される配置情報が、たとえば、以下ようになる。
プログラムセクション        Ｈ’０４１０００００−Ｈ’０４１００００３
定数データセクション        Ｈ’０４１３００００−Ｈ’０４１３０００３
初期化データセクション      Ｈ’０４２１００００−Ｈ’０４２１０００３
未初期化データセクション    Ｈ’０４３０００００−Ｈ’０４３００００３
この場合、配置情報ファイルで指定されている禁止領域（データエリア３）に初期化データセクションが配置され、警告領域に未初期化データセクションが配置されることになる。このように、セクションごとに、禁止・警告がわかるので、禁止・警告の処理を行なう。禁止のときは、そのセクションの転送を中止し、警告のときはユーザーに転送中止か続行かを間い合わせて動作を決定する。
【００３２】
（実施形態２）
実施形態１では、セクションごとに禁止・警告の判定を行っており図１に示す手順のステップＳ７〜Ｓ９の処理をセクションの数だけ繰り返すようになっている。本実施形態では、すべてのセクションの配置情報をまとめて考え、セクションが一つでも禁止領域に配置されていると転送を中止し、また、セクションが一つでも警告領域に配置されているとユーザーに転送を中止するか続行するかを問い合わせて動作を決定するものである。なお、本実施形態では、配置情報ファイルに記載されているセクションの配置情報のみをチェックすることになる。他の構成および動作は実施形態１と同様である。
【００３３】
（実施形態３）
本実施形態は、配置情報ファイルに記述されているセクションの配置情報だけではなく、実行形式プログラムに含まれる全セクションの配置情報もチェックして、セクションのうちの一つでも禁止領域に配置されていると転送を中止し、セクションのうちの一つでも警告領域に配置されているとユーザーに転送中止か続行かを質問して動作を決定するものである。他の構成および動作は実施形態２と同様である。
【００３４】
【発明の効果】
本発明の構成によれば、システムプログラムやデータによってメモリのアドレス空間が不連続になっている場合であっても、ユーザープログラムを必要に応じて自由に配置できるので、メモリ管理がしやすく、かつ、効率的に使えるという利点がある。また、配置情報ファイルを用いて転送先の適否を確認するから、ユーザープログラムを転送する際にシステムプログラムが書き換えられて、画像処理装置として使用できなくなるというような不都合を回避することができる。
【図面の簡単な説明】
【図１】本発明の実施形態１を示す動作説明図である。
【図２】同上の概念図である。
【図３】同上のメモリマップを示す図である。
【符号の説明】
１０  コンピュータ装置
１１  ソースファイル
１２  コンパイル・リンク部
１３  実行形式プログラム
１４  転送プログラム
１５  通信インターフェース
２０  画像処理装置
２１  マイクロコンピュータ（マイコン）
２２  メモリ
Ｆ１  リンク情報ファイル
Ｆ２  配置情報ファイル
Ｍ  モジュール
【図１】
0003832067.tif 000002
【図２】
0003832067.tif 000003
【図３】
0003832067.tif 000004