(57)【特許請求の範囲】
【請求項１】
プログラム要素の接続によるブロック図で処理手順を表記するための入力を受け付け、
入力された前記処理手順の表記に基づき計算機言語によるソースコードを自動生成するコ
ンピュータにより構成された組込み機器用ソフトウェア作成支援装置において、
前記計算機言語で記述されたソースコードをＣＰＵで直接実行可能な機械語に変換する
処理を実行するコンパイル手段と、
このコンパイル手段により作成した前記機械語によるオブジェクトファイルから、この
オブジェクトファイルの格納に必要となるオブジェクト格納用の使用メモリ容量および前
記オブジェクトファイルのソフトウェア実行時の作業領域として必要となる作業領域用の
使用メモリ容量を求める処理を実行するメモリ容量抽出手段と、
前記オブジェクトファイルから前記機械語の命令を抽出し、抽出した各命令の実行クロ
ック数を合計して総実行クロック数を算出する処理を実行する総実行クロック数算出手段
と、
この総実行クロック数算出手段により算出した前記総実行クロック数と前記オブジェク
トファイルのソフトウェアを実行する組込み機器用のターゲットＣＰＵの動作クロックと
を用いて、前記ソフトウェアの実行に必要となる要処理時間を求める処理を実行する処理
時間算出手段と、
前記メモリ容量抽出手段により求めた前記オブジェクト格納用の使用メモリ容量および
前記作業領域用の使用メモリ容量、並びに前記処理時間算出手段により算出した前記要処
理時間を、画面表示および／または印刷する処理を実行するコンパイル結果出力手段と
を備え、
前記コンパイル手段は、
前記ソースコードを前記機械語に変換する際に、前記オブジェクト格納用の使用メモリ
容量および／または前記作業領域用の使用メモリ容量を最小化するコンパイル設定、並び
に、前記要処理時間を最小化するコンパイル設定での最適化設計処理を実行可能な構成と
され、
前記メモリ容量抽出手段は、
前記コンパイル手段により前記各コンパイル設定でそれぞれ作成した各オブジェクトフ
ァイルから、前記ブロック図を構成する前記プログラム要素毎に、前記オブジェクト格納
用の使用メモリ容量および前記作業領域用の使用メモリ容量を求める処理を実行する構成
とされ、
前記総実行クロック数算出手段は、
前記コンパイル手段により前記各コンパイル設定でそれぞれ作成した各オブジェクトフ
ァイルから、前記ブロック図を構成する前記プログラム要素毎に、前記総実行クロック数
を算出する処理を実行する構成とされ、
前記処理時間算出手段は、
前記総実行クロック数算出手段により前記各オブジェクトファイルから算出した前記総
実行クロック数と前記ターゲットＣＰＵの動作クロックとを用いて、前記ブロック図を構
成する前記プログラム要素毎に、前記要処理時間を求める処理を実行する構成とされ、
前記コンパイル手段により前記各コンパイル設定でそれぞれ作成した各オブジェクトフ
ァイルについて、前記ブロック図を構成する前記プログラム要素毎に、前記オブジェクト
格納用の使用メモリ容量および前記作業領域用の使用メモリ容量、並びに前記要処理時間
を、画面表示および／または印刷する処理を実行するコンパイル結果一覧表出力手段を備
え、
前記メモリ容量抽出手段により前記ブロック図を構成する前記プログラム要素毎に求め
た前記各コンパイル設定での前記オブジェクト格納用の使用メモリ容量および前記作業領
域用の使用メモリ容量、並びに、前記処理時間算出手段により前記ブロック図を構成する
前記プログラム要素毎に求めた前記各コンパイル設定での前記要処理時間を用いて、前記
ブロック図を構成する前記プログラム要素毎に、前記各コンパイル設定でのコンパイル結
果を選択して得られる複数の組合せについて、前記ブロック図の全体としての前記オブジ
ェクト格納用の使用メモリ容量および前記作業領域用の使用メモリ容量、並びに前記要処
理時間を求め、求めた前記ブロック図の全体としての前記オブジェクト格納用の使用メモ
リ容量および前記作業領域用の使用メモリ容量、並びに前記要処理時間が、前記ターゲッ
トＣＰＵに接続されたオブジェクト格納用メモリのメモリ容量および作業領域用メモリのメモリ容量、並びに前記ターゲットＣＰＵで前記ソフトウェアを実行する場合の処理時間のそれぞれの制約値の範囲内であるか否かを判断する処理を実行する組合せ判断手段を備え、
さらに、前記コンパイル手段は、
前記組合せ判断手段による判断で制約値の範囲内に収まる組合せがあった場合には、当
該組合せで前記ブロック図を構成する前記各プログラム要素の前記ソースコードを前記機
械語に変換する処理を実行する構成とされている
ことを特徴とする組込み機器用ソフトウェア作成支援装置
【請求項２】
前記組合せ判断手段は、
制約値の範囲内に収まる複数の組合せがあった場合には、これらの各組合せについて、
前記ターゲットＣＰＵに接続された前記オブジェクト格納用メモリのメモリ容量の制約値
に対する前記ブロック図の全体としての前記オブジェクト格納用の使用メモリ容量の比
率、前記ターゲットＣＰＵに接続された前記作業領域用メモリのメモリ容量の制約値に対
する前記ブロック図の全体としての前記作業領域用の使用メモリ容量の比率、および前記
ターゲットＣＰＵで前記ソフトウェアを実行する場合の処理時間の制約値に対する前記ブ
ロック図の全体としての前記要処理時間の比率を用いて、これらの３つの比率の和若しく
は積またはこれらの３つの比率を用いたその他の指標値を算出し、算出した指標値の大小
により、最適な組合せを決定する処理を実行する構成とされ、
前記コンパイル手段は、
前記組合せ判断手段により決定された前記最適な組合せで前記ブロック図を構成する前
記各プログラム要素の前記ソースコードを前記機械語に変換する処理を実行する構成とさ
れている
ことを特徴とする請求項１に記載の組込み機器用ソフトウェア作成支援装置。
【請求項３】
請求項１または２に記載の組込み機器用ソフトウェア作成支援装置として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム要素の接続によるブロック図で処理手順を表記するための入力を受け付け、入力された処理手順の表記に基づき計算機言語によるソースコードを自動生成するコンピュータにより構成された組込み機器用ソフトウェア作成支援装置およびその方法、並びにプログラムに係り、例えば、モータの駆動制御用のインバータ等の産業用機器に組み込んで使用するソフトウェアを作成する場合に利用できる。
【背景技術】
【０００２】
従来より、計算機に特定の処理を行わせるためのソフトウェアを作成する場合には、先ず、ソフトウェアの仕様をプログラム要素を用いてブロック図で記述し、次に、そのブロック図に基づき、プログラマが計算機言語を用いたソースコードを作成するといった手順がとられている。
【０００３】
そこで、プログラマによる作業時間の短縮やミスの防止のために、ソフトウェアの仕様として記述されたブロック図から、直接に、すなわちプログラマによるコーディング作業なしに、計算機言語のプログラムを作成するプログラム自動生成装置が提案されている（特許文献１参照）。このプログラム自動生成装置では、プログラム要素として、開始要素、通常要素、終端要素を含み、これらのプログラム要素を結合することでプログラムを自動生成する。
【０００４】
また、産業用機器にソフトウェアを組み込んで使用する場合、産業用機器の使用者のニーズに合わせてソフトウェアの一部を変更して使用することがある。この際、産業用機器に用いられているＣＰＵに接続されたメモリ上に予め実装されているファンクション・ブロックを組み合わせることにより、プログラムをカスタマイズする技術が知られている（特許文献２参照）。この技術は、組込み機器のＣＰＵに接続されたメモリ上（具体的は、インバータの内部メモリ上）に、各ファンクション・ブロックに対応する実行コードを予め実装しておき、プログラミング装置でファンクション・ブロックの接続情報を作成して接続情報テーブルに記憶させ、その接続情報を通信でインバータに送り、その接続情報に従ってインバータで各ファンクション・ブロックに対応する実行コードを実行するというものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２８５４８０号公報
【特許文献２】特開２００８−１７６６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、前述した特許文献１に記載されたプログラム自動生成装置では、プログラム要素を結合してプログラムを自動生成することができるが、作成したプログラムを実行するＣＰＵが産業用機器のような組込み機器のＣＰＵである場合には、ＣＰＵに接続されたＲＯＭやＲＡＭのメモリ容量に制約があるとともに、処理時間にも制約があるため、自動生成したプログラムが直ちに実行可能であるか否かの判断を行うことはできない。
【０００７】
また、前述した特許文献２に記載された技術では、組込み機器のＣＰＵに接続されたメモリ上に実行コードが予め実装されているファンクション・ブロックを組み合わせ、それらの接続情報を接続情報テーブルに記憶させることにより、ソフトウェアの一部変更を容易に行うことができるが、メモリ容量については、接続情報の個数、すなわち接続情報テーブルの行数の上限を設けるというプログラムの容量制限を行い、この上限を１００％として現在の接続情報のメモリ使用率を画面表示しているにすぎない。従って、ＣＰＵに接続されたＲＯＭやＲＡＭ等のメモリ容量全体の管理を行うのではなく、接続情報テーブルに設定することができるメモリ容量を管理しているにすぎないので、ＣＰＵで使用可能なメモリ容量を最大限に活かしたプログラム設計を行うことはできない。
【０００８】
さらに、前述した特許文献２に記載された技術では、処理時間を求める際に、プログラミング装置がインバータ本体と接続されている場合（オンラインの場合）には、各ファンクション・ブロックに対応する実行コードがインバータの内部メモリに実装されていることから、インバータの実績値を用いて処理時間占有率の表示を行うため、処理時間の制約の範囲内に収まっていないプログラムにより実際に機器を動作させてしまう可能性があり、産業用機器の動作の安全を確保できない可能性がある。一方、処理時間を求める際に、プログラミング装置がインバータ本体と未接続の場合（オフラインの場合）には、選択されたファンクション・ブロックの処理時間予想の総和を用いて処理時間占有率の表示が行われるが、プログラミング装置の接続情報テーブルには実行コード自体が記憶されているわけではないので、実行コードに基づく正確な処理時間の表示は行うことができない。
【０００９】
そして、前述した特許文献２に記載された技術では、メモリ使用率および処理時間占有率の表示が行われるが、前述したように、メモリ容量については、接続情報テーブルに設定することができるメモリ容量を管理しているにすぎないので、このようなメモリ容量の表示と処理時間の表示とを組み合わせたとしても、最適なプログラム設計を行うことはできない。すなわち、プログラム設計において、メモリ容量を犠牲にして処理時間の短縮を図るか、処理時間を犠牲にしてメモリ容量の縮小を図るかの判断は、メモリ容量および処理時間の双方の限界ラインを考慮して行うことで初めて効果的なものとなるが、前述したようにメモリ容量について不完全な管理を行っているので、双方の表示を組み合わせる意義が薄れている。
【００１０】
本発明の目的は、プログラム要素を結合して組込み機器用ソフトウェアを作成する際に、オブジェクト格納用および作業領域用の使用メモリ容量や要処理時間が制約値の範囲内か否かを容易に判断することができる組込み機器用ソフトウェア作成支援装置およびその方法、並びにプログラムを提供するところにある。
【課題を解決するための手段】
【００１１】
本発明は、プログラム要素の接続によるブロック図で処理手順を表記するための入力を受け付け、入力された処理手順の表記に基づき計算機言語によるソースコードを自動生成するコンピュータにより構成された組込み機器用ソフトウェア作成支援装置において、計算機言語で記述されたソースコードをＣＰＵで直接実行可能な機械語に変換する処理を実行するコンパイル手段と、このコンパイル手段により作成した機械語によるオブジェクトファイルから、このオブジェクトファイルの格納に必要となるオブジェクト格納用の使用メモリ容量およびオブジェクトファイルのソフトウェア実行時の作業領域として必要となる作業領域用の使用メモリ容量を求める処理を実行するメモリ容量抽出手段と、オブジェクトファイルから機械語の命令を抽出し、抽出した各命令の実行クロック数を合計して総実行クロック数を算出する処理を実行する総実行クロック数算出手段と、この総実行クロック数算出手段により算出した総実行クロック数とオブジェクトファイルのソフトウェアを実行する組込み機器用のターゲットＣＰＵの動作クロックとを用いて、ソフトウェアの実行に必要となる要処理時間を求める処理を実行する処理時間算出手段と、メモリ容量抽出手段により求めたオブジェクト格納用の使用メモリ容量および作業領域用の使用メモリ容量、並びに処理時間算出手段により算出した要処理時間を、画面表示および／または印刷する処理を実行するコンパイル結果出力手段とを備えたことを特徴とするものである。
【００１２】
このような本発明の組込み機器用ソフトウェア作成支援装置においては、オブジェクトファイルからオブジェクト格納用および作業領域用の使用メモリ容量を求めるとともに、オブジェクトファイルから抽出した機械語の各命令の実行クロック数の合計とターゲットＣＰＵの動作クロックとを用いて要処理時間を算出し、これらのオブジェクト格納用および作業領域用の使用メモリ容量、並びに要処理時間を画面表示および／または印刷するので、プログラマは、これらの情報を参照し、それぞれが制約値の範囲内か否かを容易に判断することが可能となり、しかもコンパイルした時点で判断できるようになるので、ソフトウェア開発の効率化が図られる。
【００１３】
また、前述した特許文献２に記載された技術のような不完全なメモリ容量の管理ではなく、ＣＰＵでアクセスして使用するメモリ容量の全体を把握することが可能となるので、ＣＰＵで使用可能なメモリ容量を最大限に活かしたソフトウェア設計を行うことが可能となり、要処理時間の把握と合わせることで、最適なソフトウェアの設計を行うことが可能となり、これらにより前記目的が達成される。
【００１４】
また、前述した組込み機器用ソフトウェア作成支援装置において、メモリ容量抽出手段により求めたオブジェクト格納用の使用メモリ容量および作業領域用の使用メモリ容量、並びに処理時間算出手段により算出した要処理時間が、ターゲットＣＰＵに接続されたオブジェクト格納用メモリのメモリ容量および作業領域用メモリのメモリ容量、並びにターゲットＣＰＵでソフトウェアを実行する場合の処理時間のそれぞれの制約値の範囲内であるか否かを判断する処理を実行するＣＰＵ制約充足判断手段を備え、コンパイル結果出力手段は、ＣＰＵ制約充足判断手段による判断結果も、画面表示および／または印刷する処理を実行する構成とされていることが望ましい。
【００１５】
このようにＣＰＵ制約充足判断手段を備えた構成とした場合には、オブジェクト格納用の使用メモリ容量および作業領域用の使用メモリ容量、並びに要処理時間が、それぞれの制約値を満たすか否かの判断結果が出力されるので、プログラマは、その判断結果を容易に確認することが可能となり、プログラマの作業負担が軽減される。
【００１６】
さらに、前述した組込み機器用ソフトウェア作成支援装置において、コンパイル手段は、ソースコードを機械語に変換する際に、オブジェクト格納用の使用メモリ容量および／または作業領域用の使用メモリ容量を最小化するコンパイル設定、並びに、要処理時間を最小化するコンパイル設定での最適化設計処理を実行可能な構成とされ、メモリ容量抽出手段は、コンパイル手段により各コンパイル設定でそれぞれ作成した各オブジェクトファイルから、ブロック図を構成するプログラム要素毎に、オブジェクト格納用の使用メモリ容量および作業領域用の使用メモリ容量を求める処理を実行する構成とされ、総実行クロック数算出手段は、コンパイル手段により各コンパイル設定でそれぞれ作成した各オブジェクトファイルから、ブロック図を構成するプログラム要素毎に、総実行クロック数を算出する処理を実行する構成とされ、処理時間算出手段は、総実行クロック数算出手段により各オブジェクトファイルから算出した総実行クロック数とターゲットＣＰＵの動作クロックとを用いて、ブロック図を構成するプログラム要素毎に、要処理時間を求める処理を実行する構成とされ、コンパイル手段により各コンパイル設定でそれぞれ作成した各オブジェクトファイルについて、ブロック図を構成するプログラム要素毎に、オブジェクト格納用の使用メモリ容量および作業領域用の使用メモリ容量、並びに要処理時間を、画面表示および／または印刷する処理を実行するコンパイル結果一覧表出力手段を備えた構成とすることが望ましい。
【００１７】
このようにコンパイル結果一覧表出力手段を備えた構成とした場合には、オブジェクト格納用の使用メモリ容量および／または作業領域用の使用メモリ容量を最小化するコンパイル設定、並びに、要処理時間を最小化するコンパイル設定で、それぞれコンパイルを行い、これらのコンパイル結果を、ブロック図を構成するプログラム要素毎に、画面表示および／または印刷するので、これらの情報を参照することで、最適なソフトウェア設計を、より一層容易に行うことが可能となる。
【００１８】
そして、上述したように、コンパイル結果一覧表出力手段を備えた構成とする場合において、メモリ容量抽出手段によりブロック図を構成するプログラム要素毎に求めた各コンパイル設定でのオブジェクト格納用の使用メモリ容量および作業領域用の使用メモリ容量、並びに、処理時間算出手段によりブロック図を構成するプログラム要素毎に求めた各コンパイル設定での要処理時間を用いて、ブロック図を構成するプログラム要素毎に、各コンパイル設定でのコンパイル結果を選択して得られる複数の組合せについて、ブロック図の全体としてのオブジェクト格納用の使用メモリ容量および作業領域用の使用メモリ容量、並びに要処理時間を求め、求めたブロック図の全体としてのオブジェクト格納用の使用メモリ容量および作業領域用の使用メモリ容量、並びに要処理時間が、ターゲットＣＰＵに接続されたオブジェクト格納用メモリのメモリ容量および作業領域用メモリのメモリ容量、並びにターゲットＣＰＵでソフトウェアを実行する場合の処理時間のそれぞれの制約値の範囲内であるか否かを判断する処理を実行する組合せ判断手段を備え、コンパイル手段は、組合せ判断手段による判断で制約値の範囲内に収まる組合せがあった場合には、当該組合せでブロック図を構成する各プログラム要素のソースコードを機械語に変換する処理を実行する構成とされていることが望ましい。
【００１９】
このように組合せ判断手段を備えた構成とした場合には、オブジェクト格納用および作業領域用の使用メモリ容量、並びに要処理時間が、それぞれ制約値の範囲内に収まる組合せを見つけ、その組合せでコンパイルすることが容易に可能となり、プログラマの作業負担が、より一層軽減される。
【００２０】
さらに、上述したように、組合せ判断手段を備えた構成とする場合において、組合せ判断手段は、制約値の範囲内に収まる複数の組合せがあった場合には、これらの各組合せについて、ターゲットＣＰＵに接続されたオブジェクト格納用メモリのメモリ容量の制約値に対するブロック図の全体としてのオブジェクト格納用の使用メモリ容量の比率、ターゲットＣＰＵに接続された作業領域用メモリのメモリ容量の制約値に対するブロック図の全体としての作業領域用の使用メモリ容量の比率、およびターゲットＣＰＵでソフトウェアを実行する場合の処理時間の制約値に対するブロック図の全体としての要処理時間の比率を用いて、これらの３つの比率の和若しくは積またはこれらの３つの比率を用いたその他の指標値を算出し、算出した指標値の大小により、最適な組合せを決定する処理を実行する構成とされ、コンパイル手段は、組合せ判断手段により決定された最適な組合せでブロック図を構成する各プログラム要素のソースコードを機械語に変換する処理を実行する構成とされていることが望ましい。
【００２１】
このように組合せ判断手段により３つの比率の和若しくは積またはその他の指標値を用いて最適な組合せを決定する構成とした場合には、最適なソフトウェア設計が、より一層容易に実現され、プログラマの作業負担が、更により一層軽減される。
【００２２】
また、以上に述べた本発明の組込み機器用ソフトウェア作成支援装置により実現される組込み機器用ソフトウェア作成支援方法として、以下のような本発明の組込み機器用ソフトウェア作成支援方法が挙げられる。
【００２３】
すなわち、本発明は、プログラム要素の接続によるブロック図で処理手順を表記するための入力を受け付け、入力された処理手順の表記に基づき計算機言語によるソースコードを自動生成するコンピュータにより構成された組込み機器用ソフトウェア作成支援装置で実行される組込み機器用ソフトウェア作成支援方法において、コンパイル手段が、計算機言語で記述されたソースコードをＣＰＵで直接実行可能な機械語に変換する処理を実行し、メモリ容量抽出手段が、コンパイル手段により作成した機械語によるオブジェクトファイルから、このオブジェクトファイルの格納に必要となるオブジェクト格納用の使用メモリ容量およびオブジェクトファイルのソフトウェア実行時の作業領域として必要となる作業領域用の使用メモリ容量を求める処理を実行し、総実行クロック数算出手段が、オブジェクトファイルから機械語の命令を抽出し、抽出した各命令の実行クロック数を合計して総実行クロック数を算出する処理を実行し、処理時間算出手段が、総実行クロック数算出手段により算出した総実行クロック数とオブジェクトファイルのソフトウェアを実行する組込み機器用のターゲットＣＰＵの動作クロックとを用いて、ソフトウェアの実行に必要となる要処理時間を求める処理を実行し、コンパイル結果出力手段が、メモリ容量抽出手段により求めたオブジェクト格納用の使用メモリ容量および作業領域用の使用メモリ容量、並びに処理時間算出手段により算出した要処理時間を、画面表示および／または印刷する処理を実行することを特徴とするものである。
【００２４】
このような本発明の組込み機器用ソフトウェア作成支援方法においては、前述した本発明の組込み機器用ソフトウェア作成支援装置で得られる作用・効果がそのまま得られ、これにより前記目的が達成される。
【００２５】
さらに、本発明のプログラムは、前述した組込み機器用ソフトウェア作成支援装置として、コンピュータを機能させるためのものである。
【００２６】
なお、上記のプログラム（本発明の組込み機器用ソフトウェア作成支援装置で作成される組込み機器用ソフトウェアのことではなく、本発明の組込み機器用ソフトウェア作成支援装置自体を構成するプログラム）またはその一部は、例えば、光磁気ディスク（ＭＯ）、コンパクトディスク（ＣＤ）を利用した読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）、デジタル・バーサタイル・ディスク（ＤＶＤ）を利用した読出し専用メモリ（ＤＶＤ−ＲＯＭ）、ＤＶＤを利用したランダム・アクセス・メモリ（ＤＶＤ−ＲＡＭ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去および書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【発明の効果】
【００２７】
以上に述べたように本発明によれば、オブジェクトファイルからオブジェクト格納用および作業領域用の使用メモリ容量を求めるとともに、オブジェクトファイルから抽出した機械語の各命令の実行クロック数の合計とターゲットＣＰＵの動作クロックとを用いて要処理時間を算出し、これらのオブジェクト格納用および作業領域用の使用メモリ容量、並びに要処理時間を出力するので、これらがそれぞれ制約値の範囲内か否かを容易に判断することができるうえ、ＣＰＵでアクセスして使用するメモリ容量の全体を把握することができるので、ＣＰＵで使用可能なメモリ容量を最大限に活かしたソフトウェア設計を行うことができ、要処理時間の把握と合わせることで、最適なソフトウェアの設計を行うことができるという効果がある。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態の組込み機器用ソフトウェア作成支援装置の全体構成図。
【図２】前記実施形態の組込み機器用ソフトウェアの作成支援処理の流れを示すフローチャートの図。
【図３】前記実施形態のブロック図の作成画面の例を示す図。
【図４】前記実施形態の標準設定でのコンパイル結果の表示画面の例を示す図。
【図５】前記実施形態の全設定でのコンパイル結果一覧表画面の例を示す図。
【図６】前記実施形態の最適化コンパイル実行後のコンパイル結果の表示画面の例を示す図。
【発明を実施するための形態】
【００２９】
以下に本発明の一実施形態について図面を参照して説明する。図１には、本実施形態の組込み機器用ソフトウェア作成支援装置１０の全体構成が示されている。図２には、組込み機器用ソフトウェア作成支援装置１０による組込み機器用ソフトウェアの作成支援処理の流れがフローチャートで示されている。また、図３〜図６には、組込み機器用ソフトウェア作成支援装置１０の表示装置６０に表示される画面例が示されている。
【００３０】
図１において、組込み機器用ソフトウェア作成支援装置１０は、コンピュータ本体により構成される装置本体２０と、この装置本体２０に接続されたマウスやキーボード等の入力装置５０と、装置本体２０に接続された液晶ディスプレイやＣＲＴディスプレイ等の表示装置６０とを備えている。
【００３１】
装置本体２０は、ブロック図作成手段２１と、ブロック図プログラム生成手段２２と、ＣＰＵ設定手段２３と、コンパイル手段２４と、メモリ容量抽出手段２５と、総実行クロック数算出手段２６と、処理時間算出手段２７と、ＣＰＵ制約充足判断手段２８と、コンパイル結果出力手段２９と、コンパイル結果一覧表出力手段３０と、組合せ判断手段３１と、プログラム要素記憶手段４１と、ブロック図記憶手段４２と、ソースコード記憶手段４３と、ＣＰＵ設定情報記憶手段４４と、オブジェクトファイル記憶手段４５と、解析結果記憶手段４６とを含んで構成されている。
【００３２】
ブロック図作成手段２１は、プログラム要素記憶手段４１に記憶された各種の機能を有するプログラム要素の情報を用いて、プログラマによるプログラム要素の選択入力およびそれに付随させる情報（設定値等）の入力を受け付けるとともに、プログラム要素間の接続情報の入力も受け付け、表示装置６０の画面上に、入力されたプログラム要素を並べて表示するとともに、それらの接続関係も表示することにより（図３参照）、ブロック図によるプログラムの作成を支援し、入力されたプログラム要素の情報を、プログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付け、また、入力された接続情報を、接続関係ＩＤ（例えば「Ｗ００１」等）と関連付けて、ブロック図記憶手段４２に記憶させる処理を実行するものである。
【００３３】
ブロック図プログラム生成手段２２は、ブロック図記憶手段４２に記憶されている、選択された各プログラム要素の情報およびそれらのプログラム要素間の接続情報を用いて、表示装置６０の画面上に表示しながらプログラマにより作成されたブロック図で示される処理手順を計算機言語（高級言語）で記述したソースコードを作成し、作成したソースコードを、ソースコード記憶手段４３に記憶させる処理を実行するものである。
【００３４】
ＣＰＵ設定手段２３は、プログラマによるＣＰＵ設定情報の入力を受け付け、入力されたＣＰＵ設定情報を、ＣＰＵ設定情報記憶手段４４に記憶させる処理を実行するものである。ここで、ＣＰＵ設定情報には、組込み機器（例えば、モータの駆動制御用のインバータ等の産業用機器）に組み込まれるＣＰＵ（ターゲットＣＰＵ）の種別と、ターゲットＣＰＵの動作クロック（クロック周波数）［ＭＨｚ］とが含まれるとともに、制約条件として、ターゲットＣＰＵに接続されたＲＯＭ容量［ＫＢ］、ＲＡＭ容量［ＫＢ］、組込み機器の動作目的を達成するための処理時間［μｓ］の各制約値が含まれる（図３参照）。
【００３５】
コンパイル手段２４は、ＣＰＵ設定情報記憶手段４４に記憶されたＣＰＵの種別を取得し、ソースコード記憶手段４３に記憶されているソースコードを、組込み機器用のＣＰＵで動作できるように、機械語によるオブジェクトファイルに変換し、変換して得られたオブジェクトファイルを、オブジェクトファイル記憶手段４５に記憶させる処理を実行するものである。
【００３６】
この際、コンパイル手段２４は、通常用いられる標準のコンパイル設定でのコンパイル処理（機械語への変換処理）に加え、作成したソフトウェアのオブジェクトファイルを格納するために必要となるオブジェクト格納用の使用メモリ容量（ＲＯＭの使用メモリ容量）および／または作成したソフトウェアの実行時の作業領域として使用される作業領域用の使用メモリ容量（ＲＡＭの使用メモリ容量）を最小化するコンパイル設定、並びに、作成したソフトウェアの実行に必要となる要処理時間を最小化するコンパイル設定でのコンパイル処理（最適化設計処理）を実行可能な構成とされている。なお、本実施形態では、このように標準、メモリ容量最適化、処理時間最適化の３段階のコンパイル設定が用意されているが、より多くのコンパイル設定を用意し、詳細な指定をしてコンパイルすることができるようにしてもよい。
【００３７】
また、コンパイル手段２４は、コンパイル結果一覧表出力手段３０からの指令を受けた場合には、標準のコンパイル設定と、メモリ容量最適化のコンパイル設定と、処理時間最適化のコンパイル設定との全設定でのコンパイル処理を実行し、得られた各設定でのオブジェクトファイルを、オブジェクトファイル記憶手段４５に記憶させる処理を実行する。なお、オブジェクトファイル記憶手段４５に標準のコンパイル設定でのオブジェクトファイルが既に記憶されているか、またはプログラマによる最初のコンパイル時の指定で作成された標準以外のコンパイル設定でのオブジェクトファイルが既に記憶されている場合には、それらの既に作成されて記憶されているオブジェクトファイルの作成（コンパイル処理）は省略してもよい。
【００３８】
さらに、コンパイル手段２４は、組合せ判断手段３１からＣＰＵ制約を満たす組合せ（複数ある場合には、最適な組合せ）のコンパイル設定に関する情報（各プログラム要素に、いずれのコンパイル設定を適用するかという情報）を受け取った場合には、組合せ判断手段３１により決定された組合せのコンパイル設定（例えば、プログラム要素（ＩＤ：Ｆ００１）については、処理時間最適化のコンパイル設定とし、その他のプログラム要素については、標準のコンパイル設定とする等のコンパイラオプションの設定）で、ブロック図を構成する各プログラム要素のソースコードを機械語に変換する処理を実行する。
【００３９】
メモリ容量抽出手段２５は、コンパイル手段２４により作成されてオブジェクトファイル記憶手段４５に記憶されているオブジェクトファイルから、ブロック図を構成するプログラム要素毎に、組込み機器のメモリへの当該オブジェクトファイルの格納に必要となるオブジェクト格納用の使用メモリ容量（組込み機器のＲＯＭの使用メモリ容量）を求めるとともに、組込み機器のＣＰＵによる当該オブジェクトファイルのソフトウェア実行時の作業領域として必要となる作業領域用の使用メモリ容量（組込み機器のＲＡＭの使用メモリ容量）を求め、求めたオブジェクト格納用の使用メモリ容量（ＲＯＭの使用メモリ容量）および作業領域用の使用メモリ容量（ＲＡＭの使用メモリ容量）を、解析結果記憶手段４６に記憶させる処理を実行するものである。ここで、ＲＯＭの使用メモリ容量は、既に作成されているオブジェクトファイルの容量から求められ、ＲＡＭの使用メモリ容量は、各命令の種別、各命令で使用される変数や定数についての数や型（サイズ）、データの数や型（サイズ）等に基づき求められる。なお、ブロック図を構成するプログラム要素毎の使用メモリ容量は、プログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付けて解析結果記憶手段４６に記憶される。
【００４０】
また、メモリ容量抽出手段２５は、コンパイル結果一覧表出力手段３０からの指令を受けた場合には、コンパイル手段２４により各コンパイル設定でそれぞれ作成されてオブジェクトファイル記憶手段４５に記憶されている各オブジェクトファイルから、ブロック図を構成するプログラム要素毎に、オブジェクト格納用の使用メモリ容量（ＲＯＭの使用メモリ容量）および作業領域用の使用メモリ容量（ＲＡＭの使用メモリ容量）を求める処理を実行する。なお、各コンパイル設定での使用メモリ容量は、各コンパイル設定（標準、メモリ容量最適化、処理時間最適化）を識別するコンパイル設定識別情報と関連付けて解析結果記憶手段４６に記憶される。
【００４１】
総実行クロック数算出手段２６は、オブジェクトファイル記憶手段４５に記憶されているオブジェクトファイルから、ブロック図を構成するプログラム要素毎に、機械語の命令を抽出し、抽出した各命令の実行クロック数を合計して総実行クロック数を算出し、算出した総実行クロック数を、解析結果記憶手段４６に記憶させる処理を実行するものである。ここで、各命令とそれらの実行クロック数との対応関係（例えば、ＪＭＰというコードの命令は、２クロック等）を示すテーブルは、本実施形態では、この総実行クロック数算出手段２６を実現するプログラムの内部に記述されているが、装置本体２０に別途に設けた実行クロック数テーブル（不図示）に記憶しておいてもよい。なお、ブロック図を構成するプログラム要素毎の総実行クロック数は、プログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付けて解析結果記憶手段４６に記憶される。
【００４２】
また、総実行クロック数算出手段２６は、コンパイル結果一覧表出力手段３０からの指令を受けた場合には、コンパイル手段２４により各コンパイル設定でそれぞれ作成されてオブジェクトファイル記憶手段４５に記憶されている各オブジェクトファイルから、ブロック図を構成するプログラム要素毎に、総実行クロック数を算出する処理を実行する。なお、各コンパイル設定での総実行クロック数は、各コンパイル設定（標準、メモリ容量最適化、処理時間最適化）を識別するコンパイル設定識別情報と関連付けて解析結果記憶手段４６に記憶される。
【００４３】
処理時間算出手段２７は、総実行クロック数算出手段２６により算出されて解析結果記憶手段４６に記憶されている総実行クロック数を、ＣＰＵ設定情報記憶手段４４に記憶されたターゲットＣＰＵの動作クロック（クロック周波数）で除することにより、ブロック図を構成するプログラム要素毎に、ターゲットＣＰＵによるソフトウェアの実行に必要となる要処理時間を算出し、算出した要処理時間を、解析結果記憶手段４６に記憶させる処理を実行するものである。なお、ブロック図を構成するプログラム要素毎の要処理時間は、プログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付けて解析結果記憶手段４６に記憶される。
【００４４】
また、処理時間算出手段２７は、コンパイル結果一覧表出力手段３０からの指令を受けた場合には、総実行クロック数算出手段２６により各オブジェクトファイルから算出した総実行クロック数と、ＣＰＵ設定情報記憶手段４４に記憶されたターゲットＣＰＵの動作クロックとを用いて、ブロック図を構成するプログラム要素毎に、要処理時間を算出する処理を実行する。なお、各コンパイル設定での要処理時間は、各コンパイル設定（標準、メモリ容量最適化、処理時間最適化）を識別するコンパイル設定識別情報と関連付けて解析結果記憶手段４６に記憶される。
【００４５】
ＣＰＵ制約充足判断手段２８は、メモリ容量抽出手段２５により求められて解析結果記憶手段４６に記憶されているオブジェクト格納用の使用メモリ容量（ＲＯＭの使用メモリ容量）および作業領域用の使用メモリ容量（ＲＡＭの使用メモリ容量）、並びに、処理時間算出手段２７により算出されて解析結果記憶手段４６に記憶されている要処理時間が、それぞれＣＰＵ設定情報記憶手段４４に記憶されているＲＯＭ容量［ＫＢ］の制約値、ＲＡＭ容量［ＫＢ］の制約値、処理時間［μｓ］の制約値の範囲内であるか否か（「ＯＫ」または「ＮＧ」）を判断するとともに、それらの値の各制約値に対する比率（パーセンテージ）を算出する処理を実行するものである。この際、ＣＰＵ制約充足判断手段２８は、解析結果記憶手段４６に記憶されているＲＯＭの使用メモリ容量、ＲＡＭの使用メモリ容量、要処理時間については、ブロック図を構成するプログラム要素毎の各値を合計したブロック図の全体（すなわち、プログラム全体）としての値を用いて、それぞれが制約値の範囲内であるか否かを判断する処理を実行する。
【００４６】
コンパイル結果出力手段２９は、コンパイル結果を、ＣＰＵ制約充足判断手段２８による判断結果も含めて、表示装置６０の画面上に表示する処理を実行するものである（図４、図６参照）。ここで、表示されるコンパイル結果には、メモリ容量抽出手段２５により求められて解析結果記憶手段４６に記憶されているＲＯＭの使用メモリ容量（プログラム要素毎の各値およびそれらの合計値）およびＲＡＭの使用メモリ容量（プログラム要素毎の各値およびそれらの合計値）と、総実行クロック数算出手段２６により算出されて解析結果記憶手段４６に記憶されている総実行クロック数（プログラム要素毎の各値およびそれらの合計値）と、処理時間算出手段２７により算出されて解析結果記憶手段４６に記憶されている要処理時間（プログラム要素毎の各値およびそれらの合計値）と、ＣＰＵ制約充足判断手段２８によるＲＯＭ容量［ＫＢ］、ＲＡＭ容量［ＫＢ］、処理時間［μｓ］の各制約値の範囲内であるか否かの判定結果（「ＯＫ」または「ＮＧ」）および各制約値に対する比率（パーセンテージ）、並びに総合判定結果（「ＯＫ」または「ＮＧ」）とが含まれる。なお、総合判定結果は、ＲＯＭ容量［ＫＢ］、ＲＡＭ容量［ＫＢ］、処理時間［μｓ］の各制約値をすべて満たした場合に、「ＯＫ」となる。
【００４７】
コンパイル結果一覧表出力手段３０は、コンパイル手段２４に対し、標準のコンパイル設定と、メモリ容量最適化のコンパイル設定と、処理時間最適化のコンパイル設定との全設定でのコンパイル処理を実行する指令を出し、さらに、この全設定でのコンパイル処理の後に、メモリ容量抽出手段２５、総実行クロック数算出手段２６、処理時間算出手段２７に対し、各コンパイル設定について、ブロック図を構成するプログラム要素毎に、ＲＯＭの使用メモリ容量、ＲＡＭの使用メモリ容量、総実行クロック数、要処理時間を求める処理を実行する指令を出し、解析結果記憶手段４６に記憶されたこれらの処理結果を用いて、各コンパイル設定でそれぞれ作成した各オブジェクトファイルについて、ブロック図を構成するプログラム要素毎に、ＲＯＭの使用メモリ容量（プログラム要素毎の各値およびそれらの合計値）およびＲＡＭの使用メモリ容量（プログラム要素毎の各値およびそれらの合計値）と、総実行クロック数（プログラム要素毎の各値およびそれらの合計値）と、要処理時間（プログラム要素毎の各値およびそれらの合計値）とを、表示装置６０の画面上に表示する処理を実行するものである（図５参照）。
【００４８】
組合せ判断手段３１は、コンパイル結果一覧表出力手段３０からの指令に基づきメモリ容量抽出手段２５および処理時間算出手段２７により求められて解析結果記憶手段４６に記憶されたＲＯＭの使用メモリ容量（各コンパイル設定についてのプログラム要素毎の値）およびＲＡＭの使用メモリ容量（各コンパイル設定についてのプログラム要素毎の値）、並びに要処理時間（各コンパイル設定についてのプログラム要素毎の値）を用いて（図５参照）、ブロック図を構成するプログラム要素毎に、各コンパイル設定（標準、メモリ容量最適化、処理時間最適化）でのコンパイル結果を選択して得られる複数の組合せ（図５の場合には、３つのプログラム要素のそれぞれについて３つのコンパイル設定があるので、３×３×３＝２７通りの組合せ）について、ブロック図の全体（すなわち、プログラム全体）としてのＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量、並びに要処理時間を求め、求めたブロック図の全体（プログラム全体）としてのＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量、並びに要処理時間が、それぞれＣＰＵ設定情報記憶手段４４に記憶されているＲＯＭ容量［ＫＢ］の制約値、ＲＡＭ容量［ＫＢ］の制約値、処理時間［μｓ］の制約値の範囲内であるか否かを判断することにより、ＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量、並びに要処理時間のすべてが各制約値の範囲内に収まる組合せが存在するか否かを判断する処理を実行するものである。
【００４９】
また、組合せ判断手段３１は、ＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量、並びに要処理時間のすべてが各制約値の範囲内に収まる組合せが、複数組存在する場合には、これらの各組合せについて、ＣＰＵ設定情報記憶手段４４に記憶されているＲＯＭ容量［ＫＢ］の制約値に対するブロック図の全体（プログラム全体）としてのＲＯＭの使用メモリ容量の比率（パーセンテージ）と、ＣＰＵ設定情報記憶手段４４に記憶されているＲＡＭ容量［ＫＢ］の制約値に対するブロック図の全体（プログラム全体）としてのＲＡＭの使用メモリ容量の比率（パーセンテージ）と、ＣＰＵ設定情報記憶手段４４に記憶されている処理時間［μｓ］の制約値に対するブロック図の全体（プログラム全体）としての要処理時間の比率（パーセンテージ）とを求め、これらの３つの比率（パーセンテージ）の和若しくは積、またはこれらの３つの比率（パーセンテージ）を用いたその他の指標値を算出し、算出した指標値の大小により、最適な組合せを決定する処理を実行する。例えば、指標値が３つの比率（パーセンテージ）の単純な和や単純な積である場合には、算出した指標値が最も小さい値となる組合せが、最適な組合せとなる。なお、単純な和や単純な積ではなく、ＲＯＭの使用メモリ容量の制約値に対する比率、ＲＡＭの使用メモリ容量の制約値に対する比率、要処理時間の制約値に対する比率に、重み付けをした指標値を用いてもよい。
【００５０】
プログラム要素記憶手段４１は、それぞれ異なる機能を有する予め用意された多数のプログラム要素の情報（プログラマにより入力される設定値等を除くフォームに相当する情報）を記憶するものである。
【００５１】
ブロック図記憶手段４２は、プログラマにより入力されたプログラム要素の情報を、プログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付けて記憶するとともに、プログラマにより入力されたプログラム要素間の接続情報を、接続関係ＩＤ（例えば「Ｗ００１」等）と関連付けて記憶するものである。
【００５２】
ソースコード記憶手段４３は、ブロック図プログラム生成手段２２によりブロック図（ブロック図を構成する各プログラム要素の情報およびそれらの接続情報）から生成された計算機言語（高級言語）で記述したソースコードを記憶するものである。
【００５３】
ＣＰＵ設定情報記憶手段４４は、プログラマにより入力されたＣＰＵ設定情報として、組込み機器に組み込まれるＣＰＵ（ターゲットＣＰＵ）の種別と、ターゲットＣＰＵの動作クロック（クロック周波数）［ＭＨｚ］と、ターゲットＣＰＵに接続されたＲＯＭ容量［ＫＢ］およびＲＡＭ容量［ＫＢ］、並びに組込み機器の動作目的を達成するための処理時間［μｓ］の各制約値とを記憶するものである。
【００５４】
オブジェクトファイル記憶手段４５は、コンパイルによりソースコードを変換して得られたオブジェクトファイルを記憶するものである。なお、オブジェクトファイルには、標準、メモリ容量最適化、処理時間最適化のいずれのコンパイル設定でコンパイルされたものであるのか、あるいはプログラム要素毎にコンパイル設定を選択して得られた最適な組合せでコンパイルされたものであるのかを区別することができるようにファイル名が付されている。
【００５５】
解析結果記憶手段４６は、各コンパイル設定でそれぞれ作成した各オブジェクトファイルについて、ブロック図を構成するプログラム要素毎に、ＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量と、総実行クロック数と、要処理時間とを、コンパイル設定識別情報（標準、メモリ容量最適化、処理時間最適化の別を示す情報）およびプログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付けて記憶するとともに、ＲＯＭの使用メモリ容量、ＲＡＭの使用メモリ容量、総実行クロック数、要処理時間についてのプログラム要素毎の各値の合計値（プログラム全体としての値）を、コンパイル設定識別情報と関連付けて記憶するものである。
【００５６】
そして、以上に述べた各種処理を実行する各手段２１〜３１は、装置本体２０を構成するコンピュータ本体の内部に設けられた中央演算処理装置（ＣＰＵ）、およびこのＣＰＵの動作手順を規定する１つまたは複数のプログラムにより実現される。
【００５７】
また、各記憶手段４１〜４６は、例えばハードディスク等により好適に実現されるが、記憶容量やアクセス速度等に問題が生じない範囲であれば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、ＲＡＭ、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＦＤ、磁気テープ、あるいはこれらの組合せ等を採用してもよい。
【００５８】
さらに、装置本体２０は、１台のコンピュータあるいは１つのＣＰＵにより実現されるものに限定されず、複数のコンピュータあるいは複数のＣＰＵで分散処理を行うことにより実現されるものであってもよい。
【００５９】
このような本実施形態においては、以下のようにして組込み機器用ソフトウェア作成支援装置１０により、組込み機器用ソフトウェアの作成支援処理が行われる。
【００６０】
図２において、先ず、組込み機器用ソフトウェア作成支援装置１０の電源を入れてプログラムを立ち上げ、図３に示すようなブロック図の作成画面１００を、表示装置６０に画面表示させる（ステップＳ１）。次に、プログラマは、ブロック図の作成画面１００の上部のメニューの中の「プログラム要素の選択」ボタン１０２を入力装置５０により押下操作し、予め用意されてプログラム要素記憶手段４１に記憶されているプログラム要素の中から、作成するプログラムに必要なプログラム要素を選択してブロック図表示部１１０に表示させるとともに、メニューの中の「接続」ボタン１０３を入力装置５０により押下操作し、選択したプログラム要素を接続することにより、ブロック図表示部１１０上で、ブロック図を作成する。このブロック図の作成時のプログラマによる入力は、ブロック図作成手段２１により受け付けられ、入力されたプログラム要素の情報が、プログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付けてブロック図記憶手段４２に記憶されるとともに、入力された接続情報が、接続関係ＩＤ（例えば「Ｗ００１」等）と関連付けてブロック図記憶手段４２に記憶される（図２のステップＳ２）。なお、作りかけのブロック図がある場合には、メニューの中にあるブロック図のファイル操作を行うための「ファイル」ボタン１０１を入力装置５０により押下操作し、そのブロック図に関する情報を格納したファイルをブロック図記憶手段４２から読み込み、追加または修正作業を行う。
【００６１】
図３の例では、機能Ａ，Ｂ，Ｃを有する３つのプログラム要素７１と、これらのプログラム要素７１間の接続７２とにより構成されるブロック図７３が、ブロック図表示部１１０に表示されている。
【００６２】
続いて、プログラマが、メニューの中の「ソースコード生成」ボタン１０４を入力装置５０により押下操作すると、ブロック図プログラム生成手段２２により、ブロック図記憶手段４２に記憶されている、選択された各プログラム要素の情報およびそれらのプログラム要素間の接続情報を用いて、ブロック図で示される処理手順を計算機言語（高級言語）で記述したソースコードが自動生成され、ソースコード記憶手段４３に記憶される（図２のステップＳ３）。
【００６３】
それから、プログラマが、メニューの中の「ＣＰＵ設定」ボタン１０６を入力装置５０により押下操作すると、図３に示すように、ＣＰＵ設定ウィンドウ１３０が表示される。プログラマは、このＣＰＵ設定ウィンドウ１３０において、ＣＰＵ選択部１３１で、組込み機器に組み込まれるＣＰＵ（ターゲットＣＰＵ）の種別を選択し、ＣＰＵ動作クロック入力部１３２に、ターゲットＣＰＵの動作クロック（クロック周波数）［ＭＨｚ］を入力し、また、ＣＰＵ制約条件として、ＲＯＭ容量入力部１３３およびＲＡＭ容量入力部１３４に、ターゲットＣＰＵに接続されたＲＯＭ容量［ＫＢ］およびＲＡＭ容量［ＫＢ］を入力し、処理時間入力部１３５に、組込み機器の動作目的を達成するための処理時間［μｓ］の制約値を入力する。これらのＣＰＵ設定情報のプログラマによる入力は、ＣＰＵ設定手段２３により受け付けられ、入力されたＣＰＵ設定情報は、ＣＰＵ設定情報記憶手段４４に記憶される（図２のステップＳ４）。
【００６４】
ここでは、ＣＰＵの制約条件として、例えば、ＲＯＭ容量＝４０００［ｂｙｔｅ］＝４［ＫＢ］、ＲＡＭ容量＝１００［ｂｙｔｅ］＝０．１［ＫＢ］、処理時間＝４［μｓ］を入力するものとする。
【００６５】
続いて、プログラマが、メニューの中の「コンパイル」ボタン１０５を入力装置５０により押下操作すると、図３に示すように、コンパイルウィンドウ１２０が表示される。プログラマは、このコンパイルウィンドウ１２０において、コンパイル設定選択部１２３で、最初のコンパイルで使用するコンパイル設定として、「標準」、「メモリ容量最適化」、「処理時間最適化」のいずれかのコンパイル設定を選択する（図２のステップＳ５）。なお、デフォルトのコンパイル設定は「標準」となっている。
【００６６】
そして、プログラマが、コンパイルウィンドウ１２０において、「コンパイル実行」ボタン１２１を押下操作すると、コンパイル手段２４により、ＣＰＵ設定情報記憶手段４４に記憶されたＣＰＵの種別が取得され、コンパイル設定選択部１２３で選択したコンパイル設定（ここでは、デフォルトの「標準」とする。）で、ソースコード記憶手段４３に記憶されているソースコードを、組込み機器用のＣＰＵで動作できるように、機械語によるオブジェクトファイルに変換し、変換して得られたオブジェクトファイルを、オブジェクトファイル記憶手段４５に記憶させる（図２のステップＳ５）。
【００６７】
その後、プログラマが、コンパイルウィンドウ１２０において、「コンパイル結果確認」ボタン１２２を押下操作すると、メモリ容量抽出手段２５により、オブジェクトファイル記憶手段４５に記憶されているオブジェクトファイルから、ブロック図を構成するプログラム要素毎に、ＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量が求められ、プログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付けて解析結果記憶手段４６に記憶される（図２のステップＳ５）。
【００６８】
ここでは、例えば、機能Ａを有するプログラム要素（ＩＤ：Ｆ００１）については、ＲＯＭの使用メモリ容量＝１０００［ｂｙｔｅ］、ＲＡＭの使用メモリ容量＝５０［ｂｙｔｅ］が求められ、機能Ｂを有するプログラム要素（ＩＤ：Ｆ００２）については、ＲＯＭの使用メモリ容量＝８００［ｂｙｔｅ］、ＲＡＭの使用メモリ容量＝２０［ｂｙｔｅ］が求められ、機能Ｃを有するプログラム要素（ＩＤ：Ｆ００３）については、ＲＯＭの使用メモリ容量＝１６００［ｂｙｔｅ］、ＲＡＭの使用メモリ容量＝２０［ｂｙｔｅ］が求められたものとする。
【００６９】
続いて、総実行クロック数算出手段２６により、オブジェクトファイル記憶手段４５に記憶されているオブジェクトファイルから、ブロック図を構成するプログラム要素毎に、機械語の命令が抽出され、抽出された各命令の実行クロック数を合計して総実行クロック数が算出され、算出されたプログラム要素毎の総実行クロック数が、プログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付けて解析結果記憶手段４６に記憶される（図２のステップＳ５）。
【００７０】
ここでは、例えば、機能Ａを有するプログラム要素（ＩＤ：Ｆ００１）については、総実行クロック数＝２００が算出され、機能Ｂを有するプログラム要素（ＩＤ：Ｆ００２）については、総実行クロック数＝１６０が算出され、機能Ｃを有するプログラム要素（ＩＤ：Ｆ００３）については、総実行クロック数＝８０が算出されたものとする。
【００７１】
さらに、処理時間算出手段２７により、総実行クロック数算出手段２６により算出されて解析結果記憶手段４６に記憶されているプログラム要素毎の総実行クロック数を、ＣＰＵ設定情報記憶手段４４に記憶されたターゲットＣＰＵの動作クロック（クロック周波数）で除することにより、ブロック図を構成するプログラム要素毎に、ターゲットＣＰＵによるソフトウェアの実行に必要となる要処理時間が算出され、算出された要処理時間が、プログラム要素ＩＤ（例えば、「Ｆ００１」等）と関連付けて解析結果記憶手段４６に記憶される（図２のステップＳ５）。
【００７２】
ここでは、例えば、機能Ａを有するプログラム要素（ＩＤ：Ｆ００１）については、要処理時間＝２．０００［μｓ］が算出され、機能Ｂを有するプログラム要素（ＩＤ：Ｆ００２）については、要処理時間＝１．６００［μｓ］が算出され、機能Ｃを有するプログラム要素（ＩＤ：Ｆ００３）については、要処理時間＝０．８００［μｓ］が算出されたものとする。
【００７３】
それから、ＣＰＵ制約充足判断手段２８により、メモリ容量抽出手段２５により求められて解析結果記憶手段４６に記憶されているＲＯＭの使用メモリ容量（プログラム要素毎の各値の合計値）およびＲＡＭの使用メモリ容量（プログラム要素毎の各値の合計値）、並びに、処理時間算出手段２７により算出されて解析結果記憶手段４６に記憶されている要処理時間（プログラム要素毎の各値の合計値）が、それぞれＣＰＵ設定情報記憶手段４４に記憶されているＲＯＭ容量［ＫＢ］の制約値、ＲＡＭ容量［ＫＢ］の制約値、処理時間［μｓ］の制約値の範囲内であるか否か（「ＯＫ」または「ＮＧ」）を判断するとともに、それらの値（プログラム要素毎の各値の合計値）の各制約値に対する比率（パーセンテージ）を算出する（図２のステップＳ５）。
【００７４】
続いて、コンパイル結果出力手段２９により、ＣＰＵ制約充足判断手段２８による判断結果も含むコンパイル結果を、図４に示すように、表示装置６０の画面上に表示する（図２のステップＳ５）。図４には、「標準」のコンパイル設定でのコンパイル結果の表示画面２００が示されている。
【００７５】
図４のコンパイル結果の表示画面２００の上部には、図３の場合と同様に各ボタン１０１〜１０６を含むメニューが設けられ、このメニューの下側には、ブロック図とともにコンパイル結果が表示されるブロック図表示部２１０が設けられ、さらにその下側には、プログラム要素毎にコンパイル結果を示すコンパイル結果表示部２２０と、コンパイル結果とＣＰＵ制約との関係を示すＣＰＵ制約充足判定結果表示部２３０と、総合判定結果表示部２４０とが設けられている。
【００７６】
図４のコンパイル結果表示部２２０には、メモリ容量抽出手段２５により求められて解析結果記憶手段４６に記憶されているＲＯＭの使用メモリ容量（プログラム要素毎の各値およびそれらの合計値）およびＲＡＭの使用メモリ容量（プログラム要素毎の各値およびそれらの合計値）と、総実行クロック数算出手段２６により算出されて解析結果記憶手段４６に記憶されている総実行クロック数（プログラム要素毎の各値およびそれらの合計値）と、処理時間算出手段２７により算出されて解析結果記憶手段４６に記憶されている要処理時間（プログラム要素毎の各値およびそれらの合計値）とが表示される。
【００７７】
また、図４のＣＰＵ制約充足判定結果表示部２３０には、ＣＰＵ設定情報記憶手段４４に記憶されているＲＯＭ容量［ＫＢ］およびＲＡＭ容量［ＫＢ］、並びに処理時間［μｓ］の各制約値と、メモリ容量抽出手段２５により求められて解析結果記憶手段４６に記憶されているＲＯＭの使用メモリ容量（プログラム要素毎の各値の合計値）およびＲＡＭの使用メモリ容量（プログラム要素毎の各値の合計値）、並びに処理時間算出手段２７により算出されて解析結果記憶手段４６に記憶されている要処理時間（プログラム要素毎の各値の合計値）と、求めたＲＯＭおよびＲＡＭの各使用メモリ容量、並びに要処理時間についての各制約値に対する比率（パーセンテージ）と、それぞれの判定結果（１００％以内であれば［ＯＫ］、１００％を超えると「ＮＧ」）とが表示される。
【００７８】
図４の総合判定結果表示部２４０には、ＲＯＭ容量、ＲＡＭ容量、処理時間のすべてについての判定結果が「ＯＫ」となった場合に「ＯＫ」とし、いずれかの判定結果が「ＮＧ」となった場合に「ＮＧ」とする総合判定結果が表示される。
【００７９】
図４の例では、ＲＯＭ容量については、制約値４０００［ｂｙｔｅ］に対し、求めた使用メモリ容量が３４００［ｂｙｔｅ］であるから、比率（パーセンテージ）は、３４００÷４０００＝８５％となり、判定結果は「ＯＫ」となっている。また、ＲＡＭ容量については、制約値１００［ｂｙｔｅ］に対し、求めた使用メモリ容量が９０［ｂｙｔｅ］であるから、比率（パーセンテージ）は、９０÷１００＝９０％となり、判定結果は「ＯＫ」となっている。さらに、処理時間については、制約値４．０００［μｓ］に対し、求めた要処理時間が４．４００［μｓ］であるから、比率（パーセンテージ）は、４．４００÷４．０００＝１１０％となり、判定結果は「ＮＧ」となっている。従って、処理時間の判定結果が「ＮＧ」なので、総合判定結果は「ＮＧ」となっている。
【００８０】
その後、プログラマは、図４のコンパイル結果の表示画面２００を参照し、総合判定結果が「ＯＫ」か「ＮＧ」かを確認する（図２のステップＳ６）。ここで、総合判定結果が「ＯＫ」であった場合には、ＲＯＭ容量、ＲＡＭ容量、処理時間のすべてが各制約値の範囲内であるため、組込み機器用ソフトウェアの作成支援処理を終了する（図２のステップＳ１０）。
【００８１】
一方、図２のステップＳ６で、総合判定結果が「ＮＧ」であった場合には、プログラマは、図４のコンパイル結果の表示画面２００の上部のメニューの中の「コンパイル」ボタン１０５を入力装置５０により押下操作する。すると、コンパイルウィンドウ１２０（図３の場合と同様）が表示されるので、プログラマが、このコンパイルウィンドウ１２０において、「コンパイル設定  全設定結果一覧表」ボタン１２４を入力装置５０により押下操作すると、コンパイル結果一覧表出力手段３０により、コンパイル手段２４に対し、標準のコンパイル設定と、メモリ容量最適化のコンパイル設定と、処理時間最適化のコンパイル設定との全設定でのコンパイル処理を実行させる指令を出す。そして、コンパイル結果一覧表出力手段３０からの指令を受けたコンパイル手段２４により、全設定でのコンパイル処理を実行し、得られた各設定でのオブジェクトファイルを、オブジェクトファイル記憶手段４５に記憶させる（図２のステップＳ７）。
【００８２】
さらに、全設定でのコンパイル処理の後に、コンパイル結果一覧表出力手段３０により、メモリ容量抽出手段２５、総実行クロック数算出手段２６、処理時間算出手段２７に対し、各コンパイル設定について、ブロック図を構成するプログラム要素毎に、ＲＯＭの使用メモリ容量、ＲＡＭの使用メモリ容量、総実行クロック数、要処理時間を求める処理を実行させる指令を出す。そして、コンパイル結果一覧表出力手段３０からの指令を受けたメモリ容量抽出手段２５、総実行クロック数算出手段２６、処理時間算出手段２７により、各コンパイル設定でそれぞれ作成されてオブジェクトファイル記憶手段４５に記憶されている各オブジェクトファイルから、ブロック図を構成するプログラム要素毎に、ＲＯＭの使用メモリ容量、ＲＡＭの使用メモリ容量、総実行クロック数、要処理時間を求める処理を実行し、各コンパイル設定について得られた、ＲＯＭの使用メモリ容量、ＲＡＭの使用メモリ容量、総実行クロック数、要処理時間のそれぞれについてのプログラム要素毎の各値およびそれらの合計値（プログラム全体の値）を、解析結果記憶手段４６に記憶させる（図２のステップＳ７）。
【００８３】
そして、コンパイル結果一覧表出力手段３０により、解析結果記憶手段４６に記憶されたこれらの全設定でのコンパイル結果を、図５に示すように、表示装置６０の画面上に表示する（図２のステップＳ７）。図５には、「標準」、「メモリ容量最適化」、「処理時間最適化」の全設定でのコンパイル結果一覧表画面３００が示されている。
【００８４】
図５の全設定でのコンパイル結果一覧表画面３００の上部には、図３の場合と同様に各ボタン１０１〜１０６を含むメニューが設けられ、このメニューの下側には、ブロック図が表示されるブロック図表示部３１０が設けられ、さらにその下側には、各コンパイル設定についてプログラム要素毎にコンパイル結果を示す全設定コンパイル結果表示部３２０が設けられている。
【００８５】
続いて、プログラマは、図５の全設定でのコンパイル結果一覧表画面３００を参照して内容を確認し、上部のメニューの中の「コンパイル」ボタン１０５を入力装置５０により押下操作する。すると、コンパイルウィンドウ１２０（図３の場合と同様）が表示されるので、プログラマが、このコンパイルウィンドウ１２０において、「最適化コンパイル実行」ボタン１２５を入力装置５０により押下操作すると、組合せ判断手段３１により、解析結果記憶手段４６に記憶されたＲＯＭの使用メモリ容量（各コンパイル設定についてのプログラム要素毎の値）およびＲＡＭの使用メモリ容量（各コンパイル設定についてのプログラム要素毎の値）、並びに要処理時間（各コンパイル設定についてのプログラム要素毎の値）を用いて、ブロック図を構成するプログラム要素毎に、各コンパイル設定でのコンパイル結果を選択して得られる複数の組合せについて、ブロック図の全体（すなわち、プログラム全体）としてのＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量、並びに要処理時間を求め、求めたブロック図の全体（プログラム全体）としてのＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量、並びに要処理時間が、それぞれＣＰＵ設定情報記憶手段４４に記憶されているＲＯＭ容量［ＫＢ］の制約値、ＲＡＭ容量［ＫＢ］の制約値、処理時間［μｓ］の制約値の範囲内であるか否かを判断することにより、ＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量、並びに要処理時間のすべてが各制約値の範囲内に収まる組合せ（ＣＰＵ制約を満たす組合せ）が存在するか否かを判断する（図２のステップＳ８）。
【００８６】
図５の例では、機能Ａ，Ｂ，Ｃを有する３つのプログラム要素（ＩＤ：Ｆ００１、ＩＤ：Ｆ００２、ＩＤ：Ｆ００３）があり、これらのプログラム要素のそれぞれについて、「標準」、「メモリ容量最適化」、「処理時間最適化」という３つのコンパイル設定の選択（コンパイラオプションの設定）が可能であるため、全部で３×３×３＝２７通りの組合せがある。例えば、機能Ａを有するプログラム要素（ＩＤ：Ｆ００１）については、「処理時間最適化」のコンパイル設定を選択し、機能Ｂ，Ｃを有するプログラム要素（ＩＤ：Ｆ００２、ＩＤ：Ｆ００３）については、「標準」のコンパイル設定を選択する組合せの場合には、ブロック図の全体（すなわち、プログラム全体）としてのＲＯＭの使用メモリ容量は、１２００＋８００＋１６００＝３６００［ｂｙｔｅ］となり、ＲＡＭの使用メモリ容量は、５０＋２０＋２０＝９０［ｂｙｔｅ］となり、要処理時間は、１．６００＋１．６００＋０．８００＝４．０００［μｓ］となる。従って、このようにして各組合せについて、ブロック図の全体（すなわち、プログラム全体）としてのＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量、並びに要処理時間を求め、すべてが各制約値の範囲内に収まる組合せが存在するか否かを判断する。
【００８７】
ここで、組合せ判断手段３１により、ＲＯＭの使用メモリ容量およびＲＡＭの使用メモリ容量、並びに要処理時間のすべてがそれぞれの制約値の範囲内に収まる組合せが存在しないと判断した場合には、表示装置６０の画面上に、その旨の表示が行われるので、前述したステップＳ２の処理に戻り、プログラマは、ブロック図の作成作業（修正作業）からやり直す。
【００８８】
一方、組合せ判断手段３１により、ＣＰＵ制約を満たす組合せが１組だけ存在すると判断した場合には、その組合せのコンパイル設定（コンパイラオプションの設定）に関する情報（各プログラム要素に、いずれのコンパイル設定を適用するかという情報）をコンパイル手段２４に伝達し、コンパイル手段２４により、その組合せのコンパイル設定で、コンパイル処理を実行する（図２のステップＳ９）。また、組合せ判断手段３１により、ＣＰＵ制約を満たす組合せが複数組存在すると判断した場合には、これらの各組合せについて、ＣＰＵ設定情報記憶手段４４に記憶されているＲＯＭ容量［ＫＢ］の制約値に対するブロック図の全体（プログラム全体）としてのＲＯＭの使用メモリ容量の比率（パーセンテージ）と、ＣＰＵ設定情報記憶手段４４に記憶されているＲＡＭ容量［ＫＢ］の制約値に対するブロック図の全体（プログラム全体）としてのＲＡＭの使用メモリ容量の比率（パーセンテージ）と、ＣＰＵ設定情報記憶手段４４に記憶されている処理時間［μｓ］の制約値に対するブロック図の全体（プログラム全体）としての要処理時間の比率（パーセンテージ）とを求め、これらの３つの比率（パーセンテージ）の和若しくは積、またはこれらの３つの比率（パーセンテージ）を用いたその他の指標値を算出し、算出した指標値の大小により、最適な組合せを決定し、その最適な組合せのコンパイル設定（コンパイラオプションの設定）に関する情報をコンパイル手段２４に伝達し、コンパイル手段２４により、その最適な組合せのコンパイル設定で、コンパイル処理を実行する（図２のステップＳ９）。
【００８９】
さらに、ＣＰＵ制約を満たす組合せが存在する場合には、その組合せのコンパイル設定でコンパイルして得られたオブジェクトファイルを用いて、最初のコンパイル時の場合（前述したステップＳ５の場合）と同様にして、メモリ容量抽出手段２５によるＲＯＭおよびＲＡＭの使用メモリ容量の抽出、総実行クロック数算出手段２６による総実行クロック数の算出、処理時間算出手段２７による要処理時間の算出、ＣＰＵ制約充足判断手段２８によるＣＰＵ制約の充足判断、コンパイル結果出力手段２９によるコンパイル結果の出力の各処理を実行し（図２のステップＳ９）、組込み機器用ソフトウェアの作成支援処理を終了する（図２のステップＳ１０）。
【００９０】
図６には、ステップＳ９の最適化コンパイル実行後のコンパイル結果の表示画面４００が、前述した図４のコンパイル結果の表示画面１００と同じフォームで示されている。図６の例は、機能Ａを有するプログラム要素（ＩＤ：Ｆ００１）については、「処理時間最適化」のコンパイル設定を選択し、機能Ｂ，Ｃを有するプログラム要素（ＩＤ：Ｆ００２、ＩＤ：Ｆ００３）については、「標準」のコンパイル設定を選択した組合せが、ＣＰＵ制約を満たす唯一の組合せ、またはＣＰＵ制約を満たす複数の組合せのうちの最適な組合せであると判断され、その組合せのコンパイル設定でのコンパイル結果が表示された場合であり、総合判定結果は「ＯＫ」となっている。
【００９１】
このような本実施形態によれば、次のような効果がある。すなわち、組込み機器用ソフトウェア作成支援装置１０は、メモリ容量抽出手段２５、総実行クロック数算出手段２６、処理時間算出手段２７、コンパイル結果出力手段２９を備えているので、オブジェクトファイルからＲＯＭおよびＲＡＭの使用メモリ容量を求めるとともに、オブジェクトファイルから抽出した機械語の各命令の実行クロック数の合計（総実行クロック数）とターゲットＣＰＵの動作クロック（クロック周波数）とを用いて要処理時間を算出し、これらのＲＯＭおよびＲＡＭの使用メモリ容量、並びに要処理時間を画面表示することができる（図４参照）。このため、プログラマは、これらの情報を参照し、それぞれが制約値の範囲内か否かを容易に判断することができ、しかもコンパイルした時点で判断することができるので、ソフトウェア開発の効率化を図ることができる。
【００９２】
また、メモリ容量抽出手段２５によりオブジェクトファイルからＲＯＭおよびＲＡＭの使用メモリ容量を求めるので、前述した特許文献２に記載された技術のような不完全なメモリ容量の管理ではなく、ＣＰＵでアクセスして使用するメモリ容量の全体を把握することができる。このため、ＣＰＵで使用可能なメモリ容量を最大限に活かしたソフトウェア設計を行うことができ、要処理時間の把握と合わせることで、最適なソフトウェアの設計を行うことができる。
【００９３】
さらに、組込み機器用ソフトウェア作成支援装置１０は、ＣＰＵ制約充足判断手段２８を備え、その判断結果は、コンパイル結果出力手段２９により画面表示される構成となっているので（図４参照）、プログラマは、ＲＯＭおよびＲＡＭの使用メモリ容量、並びに要処理時間が、それぞれの制約値を満たすか否かを容易に確認することができる。このため、プログラマの作業負担を軽減することができる。
【００９４】
また、組込み機器用ソフトウェア作成支援装置１０は、コンパイル結果一覧表出力手段３０を備えているので、通常行われる標準のコンパイル設定に加え、メモリ容量を最適化するコンパイル設定や、処理時間を最適化するコンパイル設定でそれぞれコンパイルを行い、これらのコンパイル結果を、ブロック図を構成するプログラム要素毎に、画面表示することができる（図５参照）。このため、プログラマは、これらの情報を参照することで、最適なソフトウェア設計を、より一層容易に行うことができる。
【００９５】
さらに、組込み機器用ソフトウェア作成支援装置１０は、組合せ判断手段３１を備えているので、ＲＯＭおよびＲＡＭの使用メモリ容量、並びに要処理時間が、それぞれ制約値の範囲内に収まる組合せを見つけ、その組合せでコンパイルする作業を容易に行うことができるため、プログラマの作業負担を、より一層軽減することができる。
【００９６】
そして、組合せ判断手段３１は、ＲＯＭ容量、ＲＡＭ容量、処理時間についての３つの比率の和若しくは積またはその他の指標値を用いて最適な組合せ（コンパイルオプションの設定）を決定する構成とされているので、最適なソフトウェア設計を、より一層容易に実現することができ、プログラマの作業負担を、更により一層軽減することができる。
【００９７】
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
【００９８】
例えば、前記実施形態では、図２のステップＳ５の処理（最初のコンパイル時の処理）で、「標準」、「メモリ容量最適化」、「処理時間最適化」のうちプログラマが選択した１つのコンパイル設定、またはデフォルトのコンパイル設定でのコンパイルが実行され、ステップＳ６で、最初のコンパイルではＣＰＵ制約を満たさないと判断された場合に初めて、ステップＳ７で、全設定でのコンパイルが実行される構成とされていたが、これに限定されるものではなく、ステップＳ５で、予め全設定でのコンパイルを実行し、得られた全設定でのコンパイル結果（ＲＯＭおよびＲＡＭの使用メモリ容量、総実行クロック数、並びに要処理時間）を解析結果記憶手段４６に記憶しておき、ステップＳ７では、既に解析結果記憶手段４６に記憶されている全設定でのコンパイル結果を読み込むようにしてもよい。
【００９９】
また、前記実施形態では、図２のステップＳ８の処理で、プログラマが、図５の全設定でのコンパイル結果一覧表画面３００を参照して内容を確認した後に、コンパイルウィンドウ１２０において「最適化コンパイル実行」ボタン１２５を押下操作し、組合せ判断手段３１によるＣＰＵ制約を満たす組合せがあるか否かの判断処理、およびＣＰＵ制約を満たす複数の組合せがあった場合における最適な組合せの決定処理に移行するようになっていたが、これに限定されるものではなく、プログラマが、図５の全設定でのコンパイル結果一覧表画面３００を参照し、ＣＰＵ制約を満たす組合せを自ら見つけ、見つけた組合せのコンパイル設定に関する情報（各プログラム要素に、いずれのコンパイル設定を適用するかの情報）を入力指定し、その入力指定された組合せのコンパイル設定に関する情報をコンパイル手段２４に伝達し、コンパイル手段２４により、その入力指定された組合せのコンパイル設定で、コンパイル処理を実行するようにしてもよい。また、組合せ判断手段３１によるＣＰＵ制約を満たす組合せがあるか否かの判断処理を行った後に、ＣＰＵ制約を満たす組合せを画面表示し、プログラマが、その中から採用する組合せを選択し、選択された組合せのコンパイル設定に関する情報をコンパイル手段２４に伝達し、コンパイル手段２４により、その選択された組合せのコンパイル設定で、コンパイル処理を実行するようにしてもよい。但し、プログラマの作業負担の軽減の観点からは、組合せ判断手段３１により自動的に判断処理を行うことが好ましく、さらには、組合せ判断手段３１により自動的に最適な組合せの決定処理を行うことが好ましい。
【産業上の利用可能性】
【０１００】
以上のように、本発明の組込み機器用ソフトウェア作成支援装置およびその方法、並びにプログラムは、例えば、モータの駆動制御用のインバータ等の産業用機器に組み込んで使用するソフトウェアを作成する場合に用いるのに適している。
【符号の説明】
【０１０１】
２４  コンパイル手段
２５  メモリ容量抽出手段
２６  総実行クロック数算出手段
２７  処理時間算出手段
２８  ＣＰＵ制約充足判断手段
２９  コンパイル結果出力手段
３０  コンパイル結果一覧表出力手段
３１  組合せ判断手段
７１  プログラム要素
７３  ブロック図
【図１】
0005867088.tif 000002
【図２】
0005867088.tif 000003
【図３】
0005867088.tif 000004
【図４】
0005867088.tif 000005
【図５】
0005867088.tif 000006
【図６】
0005867088.tif 000007