ST7
Cxstm7はST7シリーズをすべてサポートします。
- ANSI/ISOに準拠したCで記述
- STM7周辺機器のためにヘッダーファイルもサポート
具体的な特徴
- 柔軟なインターフェイス
- CosmicのCコンパイラはWindowsの統合開発環境(IDEA)もしくはお気に入りのエディタやソースコード制御システムを実装したWindowsの32bitコマンドラインアプリケーションで使用することが出来ます。
- 自動的チェックサム機能
- リンカは自動的に複数のセグメントのチェックサム機構をアプリケーションに作成し維持します。
- 8bitもしくは16bitのチェックサムアルゴリズムを選択できます。
- 呼び出されたチェックサムを計算、比較するためにアプリケーションの任意の場所から関数を確認します。
- ブートローダ
- ライブラリルーティンによってROMに保存されていたりRAMにコピーされていたりする関数群(ブロック)を作成します。
- 複数のブロックは独立にセットアップ、コピー、実行がなされます。
- コンパイラは、ST7内部のメモリの固定の場所でローカル変数と引数を関数に割り当てます。
- リンカがメモリ領域の分配を最適化することで、RAMに使用領域は最小化されます。
- 実行時支援パッケージ
- CのルーティンサポートはANSIのサブセットで構成されているのでライブラリのルーティンを自由に変更可能
- すべてのルーティンライブラリはROM化が可能
- →整数のみのライブラリと単精度浮動小数点のライブラリの2種類から選べるので、必要がなければより高速な整数のみのライブラリを選択することが可能
- 最適化
- 大域的最適化とマイクロコントローラに合わせた特異的最適化の両方を含みます。
- 最適化を自分でコントロールすることが出来るので、アプリケーションの詳細な設計に合わせて微調整することが可能です。
- CosmicのZAPデバッガを使うことで最適化コードは形を変えることなくデバッグされます
- ピーホール(覗き穴)最適化ソフトは、非効率的なコードを適切なコードに置き換えることで最適化します。
- 型が8bitならばchar型で演算制御は行われます。
- IEEE754規格に準拠した単精度浮動小数点(32bit)で数学的演算を行います。
- 他には以下の最適化があります。
- 岐路短縮ロジック
- 局所分岐の削除
- 定数の畳み込み
- 到達不能コードの除去
- 冗長な負荷/記憶の削除
- switch文の最適化
- 拡張機能
- Bool型変数をグローバル/ローカル変数のコンパイラによって宣言可能
- bitフィールドをchar型かint型か選択可能
- bitの番号付けを右からか左からか選べます
- 拡張的な以下のようなコードが用意されています
- asm()または#asm/#endasm・・・Cコード内にアセンブリコード直接挿入
- @near修飾子・・・外部メモリに配置されるデータを定義
- @interruptキーワード・・・C関数/オブジェクトを割り込みハンドラとして定義
- @〈adress〉構文・・・C関数/オブジェクトを絶対的アドレスとして定義
- #pragma section〈name〉・・・ユーザー定義の新しいプログラムの宣言
- コンパイラの付属的な特徴
- Cおよびアセンブリのソースレベルでデバッグが可能
- コンパイルによって絶対的で再配置可能なリストを出力
- エラー診断
- スタックモデルとメモリモデルのサポート
- 素早いコンパイルとアセンブル
- ファイルパス、オブジェクトの配置、エラーファイルのリスト化はすべてユーザーコントロール
- すべてのオブジェクトはホストコンピュータに依存しない
- 関数コードとスイッチテーブルは(.text)コードのセクションに生成
- 文字列や定数データは(.const)コードのセクションに生成
- 初期化されたスタティックデータは他のデータと区別されます
- 関数は共有され、ROMに配置されます。デフォルトによって自動的に修正されることはありません。
- コードはSAL(記号アセンブリ言語)ファイルとして生成されるのでコンパイラの出力をテストすることが出来ます。
- 大きなソースコードに対応するため、ヒープ(短期記憶領域)にテーブルをリアルタイムに作成
- 文字列操作ルーティンは高速の実行するためにアセンブリ言語で実装されています。
- デバッグサポート
- cxstm7はZAP ST7 SIMまたはZAP DVP 、ZAP HDS2をデバッガとして使うことが出来ます。
- IEEE695またはELF/DWARFを含むいくつかの補助的なデバッグフォーマットもサポートしています。
- 対応機種
Host Product code
PC Microsoft Windows(Windows 95/98/ME/NT4/XP) CWSST7
PC Linux CLXST7
SUN SPARC(SunOS/Solalis) CSSST7
HP9000(HPUX) CHPST7