2.4 操作方法

ここでは、RXファミリ用C/C++コンパイラの操作方法について説明します。

 

なお、オプションはコマンドラインの左から右に順に取り込みます。異なる意味を持つオプションの指定を同時に指定した場合、エラーや警告がない場合は、後(右側)に書いた方が有効です。エラーや警告が出る条件や、その結果はオプションにより異なりますので、詳しくは各オプションの説明でご確認ください。

(1)

各ツールの操作方法

(a)

コンパイルドライバ(ccrx)

ccrxはコンパイルドライバの起動コマンドです。

本コマンド起動により、コンパイル、アセンブル、リンクを行うことができます。

- 入力ファイルの拡張子が「.s」「.src」「.S」「.SRC」のいずれかである場合、コンパイルドライバはそのファイルをアセンブリ言語ファイルと解釈して、アセンブラを起動します。

- 入力ファイルの拡張子が「.c」「.C」のいずれかである場合、コンパイルドライバはそのファイルをC言語ソースファイルと解釈して、コンパイラを起動します。

- 入力ファイルの拡張子が「.cpp」「.CPP」「.cc」「.CC」「.cp」「.CP」のいずれかである場合、コンパイルドライバはそのファイルをC++言語ソースファイルと解釈して、コンパイラを起動します。
これら以外の拡張子のファイルは、C言語ソースファイルとしてコンパイルします。

 

入力ファイルは複数同時に指定することができます。なお、C/C++言語ソースファイルを入力ファイルに複数同時に指定する場合を「一括コンパイル」と呼びます。

 

【コマンド記述形式】

ccrx [△<オプション> … ][△<ファイル名>[△<オプション> …] …]
        <オプション>:-<オプション>[=<サブオプション>[=<サブオプション>]][,…]

[ ] : [ ] 内は省略可能

... : 直前の [ ] 内のパターンの繰り返しが可能

{ } : | で区切られた項目を選択

△ : 1個以上の空白

(b)

アセンブラ(asrx)

asrxは、アセンブラの起動コマンドです。

 

【コマンド記述形式】

asrx [△<オプション> … ][△<ファイル名>[△<オプション> …] …]
        <オプション>:-<オプション>[=<サブオプション>][,…]

(c)

最適化リンケージエディタ(rlink)

rlinkは、最適化リンケージエディタの起動コマンドです。

リンク処理だけではなく、以下に挙げる機能も含んでいます。

-

リロケータブルファイル結合時の最適化

-

ライブラリファイルの作成や編集

-

モトローラS形式ファイル、インテルHEX形式ファイル、およびバイナリファイルへのコンバート

 

【コマンド記述形式】

rlink [△<オプション> … ][△<ファイル名>[△<オプション> …] …]
          <オプション>:-<オプション>[=<サブオプション>][,…]

(d)

ライブラリジェネレータ(lbgrx)

ライブラリ・ジェネレータは、標準ライブラリを生成するツールです。標準ライブラリを生成する際、任意のコンパイル・オプションを指定することができます。

lbgrxは、ライブラリジェネレータの起動コマンドです。

 

【コマンド記述形式】

lbgrx [△<オプション> … ]
          <オプション>:-<オプション>[=<サブオプション>][,…]

 

(2)

操作方法例

(a)

コンパイル、アセンブル、リンクを1コマンドで実施する場合

以下の手順すべてを1コマンドで実施します。

-

C/C++言語ソースファイル(tp1.cとtp2.c)をccrxでコンパイルする

-

コンパイル後、asrxでアセンブルする

-

アセンブル後、rlinkでリンクして、アブソリュートファイル(tp.abs)を作成する

 

【コマンド記述】

ccrx -isa=rxv1 -output=abs=tp.abs tp1.c tp2.c

備考 1.

outputオプションの出力形式指定を"-output=sty"に変えると、リンク後のファイルをモトローラS形式ファイルとして生成します。

備考 2.

アブソリュートファイル生成過程で生じる中間ファイル(アセンブリ言語ファイルや、リロケータブルファイル)は残りません。生成されるファイルは、outputオプションで指示した形式のファイルのみです。

備考 3.

