56800/E
Cosmicの56800/EクロスコンパイラはFreescale社の56800/Eシリーズをすべてサポートします。
- ANSI/ISOに準拠したCで記述
- 56800/E周辺機器のためにヘッダーファイルもサポート
具体的な特徴
- 実行時支援パッケージ
- CのルーティンサポートはANSIのサブセットで構成されているのでライブラリのルーティンを自由に変更可能
- すべてのルーティンライブラリはROM化が可能でリエントラント
- →整数のみのライブラリと単精度及び倍精度浮動小数点のライブラリの中から選べるので必要がなければより高速な整数のみのライブラリを選択することが可能
- 最適化
- 頻繁に使うスタティックなデータは@dirを使うことで直接ページメモリに配置することが可能です。
- 余剰固定小数点(short_Fract及びlong Fract)は直接DSPのレジスタと命令に一致します。
- 並行命令の自動サポートはいつでも実装することができます。
- コンパイラは最初の引数を関数に渡してレジスタ内に変数を返します。
- 文字列型の引数は拡張されることなく関数に渡されます。
- 非常に効率的な小数点演算をサポートします。
- 他には以下の最適化があります。
- 岐路短縮ロジック
- 局所分岐の削除
- 定数の畳み込み
- 到達不能コードの除去
- 冗長な負荷/記憶の削除
- switch文の最適化
- 拡張機能
- 拡張的な以下のようなコードが用意されています
- asm()・・・Cコード内にアセンブリコード直接挿入
- @far/@near・・・アプリケーションサイズ64kを境にアドレスサイズを最適化
- @prog・・・巨大な定数の構造や配列を置きたいプログラムスペースを宣言
- @interrupt・・・C関数/オブジェクトを割り込みハンドラとして定義
- @〈adress〉・・・C関数/オブジェクトを絶対的アドレスとして定義
- 拡張的な以下のようなコードが用意されています
- コンパイラの付属的な特徴
- Cおよびアセンブリのソースレベルでデバッグが可能です
- デフォルトオプションで生成されたすべてのコードはCosmicのMC56800/Eの上で実行されます
- 初期化されたスタティックデータはPAMに置かれ、他のデータはBSSセクションに配置されます
- すべての関数はリエントラントで、自己修復することはありません
- コンパイラとユーザー定義された定数はいつでも使用できるようにFlashメモリ上に置かれます
- コードはSAL(記号アセンブリ言語)ファイルとして生成されるのでコンパイラの出力をテストすることが出来ます
- 浮動小数点はIEEE754規格に準じています。コンパイラは単精度浮動小数点演算と数学関数をサポートします
- 大きなソースコードに対応するため、ヒープ(短期記憶領域)にテーブルをリアルタイムに作成
- 文字列操作ルーティンは高速の実行するためにアセンブリ言語で実装されています
- デバッグサポート
- Cosmicは完全なCソースレベルでのデバッグが可能です。詳しくはこちら
- IEEE695、ELF/DWARFまたはP&Eマップファイを含むデバッグフォーマットもサポートしています。
- 対応機種
HostPC Product code
PC (DOS/Windows) CX56K-PC
PC Linux CX56K-LINUX
SUN SPARC (SunOS/Solaris) CX56K-SUN
HP9000(HPUX) CX56K-HP