マイクロコンピュータのROMに格納される組み込みプログラムのROM配置と前記組み込みプログラムをRAMへコピーするときのRAM配置とを決定するコンパイラ装置であって、ソースプログラムおよびRAM実行するファンクション情報からコマンドで使用されるRAM実行するファンクション情報一覧を作成して該ファンクションのソースプログラムをコンパイルしたオブジェクトよりファンクションサイズを決定し、複数のコマンドに共通で使用されるファンクションの使用頻度を求めて共通で使用するファンクション、特定のコマンドのみで使用するファンクションの順に空き領域ができないようにRAM配置の構成を決定するコンパイラ部と、前記RAM配置構成からRAM配置アドレスを決定してファンクションのROM配置アドレスを決定し、コマンド管理リストとアドレス管理リストを作成してソースプログラムを含めた前記リスト類よりROMイメージを作成するリンカ部とを有することを特徴とするコンパイラ装置。請求項1に記載のコンパイラ装置において、前記コンパイラ部は、コマンドで使用されるRAM実行するファンクション情報の一覧を作成するファンクション判定部と、ファンクションサイズを決定するファンクションサイズ決定部と、共通で使用するファンクション、コマンドのみで使用するファンクションの順に空き領域ができないようにRAMの配置を決定するRAM配置構成決定部とを有することを特徴とするコンパイラ装置。請求項1または2に記載のコンパイラ装置において、前記リンカ部は、ROM配置アドレスとRAM配置アドレスからコマンド管理リストとアドレス管理リストとを作成する管理リスト作成部と、ソースプログラム、コマンド管理リスト、アドレス管理リストからROMイメージを作成するROMイメージ出力部とを有することを特徴とするコンパイラ装置。請求項3に記載のコンパイラ装置において、前記管理リスト作成部は、複数のコマンドで使用するファンクション番号と前記ファンクション番号と同じ数のRAMへのジャンプ先アドレスとを関連づけて前記コマンド管理リストを作成することを特徴とするコンパイラ装置。請求項4に記載のコンパイラ装置において、前記管理リスト作成部は、コピー元アドレスとコピー先アドレスとコピーサイズとを1組として、全ファンクション分の複数リストを作成して前記アドレス管理リストを作成することを特徴とするコンパイラ装置。マイクロコンピュータのROMに格納される組み込みプログラムのROM配置と前記組み込みプログラムをRAMへコピーするときのRAM配置とを決定するコンパイラ装置の動作方法であって、コマンドで使用されるRAM実行するファンクション情報の一覧を作成するステップと、ファンクションサイズを決定するステップと、共通で使用するファンクション、コマンドのみで使用するファンクションの順に空き領域ができないようにRAMの配置を決定するステップと、ROM/RAM配置アドレスからコマンド管理リストとアドレス管理リストとを作成するステップと、ソースプログラム、コマンド管理リスト、アドレス管理リストからROMイメージを作成するステップとを有すること特徴とするコンパイラ装置の動作方法。上述のように、ROM化によってRAMへ展開される組み込みプログラムは、コマンド毎にROMへ格納されている。組み込みプログラムがコマンドごとに用意されている場合、同じ動作をするプログラムが、ROMに複数存在してしまうことがある。そのような場合は、ROMが占有する面積が大きくなってしまう。また、従来の組み込みシステムでは、RAMで実行する必要がないプログラムもRAMへ展開しているために、確保しておくべきRAMの面積が大きくなり、製品の価格が上昇してしまうことがあった。特許文献1に記載の技術において、組み込みプログラムには、各コマンドのみで使用するファンクション以下、専用ファンクションと記載する場合もあると、共通で使用するファンクション以下、共用ファンクションと記載する場合もあるとが含まれている。プログラム配置時において、専用ファンクション、共用ファンクションの順で配置され、かつ共用ファンクションは、各コマンドで同じアドレスに配置されている。この場合において、共用ファンクションの配置は、専用ファンクションのプログラムサイズが最大になるファンクションに配置アドレスを合わせる必要がある。RAMに展開してから実行するファンクションのRAM配置を決定するステップS5際に、共用ファンクションの一部を使用しないコマンドでは、専用ファンクションと共用ファンクションの間にファンクションが配置されない領域以下、空き領域と記載する場合もあるができてしまう。そのため、組み込みプログラムのRAM使用量が増加するという問題がある。マイクロコンピュータのROMに格納される組み込みプログラムのROM配置と組み込みプログラムをRAMへコピーするときのRAM配置とを決定するコンパイラ装置を以下のように構成する。そのコンパイラ装置は、コンパイラ部と、リンカ部とを備えているものとする。ここで、コンパイラ部は、ソースプログラムおよびRAM実行するファンクション情報からコマンドで使用されるRAM実行するファンクション情報一覧を作成して該ファンクションのソースプログラムをコンパイルしたオブジェクトよりファンクションサイズを決定し、複数のコマンドに共通で使用されるファンクションの使用頻度を求めて共通で使用するファンクション、特定のコマンドのみで使用するファンクションの順に空き領域ができないようにRAM配置の構成を決定する。リンカ部は、RAM配置構成からRAM配置アドレスを決定してファンクションのROM配置アドレスを決定し、コマンド管理リストとアドレス管理リストを作成してソースプログラムを含めたリスト類よりROMイメージを作成する。本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、組み込みプログラムのRAM使用量の増加を抑制することが可能となる。以下、本発明の実施の形態を図面に基づいて説明する。なお、実施の形態を説明するための図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。図5は、本実施形態のコンパイラ装置1の構成を例示するブロック図である。本実施形態のコンパイラ装置1は、コンパイラ部2とリンカ部3とを備えている。コンパイラ部2は、字句構文解析部11と、中間語作成部12と、最適化部13と、コード生成部14と、ファンクション判定部15と、ファンクションサイズ決定部16と、RAM配置構成決定部17とを備えている。字句構文解析部11は、記憶装置に記憶されているソースプログラム原始プログラム4の字句構文解析を行なう。中間語作成部12は、ソースプログラム4を中間言語で作成する。最適化部13は、変数名表、定数表などの各種情報に基づいて、コードの最適化を行う。コード生成部14は、オブジェクトプログラムを生成する。ファンクション判定部15は、ソースプログラム4およびRAM実行するファンクション情報5から、各コマンドで使用されるRAM実行するファンクションの一覧情報を作成する。ファンクションサイズ決定部16は、作成したRAM実行するファンクション情報と、RAM実行するファンクションのソースプログラムをコンパイルしたオブジェクトより、各ファンクションサイズを決定する。RAM配置構成決定部17は、各コマンドで使用するファンクションから、各コマンドのみで使用されるファンクションと共通で使用するファンクションに分類する。また、RAM配置構成決定部17は、共通で使用するファンクションの使用頻度を求め、共通で使用するファンクションの使用頻度情報、各ファンクションのサイズにより共通で使用するファンクション、各コマンドのみで使用するファンクションの順に空き領域ができないようにRAMの配置を決定する。リンカ部3は、コード配置部21と、管理リスト作成部22と、ROMイメージ出力部23とを備えている。コード配置部21は、作成した複数のオブジェクト6をメモリ上に配置するための割り付けを行う。管理リスト作成部22は、RAM配置構成からRAM配置アドレスを決定する。また、管理リスト作成部22は、各ファンクションのROM配置アドレスを決定する。そして、管理リスト作成部22は、ROM配置アドレスとRAM配置アドレスとから、コマンド管理リスト8とアドレス管理リスト9を作成する。ROMイメージ出力部23は、決定したROM配置アドレスとRAM配置アドレスをソースプログラムソースプログラム4へフィードバックする。また、ROMイメージ出力部23は、コマンド管理リスト8、アドレス管理リスト9およびソースプログラムソースプログラム4から、ROMイメージを作成する。図6A、図6Bおよび図6Cは、コンパイラ部2のファンクション判定部15、ファンクションサイズ決定部16およびRAM配置構成決定部17によって生成される各情報の構成を例示するブロック図である。以下の説明においては、本願発明の理解を容易にするために、処理対象のコマンドが、コマンドA、コマンドBおよびコマンドCの3つである場合を例示する。図6Aは、ファンクション判定部15によって生成される使用するファンクションの一覧情報F601の構成を例示している。図6Bは、ファンクションサイズ決定部16によって生成されるファンクションサイズ情報F602の構成を例示している。図6Cは、RAM配置構成決定部17によって生成される専用ファンクション一覧情報F603、共用ファンクション一覧情報F604および共用ファンクション使用頻度情報F605の構成を例示している。図6Aに例示されているように、使用するファンクションの一覧情報F601は、コマンド毎の使用するファンクション番号一覧であり、コマンドごとの使用するファンクションがグループ化されている。使用するファンクションの一覧情報F601は、第1ファンクショングループF601-1と、第2ファンクショングループF601-2と、第3ファンクショングループF601-3とを含んでいる。例えば、第1ファンクショングループF601-1は、コマンドAで使用するファンクション番号のグループであり、ファンクション1、ファンクション4、ファンクション5を含んでいる。図6Bに例示されているように、ファンクションサイズ情報F602は、各ファンクションのサイズをファンクション番号で参照できるように構成されている。図6Cに例示されているように、専用ファンクション一覧情報F603は、各コマンドのみで使用するファンクション番号の一覧であり、第1専用ファンクションF603-1と、第2専用ファンクションF603-2と、第3専用ファンクションF603-3を含んでいる。専用ファンクション一覧情報F603によって、例えば、ファンクション番号が1である第1専用ファンクションF603-1ファンクション1は、コマンドAでのみ使用されるファンクションであることが定義される。共用ファンクション一覧情報F604は、複数のコマンドで共通に使用されるファンクションの一覧であり、第1共用ファンクションF604-1と、第2共用ファンクションF604-2と、第3共用ファンクションF604-3とを含んでいる。共用ファンクション一覧情報F604によって、例えば、ファンクション番号として4が付されている第1共用ファンクションF604-1ファンクション4は、複数のコマンドで共通に使用されるファンクションであることが定義される。共用ファンクション使用頻度情報F605は、共用ファンクション一覧情報F604の各ファンクションに対して、全コマンド中で使用される回数の一覧である。共用ファンクション使用頻度情報F605は、第1使用頻度情報F605-1と、第2使用頻度情報F605-2と、第3使用頻度情報F605-3とを含んでいる。第1使用頻度情報F605-1は、ファンクション4の使用回数情報を示している。第2使用頻度情報F605-2は、ファンクション5の使用回数情報を示している。第3使用頻度情報F605-3は、ファンクション6の使用回数情報を示している。図7は、コマンド管理リスト8の構成を例示するブロック図である。コマンド管理リスト8は、各コマンドで使用するファンクション番号のグループファンクション番号情報L1と、RAMへのジャンプ先アドレスのグループジャンプ先アドレス情報L2とを備えている。ファンクション番号情報L1には、複数のコマンドの各々の名称と、そのコマンドで使用するファンクション番号とが関連付けられている。ファンクション番号情報L1は、コマンドA用ファンクション番号情報L1-1と、コマンドB用ファンクション番号情報L1-2と、コマンドC用ファンクション番号情報L1-3とを含んでいる。コマンドA用ファンクション番号情報L1-1は、コマンドAで使用するファンクション番号を示している。コマンドB用ファンクション番号情報L1-2はコマンドBで使用するファンクション番号を示している。コマンドC用ファンクション番号情報L1-3は、コマンドCで使用するファンクション番号を示している。ジャンプ先アドレス情報L2には、複数のコマンドの各々の名称と、各コマンドのRAMへのジャンプ先アドレスとが関連付けられている。ジャンプ先アドレス情報L2は、第1ジャンプ先アドレス情報L2-1と、第2ジャンプ先アドレス情報L2-2と、第3ジャンプ先アドレス情報L2-3とを含んでいる。第1ジャンプ先アドレス情報L2-1は、コマンドAのRAMジャンプ先アドレスを示している。コマンドB用ファンクション番号情報L1-2は、コマンドBのRAMジャンプ先アドレスを示している。コマンドC用ファンクション番号情報L1-3は、コマンドCのRAMジャンプ先アドレスを示している。図8は、本実施形態のアドレス管理リスト9の構成を例示するブロック図である。アドレス管理リスト9は、コピー元アドレスグループ9-1と、コピー先アドレスグループ9-2と、コピーサイズグループ9-3とを備えている。アドレス管理リスト9は、複数のファンクションのうちの一つを特定したときに、そのファンクションに対応するコピー元アドレスと、コピー先アドレスと、コピーサイズとの組を抽出することができるように構成されている。アドレス管理リスト9には、各ファンクションに対応して、複数の組が備えられている。図9は、本実施形態のコンパイラ装置1における組み込みプログラムの作成手順を例示するフローチャートである。ステップS101において、ファンクション判定部15は、ソースプログラムとRAMで実行するファンクションの抽出結果RAM実行するファンクション情報5を読み込む。ステップS102において、RAM配置構成決定部17は、そのRAM実行するファンクション情報5に基づいて、RAMに配置する構成を決定する。ステップS103において、管理リスト作成部22は、その決定したRAMの配置順に、各ファンクションのRAM配置アドレスを決定する。また、ROM配置アドレスを決定するために、全コマンド数から、後段のステップで作成されるコマンド管理リスト8のサイズを求める。同様に、全ファンクション数から、後段のステップで作成されるアドレス管理リスト9のサイズを求める。そして、コマンド管理リスト8を配置するアドレス、アドレス管理リスト9を配置するアドレス、および各ファンクションを配置するアドレスを順に特定してROM配置アドレスを決定する。ステップS104において、管理リスト作成部22は、各コマンドで使用するファンクション番号のグループファンクション番号情報L1と、RAMへのジャンプ先アドレスのグループジャンプ先アドレス情報L2とで構成されるコマンド管理リスト8を作成する。また、管理リスト作成部22は、各ファンクションの各々のコピー元アドレスを示すコピー元アドレスグループ9-1と、各ファンクションの各々のコピー先アドレスを示すコピー先アドレスグループ9-2と、各ファンクションの各々のコピーサイズを示すコピーサイズグループ9-3とを備えるアドレス管理リスト9を構成する。換言すると、管理リスト作成部22は、特定のファンクションに対し、コピー元アドレス、コピー先アドレスおよびコピーサイズが組となるようにアドレス管理リスト9を構成し、そのアドレス管理リスト9が、全ファンクション分の複数組のリストとなるようにアドレス管理リスト9を構成する。ステップS105において、ROMイメージ出力部23は、定義したRAMアドレスでファンクションが実行できるように、アドレス情報をファンクションへのアクセス先アドレスへ反映させてフィードバックする。その後ステップS106において、ROMイメージ出力部23は、ソースプログラムソースプログラム4、コマンド管理リスト8、およびアドレス管理リスト9からROMイメージ7を作成する。上述の図6A~図6Cに示されるファンクションの情報は、ソースプログラムソースプログラム4と、RAMで実行するファンクションの抽出結果RAM実行するファンクション情報5に基づいて生成される。具体的には、使用するファンクションの一覧情報F601と、ファンクションサイズ情報F602と、専用ファンクション一覧情報F603と、共用ファンクション一覧情報F604と、共用ファンクション使用頻度情報F605とは、上述のステップS102において作成される。その作成されたファンクション情報は、コマンド管理リスト8、アドレス管理リスト9を作成する時に用いられる。上述の図7に例示されるコマンド管理リスト8のファンクション番号情報L1を作成する場合には、使用するファンクションの一覧情報F601が参照される。例えば、第1ファンクショングループF601-1が参照されて、コマンド管理リスト8のコマンドA用ファンクション番号情報L1-1が構成される。また、各ファンクションのRAM配置アドレス決定後、ステップS104では、専用ファンクション一覧情報F603のRAM配置アドレスに基づいて、コマンド管理リスト8のジャンプ先アドレス情報L2が構成される。例えば、第1専用ファンクションF603-1のRAM配置アドレスが参照されて、コマンド管理リスト8の第1ジャンプ先アドレス情報L2-1が構成される。本実施形態のコマンド管理リスト8とアドレス管理リスト9は、マイクロコンピュータに保持される。そのマイクロコンピュータに備えられたCPUは、ROM化を行うときに、コマンド管理リスト8とアドレス管理リスト9とに示される情報に基づいて、ROMから読み出したデータをRAMに展開する。上述の図8のアドレス管理リスト9は、ステップS104において構成される。各ファンクションのROM配置アドレスがコピー元アドレスとして、アドレス管理リスト9に格納される。また、RAM配置アドレスがコピー先アドレスとして、アドレス管理リスト9に格納される。そして、ファンクションサイズ情報F602に示される情報が、コピーサイズとして、アドレス管理リスト9に格納される。図10A、図10Bは、本実施形態のコンパイラ装置1における、組み込みプログラムからファンクションを抽出して、RAM配置を決定する手順を示すフローチャートである。ステップS201において、調査対象のファンクションを特定する。ステップS202において、ファンクション判定部15は、全コマンドに対して調査対象のファンクションがコマンドで使用されているかを判断する。その判断の結果、調査対象のファンクションがコマンドで使用されている場合には、処理はステップS203に進み、使用されていない場合には、処理はステップS204に進む。ステップS203において、調査対象のファンクションがコマンドで使用されているので、使用しているコマンドとファンクションとの関連を使用するファンクションの一覧情報F601へ登録する。ステップS204において、ファンクションサイズ決定部16は、各ファンクションのプログラムサイズを決定して、ファンクションサイズ情報F602を作成する。ステップS205において、RAM配置構成決定部17は、対象ファンクションが複数のコマンドで使用されている否かの判断を実行する。その判断の結果、対象ファンクションが複数のコマンドで使用されている場合は。処理はステップS206に進み、対象ファンクションが複数のコマンドで使用されていない場合は、処理はステップS207に進む。ステップS206において、対象ファンクションが複数のコマンドで使用されているので、複数のコマンドで使用されているファンクションを共用ファンクション一覧情報F604へ登録する。また、共用ファンクションの使用頻度を求め、対象ファンクションの共用ファンクション使用頻度情報F605を作成する。ステップS207において、対象ファンクションが各コマンドのみで使用されているので、そのファンクションを専用ファンクション一覧情報F603へ登録する。ステップS208において、RAM配置構成決定部17は、共用ファンクション一覧情報F604を参照し、下位アドレスから対象ファンクションのサイズで配置可能な空き領域があるかを判断する。その判断の結果、配置可能な空き領域がない場合は、処理はステップS210に進み、配置可能な空き領域がある場合は、処理はステップS209に進む。ステップS210において、配置可能な空き領域がないので、配置済みの後ろへファンクションの配置を決定し、処理はステップS212へ進む。ステップS209において、対象ファンクションの配置は、使用する各コマンドで同じか否かの判断を実行する。その判断の結果、対象ファンクションの配置が使用する各コマンドで同じ場合は、処理はステップS211に進み、その条件が異なる場合は、処理はステップS208に戻る。ステップS211において、RAM配置構成決定部17は、空き領域にファンクションの配置を決定する。ステップS212において、RAM配置構成決定部17は、専用ファンクション一覧情報F603を参照して、下位アドレスから対象ファンクションのサイズで配置可能な空き領域があるかを判断する。その判断の結果、配置可能な空き領域がある場合は、処理はステップS213に進み、空き領域がない場合は、処理はステップS214に進む。ステップS213において、配置可能な空き領域があるので、空き領域にファンクションの配置を決定して処理を終了する。ステップS214において、配置可能な空き領域がないので、配置済みの後ろへファンクションの配置を決定して処理を終了する。以下に、上述の動作を実行した場合のファンクションの配置に関して説明を行う。図11と図12は、実際のROMとRAMとのファンクションの配置を例示するブロック図である。図11は、ファンクション2のサイズ>ファンクション5のサイズの場合の配置を例示している。また、図12は、ファンクション2のサイズ≦ファンクション5のサイズの場合の配置を例示している。上述の動作を実行する場合、共用ファンクション一覧情報F604の中で、全コマンドで使用するファンクションを最多の頻度のファンクションとし、使用頻度の高い順番にファンクションを特定していく。特定したファンクションに対して、下位アドレスから順に対象ファンクションのサイズで配置可能な空き領域が有るかを判断する。このとき、ファンクションの実体が1つなので、ファンクション間の分岐先アドレスに不具合を生じさせないようにするため、対象ファンクションの配置が、使用する各コマンドで同じかを判断して、共通で使用するファンクションのRAM配置を決定していく。図11を参照すると、ファンクション2のサイズ>ファンクション5のサイズの場合、全コマンドが使用するファンクション4を、使用頻度が最も高いファンクションとして特定する。このとき、最下位アドレスが空いていて、かつ最下位アドレスには他のファンクションが配置されていないため、そのファンクション4を、最下位アドレスを先頭とした領域ファンクション4の領域F701へ配置する。次に、ファンクション5を使用頻度の高いファンクションとして特定する。そのファンクション5を配置するために、下位アドレスから順に配置可能な領域を探す。図11に示されているように、ファンクション4の領域F701の後ろ上位側に配置可能な空き領域がある。ファンクション5をこの領域に配置した場合、使用するコマンドA、Cで同じアドレスにすることが可能となる。そのため、ファンクション4の領域F701の後ろ上位側をファンクション5の領域F705とする。次に、ファンクション6を使用頻度の高いファンクションとして特定する。ファンクション6を配置する際、最下位より配置可能な領域を検索する。コマンドBではファンクション4の領域F701の後ろ上位側に配置できる。しかし、コマンドCでは既にファンクション5がファンクション5の領域F705に配置済みである。したがって、各コマンドコマンドB、Cで同じアドレスへ配置できなくなってしまう。ファンクションは、各コマンドで同じ配置アドレスになる必要がある。そのため、次にファンクション5の領域F705の後ろ上位側を検索する。図11に示されているように、検索結果からファンクション6は、コマンドCのファンクション5の領域F705の後ろ上位側に配置する事ができる。コマンドBでも同様に配置することが可能なため、ファンクション5の領域F705の後ろ上位側をファンクション6の領域F703とする。共用ファンクションの配置を決定した後、下位アドレスから順に対象ファンクションのサイズで配置可能な空き領域が無いかを判断する。その空き領域に、専用ファンクションの配置を決定していく。例えば、図11でファンクション2の配置する時、コマンドBの配置例を参照すると、ファンクション4の領域F701とファンクション6の領域F703との間の空き領域F702のサイズは、ファンクション5の領域F705のサイズと同じなる。ファンクション2のサイズ>ファンクション5のサイズの場合、空き領域F702にファンクション2を配置することができない。したがって、ファンクション2が配置される領域として、配置済みのファンクション6の領域F703の後ろ上位側が割り当てられる。また、図12を参照すると、ファンクション2のサイズ≦ファンクション5のサイズの場合、ファンクション4の領域F701とファンクション6の領域F703との間の空き領域F702のサイズは、ファンクション5の領域F705のサイズと同じなる。したがって、図11では空き領域であった空き領域F702に、ファンクション2を配置してファンクション2の領域F704として利用することが可能となる。以上、本願発明の実施の形態を具体的に説明した。本願発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。