Skip to main content

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形式のロードモジュールファイルを生成します。

バージョン情報

最新Ver.: V.5.01 Release 01
リリース: 2009/05/01
バージョンアップ詳細(ツールニュース)

関連情報


End of content

Back To Top