Power Architecture
cxppcはPowerArchitectureのVLE(可変長コード)デバイスをサポートします。
- ANSI/ISOに準拠したCで記述
- PowerPC周辺機器のためにヘッダーファイルもサポート
具体的な特徴
- 実行時支援パッケージ
- CのルーティンサポートはANSIのサブセットで構成されているのでライブラリのルーティンを自由に変更可能
- すべてのルーティンライブラリはROM化が可能
- →整数のみのライブラリと単精度及び倍精度浮動小数点のライブラリの中から選べるので必要がなければより高速な整数のみのライブラリを選択することが可能
- 最適化
- 大域的最適化とマイクロコントローラに合わせた特異的最適化の両方を含みます。
- 最適化を自分でコントロールすることが出来るので、アプリケーションの詳細な設計に合わせて微調整することが可能です。
- ピーホール(覗き穴)最適化ソフトは、非効率的なコードを適切なコードに置き換えることで最適化します。
- IEEE754規格に準拠した単精度浮動小数点(32bit)で数学的演算を行います。
- 他には以下の最適化があります。
- 岐路短縮ロジック
- 局所分岐の削除
- 定数の畳み込み
- 到達不能コードの除去
- 冗長な負荷/記憶の削除
- switch文の最適化
- 拡張機能
- 拡張的な以下のようなコードが用意されています
- asm()または#asm/#endasm・・・Cコード内にアセンブリコード直接挿入
- @interrupt・・・C関数/オブジェクトを割り込みハンドラとして定義
- @〈adress〉・・・C関数/オブジェクトを絶対的アドレスとして定義
- @spr・・・専用レジスタにオブジェクトを直接アクセスできる
- 拡張的な以下のようなコードが用意されています
- コンパイラの付属的な特徴
- Cおよびアセンブリのソースレベルでデバッグが可能
- コンパイルによって絶対的で再配置可能なリストを出力
- エラー診断
- 素早いコンパイルとアセンブル
- ファイルパス、オブジェクトの配置、エラーファイルのリスト化はすべてユーザーコントロール
- すべてのオブジェクトはホストコンピュータに依存しない
- 関数コードとスイッチテーブルは(.text)コードのセクションに生成
- 文字列や定数データは(.const)コードのセクションに生成
- 初期化されたスタティックデータは他のデータと区別されます
- 関数は共有され、ROMに配置されます。デフォルトによって自動的に修正されることはありません。
- コードはSAL(記号アセンブリ言語)ファイルとして生成されるのでコンパイラの出力をテストすることが出来ます。
- 大きなソースコードに対応するため、ヒープ(短期記憶領域)にテーブルをリアルタイムに作成
- 文字列操作ルーティンは高速の実行するためにアセンブリ言語で実装されています。
- デバッグサポート
- cxppcはZAP/SIM及びZAP/BGPPCまたは多くの一般的なインサーキットエミュレータ(ICE)メーカの提供するデバッガが使えます。
- IEEE695、ELF/DWARF、P&Eマップファイルフォーマットを含むいくつかの補助的なデバッグフォーマットもサポートしています。
- 対応機種
HostPC Product code
PC (DOS/Windows) CXPPC-PC
PC (LINUX) CXPPC-LINUX
SUN SPARC (SunOS/Solaris) CXPPC-SUN
HP9000(HPUX) CXPPC-HP