(57)【特許請求の範囲】
【請求項１】
画像の入力を受け付け、入力された画像に対して画像処理に関するプログラムを実行する画像処理装置と、前記画像処理装置で実行されるプログラムの作成および前記画像処理装置へのプログラムの転送が可能な開発支援装置とを備える開発支援システムであって、
前記開発支援装置と前記画像処理装置は、互いに異なる環境でプログラムを実行し、
前記開発支援装置は、
ソースコードを入力するためのインターフェース手段と、
前記インターフェース手段からの入力を受けて、ソースコードの追加または削除を行なう編集手段と、
前記インターフェース手段から入力され前記編集手段で追加または削除されたソースコードを、前記画像処理装置の動作環境に対応した実行プログラムと、前記開発支援装置の動作環境に対応した動作確認プログラムと、にコンパイルするコンパイル手段と、
前記動作確認プログラムを実行する実行手段と、
前記実行プログラムを前記画像処理装置へ転送する転送手段とを含み、
前記画像処理装置は、前記実行プログラムを転送されて当該実行プログラムを実行し、
前記実行プログラムおよび前記動作確認プログラムは、それぞれの動作環境において互いに対応する処理を実行するライブラリ化された処理の実行の命令を含むことができ、
前記開発支援装置は、前記画像処理装置の動作環境に対応する処理を実行する実行プログラム用ライブラリを記憶する第１の記憶手段と、前記開発支援装置の動作環境に対応する処理を実行する動作確認プログラム用ライブラリを記憶する第２の記憶手段をさらに含み、
前記実行プログラム用ライブラリは、前記画像処理装置のみに接続される外部機器との間でのデータの送信または受信を行なう処理を含む処理の実行の命令を含み、
前記動作確認プログラム用ライブラリは、前記外部機器との間でのデータの送信または受信を行なう処理に対応した処理として、当該送信または受信を行なう処理とは内容が異なる処理の実行の命令を含む、開発支援システム。
【請求項２】
前記画像処理装置は、プログラムの実行に利用される第１の容量のメインメモリを含み、
前記開発支援装置は、プログラムの実行に利用される前記第１の容量よりも多い第２の容量のメインメモリをさらに含み、
前記実行手段は、前記動作確認プログラム実行中に利用される前記第２の容量のメインメモリの中の容量が前記第１の容量を越えた場合に報知動作を実行する、請求項１に記載の開発支援システム。
【請求項３】
前記動作確認プログラム用ライブラリは、前記外部機器との間でのデータの送信または受信を行なう処理に対応した処理として、当該送信または受信を行なう処理に代えて、前記外部機器との間でのデータの送信または受信を行なうことなく当該送信または受信が完了したとみなす処理の実行の命令を含む、請求項１または請求項２に記載の開発支援システム。
【請求項４】
前記動作確認プログラム用ライブラリは、前記外部機器からデータを受信する処理に対応して、当該受信する処理に代えて、前記外部機器からのデータの受信を行なうことなく、前記画像処理装置において外部機器からデータを正常に受信できなかった場合の警告処理に対応する処理の実行の命令を含む、請求項１または請求項２に記載の開発支援システム。
【請求項５】
前記コンパイル手段は、前記ソースコードをコンパイルするたびに、前記実行プログラムと前記動作確認プログラムの双方を生成する、請求項１〜請求項４のいずれかに記載の開発支援システム。
【請求項６】
画像の入力を受け付け、入力された画像に対して画像処理に関するプログラムを実行する画像処理装置で実行されるプログラムの作成および前記画像処理装置へのプログラムの転送が可能な開発支援装置であって、
前記開発支援装置と前記画像処理装置は、互いに異なる環境でプログラムを実行し、
ソースコードを入力するためのインターフェース手段と、
前記インターフェース手段からの入力を受けて、ソースコードの追加または削除を行なう編集手段と、
前記インターフェース手段から入力され前記編集手段で追加または削除されたソースコードを、前記画像処理装置の動作環境に対応した実行プログラムと、前記開発支援装置の動作環境に対応した動作確認プログラムと、にコンパイルするコンパイル手段と、
前記動作確認プログラムを実行する実行手段と、
前記実行プログラムを前記画像処理装置へ転送する転送手段とを備え、
前記実行プログラムおよび前記動作確認プログラムは、それぞれの動作環境において互いに対応する処理を実行するライブラリ化された処理の実行の命令を含むことができ、
前記画像処理装置の動作環境に対応する処理を実行する実行プログラム用ライブラリを記憶する第１の記憶手段と、
前記開発支援装置の動作環境に対応する処理を実行する動作確認プログラム用ライブラリを記憶する第２の記憶手段とをさらに備え、
前記実行プログラム用ライブラリは、前記画像処理装置のみに接続される外部機器との間でのデータの送信または受信を行なう処理を含む処理の実行の命令を含み、
前記動作確認プログラム用ライブラリは、前記外部機器との間でのデータの送信または受信を行なう処理に対応した処理として、当該送信または受信を行なう処理とは内容が異なる処理の実行の命令を含む、開発支援装置。
【請求項７】
プログラムの実行に利用され、前記画像処理装置においてプログラムの実行に利用されるメインメモリの容量である第１の容量よりも多い第２の容量のメインメモリをさらに備え、
前記実行手段は、前記動作確認プログラム実行中に利用される前記第２の容量のメインメモリの中の容量が前記第１の容量を越えた場合に報知動作を実行する、請求項６に記載の開発支援装置。
【請求項８】
前記動作確認プログラム用ライブラリは、前記外部機器との間でのデータの送信または受信を行なう処理に対応した処理として、当該送信または受信を行なう処理に代えて、前記外部機器との間でのデータの送信または受信を行なうことなく当該送信または受信が完了したとみなす処理の実行の命令を含む、請求項６または請求項７に記載の開発支援装置。
【請求項９】
前記動作確認プログラム用ライブラリは、前記外部機器からデータを受信する処理に対応して、当該受信する処理に代えて、前記外部機器からのデータの受信を行なうことなく、前記画像処理装置において外部機器からデータを正常に受信できなかった場合の警告処理に対応する処理の実行の命令を含む、請求項６または請求項７に記載の開発支援装置。
【請求項１０】
前記コンパイル手段は、前記ソースコードをコンパイルするたびに、前記実行プログラムと前記動作確認プログラムの双方を生成する、請求項６〜請求項９のいずれかに記載の開発支援装置。
【請求項１１】
画像の入力を受け付け、入力された画像に対して画像処理に関するプログラムを実行する画像処理装置で実行されるプログラムの作成および前記画像処理装置へのプログラムの転送が可能な開発支援装置におけるプログラムの開発支援方法であって、
前記開発支援装置と前記画像処理装置は、互いに異なる環境でプログラムを実行し、
ソースコードを入力するためのステップと、
前記入力を受けて、ソースコードの追加または削除を行なうステップと、
前記入力されかつ前記追加または削除されたソースコードを、前記画像処理装置の動作環境に対応した実行プログラムと、前記開発支援装置の動作環境に対応した動作確認プログラムと、にコンパイルするステップと、
前記動作確認プログラムを実行するステップと、
前記実行プログラムを前記画像処理装置へ転送するステップとを備え、
前記実行プログラムおよび前記動作確認プログラムは、それぞれの動作環境において互いに対応する処理を実行するライブラリ化された処理の実行の命令を含むことができ、
前記画像処理装置の動作環境に対応する処理を実行する実行プログラム用ライブラリ、および、前記開発支援装置の動作環境に対応する処理を実行する動作確認プログラム用ライブラリを記憶するステップをさらに備え、
前記実行プログラム用ライブラリは、前記画像処理装置のみに接続される外部機器との間でのデータの送信または受信を行なう処理を含む処理の実行の命令を含み、
前記動作確認プログラム用ライブラリは、前記外部機器との間でのデータの送信または受信を行なう処理に対応した処理として、当該送信または受信を行なう処理とは内容が異なる処理の実行の命令を含む、開発支援方法。
【請求項１２】
画像の入力を受け付け、入力された画像に対して画像処理に関するプログラムを実行する画像処理装置で実行されるプログラムの作成および前記画像処理装置へのプログラムの転送が可能な開発支援装置において実行されるプログラムの開発支援プログラムであって、
前記開発支援装置と前記画像処理装置は、互いに異なる環境でプログラムを実行し、
ソースコードを入力するためのステップと、
前記入力を受けて、ソースコードの追加または削除を行なうステップと、
前記入力されかつ前記追加または削除されたソースコードを、前記画像処理装置の動作環境に対応した実行プログラムと、前記開発支援装置の動作環境に対応した動作確認プログラムと、にコンパイルするステップと、
前記動作確認プログラムを実行するステップと、
前記実行プログラムを前記画像処理装置へ転送するステップとを前記開発支援装置に実行させ、
前記実行プログラムおよび前記動作確認プログラムは、それぞれの動作環境において互いに対応する処理を実行するライブラリ化された処理の実行の命令を含むことができ、
前記画像処理装置の動作環境に対応する処理を実行する実行プログラム用ライブラリ、および、前記開発支援装置の動作環境に対応する処理を実行する動作確認プログラム用ライブラリを記憶するステップを前記開発支援装置にさらに実行させ、
前記実行プログラム用ライブラリは、前記画像処理装置のみに接続される外部機器との間でのデータの送信または受信を行なう処理を含む処理の実行の命令を含み、
前記動作確認プログラム用ライブラリは、前記外部機器との間でのデータの送信または受信を行なう処理に対応した処理として、当該送信または受信を行なう処理とは内容が異なる処理の実行の命令を含む、開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理システムの開発支援に関し、特に、計測対象物の画像に対して画像処理を行なうことにより検査や判別を行なう画像処理装置を含むシステムにおける画像処理装置で実行されるプログラムの開発に関する。
【背景技術】
【０００２】
従来から、たとえば特許文献１や特許文献２に開示されるように、物品の視覚的な検査に画像処理装置が用いられてきた。このような画像処理装置では、基準画像とカメラ等から入力された物品の画像とを所定のプログラムに従って処理することにより、当該物品の視覚的な検査が行なわれる。
【特許文献１】特開２００１−１６５８６３号公報
【特許文献２】特開２００７−１２８３０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年の商品の多品種少量生産等により、画像処理装置のユーザは、多様な画像処理プログラムの開発を希望する状況が多く見られるようになっている。
【０００４】
なお、このような状況に対し、画像処理装置のメーカがユーザの要望ごとにプログラムの開発を行なうことはコスト等の面から難しいという問題があった。このことから、ユーザ側で画像処理装置におけるプログラムの開発をする必要が生じてくる。
【０００５】
しかしながら、このようなプログラムの開発には、プログラム開発の中でもより専門的な知識が必要とされるという課題があった。これは、画像処理装置において実行される上記のようなプログラムが、一般的に、アンマネージコードと呼ばれる、特定のプロセッサやプラットフォームでのみ実行されるようなコードで記述されていることに起因すると考えられる。上記のような画像処理装置が汎用のコンピュータではなく専用の端末によって実現されることが多く、そのため、当該プログラムには、リソース使用量を最小限に抑えつつ高いパフォーマンスを発揮することが求められていたからである。
【０００６】
また、上記したようなプログラムの開発には、画像処理装置のような、当該プログラムが実際に実行される装置（以下、適宜「開発ターゲット」と呼ぶ）を利用した動作確認が必要とされ、開発作業が煩雑となるという課題があった。上記したように、当該プログラムが特別なコードで記述されるためである。
【０００７】
なお、汎用のコンピュータ上で上記したようなプログラムの開発がなされた場合、汎用のコンピュータ上で実行したプログラムとは別に、当該汎用コンピュータ上で実現された機能と同様の機能を実現するプログラムであって開発ターゲット上で実行される形式で記述されたプログラムを作成する必要があり、プログラムの開発者は煩雑な作業を余儀なくされていた。
【０００８】
また、このように汎用のコンピュータにおける開発後に開発ターゲット用に作成されたプログラムも、開発ターゲット上での動作確認は必要とされる。そして、このような開発ターゲット上での動作確認の際には、再度デバッグやログ出力などの確認動作を必要とされる。つまり、プログラムの開発者は、汎用のコンピュータ上での開発の他に、さらに、開発ターゲット上で実行されるプログラムの作成およびその確認作業という、煩雑な作業
を必要とされていた。
【０００９】
なお、開発ターゲット上での確認動作のための負荷を軽減するべく、開発ターゲット上での確認動作の際に当該開発ターゲットをＩＣＥ（In-Circuit Emulator：登録商標）等のデバッガを介して汎用コンピュータに接続し、汎用コンピュータ上で確認作業を行なうことも考えられた。しかしながら、このようなＩＣＥ（登録商標）等の新たな機器の導入は、プログラム開発のコストを上昇させるという新たな課題を所持させる。
【００１０】
本発明はかかる実情に鑑み考え出されたものであり、その目的は、安価にかつ煩雑な作業を必要とすることなく画像処理装置に実行させるプログラムの開発を可能とする開発支援システム、開発支援装置、開発支援方法、および開発支援プログラムを提供することである。
【課題を解決するための手段】
【００１１】
本発明に従った画像処理システムの開発支援システムは、画像の入力を受け付け、入力された画像に対して画像処理に関するプログラムを実行する画像処理装置と、前記画像処理装置で実行されるプログラムの作成および前記画像処理装置へのプログラムの転送が可能な開発支援装置とを備える開発支援システムであって、前記開発支援装置と前記画像処理装置は、互いに異なる環境でプログラムを実行し、前記開発支援装置は、ソースコードを入力するためのインターフェース手段と、前記インターフェース手段からの入力を受けて、ソースコードの追加または削除を行なう編集手段と、前記インターフェース手段から入力され前記編集手段で追加または削除されたソースコードを、前記画像処理装置の動作環境に対応した実行プログラムと、前記開発支援装置の動作環境に対応した動作確認プログラムと、にコンパイルするコンパイル手段と、前記動作確認プログラムを実行する実行手段と、前記実行プログラムを前記画像処理装置へ転送する転送手段とを含み、前記画像処理装置は、前記実行プログラムを転送されて当該実行プログラムを実行することを特徴とする。
【００１２】
また、本発明の開発支援システムでは、前記画像処理装置は、プログラムの実行に利用される第１の容量のメインメモリを含み、前記開発支援装置は、プログラムの実行に利用される前記第１の容量よりも多い第２の容量のメインメモリをさらに含み、前記実行手段は、前記動作確認プログラム実行中に利用される前記第２の容量のメインメモリの中の容量が前記第１の容量を越えた場合に報知動作を実行することが好ましい。
【００１３】
また、本発明の開発支援システムでは、前記実行プログラムおよび前記動作確認プログラムは、それぞれの動作環境において互いに対応する処理を実行するライブラリ化された処理の実行の命令を含むことができ、前記開発支援装置は、前記画像処理装置の動作環境に対応する処理を実行する実行プログラム用ライブラリを記憶する第１の記憶手段と、前記開発支援装置の動作環境に対応する処理を実行する動作確認プログラム用ライブラリを記憶する第２の記憶手段をさらに含み、前記実行プログラム用ライブラリは、前記画像処理装置のみに接続される外部機器との間でのデータの送信または受信を行なう処理を含む処理を含み、前記動作確認プログラム用ライブラリは、前記外部機器との間でのデータの送信または受信を行なう処理に対応した処理として、当該送信または受信を行なう処理に代えて、前記外部機器との間でのデータの送信または受信を行なうことなく当該送信または受信が完了したとみなす処理を含む処理を含むことが好ましい。
【００１４】
また、本発明の開発支援システムでは、前記実行プログラムおよび前記動作確認プログラムは、それぞれの動作環境において互いに対応する処理を実行するライブラリ化された処理の実行の命令を含むことができ、前記開発支援装置は、前記画像処理装置の動作環境に対応する処理を実行する実行プログラム用ライブラリを記憶する第１の記憶手段と、前
記開発支援装置の動作環境に対応する処理を実行する動作確認プログラム用ライブラリを記憶する第２の記憶手段をさらに含み、前記実行プログラム用ライブラリは、前記画像処理装置のみに接続される外部機器からデータを受信する処理を含む処理を含み、前記動作環境プログラム用ライブラリは、前記外部機器からデータを受信する処理に対応して、当該受信する処理に代えて、前記外部機器からのデータの受信を行なうことなく、前記画像処理装置において外部機器からデータを正常に受信できなかった場合の警告処理に対応する処理を含む処理を含むことが好ましい。
【００１５】
また、本発明の開発支援システムでは、前記コンパイル手段は、前記ソースコードをコンパイルするたびに、前記実行プログラムと前記動作確認プログラムの双方を生成することが好ましい。
【００１６】
本発明に従った開発支援装置は、画像の入力を受け付け、入力された画像に対して画像処理に関するプログラムを実行する画像処理装置で実行されるプログラムの作成および前記画像処理装置へのプログラムの転送が可能な開発支援装置であって、前記開発支援装置と前記画像処理装置は、互いに異なる環境でプログラムを実行し、ソースコードを入力するためのインターフェース手段と、前記インターフェース手段からの入力を受けて、ソースコードの追加または削除を行なう編集手段と、前記インターフェース手段から入力され前記編集手段で追加または削除されたソースコードを、前記画像処理装置の動作環境に対応した実行プログラムと、前記開発支援装置の動作環境に対応した動作確認プログラムと、にコンパイルするコンパイル手段と、前記動作確認プログラムを実行する実行手段と、前記実行プログラムを前記画像処理装置へ転送する転送手段とを備えることを特徴とする。
【００１７】
また、本発明の開発支援装置は、プログラムの実行に利用され、前記画像処理装置においてプログラムの実行に利用されるメインメモリの容量である第１の容量よりも多い第２の容量のメインメモリをさらに備え、前記実行手段は、前記動作確認プログラム実行中に利用される前記第２の容量のメインメモリの中の容量が前記第１の容量を越えた場合に報知動作を実行することが好ましい。
【００１８】
また、本発明の開発支援装置では、前記実行プログラムおよび前記動作確認プログラムは、それぞれの動作環境において互いに対応する処理を実行するライブラリ化された処理の実行の命令を含むことができ、前記画像処理装置の動作環境に対応する処理を実行する実行プログラム用ライブラリを記憶する第１の記憶手段と、前記開発支援装置の動作環境に対応する処理を実行する動作確認プログラム用ライブラリを記憶する第２の記憶手段をさらに備え、前記実行プログラム用ライブラリは、前記画像処理装置のみに接続される外部機器との間でのデータの送信または受信を行なう処理を含む処理を含み、前記動作確認プログラム用ライブラリは、前記外部機器との間でのデータの送信または受信を行なう処理に対応した処理として、当該送信または受信を行なう処理に代えて、前記外部機器との間でのデータの送信または受信を行なうことなく当該送信または受信が完了したとみなす処理を含む処理を含むことが好ましい。
【００１９】
また、本発明の開発支援装置では、前記実行プログラムおよび前記動作確認プログラムは、それぞれの動作環境において互いに対応する処理を実行するライブラリ化された処理の実行の命令を含むことができ、前記画像処理装置の動作環境に対応する処理を実行する実行プログラム用ライブラリを記憶する第１の記憶手段と、前記開発支援装置の動作環境に対応する処理を実行する動作確認プログラム用ライブラリを記憶する第２の記憶手段をさらに備え、前記実行プログラム用ライブラリは、前記画像処理装置のみに接続される外部機器からデータを受信する処理を含む処理を含み、前記動作環境プログラム用ライブラリは、前記外部機器からデータを受信する処理に対応して、当該受信する処理に代えて、
前記外部機器からのデータの受信を行なうことなく、前記画像処理装置において外部機器からデータを正常に受信できなかった場合の警告処理に対応する処理を含む処理を含むことが好ましい。
【００２０】
また、本発明の開発支援装置では、前記コンパイル手段は、前記ソースコードをコンパイルするたびに、前記実行プログラムと前記動作確認プログラムの双方を生成することが好ましい。
【００２１】
本発明に従った開発支援方法は、画像の入力を受け付け、入力された画像に対して画像処理に関するプログラムを実行する画像処理装置で実行されるプログラムの作成および前記画像処理装置へのプログラムの転送が可能な開発支援装置におけるプログラムの開発支援方法であって、前記開発支援装置と前記画像処理装置は、互いに異なる環境でプログラムを実行し、ソースコードを入力するためのステップと、前記入力を受けて、ソースコードの追加または削除を行なうステップと、前記入力されかつ前記追加または削除されたソースコードを、前記画像処理装置の動作環境に対応した実行プログラムと、前記開発支援装置の動作環境に対応した動作確認プログラムと、にコンパイルするステップと、前記動作確認プログラムを実行するステップと、前記実行プログラムを前記画像処理装置へ転送するステップとを備えることを特徴とする。
【００２２】
本発明に従った開発支援プログラムは、画像の入力を受け付け、入力された画像に対して画像処理に関するプログラムを実行する画像処理装置で実行されるプログラムの作成および前記画像処理装置へのプログラムの転送が可能な開発支援装置において実行されるプログラムの開発支援プログラムであって、前記開発支援装置と前記画像処理装置は、互いに異なる環境でプログラムを実行し、ソースコードを入力するためのステップと、前記入力を受けて、ソースコードの追加または削除を行なうステップと、前記入力されかつ前記追加または削除されたソースコードを、前記画像処理装置の動作環境に対応した実行プログラムと、前記開発支援装置の動作環境に対応した動作確認プログラムと、にコンパイルするステップと、前記動作確認プログラムを実行するステップと、前記実行プログラムを前記画像処理装置へ転送するステップとを前記開発支援装置に実行させることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、或るソースコードがコンパイルされて、画像処理装置においてプログラムが実行される環境に適した実行プログラムと開発支援装置においてプログラムが実行される環境に適した動作確認プログラムの双方が生成される。そして、開発支援装置では上記動作確認プログラムが実行され、画像処理装置では開発支援装置から転送された実行プログラムが実行される。
【００２４】
なお、画像処理装置が備えるプログラムの動作環境は、開発支援装置が備えるプログラムの動作環境とは異なるものであることが意図される。ここで、動作環境が異なるということには、当該装置を構成するハードウェアが異なる場合や、当該装置で実行されるオペレーションシステムが異なる場合を含む。また、ハードウェアが異なる場合には、構成要素である個々のデバイスの有無や種類が異なる場合や、各装置が接続される外部機器の有無や種類が異なる場合が含まれる。
【００２５】
これにより、画像処理装置において実行されるプログラムの開発に際し、開発支援装置において、動作確認プログラムが実行されることにより開発後のプログラムのデバッグが実行された後、プログラムの開発者は、デバッグ後のプログラムについて画像処理装置のために改めてプログラミングを行なう必要がなくなる。また、開発支援装置において、画像処理装置用にコンパイルされたプログラムと同じソースコードのプログラムのデバッグ
処理が可能であるため、開発支援装置と画像処理装置との間にＩＣＥ（登録商標）等のデバッガを接続させるような必要がなくなる。
【００２６】
したがって、本発明によれば、安価にかつ煩雑な作業を必要とすることなく画像処理装置に実行させるプログラムの開発が可能となる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明のプログラムの開発支援システムの一実施の形態について、図面を参照しつつ説明する。なお、同一の構成要素には各図において同一の符号を付し、詳細な説明は繰返さない。
【００２８】
図１は、本実施の形態の開発支援システムの構成を模式的に示す図である。開発支援システムでは、パーソナルコンピュータ（ＰＣ）２において、画像処理装置１で実行されるプログラムの開発が行なわれ、そして、開発後のプログラムが、ＰＣ２から画像処理装置１にインストールされる。
【００２９】
図２は、ＰＣ２のハードウェア構成を模式的に示すである。ＰＣ２は、ＣＰＵ（Central Processing Unit）２１、ハードディスク２２、ＲＡＭ（Random Access Memory）２３、グラフィックコントローラ２４、操作Ｉ／Ｆ（インターフェイス）２５を含む。ハードディスク２２は、ＣＰＵ２１で実行されるプログラムを含む種々の情報が記憶されている。ＲＡＭ２３は、ＣＰＵ２１がプログラムを実行する際のメインメモリとして利用される。グラフィックコントローラ２４は、ＣＰＵ２１による制御に基づいて、ＬＣＤ（Liquid
Crystal Display）などによって構成されるビデオモニタに画像を表示させる。操作Ｉ／Ｆ２５は、ユーザが外部から情報を入力するのに用いるキーボードやマウス（ポインティングデバイス）に接続されている。外部Ｉ／Ｆ２６は、画像処理装置１等の外部機器との接続のインターフェイスとなる。
【００３０】
図３は、画像処理装置１のハードウェア構成を模式的に示す図である。画像処理装置１は、ＣＰＵ１１、フラッシュメモリ１２、ＲＡＭ１３、グラフィックコントローラ１４、操作Ｉ／Ｆ１５、外部Ｉ／Ｆ１６、およびカメラＩ／Ｆ１７を含む。フラッシュメモリ１２には、ＣＰＵ１１が実行するプログラムなどの種々の情報が記憶されている。ＲＡＭ１３は、ＣＰＵ１１がプログラムを実行する際のメインメモリとして利用される。
【００３１】
画像処理装置１では、外部のカメラが撮影した映像（または画像）が、カメラＩ／Ｆ１７を介して入力される。ＣＰＵ１１は、カメラから入力された画像や種々の情報を、グラフィックコントローラ１４を介して、ＬＣＤ等によって構成されるビデオモニタに表示させる。
【００３２】
ＣＰＵ１１は、上記したカメラに当該カメラが撮影した画像を入力させるタイミング等を決定するタイミングセンサに接続されている。ＣＰＵ１１は、カメラＩ／Ｆ１７を介して入力された画像を処理することによって、タイミングセンサに対して、上記カメラの撮影した画像の入力のタイミングを指示したり、ラインを流れるワークについてのラインからの排出を指示したり、当該ラインの流れを制御するための信号を送信する。
【００３３】
画像処理装置１では、外部Ｉ／Ｆ１６を介して外部の機器との間で情報の送受信が行なわれ、また、操作Ｉ／Ｆ１５を介して、外部の操作機器（ポインティングデバイスやキーボード等）に対する操作に基づく情報が入力される。
【００３４】
図４は、ＰＣ２のハードディスク２２に記憶される内容を模式的に示す図である。
図４を参照して、ハードディスク２２には、ＯＳ（Operating System）などの基本とな
る処理プログラム（基本処理プログラム）１２１、実行ファイル作成用プログラム１２２、コアライブラリ１２３、およびアプリケーションファイル１２４が記憶されている。ＰＣ２では、プログラミングされたソースファイルがコンパイル（後述するビルドに含まれる処理）されて実行ファイルが作成される。実行ファイル作成用プログラム１２２は、このようなコンパイルを含むビルドを実行するためのプログラムである。
【００３５】
プログラミングされたソースファイルは、ソースファイル１２４０として示されるように、第１処理用ソースファイル１２４０Ａ、第２処理用ソースファイル１２４０Ｂ、第３処理用ソースファイル１２４０Ｃ、…のように、処理ごとに記述されている。各処理のソースファイルは、たとえばＣ＋＋言語などのプログラミング言語によって記述される。また、ここでいう各処理とは、たとえば、上記したカメラから入力された画像の中で、画像処理の対象とする領域の形状（たとえば、矩形、楕円、円形、等）を更新する処理（図形更新時処理）、上記したカメラから（画像処理装置２に）入力された画像に基づいて実行された計測結果をビデオモニタにどのように（たとえば画面のデザイン等）表示するかを決定する処理（計測結果表示処理）などが挙げられる。
【００３６】
本実施の形態の開発支援システムでは、ＰＣ２と画像処理装置１とでは、プログラムが実行されるプラットフォームが異なる。具体的には、画像処理装置１は、工業製品の生産ラインの近傍に、ワークの品質等の検査のために生産ラインの近傍に配置されることが多いため、ＲＡＭ１３やフラッシュメモリ１２として搭載されるメモリ容量がＰＣ２に対して抑えられ、そして、このような事情およびシステムの安定性が重視されることから、いわゆるリアルタイムＯＳが組込まれている。また、ＰＣ２には、上記した画像処理装置１に対する制約がないことから、画像処理装置１と比較して、メインメモリ（ＲＡＭ２３）の容量は画像処理装置１のメインメモリ（ＲＡＭ１３）よりも容量を多くすることができ、また、フラッシュメモリ１２の代わりに、衝撃等に対する安定性は低いが大きな容量を得ることができるハードディスク２２が採用されている。
【００３７】
上記したようなＰＣ２と画像処理装置１との間のプラットフォームの差異から、ＰＣ２と画像処理装置１とでは、アプリケーションの実行ファイルの対応するコードが異なる。本実施の形態の実行ファイル作成用プログラム１２２は、１つのソースファイルから、画像処理装置１におけるプラットフォーム上で実行可能な実行ファイル（ターゲット用実行ファイル１２４３）とＰＣ２におけるプラットフォーム上で実行可能な実行ファイル（開発環境用実行ファイル１２４４）を作成することができる。なお、ターゲット用実行ファイル１２４３の作成には、ターゲット用プロジェクトフォルダ１２４３に記憶されたプロジェクトが利用され、また、開発環境用実行ファイル１２４４が作成には、開発環境用プロジェクトフォルダ１２４３に記憶されたプロジェクトが利用される。
【００３８】
また、本明細書では、「開発環境用」とはＰＣ２に対応していることを意味し、「ターゲット用」とは画像処理装置１に対応していることを意味する。つまり、ターゲット用実行ファイル１２４３は、上記したように画像処理装置１で実行される実行ファイルであることを意味し、本発明における「実行プログラム」を構成する。また、開発環境用実行ファイル１２４４は、上記したようにＰＣ２で実行される実行ファイルであることを意味し、本発明における「動作確認プログラム」を構成する。
【００３９】
コアライブラリ１２３には、ターゲット用実行ファイル１２４３が実行される際に必要とされるｄｌｌ（Dynamic Link Library）ファイルを含むターゲット用ライブラリ１２３Ａと、開発環境用実行ファイル１２４４が実行される際に必要とされるｄｌｌファイルを含む開発環境用ライブラリ１２３Ｂとが含まれる。
【００４０】
次に、ＰＣ２で、画像処理装置１で実行されるプログラムを開発するための処理の内容
について、当該処理のフローチャートである図５を参照して説明する。
【００４１】
図５を参照して、まずステップＳ１０では、ＰＣ２に対して、実行ファイル作成用プログラム１２２、コアライブラリ１２３などのインストールが行なわれ、ステップＳ２０へ処理が進められる。
【００４２】
ステップＳ２０では、ＣＰＵ２１は、操作Ｉ／Ｆ２５を介して入力される情報等に基づいて、ソースファイルを作成して、ステップＳ３０へ処理を進める。
【００４３】
ステップＳ３０では、ＣＰＵ２１は、ステップＳ２０で作成または後述するステップＳ７０で修正されたソースファイルをビルドして、実行ファイルを作成して、ステップＳ４０へ処理を進める。なお、ステップＳ３０では、図４を参照して説明したように、１つ（１種類の意味であって、第１処理用ソースファイル１２４０Ａ、第２処理用ソースファイル１２４０Ｂ、第３処理用ソースファイル１２４０Ｃ、…等のように複数の実行モジュールそれぞれに対応する複数のソースファイルが、まとめられて１つのアプリケーションの実行ファイルに対応するものとされたものを意図する）から、画像処理装置１で実行可能なターゲット用実行ファイル１２４３と、ＰＣ２で実行可能な開発環境用実行ファイル１２４４を作成する。
【００４４】
ステップＳ４０では、ＣＰＵ２１は、デバッグのために、ステップＳ３０でのビルドにより作成された実行ファイルを実行する。なお、ステップＳ４０では、ＣＰＵ２１は、作成されたターゲット用実行ファイル領域１２４３と開発環境用実行ファイル１２４４との中から、ＰＣ２で実行可能な開発環境用実行ファイル１２４４を選択して実行する。ここで、実行ファイルの選択は、当該ファイルのファイル名が指定されることによって行なわれる。つまり、実行ファイル作成用プログラム１２２は、ターゲット用実行ファイル領域１２４３と開発環境用実行ファイル１２４４とを、それぞれ、ＣＰＵ２１によって識別されることが可能なファイル名で作成する。そして、実行ファイル作成用プログラム１２２（のデバッグ用プログラム）は、デバッグの際に、開発環境用実行ファイル１２４４を選択して実行するように構成されている。
【００４５】
ステップＳ５０では、ＣＰＵ２１は、ステップＳ４０における実行ファイルの実行において不具合が発生したか否かを判断する。なお、ＣＰＵ２１は、不具合が発生したか否かを、デバッグ用プログラムが実行されることによって実現される機能によって判断してもよいし、操作Ｉ／Ｆ２５を介してユーザから入力される情報に基づいて判断してもよい。
【００４６】
なお、デバッグ用プログラムは、ハードディスク２２にインストールされており、たとえば、上記したように実行ファイル作成用プログラム１２２の中に含まれている。本実施の形態では、（ターゲット用実行ファイル領域１２４３と同じソースファイルから作成された）開発環境用実行ファイル１２４４のデバッグが汎用コンピュータによって構成可能なＰＣ２上で実現することができる。そして、デバッグ処理の際には、プログラムの実行を特定の位置で中断する「ブレークポイント」機能や、一段階ずつ動作を確認しながら実行する「ステップ実行」機能、実行中のメモリやレジスタ、変数などの状態を見る「トレース」機能などの一般的にデバッグの際に活用される機能の活用が可能となる。
【００４７】
ＣＰＵ２１は、ステップＳ５０において不具合が発生したと判断するとステップＳ６０へ処理を進め、発生していないと判断すると、ステップＳ８０へ処理を進める。
【００４８】
ステップＳ６０では、ＣＰＵ２１は、デバッグログを出力して、ステップＳ７０へ処理を進める。なお、ここでの出力は、たとえば当該デバッグログがグラフィックコントローラ２４を介してビデオモニタに表示されることにより実現される。
【００４９】
ステップＳ７０では、ＣＰＵ２１は、操作Ｉ／Ｆ２５を介してユーザから入力される情報に基づいてソースファイルを修正して、ステップＳ３０へ処理を戻す。
【００５０】
つまり、本実施の形態では、ステップＳ７０でソースファイルが修正された後、当該修正後のソースファイルに基づいて、再度ターゲット用実行ファイル１２４３と開発環境用実行ファイル１２４４とが作成される。
【００５１】
また、本実施の形態におけるデバッグ処理（ステップＳ４０）において、ＣＰＵ２１は、擬似的に画像処理装置１のＲＡＭ１３のメモリ容量に基づいたメインメモリの容量管理を行なう。このようなメモリ容量管理について、図６を参照して詳細に説明する。
【００５２】
図６（Ａ）は、ＰＣ２のＲＡＭ２３と画像処理装置１のＲＡＭ１３のメモリ容量の違いを模式的に示す図である。この図では、画像処理装置１のＲＡＭ１３のメモリ容量がＣ１で表わされており、ＰＣ２のＲＡＭ２３のメモリ容量が、Ｃ１よりも大きいＣ２で表わされている。そして、ＣＰＵ２１は、ステップＳ４０で実行されるデバッグ処理において、Ｃ２の容量を有するＲＡＭ２３に対して、ＲＡＭ１３の容量であるＣ１を上限とするようなメモリの容量管理を行なう。
【００５３】
図６（Ｂ）は、ＣＰＵ２１がメモリ管理用に用いるテーブルを概念的に示す図である。デバッグ処理におけるメモリ容量管理に基づくと、ＣＰＵ２１は、図６（Ｂ）に示すテーブルに、ＲＡＭ２３の使用量を逐次的に記録する。具体的には、開発環境用実行ファイル１２４が実行されている期間中、どのような処理によって（処理名１０１）、ＲＡＭ２３のどのアドレスから（使用アドレス１０３）、どれだけの容量（使用量１０２）が使用されているかを、図６（Ｂ）に示されたようなテーブルに記録していく。なお、当該テーブルに記憶された情報に対応するメモリ領域が開放された場合には、ＣＰＵ２１は当該テーブルから対応する情報を削除する。これにより、図６（Ｂ）に示されたようなテーブルが参照されることにより、ＲＡＭ２３においてどの領域が使用されまたどれだけの容量が使用されているかが逐次的に把握される。
【００５４】
そして、ＣＰＵ２１は、デバッグ処理の期間中は、使用量１０２の合計が、ＲＡＭ２３の容量Ｃ２ではなく、ＲＡＭ１３の容量Ｃ１を超えた場合に、不具合が発生したとして、ステップＳ５０でエラーメッセージの表示等を行なう。
【００５５】
図５に戻って、ステップＳ８０では、ＣＰＵ２１は、インストール用のファイルを選択して、ステップＳ９０へ処理を進める。ここで、インストールとは、ステップＳ２０で作成し、ステップＳ７０で修正したプログラムのインストールであり、インストール用のファイルとは、画像処理装置１にインストールためのファイルである。具体的には、インストール用ファイルとは、ターゲット用実行ファイル１２４３とターゲット用ライブラリ１２３Ａを含む。
【００５６】
ステップＳ９０では、ＣＰＵ２１は、ステップＳ８０で選択したファイルを画像処理装置１へインストールして、処理を終了する。
【００５７】
以上説明した本実施の形態では、ＣＰＵ２１は、実行ファイル作成用プログラム１２２を実行することにより、１つのソースファイル（ソースファイル１２４０）から、ＰＣ２で実行可能な開発環境用実行ファイル１２４４と画像処理装置１で実行可能なターゲット用実行ファイル１２４３とを作成することができる。そして、ＣＰＵ２１は、これらの２つの実行ファイルの中から、開発環境用実行ファイル１２４４を選択して、デバッグ処理の対象とする。
【００５８】
このようなデバッグ処理により、ＰＣ２では、ソースファイルに修正を施すことができる。そして、ＣＰＵ２１は、ソースファイルに修正がなされると、ステップＳ３０において、ターゲット用実行ファイル１２４３と開発環境用実行ファイル１２４４とを改めて作成する。このとき、それまでハードディスク２２に記憶されていたターゲット用実行ファイル１２４３と開発環境用実行ファイル１２４４は、改めて作成されたものによって上書きされることが好ましい。
【００５９】
このように、ＰＣ２において、ステップＳ３０におけるビルド処理が実行されるたびにターゲット用実行ファイル１２４３と開発環境用実行ファイル１２４４の双方が作成されることにより、ハードディスク２２に記憶されるターゲット用実行ファイル１２４３と開発環境用実行ファイル１２４４とを、常に同じソースファイル１２４０に対応したものとすることができる。
【００６０】
なお、本実施の形態のＰＣ２では、デバッグ処理において利用されるのはターゲット用実行ファイル１２４３ではなく、開発環境用実行ファイル１２４４である。ターゲット用実行ファイル１２４３は、最終的に修正されたソースファイルが完成した後、画像処理装置１にインストールされる段階で初めて必要とされるものである。したがって、ターゲット用実行ファイル１２４３は、ステップＳ５０において不具合の発生がなくなったと判断された後で、初めて作成されてもよい。
【００６１】
また、本実施の形態において、ステップＳ８０におけるインストール用のファイルの選択は、たとえばターゲット用実行ファイル１２４３のファイル名が指定されることによって実現される。
【００６２】
本実施の形態の開発支援システムにおいて開発されるプログラムの開発ターゲットである画像処理装置１は、図３を参照して説明したように、カメラなどの種々の外部の装置に接続される。このことから、開発されるプログラムには、当該カメラから入力される画像に対する画像処理など、図２を参照して説明したＰＣ２（プログラムを開発する装置である、開発支援装置）には接続されていない機器または装置とのデータの送受信に関する処理が含まれる場合がある。
【００６３】
本実施の形態では、ソースファイルのビルドが実行される際に、当該送受信に関する処理についてはターゲット用実行ファイル１２４３と開発環境用実行ファイル１２４４とで内容が異なるように実行ファイルの作成が行なわれることが好ましい。
【００６４】
たとえば、ターゲット用実行ファイル１２４３に、画像処理装置１から当該画像処理装置１に接続されているタイミングセンサへのデータの出力（送信）を行なう処理が含まれている場合について、開発環境用実行ファイル１２４４が、当該処理に対応する処理をどのように変更されて作成されるかについて、図７を参照して説明する。
【００６５】
図７（Ａ）は、ターゲット用実行ファイル１２４３に含まれる、上記したようなデータ出力に対応した部分の処理（以下、便宜上「第Ｎ処理」と呼ぶ）のフローチャートであり、図７（Ｂ）は、開発環境用実行ファイル１２４４に含まれる上記第Ｎ処理のフローチャートである。
【００６６】
まず、図７（Ａ）を参照して、ターゲット用実行ファイル１２４３の第Ｎ処理が開始されると、画像処理装置１では、当該処理に含まれる命令が順に実行され（ステップＮＸ１０）、ステップＮＸ２０で、第Ｎ処理が終了する条件が成立したか否かが判断される。終了する条件の成立とは、たとえば、直前で実行した命令に第Ｎ処理を終了させて他の処理
に移行する旨の記述がなされている場合が挙げられる。そして、そのような条件が成立したと判断されると、第Ｎ処理は終了され、終了していないと判断されると、ステップＮＸ３０へ処理が進められる。
【００６７】
ステップＮＸ３０では、次に実行される命令がタイミングセンサ等の外部機器に対するデータの出力を行なうものであるか否かが判断され、そうではないと判断されるとステップＮＸ１０へ処理が戻され、そうであると判断されるとステップＮＸ４０へ処理が進められる。
【００６８】
ステップＮＸ４０では、データ出力に対応する関数がターゲット用ライブラリ（ターゲット用ライブラリ１２３Ａが画像処理装置１にインストールされたもの）から呼出され、ステップＮＸ５０へ処理が進められる。
【００６９】
ステップＮＸ５０では、ステップＮＸ４０で呼出された関数（ｄｌｌファイル）の記述に従ってデータが出力され、ステップＮＸ６０へ処理が進められる。
【００７０】
ステップＮＸ６０では、ＣＰＵ１１が実行する動作の状態を格納するレジスタに「データ出力」が完了した旨の情報が設定されて、ステップＮＸ１０へ処理が戻される。
【００７１】
なお、図７（Ａ）では、データ出力に対応する関数に基づいて実行される部分が、破線の矩形に囲まれて示されている。
【００７２】
次に、図７（Ｂ）を参照して、ＰＣ２で開発環境用実行ファイル１２４４の第Ｎ処理が開始されると、ＰＣ２では、当該処理に含まれる命令が順に実行され（ステップＮＹ１０）、ステップＮＹ２０において、第Ｎ処理が終了する条件が成立したか否かが判断される。そして、そのような条件が成立したと判断されると、第Ｎ処理は終了され、終了していないと判断されると、ステップＮＹ３０へ処理が進められる。
【００７３】
ステップＮＹ３０では、次に実行される処理がデータ出力の処理であるか否かが判断され、そうであると判断されるとステップＮＹ４０へ処理が進められる。
【００７４】
ステップＮＹ４０では、開発環境用ライブラリ１２３Ｂから、データ出力に対応した関数が呼出されて、ステップＮＹ５０へ処理が進められる。
【００７５】
ステップＮＹ５０では、ステップＮＹ４０で呼出された関数が実行されることにより、ＣＰＵ２１の動作の状態が格納されるレジスタに、「データ出力」が完了した旨の情報が設定されて、ステップＮＹ１０へ処理が戻される。
【００７６】
図７（Ｂ）では、ステップＮＹ４０で呼出された関数に基づいて実行される部分が、破線の矩形に囲まれて示されている。
【００７７】
以上、図７（Ａ）および図７（Ｂ）を参照して説明したように、ＰＣ２では、同じソースファイルから、ＰＣ２で実行されるための実行ファイルと画像処理装置１で実行されるための実行ファイルが作成されるが、それらのファイル（プログラム）が実行されることによって実現される処理の内容を一部異ならせることができる。具体的には、データ出力に関する処理について、ターゲット用実行ファイルが実行されることによって実現される処理では、外部の機器へのデータ出力と当該データ出力が完了した旨の情報のレジスタへの格納がなされるのに対し、開発環境用実行ファイルが実行されることにより実現される処理としては、データ出力が完了した情報のレジスタへの格納のみとすることができる。
【００７８】
なお、以上説明した例では、ターゲット用ライブラリ１２３Ａから呼出される関数の内容と開発環境用ライブラリ１２３Ｂから呼出される関数の内容が異なることにより、結果として実行される処理が異なるようになるが、このような実行される処理の差異は、ターゲット用実行ファイル１２４３と開発環境用実行ファイル１２４４の記述自体の内容の差異によって実現されても良い。
【００７９】
開発環境用実行ファイルによって実現される処理が、ターゲット用実行ファイルによって実現される処理に対して変更される他の例としては、ターゲット用実行ファイルに含まれる外部の機器からのデータの受信（取得）に関する処理が挙げられる。ここで、データの受信の処理の具体例として、画像処理装置１において実行されるカメラから画像データを取得する処理（以下、便宜上「第Ｍ処理」と呼ぶ）を挙げて、図８を参照しつつ説明する。図８（Ａ）は、ターゲット用実行ファイル１２４３の中の第Ｍ処理のフローチャートであり、図８（Ｂ）には、開発環境用実行ファイル１２４４の中の第Ｍ処理のフローチャートである。
【００８０】
まず図８（Ａ）を参照して、画像処理装置１において第Ｍ処理が開始されることにより、当該処理を構成する命令が順に実行され（ステップＭＸ１０）、ステップＭＸ２０で、第Ｍ処理が終了する条件が成立したか否かが判断される。終了する条件の成立とは、たとえば、直前で実行した命令に第Ｍ処理を終了させて他の処理に移行する旨の記述がなされている場合が挙げられる。そして、そのような条件が成立したと判断されると、第Ｍ処理は終了され、終了していないと判断されると、ステップＭＸ３０へ処理が進められる。
【００８１】
ステップＭＸ３０では、次に実行される命令が、カメラからの画像データの入力を要求する処理であるか否かが判断され、そうではないと判断されるとステップＭＸ１０へ処理が戻され、そうであると判断されると、ステップＭＸ４０へ処理が進められる。
【００８２】
ステップＭＸ４０では、カメラに対して画像データの入力を要求するための処理の関数がターゲット用ライブラリ（ターゲット用ライブラリ１２３Ａが画像処理装置１にインストールされたもの）から呼出され、ステップＭＸ５０へ処理が進められる。
【００８３】
ステップＭＸ５０では、ステップＭＸ４０で呼出された関数が実行されることにより、カメラに対して画像データを要求する情報が送信され、ステップＭＸ１０へ処理が進められる。
【００８４】
ステップＭＸ６０では、カメラからの画像データの取得が成功したか否かが判断され、成功したと判断されるとステップＭＸ７０へ処理が進められ、成功していない（正常に受信できなかった）と判断されるとステップＭＸ８０へ処理が進められる。
【００８５】
ステップＭＸ７０では、画像データの取得が完了した旨の情報が、ＣＰＵ１１の動作の状態を格納するレジスタに設定されて、ステップＭＸ１０へ処理が戻される。
【００８６】
ステップＭＸ８０では、カメラからの画像データの取得が失敗した旨の情報（カメラからの画像データを正常に受信できなかった旨の情報）が上記レジスタに設定されて、ステップＭＸ１０へ処理が戻される。
【００８７】
次に、図８（Ｂ）を参照して、ＰＣ２で開発環境用実行ファイル１２４４の第Ｍ処理が開始されると、ＰＣ２では、当該処理に含まれる命令が順に実行され（ステップＭＹ１０）、ステップＭＹ２０において、第Ｍ処理が終了する条件が成立したか否かが判断される。そして、そのような条件が成立したと判断されると、第Ｍ理は終了され、終了していないと判断されると、ステップＭＹ３０へ処理が進められる。
【００８８】
ステップＭＹ３０では、次に実行される命令が、カメラからの画像データの入力を要求する処理であるか否かが判断され、そうではないと判断されるとステップＭＹ１０へ処理が戻され、そうであると判断されると、ステップＭＹ４０へ処理が進められる。
【００８９】
ステップＭＹ４０では、開発環境用ライブラリ１２３Ｂから、カメラからの画像データの入力の要求に対応した関数が呼出されて、ステップＭＹ５０へ処理が進められる。
【００９０】
ステップＭＹ５０では、ステップＭＹ４０で呼出された関数が実行されることにより、カメラからの画像データの取得が失敗した旨の情報（カメラからの画像データを正常に受信できなかった旨の情報）がＣＰＵ２１の動作の状態を格納するレジスタに設定されて、上記レジスタに設定されて、ステップＭＹ１０へ処理が戻される。
【００９１】
以上、図８（Ａ）および図８（Ｂ）を参照して説明したように、ＰＣ２では、同じソースファイルから、ＰＣ２で実行されるための実行ファイルと画像処理装置１で実行されるための実行ファイルが作成されるが、それらのファイル（プログラム）が実行されることによって実現される処理の内容を一部異ならせることができる。具体的には、データ出力に関する処理について、ターゲット用実行ファイルが実行されることによって実現される処理では、外部の機器からのデータ受信と当該データ受信が成功した旨または失敗した旨の情報のレジスタへの格納がなされるのに対し、開発環境用実行ファイルが実行されることにより実現される処理としては、データ受信が失敗した旨の情報のレジスタへの格納のみとすることができる。
【００９２】
なお、以上説明した例では、ターゲット用ライブラリ１２３Ａから呼出される関数の内容と開発環境用ライブラリ１２３Ｂから呼出される関数の内容が異なることにより、結果として実行される処理が異なるようになるが、このような実行される処理の差異は、ターゲット用実行ファイル１２４３と開発環境用実行ファイル１２４４の記述自体の内容の差異によって実現されても良い。
【００９３】
以上説明した本実施の形態では、ソースファイルがビルドされることにより、実行ファイル（ターゲット用実行ファイルおよび開発環境用実行ファイル）が作成される。ここで、ビルド処理には、コンパイルとリンクの処理が含まれる。具体的には、ソースファイルがコンパイルされることにより、オブジェクトファイルが生成される。本実施の形態では、ソースファイル１２４０には複数のソースファイル（第１処理用ソースファイル１２４０Ａ、第２処理用ソースファイル１２４０Ｂ、第３処理用ソースファイル１２４０Ｃ、…）が含まれるため、ソースファイルがコンパイルされることにより複数のオブジェクトファイルが生成される。そして、これらの複数のオブジェクトファイルがリンク処理によって結合されることにより、１つの実行ファイル（ターゲット用実行ファイルまたは開発環境用実行ファイル）が作成される。なお、コンパイル処理に利用されるコンパイラに対応するプログラムおよびリンク処理に利用されるプログラム（リンカー）は、いずれも、たとえば実行ファイル作成用プログラム１２２に含まれているものとすることができる。
【００９４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００９５】
【図１】本発明の一実施の形態である開発支援システムの構成を模式的に示す図である。
【図２】図１のＰＣのハードウェア構成を模式的に示す図である。
【図３】図１の画像処理装置のハードウェア構成を模式的に示す図である。
【図４】図２のＰＣのハードディスク２２に記憶されている情報の内容を模式的に示す図である。
【図５】図２のＰＣにおいてプログラムの開発の際に実行される処理のフローチャートである。
【図６】図２のＰＣにおいて、プログラムが開発される際のデバッグ処理におけるメインメモリの容量管理の内容を説明するための図である。
【図７】図４のターゲット用実行ファイルによって実現される処理と開発環境用実行ファイルによって実現される処理の差異の一例を説明するためのフローチャートである。
【図８】図４のターゲット用実行ファイルによって実現される処理と開発環境用実行ファイルによって実現される処理の差異の他の例を説明するためのフローチャートである。
【符号の説明】
【００９６】
１  画像処理装置、２  ＰＣ、１１，２１  ＣＰＵ、１２  フラッシュメモリ、１３，２３  ＲＡＭ、１４，２４  グラフィックコントローラ、１５，２５  操作Ｉ／Ｆ、１６，２６  外部Ｉ／Ｆ、１７  カメラＩ／Ｆ、２２  ハードディスク、１２１  基本処理プログラム、１２２  実行ファイル作成用プログラム、１２３  コアライブラリ、１２４  アプリケーションファイル、１２４０  ソースファイル、１２４１  ターゲット用プロジェクトフォルダ、１２４２  開発環境用プロジェクトフォルダ、１２４３  ターゲット用実行ファイル、１２４４  開発環境用実行ファイル。
【図１】
0004962226.tif 000002
【図２】
0004962226.tif 000003
【図３】
0004962226.tif 000004
【図４】
0004962226.tif 000005
【図５】
0004962226.tif 000006
【図６】
0004962226.tif 000007
【図７】
0004962226.tif 000008
【図８】
0004962226.tif 000009