JPH11119981A - プログラム生成装置 - Google Patents

プログラム生成装置

Info

Publication number
JPH11119981A
JPH11119981A JP9285448A JP28544897A JPH11119981A JP H11119981 A JPH11119981 A JP H11119981A JP 9285448 A JP9285448 A JP 9285448A JP 28544897 A JP28544897 A JP 28544897A JP H11119981 A JPH11119981 A JP H11119981A
Authority
JP
Japan
Prior art keywords
file
section
executable file
information
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9285448A
Other languages
English (en)
Other versions
JP4003261B2 (ja
Inventor
Yasuhiko Yokote
靖彦 横手
Junichi Nakada
純一 中田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP28544897A priority Critical patent/JP4003261B2/ja
Priority to US09/168,043 priority patent/US6185578B1/en
Publication of JPH11119981A publication Critical patent/JPH11119981A/ja
Application granted granted Critical
Publication of JP4003261B2 publication Critical patent/JP4003261B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 実行時に一部のモジュールの削除等が可能な
ソフトウェアの開発システムに好適なプログラム生成装
置を提供する。 【解決手段】 ヘッダファイル30とソースファイル3
1をコンパイル処理部34からのコンパイル情報32と
ヘッダファイル30を用いてコンパイラ33でコンパイ
ルして生成されたオブジェクトファイル35は、リンカ
38とリンク情報37およびライブラリファイル36を
用いてリンク処理部39でリンクされて実行形式ファイ
ル40とされる。複合実行形式ファイル作成部42は、
複合実行形式ファイル情報41からの複合実行形式ファ
イル形式ファイル43に含めるべき実行形式ファイル4
0についての情報に基づき、初期化プログラム78と複
数の実行形式ファイル40が入力され、1つの複合実行
形式ファイル形式ファイル43を出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、機器への組込み用
のソフトウェア開発システムなどに好適なプログラム生
成装置に関する。
【0002】
【従来の技術】近年、各種の電子機器にマイクロプロセ
ッサとソフトウェアを機器に組み込んで、ソフトウェア
による制御が行われることが多い。また、電話回線など
に接続されて、ネットワーク上で通信を行う機能を有す
る種々の電子機器が開発されており、さらには、ネット
ワークを経由して機器を制御するためのソフトウェアモ
ジュールを送受信する機能を有する機器も開発されつつ
ある。
【0003】このような機器に対応した組込み用ソフト
ウェアでは、通信やソフトウェアモジュールの送受信
を、基本ソフトウェアであるオペレーティングシステム
(OS)のレベルからサポートすることが考えられてい
る。
【0004】一般の組込み用OSでは、システムモジュ
ールは、ライブラリを主体として配布されている。ハー
ドウェアに依存する一部のファイルは、ソースファイル
として提供されることもある。
【0005】プログラムの開発工程でプログラムの機能
を拡張する場合には、ライブラリの追加により対応が図
られる。システムファイルは、ライブラリであるため、
ユーザーが開発したプログラムと一緒にリンクされるこ
とになる。プログラムの実行時に、その一部のモジュー
ルを交換する場合には、このリンクされたシステムプロ
グラムとユーザープログラムの外部に追加のモジュール
を読み込むことにより対応が図られる。
【0006】ここで、一般的な組込み用ソフトウェアに
おけるソフトウェア開発システムについて説明する。以
下では、プログラミング言語としてC言語を用いる場合
を例として説明するが、他の言語を用いる場合の基本的
な処理も同様である。
【0007】図19は、一般の組込みOSにおけるソフ
トウェア開発システムの一例を示している。
【0008】ヘッダファイル10とソースファイル11
は、ユーザーが用意するファイルである。これらのファ
イルは、ユーザーにより作成されたファイルでも良く、
ソフトウェア開発システムから提供されたファイルでも
良い。
【0009】コンパイル情報12は、コンパイラ13に
対してコンパイル形態を指定するオプション情報であ
り、例えばCPUの種類や最適化の指示などである。
【0010】コンパイル処理部14は、ターゲットとす
るハードウェアに適したコンパイラ13,コンパイル情
報12,ヘッダファイル10を使って、ソースファイル
11をコンパイルし、オブジェクトファイル15を生成
する。
【0011】ライブラリファイル16は、ソフトウェア
開発システムから提供されたライブラリでも良く、ユー
ザーにより予め作成されたライブラリでも良い。
【0012】リンク情報17は、リンカ18に対してリ
ンク形態を指定するオプション情報である。
【0013】リンク処理部19は、ターゲットとするハ
ードウェアに適したリンカ18と、リンク情報17,ラ
イブラリファイル16を使って、複数のオブジェクトフ
ァイル15をリンクし、1つの実行形式ファイル20を
生成する。
【0014】ここで、一般的な組込み用ソフトウェアに
おけるソフトウェア開発手順について説明する。
【0015】図20は、一般の組込みOSにおけるソフ
トウェア開発手順の一例を示している。
【0016】システムライブラリ21は、OSの機能を
実現するプログラムを含むライブラリファイルである。
【0017】システムソースファイル22は、OSの機
能を実現するプログラムを、ソースコードとして提供す
るファイルである。このシステムソースファイル22を
コンパイル処理部14でコンパイルすることにより、オ
ブジェクトファイル23が生成される。なお、このよう
なシステムソースファイル22が配布されるのは、一部
のハードウェア依存部分に限られる場合が多い。
【0018】ユーザーソースファイル24は、ユーザー
により機器の制御用に作成されたソースファイルであ
る。このユーザーソースファイル24がコンパイルされ
たファイルであるオブジェクトファイル25が生成され
る。そして、システムライブラリ21,オブジェクトフ
ァイル23,オブジェクトファイル25を、リンク処理
部19でリンクすることにより、1つの実行形式ファイ
ル20が生成される。
【0019】図21は、上述したような従来の実行形式
ファイルの一例である実行形式ファイル20の内部構造
を示している。
【0020】内部構成情報61は、実行形式ファイル2
0の先頭部分に位置し、後続の部分の内容を識別するた
めの情報や、その長さについての情報などを含む。この
内部構成情報61を解析することにより、後続部分から
必要な情報を抽出できるようにされている。
【0021】テキストセクション62は、図20に示し
たように、システムライブラリ21,オブジェクトファ
イル23,オブジェクトファイル25のそれぞれから集
められて結合されたプログラムコードである。
【0022】初期化データセクション63は、同様に集
められて結合された変数の初期値データである。
【0023】初期化不要データセクション64は、同様
に集められて結合された、初期値が決まっていない変数
のデータエリアである。
【0024】デバック情報セクション65は、変数名な
どのシンボル情報がプログラムのデバッグのために保存
される領域である。組込み用ソフトウェアでは、このデ
バッグ情報セクション65が最終的に削除されるよう
に、リンカに指示がされる場合が多い。
【0025】このような実行形式ファイル20の形式と
しては、例えばELF(Executableand Linking Format
)やCOFF(Common Object File Format )が知ら
れている。
【0026】また、OSとして次のような例が挙げられ
る。
【0027】一般のコンピュータ用OSでは、システム
モジュールは、実行可能なファイル形式を主体として配
布されている。また、一部のOSでは、ソースファイル
が、同様に配布されることがあり、コンパイルされて実
行可能なファイル形式に変換される。
【0028】プログラムの開発工程でプログラムの機能
を拡張する場合には、実行可能なファイル形式化された
ソースファイルが、追加されることにより対応が図られ
る。もしくは、プログラムの機能を拡張するために追加
されるファイルが、いわゆるDLL(Dynamic Link Lib
rary)のようにライブラリ形式で提供されて、ユーザー
プログラムの実行時にOS経由で実行される。
【0029】システムファイルが実行可能なファイルで
ある場合は、そのシステムファイルが、ユーザーがプロ
グラムを必要としたときに、OS経由でメモリ上に読み
込まれて実行される。
【0030】プログラムの実行時に、その一部のモジュ
ールを交換する場合には、OSが、新たなファイルをメ
モリ上に読み込み、従来のファイルに対応するメモリの
内容を破棄する。
【0031】このような、一般のコンピュータ用OSを
ベースにした組込みソフトウェアの開発システムも提供
されている。
【0032】また、最近利用されているプログラミング
言語である、いわゆるJavaでは、システムモジュー
ルは、実行可能なファイル形式あるいはバイトコード
(中間コード)を主体として配布されている。
【0033】バイトコードは、インタプリタでそのまま
実行されるか、コンパイラを通すことにより実行可能な
ファイル形式にも変換される。
【0034】実行可能なファイル形式の内部構成は、例
えば図21に示したものと同様であり、1つのファイル
に1つの実行プログラムだけが含まれている。なお、複
数の実行プログラムが1つのファイルに圧縮・結合され
ることもあるが、それは複数のファイルが単に圧縮・結
合されただけであり、図21に示すファイル形式は維持
されている。
【0035】プログラムの開発工程でプログラムの機能
を拡張する場合には、バイトコードファイルの追加をす
ることにより対応が図られる。
【0036】また、プログラムの実行時に一部のモジュ
ールを交換する場合には、OSが、新たなファイルをメ
モリ上に読み込み、従来のファイルに対応するメモリの
内容を破棄する。
【0037】このような、機器への組み込みにも対応す
るためのソフトウェアの開発システムが提供されてい
る。
【0038】
【発明が解決しようとする課題】ところで、上述したよ
うな従来のオペレーティングシステム(OS)におい
て、機器への組込みおよび実行時に、一部のモジュール
を交換できる仕組みを考慮すると、以下の問題が生じ
る。
【0039】(1) 一般の組込み用OSでは、ユーザ
ーモジュールとシステムモジュールとがリンクされて1
つの実行形式ファイルにされるため、その実行形式ファ
イルの実行時に、一部のモジュールを削除することが困
難である。例えば、システムモジュールのプログラムコ
ードが格納されるテキストセクションとユーザーモジュ
ールのテキストセクションとは、1つに結合されてしま
い分離することができない。
【0040】(2) 一般のコンピュータ用OSでは、
交換モジュールがファイルシステム上で管理されてお
り、必要に応じてメモリ上への読込みやメモリからの削
除が行われる。しかし、このような方法は、ファイルシ
ステムをカーネルが提供する必要があり、カーネルの肥
大化と必要メモリサイズの増大を引き起こすため、メモ
リサイズの制約が大きい組込みシステムでは望ましくな
い (3) 各モジュールが通常のコンパイラで出力された
実行形式そのままでは、ファイルサイズが大きく、RO
M(Read Only Memory:読み込み専用メモリ)に格納す
るときに無駄な容量を必要としていた。例えば、実行時
に特定の値で初期化される必要がないデータに対して、
通常は0で埋められた領域がファイル内に確保されてい
る。この領域は、実行時には必要であるが、ファイルを
保管しているときには削除しておき、実行時に0で初期
化した同じサイズの領域をメモリ上に確保することによ
り再現できる。このような不要な情報が含まれている分
だけROMのサイズを無駄に占有し、ファイル数が多い
場合にはコストの上昇を招いている。
【0041】また、従来の組込み用ソフトウェアの開発
システムにおいては、機器への組み込みの仕組みと、後
から一部のモジュールを交換できるしくみを考慮した場
合に、次の問題がある。
【0042】(4) 一般の組込み用オペレーティング
システム用の開発システムでは、一部のモジュール削除
が可能になるような形式でプログラムを生成できない。
【0043】(5) 多数のモジュールがある場合、組
込み用ソフトウェアの開発中に各モジュールをメモリ上
に読み込む必要があり、実行形式ファイルの数が多いと
手間がかかる。
【0044】(6) コンパイラから出力された実行形
式ファイルから、実行時に再構成可能で削除可能な領域
を削除しないため、各モジュールのファイルサイズが大
きい。
【0045】(7) 追加モジュールがライブラリ形式
で提供されている場合は、実行時に一部のモジュールを
削除可能になるような形式でファイルを生成するのが困
難である。追加モジュールがソースファイルで提供され
ている場合は、実行時に一部のモジュールを交換可能に
なるような形式でファイルを生成することが可能である
が、ユーザーが、システムのソースファイルを適切にコ
ンパイルする必要があり不便である。
【0046】本発明は、以上の点を考慮してなされたも
ので、一部のモジュールを後から交換できる仕組みを備
えたオペレーティングシステムを使用した場合に好適
な、組込みシステムのソフトウェア開発システムを提案
しようとするものである。
【0047】
【課題を解決するための手段】上記の課題を解決するた
めに提案する本発明のプログラム生成装置は、演算装置
により実行されるプログラムを生成するプログラム生成
装置において、各々が、プログラムコードを含むテキス
トセクションと前記プログラムコードで参照されるデー
タを含むデータセクションと前記プログラムコードで参
照されないデータを含む付加情報セクションのうちの少
なくとも1つと、前記テキストセクションと前記データ
セクションと前記付加情報セクションのうちの少なくと
も1つに関する情報を保持する内部構成情報とから構成
される、少なくとも2つの実行形式ファイルを入力する
入力手段と、前記実行形式ファイルから前記内部構成情
報に基づいて前記テキストセクションを抽出するテキス
トセクション抽出手段と、前 記実行形式ファイルから
前記内部構成情報に基づいて前記データセクションを抽
出するデータセクション抽出手段と、前記実行形式ファ
イルの前記テキストセクションと、前記実行形式ファイ
ルの前記データセクションとの結合の順序を決定する結
合順序決定手段と、前記実行形式ファイルの前記内部構
成情報に基づいて、前記実行形式ファイルの前記テキス
トセクションおよび前記データセクションの情報を、前
記結合順序決定手段から得た順序に基づいて結合した結
合内部構成情報を作成する内部構成情報結合手段とを備
え、前記付加情報セクションの一部および前記内部構成
情報の一部を除去しつつ、実行に必要な前記テキストセ
クションおよび前記データセクションを維持することを
特徴とするものである。
【0048】上記の本発明によれば、組込みシステムの
ソフトウェア開発システムにより開発された組込みプロ
グラムは、オペレーティングシステム及び機器制御用プ
ログラムの一部のモジュールを後から交換できる形式の
プログラムファイルを生成できるようになる。
【0049】
【発明の実施の形態】以下に、本発明のプログラム生成
装置の好ましい実施の形態について、図面を参照しなが
ら説明する。
【0050】[1] 第1の実施の形態 まず、本発明のプログラム生成装置の第1の実施の形態
であるソフトウェア開発システムについて説明する。以
下では、プログラミング言語としてC言語を使う場合を
例として説明するが、他のプログラミング言語を使う場
合の基本的な処理も同様である。
【0051】図1は、本発明に係るソフトウェア開発シ
ステムの一構成例を示している。
【0052】ヘッダファイル30とソースファイル31
は、ユーザーにより用意されるファイルである。これら
は、ユーザーにより作成されたファイルでも良いし、シ
ステムから提供されたファイルであっても良い。
【0053】コンパイル情報32は、コンパイラ33に
対してコンパイル形態を指定するオプション情報であ
り、例えばターゲットとするハードウェアのCPUの種
類や最適化の指示などである。このコンパイル情報32
は、図示していないシステム設定部で生成され、以下の
ような情報を含んでいる。
【0054】・コンパイラの名前とそのディレクトリ ・プログラムを動作させるハードウェアのCPUを指定
するコンパイルオプション ・読み込むべきヘッダファイルのディレクトリ情報 ・浮動小数点演算ユニットの使用の有無のコンパイルオ
プション ・ソースファイル中に含まれるプリプロセッサ用マクロ
の値の定義 コンパイル処理部34は、ターゲットとするハードウェ
アに適したコンパイラ33,コンパイル情報32,ヘッ
ダファイル30を使って、ソースファイル31をコンパ
イルし、オブジェクトファイル35を生成する。
【0055】ライブラリファイル36は、システムが提
供したライブラリでも良いし、ユーザーが予め作成した
ライブラリでも良い。
【0056】リンク情報37は、リンカ38に対してリ
ンク形態を指定するオプション情報である。このリンク
情報37は、図示していないシステム設定部で生成さ
れ、以下のような情報を含んでいる。
【0057】・リンカの名前とそのディレクトリ ・出力ファイル形式設定,デバッグ情報追加のリンクオ
プション ・リンクすべきライブラリの情報 ・ライブラリファイルに含まれるオブジェクトファイル
の結合情報(複数のオブジェクトファイルのうち、どれ
とどれを結合すべきかを示す) リンク処理部39は、ターゲットとするハードウェアに
適したリンカ38と、リンク情報37およびライブラリ
ファイル36を使って、オブジェクトファイル35をリ
ンクし、必要ならば適切なメモリ空間上の割り当てを行
い、実行形式ファイル40を生成する。
【0058】複合実行形式ファイル情報41は、後述す
る複合実行形式ファイル43に含めるべき実行形式ファ
イル40についての情報を保持し、複合実行形式ファイ
ル作成部42に提供する。この複合実行形式ファイル情
報41は、図示していないシステム設定部で生成され、
以下のような情報を含んでいる。
【0059】・複合実行形式ファイルに含まれる実行形
式ファイルのモジュール名,ファイル名とそのディレク
トリ ・各実行形式ファイルに割り当てられるべきモジュール
属性情報(後述)のデータ(スタック領域サイズ,ヒー
プ領域サイズ,動作モード,動作優先順位等 ・初期化プログラム78の実行開始アドレス(モジュー
ル数と共に後述する全構成情報に含まれる) ・複合実行形式ファイルの作成日時,バージョン,タイ
トルなど(後述する全体構成情報に含まれる) 複合実行形式ファイル作成部42は、複合実行形式ファ
イル情報41からの情報に基づき、初期化プログラム7
8と複数の実行形式ファイル40が入力され、後述する
処理により複合実行形式ファイル43を出力する。な
お、初期化プログラム78は、複合実行形式ファイル4
3を実行するためのプログラムである。
【0060】本発明におけるオペレーティングシステム
の複合実行形式ファイルは、メモリ上に展開されるべき
実行形式ファイルの内部構成が、後述する図3および図
4,図5のように編集されたファイルである。
【0061】次に、上述した第1の実施の形態における
ソフトウェア開発手順について説明する。
【0062】図2は、図1に例示したソフトウェア開発
システムにおけるソフトウェア開発基本的な流れを示し
ている。ここで、システムモジュールは、ソースファイ
ルを主体として配布されている。
【0063】システムソースファイル81,システムソ
ースファイル84は、OSの機能および実現されるプロ
グラムをソースコードとして提供するファイルである。
このシステムソースファイル81,システムソースファ
イル84が、コンパイル処理部34によりそれぞれコン
パイルされて、オブジェクトファイル82,オブジェク
トファイル85が生成される。
【0064】オブジェクトファイル82,オブジェクト
ファイル85は、リンク処理部39によりそれぞれリン
クされて、それぞれ1つの実行形式ファイル83,実行
形式ファイル86が生成される。
【0065】ユーザーソースファイル87は、ユーザー
により、機器の制御用に作成されたソースファイルであ
る。このユーザーソースファイル87を、コンパイル処
理部34でコンパイルすることにより、オブジェクトフ
ァイル88が生成される。このオブジェクトファイル8
8を、リンク処理部39でリンクして、1つの実行形式
ファイル89が生成される。
【0066】そして、リンク処理部39によって生成さ
れた実行形式ファイルに対応した複合実行形式ファイル
作成部42により、上記の実行形式ファイル83,実行
形式ファイル86,実行形式ファイル89が複合実行形
式にまとめられて、1つの複合実行形式ファイル43が
生成される。
【0067】図3は、上記の複合実行形式ファイル43
の内部構造の一例を示している。
【0068】内部構成情報71は、複合実行形式ファイ
ル43の先頭部分に位置し、後続の内容を識別するため
の情報や、その長さについての情報などを含む。この内
部構成情報71を解析することにより、必要な情報を後
続部分から抽出できるようになっている。
【0069】テキストセクション72,テキストセクシ
ョン74,テキストセクション76は、それぞれ実行形
式ファイル83,実行形式ファイル86,実行形式ファ
イル89のプログラムコードである。
【0070】初期化データセクション73,初期化デー
タセクション75,初期化データセクション77は、そ
れぞれ実行形式ファイル83,実行形式ファイル86,
実行形式ファイル89の変数の初期値データである。
【0071】初期化不要データセクション64,初期化
不要データセクション66,初期化不要データセクショ
ン68は、それぞれ実行形式ファイル83,実行形式フ
ァイル86,実行形式ファイル89の変数の初期化不要
データセクションである。
【0072】デバッグ情報セクション65,デバッグ情
報セクション67,デバッグ情報セクション69は、そ
れぞれ実行形式ファイル83,実行形式ファイル86,
実行形式ファイル89のデバッグ情報セクションであ
る。
【0073】初期化プログラム78は、内部構成情報7
1に基づいて、テキストセクション72,テキストセク
ション74,テキストセクション76と、初期化データ
セクション73,初期化データセクション75,初期化
データセクション77を適切なメモリ空間に割り当て
て、テキストセクション72,テキストセクション7
4,テキストセクション76のいずれかを実行するため
のプログラムである。初期化プログラム78自身は、通
常の実行形式ファイルである。
【0074】なお、ファイルサイズを小さくするため
に、初期化不要データセクション64,初期化不要デー
タセクション66,初期化不要データセクション68、
およびデバッグ情報セクション65,デバッグ情報セク
ション67,デバッグ情報セクション69を含まない構
成にしても良い。
【0075】プログラムの開発工程でプログラムの機能
を拡張する場合には、ソースファイルがコンパイルされ
てリンクされた実行形式ファイルを、複合実行形式ファ
イル43として生成する。
【0076】プログラムの実行時に一部のモジュールを
交換する場合には、0Sが、新たな実行形式ファイルを
メモリ上に読み込み、複合実行形式ファイルに含まれて
いた従来の機能に対応するメモリの内容を破棄する。
【0077】ここで、上述した内部構成情報71につい
て、さらに詳細に説明する。なお、以下では、図3に示
した複合実行形式ファイル43のように、3つの実行形
式ファイル83,実行形式ファイル86,実行形式ファ
イル89を含む複合実行形式ファイルの場合について説
明する。
【0078】図4は、内部構成情報71の構成を示して
いる。
【0079】全構成情報180は、内部構成情報71に
含まれているモジュール(実行形式ファイル)の数であ
り、この場合は3となる。モジュール情報181,モジ
ュール情報182,モジュール情報183は、それぞれ
実行形式ファイル83,実行形式ファイル86,実行形
式ファイル89に対応する。すなわち、モジュール情報
181は、テキストセクション72と初期化データセク
ション73に関する情報を保有し、モジュール情報18
2はテキストセクション74と初期化データセクション
75に関する情報を保有し、モジュール情報183はテ
キストセクション76と初期化データセクション77に
関する情報を保有している。
【0080】図5は、上述した内部構成情報71のモジ
ュール情報181の内部構成を示している。なお、モジ
ュール情報182,モジュール情報183についても同
様である。
【0081】この図5において、モジュール名191
は、実行形式ファイル83が含むモジュールの名前であ
り、モジュールを識別するために使用される。
【0082】テキストセクションサイズ192は、テキ
ストセクション72のサイズを表している。
【0083】初期化データセクションサイズ193は、
初期化データセクション73のサイズを表している。
【0084】初期化不要データセクションサイズ194
は、初期化不要データセクション64のサイズであり、
実行時に複合実行形式ファイルが読み込まれた場合に、
この初期化不要データセクションサイズ194で示され
たメモリが確保されて初期化不要データセクション用に
割り当てられる。
【0085】モジュール属性情報195は、そのモジュ
ールの実行時に必要な属性情報であり、例えば必要なス
タックサイズやヒープサイズなどである。
【0086】テキストセクションアドレス196は、テ
キストセクション72が置かれるべきメモリ空間上のア
ドレスであり、テキストセクション72が予め特定のア
ドレス上に配置されるべくリンクされている場合に必要
である。
【0087】初期化データセクションアドレス197
は、初期化データセクション73が置かれるべきメモリ
空間上のアドレスであり、初期化データセクション73
が予め特定のアドレス上に配置されるべくリンクされて
いる場合に必要である。
【0088】実行開始アドレス198は、テキストセク
ション72で最初に呼ばれるべきアドレスであり、この
アドレスから処理を開始することにより、テキストセク
ション72に格納されている実行ファイル83のモジュ
ールは動作を開始する。
【0089】内部構成情報71のサイズは、全体構成情
報180と、モジュール情報181,モジュール情報1
82,モジュール情報183の各サイズから計算でき
る。従って、テキストセクション72は、複合実行形式
ファイル43の先頭から内部構成情報71のサイズだけ
後からテキストセクションサイズ192のサイズだけ読
み込めばよい。
【0090】同様に、初期データセクションサイズ19
3は、複合実行形式ファイル43の先頭から内部構成情
報71のサイズとテキストセクションサイズ192の合
計だけ後から初期化データセクションサイズ193のサ
イズだけ読み込めばよい。テキストセクション74以下
の部分についても同様に読み込むことが可能である。
【0091】図6は、図3に示した複合実行形式ファイ
ル43の全てが、RAM(Random Access Memory:読み
書き可能なメモリ)上に読み込まれた場合の例を示して
いる。
【0092】まず、初期化プログラム78が、図示して
いない通常のプログラム起動処理部より起動されて、メ
モリ上に配置されて実行される。
【0093】続いて、初期化プログラム78が、図示し
ていないROM(Read Only Memory:読出専用メモリ)
に記録されている複合実行形式ファイル43を読み出し
て、その内部構成情報71を解析し、上記の複合実行形
式ファイル43内部の各セクションを、図6のようにメ
モリ(RAM)上に割り当てる。
【0094】複合実行形式ファイル43に初期化不要デ
ータセクション64,初期化不要データセクション6
6,初期化不要データセクション68の実体が確保され
ておらず、内部構成情報71にそれぞれのサイズが記録
されているだけである場合は、初期化プログラム78
が、指定されたサイズに基づいて初期化不要データセク
ション64,初期化不要データセクション66,初期化
不要データセクション68をメモリ上に確保する。
【0095】最後に、初期化プログラム78は、テキス
トセクション72,テキストセクション74,テキスト
セクション76のいずれかに制御を渡して実行を終了す
る。
【0096】例えば、実行がテキストセクション72に
移り、テキストセクション72はメモリを管理する機能
を持ち、初期化データセクション73が各データセクシ
ョンのアドレス情報を含んでいる場合には、初期化プロ
グラム78が占有するメモリを開放して別の用途に使用
することが可能である。
【0097】また、実行途中で、テキストテクション7
6,初期化データセクション77,初期化不要データセ
クション68が不要になった場合に、テキストセクショ
ン76のプログラムがテキストセクション72のプログ
ラムにメモリの開放を伝えることにより、これらの不要
になった各セクションのメモリ領域が開放されて他のプ
ログラムにより利用可能にすることができる。
【0098】複合実行形式ファイル中に、後述するデバ
ッグ情報セクションに対応するデバッグ情報セクション
が含まれている場合には、それらは、メモリ上には読み
込まれずデバッガから参照される。
【0099】図7は、図3に示した複合実行形式ファイ
ル43のデータセクションのみがRAM上に読み込ま
れ、テキストセクションはROMから直接参照される場
合のメモリ配置の例を示している。
【0100】すなわち、テキストセクション72,テキ
ストセクション74,テキストセクション76はROM
上に記録されており、初期化データセクション73,初
期化データセクション75,初期化データセクション7
7、および初期化不要データセクション64,初期化不
要データセクション66,初期化不要データセクション
68はRAM上に割り当てられている。
【0101】なお、図6と同様に、初期化データセクシ
ョン73,初期化データセクション75,初期化データ
セクション77、および初期化不要データセクション6
4,初期化不要データセクション66,初期化不要デー
タセクション68も、最初はROM上に記録されてお
り、初期化プログラム78によりRAM上にコピーされ
る。この場合にも、図6の場合と同様に、その後の不要
セクションの削除と再利用が可能である。
【0102】次に、図2の複合実行形式ファイル作成部
42について説明する。
【0103】図8は、複合実行形式ファイル作成部42
の一構成例を示している。
【0104】結合順序決定部124は、複合実行形式フ
ァイル情報41から実行形式ファイル40のリストを入
手して、それらの結合順序を決定する。
【0105】ファイル入力部121は、結合順序決定部
124が決定した結合順序に基づいて実行形式ファイル
40を読み込む。この実行形式ファイル40の構成は、
図21に示した従来の実行形式ファイル20の構成と同
様であるので、以下では、実行形式ファイル20内部の
各セクションと同一の指示符号を用いて説明する。
【0106】テキストセクション抽出部122は、ファ
イル入力部121から実行形式ファイル40を受け取
り、その内部構成情報61を解析してテキストセクショ
ン62を取り出す。
【0107】データセクション抽出部123は、ファイ
ル入力部121から実行形式ファイル40を受け取り、
その内部構成情報61を解析して初期化データセクショ
ン63を取り出す。
【0108】内部構成情報結合部125は、各実行形式
ファイル40の内部構成情報61からテキストセクショ
ン62,初期化データセクション63に関する部分を抽
出し、ファイル入力部121からの入力順序に従ってそ
れらを結合し、ヘッダ情報である内部構成情報71を生
成する。
【0109】複合実行形式ファイル出力部127は、テ
キストセクション抽出部122からのテキストセクショ
ン62と、データセクション抽出部123からの初期化
データセクション63とを、テキストセクション抽出部
122およびデータセクション抽出部123からの入力
順序に従い結合し、テキストセクション72,テキスト
セクション74,テキストセクション76、初期化デー
タセクション73,初期化データセクション75,初期
化データセクション77を生成する。そして、内部構成
情報71,テキストセクション72,テキストセクショ
ン74,テキストセクション77と、初期化プログラム
78を読み込み、1つの複合実行形式ファイル43とし
て出力する。
【0110】図9は、複合実行形式ファイル作成部42
の別の構成例を示している。
【0111】ファイル入力部121は、複合実行形式フ
ァイル情報41に基づいて実行形式ファイル40を読み
込む。
【0112】テキストセクション抽出部122は、ファ
イル入力部121から実行形式ファイル40を受け取
り、その内部構成情報61を解析してテキストセクショ
ン62を取り出す。
【0113】データセクション抽出部123は、ファイ
ル入力部121から実行形式ファイル40を受け取り、
その内部構成情報61を解析して初期化データセクショ
ン63を取り出す。
【0114】結合順序決定部124は、複合実行形式フ
ァイル情報41から実行形式ファイル40のリストを入
手して、それらの結合順序を決める。
【0115】内部構成情報結合部125は、各実行形式
ファイル40のヘッダ情報である内部構成情報61から
テキストセクション62および初期化データセクション
63に関する部分を抽出し、結合順序決定部124から
の結合順序に従ってそれらを結合し、内部構成情報71
を生成する。
【0116】セクション結合部126は、テキストセク
ション抽出部122からのテキストセクション62と、
データセクション抽出部123からの初期化データセク
ション63とを、結合順序決定部124からの結合順序
に従い結合し、テキストセクション72,テキストセク
ション74,テキストセクション76、初期化データセ
クション73,初期化データセクション75,初期化デ
ータセクション77を生成する。そして、複合実行形式
ファイル出力部127は、内部構成情報71,テキスト
セクション72,テキストセクション74,テキストセ
クション76、初期化データセクション73,初期化デ
ータセクション75,初期化データセクション77と、
初期化プログラム78を読み込み、1つの複合実行形式
ファイル43として出力する。
【0117】なお、図8に示した構成では、上記のセク
ション結合部の機能を複合実行形式ファイル出力部12
7が含んでいる。
【0118】上記の第1の実施の形態においては、実行
形式ファイル83,実行形式ファイル86,実行形式フ
ァイル89を1つの複合実行形式ファイル43にまとめ
ることにより、1つのファイルを読み込むだけでプログ
ラムを実行可能にする。
【0119】例えば、実行時に、実行形式ファイル83
を置き換えたい場合に、メモリ空間上に割り当てられた
テキストセクション72および初期化データセクション
73を廃棄すればよく、複合実行形式ファイル43の実
行時に、その一部のモジュールを交換することが可能で
ある。
【0120】また、複合実行形式ファイルファイル43
には、初期化不要データセクション64,デバッグ情報
セクション65が含まれていないため、ファイルサイズ
が最小限ですみ、ROM上の記憶サイズも必要最小限し
か必要としない。
【0121】システムモジュールを追加する場合も、そ
のシステムモジュールがライブラリとして実行形式ファ
イルにリンクされるのではなく、実行形式ファイルを複
合実行形式ファイル43に追加すればよい。また、複合
実行形式ファイル43中の実行形式ファイル83,実行
形式ファイル86,実行形式ファイル89のいずれかが
不必要になった際には、不必要になったファイルのみを
削除することが可能である。
【0122】また、ファイルシステムがなくても複数の
モジュールを導入可能であるなどのメリットがある。
【0123】[2] 第2実施の形態 次に、本発明の第2の実施の形態としてのソフトウェア
開発システムについて説明する。以下の説明において
も、前述した第1の実施の形態において説明した各部と
共通する部分には、同一の指示符号を付す。
【0124】図10は、本発明に係る第2の実施の形態
としてのソフトウェア開発システムにおけるソフトウェ
ア開発手順の一例を示している。
【0125】再配置可能ファイル90は、その内部構造
が実行形式ファイル95とほぼ同じであるが、メモリ空
間上で再配置可能であり、これから特定のメモリ空間に
割り当てることも可能な形式であることが異なる。
【0126】実行形式ファイル95は、メモリ空間上で
固定の位置に配置済みであるか、メモリ空間上で任意の
位置に配置可能のいずれかである。この実行形式ファイ
ル95は、この特性を変更することはできないか、でき
るとしても再配置可能ファイル90から変更する場合に
比べて無駄なプログラムサイズを必要とする。
【0127】リンク処理部94は、図1に示した構成に
おけるリンク処理部39の機能を包含しており、さらに
再配置可能ファイル90を他のオブジェクトファイル3
5などとリンクした上で、必要ならば適切なメモリ空間
上の割り当てを行い、実行形式ファイル95として出力
する。
【0128】オブジェクトファイル抽出部92は、シス
テムオブジェクトファイルを含むライブラリファイル9
1からオブジェクトファイル93を取り出してリンク処
理部94に渡す。
【0129】また、リンク処理部94は、複数のオブジ
ェクトファイル93から直接実行形式ファイル95を生
成する。このリンク処理部94とオブジェクトファイル
抽出手段92とにより、再配置可能ファイル生成手段を
構成する。
【0130】次に、本発明の第2の実施の形態における
ソフトウェア開発手順について説明する。
【0131】前述した第1の実施の形態においても説明
したように、図10中のライブラリファイル36は、シ
ステムライブラリまたはユーザーライブラリ、またはリ
ンカ38に付属のライブラリである。リンカ38は、オ
ブジェクトファイル35もしくは再配置可能ファイル9
0から参照されているライブラリファイル36中のオブ
ジェクトファイルを抽出して、オブジェクトファイル3
5と結合する。
【0132】ライブラリファイル91は、システムライ
ブラリであり、他のファイルからの参照関係なしに、ラ
イブラリファイル91に含まれるオブジェクトファイル
93どうしを結合することにより、実行形式ファイル9
5を生成するためのものである。つまり、ライブラリフ
ァイル91は、ソースファイル31やオブジェクトファ
イル35,再配置可能ファイル90なしで、ライブラリ
ファイル91だけから実行形式ファイル95を作成する
ことを可能にする。
【0133】図11および同図に続く図12は、本発明
の第2の実施の形態におけるソフトウェア開発手順の一
例を示している。システムモジュールは実行形式ファイ
ルまたは再配置可能ファイルを主体として配布されてい
る。
【0134】ここで、システムオブジェクトファイル1
06,システムオブジェクトファイル107が、上述し
た場合に相当する。
【0135】なお、図10中のオブジェクトファイル抽
出部92は、ライブラリファイル91から、どのファイ
ルを抽出すべきかの情報を、リンク情報37を読み込ん
だリンク処理部94から得る。
【0136】システム実行形式ファイル99は、単体で
システムモジュールとして有効な動作が可能であり、複
合実行形式ファイル作成部42により複合実行形式ファ
イル96に直接組み込み可能とされる。
【0137】同様に、システム再配置可能ファイル10
0も、単体でシステムモジュールとして有効な動作が可
能であり、リンク処理部94でシステム実行形式ファイ
ル101に変換された上、複合実行形式ファイル作成部
42により複合実行形式ファイル96に直接組み込み可
能とされる。
【0138】システム再配置可能ファイル102は、シ
ステムモジュールとして動作するためにはシステムソー
スファイル103とリンクされる必要があるものであ
る。
【0139】システムソースファイル103は、コンパ
イル処理部34でコンパイルされてオブジェクトファイ
ル104となり、さらに、リンク処理部94でシステム
再配置可能ファイル102とリンクされて実行形式ファ
イル105となる。
【0140】システムオブジェクトファイル106およ
びシステムオブジェクトファイル107は、リンク処理
部94で互いにリンクされて実行形式ファイル108と
なる。
【0141】システムオブジェクトファイル109は、
システムソースファイル110がコンパイルされたもの
であるオブジェクトファイル111とリンクされて、実
行形式ファイル112となる。
【0142】また、ユーザーソースファイル171は、
コンパイル処理部34によりコンパイルされてオブジェ
クトファイル172となり、さらに、リンク処理部94
でシステム再配置可能ファイル120とリンクされて実
行形式ファイル173となる。
【0143】ユーザーソースファイル175は、コンパ
イル処理部34によりコンパイルされてオブジェクトフ
ァイル176となり、さらに、リンク処理部94でシス
テムオブジェクトファイル174とリンクされて実行形
式ファイル177となる。
【0144】これにより、システム再配置可能ファイル
120またはシステムオブジェクトファイル174に対
して、ユーザーが、一部の情報を設定することが可能で
ある。
【0145】そして、複合実行形式ファイル作成部42
は、システム実行形式ファイル99,システム実行形式
ファイル101,実行形式ファイル105,実行形式フ
ァイル108,実行形式ファイル112,実行形式ファ
イル89、および実行形式ファイル173,実行形式フ
ァイル177から、複合実行形式ファイル96を生成す
る。
【0146】この第2の実施の形態においては、システ
ムモジュールをシステム実行形式ファイル99や再配置
可能ファイル100,再配置可能ファイル102を主体
として配布することにより、ユーザー側でのコンパイル
時間を削減することが可能である。また、図示していな
いライブラリファイル91から、システムオブジェクト
ファイル106,システムオブジェクトファイル10
7,システムオブジェクトファイル109を提供するこ
とによっても、ユーザー側でのコンパイル時間を削減す
ることが可能である。
【0147】[3] 第3の実施の形態 次に、本発明の第3の実施の形態としてのソフトウェア
開発システムについて説明する。
【0148】図13は、本発明に係る第3の実施の形態
としてのソフトウェア開発手順の一例を示している。
【0149】この第3の実施の形態は、システム全体の
構成は第1および第2の実施の形態と同じであり、両者
と共に用いることが可能である。ただし、コンパイル情
報32,リンク情報37,複合実行形式ファイル情報4
1が固定ではなく、ユーザーによりが変更可能になって
いる点が異なっている。
【0150】システム情報50は、このソフトウェア開
発システムが対応可能なターゲットハードウェア,コン
パイラ,リンカなどのソフトウェアについての情報を保
持している。また、システム実行形式ファイル,システ
ム再配置可能ファイルなどのシステムファイルについて
のリストと対応する説明文なども保持している。
【0151】表示部51は、ユーザーとの間で対話的に
システムの設定を行うための表示装置であり、例えばソ
フトウェア開発用コンピュータのディスプレイ装置であ
る。
【0152】入力部52は、表示部51に表示された内
容に対するユーザーの応答を入力する装置であり、例え
ばソフトウェア開発用コンピュータのキーボードやマウ
スである。
【0153】システム設定部53は、システム情報50
を読み込み、ソフトウェア開発システムに関する情報を
システム情報50に基づいて表示部51に出力し、入力
部52からの選択結果を受け取る。そして、システム設
定部53は、システム情報50と入力部52からの入力
結果に基づいて、コンパイル情報,リンク情報,複合実
行形式ファイル情報を出力する。
【0154】次に、本発明の第3の実施の形態における
システムの設定手順について説明する。
【0155】図14は、本発明の第3の実施の形態にお
けるソフトウェア開発手順の一例を示している。
【0156】まず、ステップS11で、システム設定部
53が、システム情報50を読み込む。
【0157】次に、ステップS12で、システム設定部
53が、システム情報50からサポートしている目標
(ターゲット)ハードウェアのリストを参照し、複数の
目標ハードウェアが挙げられている場合には表示部51
に目標ハードウェアの選択肢を表示する。ユーザーは、
入力部52でその選択肢に対して選択を行う。
【0158】図15は、このステップS12において目
標ハードウェアを選択するための、表示部51の表示例
を示している。ユーザーは、マウスなどの入力部52に
より、希望の目標ハードウェアに対応したボタン13
0,ボタン131,ボタン132のいずれかを選択し
て、ボタン135を押下することにより目標ハードウェ
アを選択する。ボタン133はこの直前の設定に戻る場
合に押下するボタンであり、ボタン134はシステム設
定を中止する場合に押下するボタンである。
【0159】次に、ステップS13で、システム設定部
53が、このソフトウェア開発システムがサポートして
いるコンパイラのリストをシステム情報50から参照
し、複数のコンパイラが挙げられている場合には表示部
51にコンパイラの選択肢を表示する。ユーザーは、入
力部52でその選択肢に対して選択を行う。
【0160】次に、ステップS14で、システム設定部
53は、システム情報50からシステムモジュールのリ
ストを参照し、ユーザーが選択可能であるシステムモジ
ュールについて選択肢を表示部51に表示する。ユーザ
ーは入力部52でその選択肢に対して選択を行う。
【0161】図16は、このステップS14において組
込みモジュールを選択するための、表示部51の表示例
を示している。ユーザーは、必要なサービスに対応した
ボタン140,ボタン141,ボタン142を任意の数
だけ選択した後、ボタン135を押下することにより組
込みモジュールを選択する。ボタン140,ボタン14
1,ボタン142を選択することによりサービスを提供
するために必要なモジュールが選択される。また、ボタ
ン140,ボタン141,ボタン142には、システム
モジュールと共にユーザーモジュールの登録も可能であ
り、ボタン143を選択することにより、ユーザーが開
発したモジュールを登録することができる。
【0162】次に、ステップS15で、ステップS13
で選択されたコンパイラにおけるコンパイル条件が選択
される。
【0163】図17は、ステップS15においてコンパ
イル条件を選択するための、表示部51の表示例を示し
ている。ユーザーは、必要な最適化条件に対応したボタ
ン150,ボタン151のいずれか、デバッグ情報の不
可条件に対応したボタン152,ボタン153のいずれ
か、出力ファイル形式に対応したボタン154,ボタン
155のいずれかを選択した後、ボタン135を押下す
ることによりコンパイル条件を選択する。
【0164】次に、ステップS16で、システム設定部
53が、ステップS12〜ステップS15におけるユー
ザーの選択結果に基づいて、コンパイル情報32とリン
ク情報37を出力する。
【0165】そして、ステップS17で、システム設定
部53が、ステップS14でのユーザーの選択結果に基
づいて複合実行形式ファイル情報41を出力する。
【0166】以上の手順によりシステム設定の処理は終
了し、その後、図1および図10に示すソフトウェア開
発システムなどにおける処理が続く。
【0167】上記のコンパイル情報32はコンパイル処
理部34においてコンパイラ33に対するコンパイル形
態の指定として使われ、上記のリンク情報37はリンク
処理部39,リンク処理部94において、リンカ38に
対するリンク形態の指定として使われる。また、複合実
行形式ファイル情報41は、複合実行形式ファイル43
に含めるべき実行形式ファイル40についての情報とし
て参照される。
【0168】この第3の実施の形態においては、複数の
システム実行形式ファイルからユーザーの希望に応じた
モジュールを選択できるため、所望の前記実行形式ファ
イルでプログラムを構成可能となる。
【0169】[4] 他の実施の形態 なお、本発明の実施の形態は、以上の実施の形態にのみ
限定されるものではなく、この他にも種々の変形が考え
られる。
【0170】例えば、図10に示した、本発明に係る第
2の実施の形態としてのソフトウェア開発システムにお
けるソフトウェア開発手順において、リンク処理部94
は、それぞれ1つまたは複数のオブジェクトファイル3
5,ライブラリファイル36,再配置可能ファイル9
0,オブジェクトファイル93をリンクして、リンク情
報からのアドレス情報に基づいてあるアドレスに配置し
た実行形式ファイルを出力する際に、中間ファイルとし
て再配置可能ファイルを生成してもよい。
【0171】図18は、そのような再配置可能ファイル
生成手段の一例を示している。
【0172】すなわち、再配置可能ファイル97は、オ
ブジェクトファイル35,ライブラリファイル36,再
配置可能ファイル90,オブジェクトファイル93か
ら、実行形式ファイル95を出力するための中間ファイ
ルとして生成されたファイルであり、最終的には削除さ
れる。再配置可能ファイル98の内容は、再配置可能フ
ァイル97の内容と同じであるが、将来的に再配置可能
ファイル90として再利用されるべく出力され、保存さ
れたものである。
【0173】なお、前述したように、図11および図1
2では、リンク処理部94が実行形式ファイルを直接に
出力するようにされているが、再配置可能ファイル97
および再配置可能ファイル98が生成されている場合も
含まれる。
【0174】また、図14に示した第3の実施の形態の
システム設定手順において、最適化やデバッグに関する
オプションの選択を可能とし、コンパイル情報32,リ
ンク情報37に反映されるようにしても良い。
【0175】以上説明したように、本発明に係るソフト
ウェア開発システムは、組込みシステムのソフトウェア
開発システムとして、オペレーティングシステムの機能
ごとに分かれたモジュールをメモリ空間上で再配置可能
(リロケータブル)な実行形式ファイルもしくはオブジ
ェクトファイルとして提供する手段と、提供されたモジ
ュールからユーザーが必要とするモジュールを選択する
手段と、ユーザーにより選択されたモジュールについて
リロケータブルな実行形式ファイルからセクション情報
を抽出して複合実行形式ファイルを作る手段とを備える
ようにしたため、複数の実行形式ファイルを1つの複合
実行形式ファイルにまとめることにより、1つのファイ
ルを読み込むだけでプログラムを実行可能にする。一部
の実行形式ファイルを実行時に置き換えたい場合には、
メモリ空間上に割り当てられた対応するテキストセクシ
ョンと初期化データセクションを廃棄すればよく、実行
時に一部のモジュールの交換が可能である。
【0176】このため、ファイルサイズもしくはメモリ
サイズを必要最小限しか必要としない。システムモジュ
ールを追加する場合も、ライブラリとして実行形式ファ
イルにリンクされるのではなく、実行形式ファイルを追
加すればよいので、不必要になった際に削除可能であ
る。また、ファイルシステムがなくても複数のモジュー
ルを導入可能であるなどのメリットがある。
【0177】さらに、システムモジュールをシステム実
行形式ファイルや再配置可能ファイルを主体として配布
することにより、ユーザー側でのコンパイル時間を削減
可能である。もしくはライブラリファイルからシステム
オブジェクトファイルを提供することによってもユーザ
ー側でのコンパイル時間を削減可能である。
【0178】このように、複数のシステム実行形式ファ
イルからユーザーの希望に応じたモジュールを選択でき
るため、所望の前記実行形式ファイルでプログラムを構
成することが可能となる。
【0179】
【発明の効果】本発明によれば、一部のモジュールを後
から交換できる仕組みを備えたオペレーティングシステ
ムを使用した場合に好適な、組込みシステムのソフトウ
ェア開発システムを提供できる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態であるソフトウェア
開発システムの構成例を示すブロック図である。
【図2】上記ソフトウェア開発システムにおけるソフト
ウェア開発手順の一例を示すブロック図である。
【図3】本発明に係る複合実行形式ファイルの内部構成
について説明するための図である。
【図4】複合実行形式ファイルの内部構成情報について
説明するための図である。
【図5】上記内部構成情報のモジュール情報について説
明するための図である。
【図6】複合実行形式ファイルがメモリ上に展開された
状態について説明するための図である。
【図7】複合実行形式ファイルがメモリ上に展開された
状態について説明するための図である。
【図8】本発明の第1の実施の形態であるソフトウェア
開発システムの複合実行形式ファイル作成部の一構成例
を示すブロック図である。
【図9】上記ソフトウェア開発システムの複合実行形式
ファイル作成部の別の構成例を示すブロック図である。
【図10】本発明の第2の実施の形態であるソフトウェ
ア開発システムの構成例を示すブロック図である。
【図11】上記ソフトウェア開発システムにおけるソフ
トウェア開発手順の一例を示すブロック図である。
【図12】上記ソフトウェア開発システムにおけるソフ
トウェア開発手順の一例を示す、図11に続くブロック
図である。
【図13】本発明の第3の実施の形態であるソフトウェ
ア開発システムの構成例を示すブロック図である。
【図14】上記ソフトウェア開発システムにおけるシス
テム設定の基本的な手順を示すフローチャートである。
【図15】上記ソフトウェア開発システムの表示部にお
ける表示例を示す図である。
【図16】上記ソフトウェア開発システムの表示部にお
ける表示例を示す図である。
【図17】上記ソフトウェア開発システムの表示部にお
ける表示例を示す図である。
【図18】再配置可能ファイル生成手段の具体例につい
て説明するための図である。
【図19】一般の組込みOSにおけるソフトウェア開発
システムの構成を示すブロック図である。
【図20】一般の組込みOSにおけるソフトウェア開発
手順を示すブロック図である。
【図21】従来の実行形式ファイルの内部構成例を示す
図である。
【符号の説明】
30 ヘッダファイル、 31 ソースファイル、 3
2 コンパイル情報、33 コンパイラ、 34 コン
パイル処理部、 35 オブジェクトファイル、 36
ライブラリファイル、 37 リンク情報、 38
リンカ、 39 リンク処理部、 40 実行形式ファ
イル、 41 複合実行形式ファイル情報、 42 複
合実行形式ファイル作成部、 43 複合実行形式ファ
イル、78 初期化プログラム

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 演算装置により実行されるプログラムを
    生成するプログラム生成装置において、 各々が、プログラムコードを含むテキストセクションと
    前記プログラムコードで参照されるデータを含むデータ
    セクションと前記プログラムコードで参照されないデー
    タを含む付加情報セクションのうちの少なくとも1つ
    と、前記テキストセクションと前記データセクションと
    前記付加情報セクションのうちの少なくとも1つに関す
    る情報を保持する内部構成情報とから構成される、少な
    くとも1つの実行形式ファイルを入力する入力手段と、 前記実行形式ファイルから前記内部構成情報に基づいて
    前記テキストセクションを抽出するテキストセクション
    抽出手段と、 前記実行形式ファイルから前記内部構成情報に基づいて
    前記データセクションを抽出するデータセクション抽出
    手段と、 前記実行形式ファイルの前記テキストセクションと、前
    記実行形式ファイルの前記データセクションとの結合の
    順序を決定する結合順序決定手段と、 前記実行形式ファイルの前記内部構成情報に基づいて、
    前記実行形式ファイルの前記テキストセクションおよび
    前記データセクションの情報を、前記結合順序決定手段
    から得た順序に基づいて結合した結合内部構成情報を作
    成する内部構成情報結合手段とを備えることを特徴とす
    るプログラム生成装置。
  2. 【請求項2】 前記実行形式ファイルの前記テキストセ
    クションを前記テキストセクション抽出手段から入力
    し、前記テキストセクションの内容および前記データセ
    クションの内容を保持しつつ、前記結合順序決定手段か
    ら得た結合の順序に基づいて結合した結合セクションを
    作成するセクション結合手段と、 前記付加情報セクションの一部および前記内部構成情報
    の一部を除去しつつ、実行に必要な前記テキストセクシ
    ョンおよび前記データセクションを維持し、前記結合内
    部構成情報および前記結合セクションを出力する出力手
    段とを備えること特徴とする請求項1記載のプログラム
    生成装置。
  3. 【請求項3】 メモリ空間上で再配置可能な再配置可能
    ファイルを入力する再配置可能ファイル入力手段と、 前記再配置可能ファイルを前記メモリ空間上で再配置し
    て前記実行形式ファイルを生成する実行形式ファイル生
    成手段とを備え、再配置可能ファイルをプログラムに追
    加できる機能を有する請求項2記載のプログラム生成装
    置。
  4. 【請求項4】 前記実行形式ファイルを作成可能なライ
    ブラリファイルを入力するライブラリ入力手段と、 前記ライブラリファイルから再配置可能なオブジェクト
    ファイルを生成する再配置可能ファイル生成手段とを備
    え、前記ライブラリファイルから得た再配置可能ファイ
    ルをプログラムに追加できる機能を有する請求項3記載
    のプログラム生成装置。
  5. 【請求項5】 複数の前記実行形式ファイルからの任意
    のものを選択するための選択手段と、 選択された前記実行形式ファイルを前記入力手段に引き
    渡す選択ファイル入力手段とを備え、所望の前記実行形
    式ファイルをプログラムに追加できる機能を有する請求
    項2記載のプログラム生成装置。
JP28544897A 1997-10-17 1997-10-17 プログラム生成装置及びプログラム生成方法 Expired - Fee Related JP4003261B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP28544897A JP4003261B2 (ja) 1997-10-17 1997-10-17 プログラム生成装置及びプログラム生成方法
US09/168,043 US6185578B1 (en) 1997-10-17 1998-10-07 Program creation apparatus, program creation method, and recording medium containing a software program for implementing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28544897A JP4003261B2 (ja) 1997-10-17 1997-10-17 プログラム生成装置及びプログラム生成方法

Publications (2)

Publication Number Publication Date
JPH11119981A true JPH11119981A (ja) 1999-04-30
JP4003261B2 JP4003261B2 (ja) 2007-11-07

Family

ID=17691657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28544897A Expired - Fee Related JP4003261B2 (ja) 1997-10-17 1997-10-17 プログラム生成装置及びプログラム生成方法

Country Status (2)

Country Link
US (1) US6185578B1 (ja)
JP (1) JP4003261B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100461535B1 (ko) * 2001-11-02 2004-12-14 한국전자통신연구원 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법
JP2012120115A (ja) * 2010-12-03 2012-06-21 Fuji Xerox Co Ltd 画像処理装置及び画像処理プログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
JP2000242501A (ja) * 1999-02-23 2000-09-08 Sony Corp 情報処理装置、情報処理方法及びプログラム書込み装置
US20010042069A1 (en) * 2000-02-29 2001-11-15 Petrov Peter D. Method and apparatus for building a memory image
US6757887B1 (en) * 2000-04-14 2004-06-29 International Business Machines Corporation Method for generating a software module from multiple software modules based on extraction and composition
JP2002055829A (ja) * 2000-08-07 2002-02-20 Matsushita Electric Ind Co Ltd 中間オブジェクト連結方法、及び、中間オブジェクト連結装置、及び、リンカ装置、及び、コンパイラドライバ装置、並びに、中間オブジェクトを連結するプログラムを記録した記憶媒体
US7954086B2 (en) * 2003-05-19 2011-05-31 Hewlett-Packard Development Company, L.P. Self-describing kernel modules
KR100617698B1 (ko) * 2004-06-07 2006-08-28 삼성전자주식회사 기능별 데이터 저장을 위한 바이너리 파일 생성 장치 및방법과 그 방법이 저장된 컴퓨터 판독 가능한 저장 매체
US7567992B1 (en) * 2006-12-29 2009-07-28 Unisys Corporation Replicating of plurality of instances of an object model in memory arrangement using portable object references where each object attribute assigned GUID
US20090193392A1 (en) * 2008-01-29 2009-07-30 Michael David Downen Dynamic intermediate language modification and replacement
US8719808B1 (en) * 2010-01-27 2014-05-06 Altera Corporation Method and apparatus for using object files to provide reliable program operation
US20110225297A1 (en) 2010-03-11 2011-09-15 International Business Machines Corporation Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue
US9348661B2 (en) * 2010-03-11 2016-05-24 International Business Machines Corporation Assigning a unique identifier to a communicator
US9448850B2 (en) * 2010-03-11 2016-09-20 International Business Machines Corporation Discovering a resource in a distributed computing system
US8621446B2 (en) * 2010-04-29 2013-12-31 International Business Machines Corporation Compiling software for a hierarchical distributed processing system
CN107015819B (zh) * 2016-01-27 2020-11-13 阿里巴巴集团控股有限公司 在服务器端更新html模板的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system
US5649200A (en) * 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
US5864862A (en) * 1996-09-30 1999-01-26 Telefonaktiebolaget Lm Ericsson (Publ) System and method for creating reusable components in an object-oriented programming environment
JPH09212352A (ja) * 1996-01-31 1997-08-15 Hitachi Software Eng Co Ltd プログラム開発支援システム
US6052525A (en) * 1997-08-14 2000-04-18 International Business Machines Corporation Method of error handling in a framework

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100461535B1 (ko) * 2001-11-02 2004-12-14 한국전자통신연구원 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법
JP2012120115A (ja) * 2010-12-03 2012-06-21 Fuji Xerox Co Ltd 画像処理装置及び画像処理プログラム

Also Published As

Publication number Publication date
JP4003261B2 (ja) 2007-11-07
US6185578B1 (en) 2001-02-06

Similar Documents

Publication Publication Date Title
JP4003261B2 (ja) プログラム生成装置及びプログラム生成方法
KR101104035B1 (ko) 자원 매니페스트
JP4050764B2 (ja) コンパイルシステム
US6349408B1 (en) Techniques for implementing a framework for extensible applications
US6339841B1 (en) Class loading model
US7669201B2 (en) System and method for common file installation
US6523101B1 (en) Installed-software development assistance system
US20010042069A1 (en) Method and apparatus for building a memory image
US20040003388A1 (en) Preparation of a software configuration using an XML type programming language
JPH10283189A (ja) 内蔵実行可能アプリケーション及びコンピュータ読み取り可能な記憶媒体並びに内蔵実行可能アプリケーションの作成方法及びその作成システム
JPH08171482A (ja) プログラムのバージョン生成方式
JPH11110194A (ja) 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
JP2007293383A (ja) プログラム開発支援装置及びプログラム開発支援装置の動作方法
JPH0644063A (ja) 個別サブプログラムをメインプログラムに統合する方法
JP2005182562A (ja) コンパイル方法および装置、ならびにコンパイラ
US11221828B2 (en) Support device and support program
JP4500040B2 (ja) コンパイラプログラム、コンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体、コンパイル方法及びコンパイル装置
US6026242A (en) Methods, computer program products, and apparatus for initializing global registers
Mittelbach et al. The docstrip program
US10310871B2 (en) Non-transitory computer-readable recording medium storing control program, control device and control method
JPH0869381A (ja) コンパイル方式
US7954086B2 (en) Self-describing kernel modules
KR19990011346A (ko) 압축된 부팅 롬 생성 방법
JP2004192604A (ja) 組込みソフトウェア開発装置及び組込みソフトウェア開発方法
JP3604936B2 (ja) 最適化方法,最適化装置及び記録媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040406

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070813

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100831

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110831

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110831

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120831

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees