M32Rファミリ用C/C++コンパイラパッケージ [M3T-CC32R]
- 製品パッケージ内容
- 動作環境
- 処理フロー
- Cコンパイラcc32R
- アセンブラas32R
- リンカ、ライブラリアン、ロードモジュールコンバータ
- ユーティリティ
C/C++コンパイラcc32R
-
ANSI-C, ISO C++仕様準拠
C/C++コンパイラおよびC標準ライブラリは、ANSI/ISO 9899-1990およびISO/IEC 14882:2003 に準拠しています。
-
浮動小数点演算をサポート
浮動小数点の内部形式は、IEEE(Institute of Electrical and Electronics Engineers)-754規格に準拠しています。
-
64ビット整数演算ライブラリ(long64.h)を添付
LONG64型構造体を使って、各種整数演算を64ビットのダイナミックレンジで実行できる関数群です。 -
単精度演算で高速な、数学ライブラリ(mathf.h)を添付
-
FPU命令サポート(3218xグループ対応)
FPU命令を使ってコード生成を行うことができます。なお、FPU命令はfloat型専用ですが、double型の値を全てfloat型にみなすオプション(-float_only)の指定によって、FPU命令を最大限に活用することも可能です。
-
ベースレジスタ機能(ROMサイズ縮小に効果)
-
#pragma ADDRESS, #pragma INTERRUPT, #pragma SECTIONをサポート
-
最適化時におけるデバッグ機能をサポート
-
スタック使用量表示のファイル出力機能
-
EUCコード、シフトJISコード、Unicodeの全角日本語文字に対応
-
4種類のメモリモデルをサポート
-
C/C++関数のインライン展開に対応
関数定義の際に inline キーワードを指定できます。 inline指定された関数の呼び出しは、関数呼び出しを関数の中身に置換するため、サブルーチンジャンプ命令(BL)などのオーバーヘッドを省略でき、速度面で有利なコードを得ることができます。
-
セクション処理
cc32Rは生成するオブジェクトモジュールファイルの内容を4種類のセクション(プログラムコード・定数データ・初期値を持つデータ・初期値を持たないデータ)に分類します。リンカlnk32Rはこれらのセクションを任意のメモリ領域に配置しロードモジュールファイルを生成します。このとき、「初期値を持つデータ」のセクションは、配置される領域への初期値データ出力を抑制できます。また、出力を抑制した初期値データを別の指定領域(ROM領域等)に配置できます。
こうした機能により、ROM化時に初期値データをROM領域に移動させる作業が不要となります。
-
各種最適化機能
生成されるオブジェクトモジュールに対する最適化機能をサポートしています。最適化のレベルは次の3レベルの組み合わせによって指定します(1レベルのみの指定も可)。- アセンブリ言語レベルの最適化(不要コードの削除等)
- 局所的な最適化
- 大域的な最適化(構文レベルの最適化)
-
アセンブリ言語サブルーチン呼び出し
C/C++言語ソースファイル中でアセンブリ言語サブルーチンを呼び出すことができます。
-
インラインアセンブル記述
asm関数を使用して、C/C++言語ソースファイル中にアセンブリ言語が記述できます。
-
C/C++言語ソース行デバッグ情報の出力機能
生成されるロードモジュールファイルにソース行デバッグ情報が付加されています。このロードモジュールファイルは、M32Rファミリのデバッグシステム環境で、C/C++言語ソースレベルでのデバッグが可能です。本機能は最適化機能と併用できます。なお、C++言語の ソース行デバッグを行うには、ELF/DWARF2形式のロードモジュールを使用します 。
-
C++用リンカ・ライブラリアン機能
C++言語処理の際は、cc32Rをリンカおよびライブラリアンとして使用します。cc32Rでリンクを実行すると、SYSROF形式のほか、ELF/DWARF2形式のロードモジュールファイルを生成します。
Japan 日本語