ccrxに対して、アセンブラ、最適化リンケージエディタにのみ有効なアセンブルオプションやリンクオプションを指示したい場合には、-asmcmdオプション、-lnkcmdオプション、-asmoptオプション、-lnkoptオプションを使用して指示してください。

備考 4.

リンク対象のオブジェクトは、0番地から配置します。セクションの並び順は保証されません。配置アドレスやセクションの配置順序を指示したい場合には、-lnkcmdオプション、-lnkoptオプションを使用して最適化リンケージエディタへオプション指示してください。

(b)

コンパイルとアセンブルを1コマンドで実施する場合

以下の手順を1コマンドで実施し、別コマンドでリンカを起動して、tp.absを作成します。

-

C/C++言語ソースファイル(tp1.cとtp2.c)をccrxでコンパイルする

-

コンパイル後、asrxでアセンブルして、リロケータブルファイル(tp1.obj, tp2.obj)を作成する

 

【コマンド記述】

ccrx -isa=rxv1 -output=obj tp1.c tp2.c
rlink -form=abs -output=tp.abs -subcommand=cmd.sub tp1.obj tp2.obj

備考 1.

ccrxに対して"-output=obj"オプションを指示すると、ccrxはリロケータブルファイルを生成します。

備考 2.

リロケータブルファイル名を変更する場合は、ccrxへC/C++言語ソースファイルをひとつずつ入力する必要があります。

備考 3.

rlinkのformオプションを、"-form=sty"に変えると、リンク後のファイルをモトローラS形式ファイルとして生成します。

(c)

コンパイル、アセンブル、リンクを各々別コマンドで実施する場合

以下の個々の手順を、それぞれ1コマンドで実施します。

-

C/C++言語ソースファイル(tp1.cとtp2.c)をccrxでコンパイルして、アセンブリ言語ファイル(tp1.src, tp2.src)を作成する

-

アセンブリ言語ファイル(tp1.src, tp2.src)をasrxでアセンブルして、リロケータブルファイル(tp1.obj, tp2.obj)を生成する

-

リロケータブルファイル(tp1.obj, tp2.obj)をrlinkでリンクして、アブソリュートファイル(tp.abs)を作成する

 

【コマンド記述】

ccrx -isa=rxv1 -output=src tp1.c tp2.c
asrx tp1.src tp2.src
rlink -form=abs -output=tp.abs -subcommand=cmd.sub tp1.obj tp2.obj

備考

ccrxに対して"-output=src"オプションを指示すると、ccrxはアセンブリ言語ファイルを生成します。

(d)

アセンブルとリンクを1コマンドで実施する場合

以下の手順すべてを1コマンドで実施します。

-

アセンブリ言語ファイル(tp1.src, tp2.src)をasrxでアセンブルする

-

アセンブル後、rlinkでリンクして、アブソリュートファイル(tp.abs)を作成する

 

【コマンド記述】

ccrx -isa=rxv1 -output=abs=tp.abs tp1.src tp2.src

備考

リンク対象のオブジェクトは、0番地から配置します。セクションの並び順は保証されません。配置アドレスやセクションの配置順序を指示したい場合には、-lnkcmdオプション、-lnkoptオプションを使用して最適化リンケージエディタへオプション指示してください。

(e)

アセンブルとリンクを別コマンドで実施する場合

以下の個々の手順を、それぞれ1コマンドで実施します。

-

アセンブリ言語ファイル(tp1.src, tp2.src)をasrxでアセンブルして、リロケータブルファイル(tp1.obj, tp2.obj)を生成する

-

リロケータブルファイル(tp1.obj, tp2.obj)をrlinkでリンクして、アブソリュートファイル(tp.abs)を作成する

 

【コマンド記述1】

ccrx -isa=rxv1 -output=obj tp1.src tp2.src
rlink -form=abs -output=tp.abs -subcommand=cmd.sub tp1.obj tp2.obj

【コマンド記述2】

asrx -isa=rxv1 tp1.src tp2.src
rlink -form=abs -output=tp.abs -subcommand=cmd.sub tp1.obj tp2.obj

(f)

既存ライブラリのリストファイルを作成する場合

-

lib1.libのリスト(lib1.lbp)を作成する

 

【コマンド記述】

rlink -form=library -list -library=lib1.lib