コンパイラ詳細
CCS Cコンパイラーは他社のGNUまたは共通のエンジンをベースにしたコンパイラーとは異なり、PIC® MCU アーキテクチャ のために特別に設計されています。CCS Cコンパイラーはあらゆる面からPIC® MCUのために特別に最適化された コンパイラーです。
PIC®のプロ-レベル最適化コンパイラーは標準C構文, 多数のプリ-プロセッサー関数 と多くのビルト-イン関数ライブラリーを含んでいます。 これは組み込みC言語レベルでのデバイスのハードウェア機能に固有のアクセスを開発者に提供します。 Cの構文や特別な機能は些細な新しいチップへの移行を可能にし、全てのチップ・ファミリー全体にわたって均一な構文があります。 実行可能プログラム・サンプル と デバイス・ライブラリーは 静電容量式タッチ、有線とワイヤレス通信、モーションおよびモーター・コントロール、エネルギー管理などの最先端技術を取り入れたアプリケーションを迅速に開発するのに非常に役立ちます。
CCSの全てのコンパイラはPro-Level OptimizationのANSI C準拠のコンパイラーです。 CCSはどの様なプロジェクトの要件にもフィットするためにフレキシブルなソフトウエア構成を提供しています。 コンパイラーはMicrochip MPLAB®とMPLAB® Xの様な多くのサードパーティー・ツールと互換性があります。
プロ-レベル最適化
含まれるファイル
デバイス固有のファイルはコンパイラが特定のPIC® MCUのコード生成を最適化するために 必要なすべての情報が含まれています。
- 命令メモリー・サイズ
- データ・メモリー・サイズ
- ピン機能
- メモリー・バンキング
- ペリフェラル・リソース
- ハードウエア・スタック・サイズ
文字列の最適化
- 7-bit ASCII文字列圧縮 - 改良された文字列の圧縮によりシステムの使用状況を減少
- スイッチ文 - 簡単に緊密でよりメンテナンス可能なソースコードと小さいROMフットプリントになる文字列比較を行います。
- 可変長定数文字列
- printf - この関数を使用することにより複数の文字列出力の使用量を減らします。
効率的なデータ構造をプログラム・メモリにマッピング
フレキシブルな定数データ・ストラクチャの操作はコンパイラが バーチャルにサイズを無制限にルックアップ・テーブルを操作することが出来ます。 これにより、例えば大きな三角関数テーブルを作成できたり、また、オン-チップMCUメモリーの大規模なFPGAコンフィギュレーション・メモリイメージを格納することが可能になります。 定数(文字列とアレイを含む)をプログラム・メモリにセーブされます。 DSPパフォーマンスがプリプロセッサ宣言でより速いアクセスのために手動でデータ空間に変数を 割り当てることにより 拡張することが出来ます。
その他の機能:
- #opt compress - プログラム・メモリーの最大60%削減で速度の代わりにスペースを最適化
- 効率的な関数管理 - ハードウエア・スタックより深いコール・ツリーを可能にします。
- 自動リンキング - 複数のコード・ファイルの実用的な取扱い
- インライン・アセンブリー - アセンブラー・コードをソースのどこにでも入れることが出来て、そして、Cで定義された変数の参照が出来ます。
- 関数多重定義 - パラメータの数とタイプの違いのみで同じ名前でいくつかの関数を持つことが出来ます。
- デフォルト・パラメーター - 引数が渡されていない場合はこれらの値が使用されます。
- パラメータの可変数 - 任意の数の変数が可能な関数を定義します。
- Short Int[標準1ビット・タイプ] - 非常に効率的なビット指向のコードを生成
- インテリジェントな割り込み処理
- 自動ヒューズ・コンフィギュレーション
- PIC24とdsPIC® DSCデバイスのための関数再帰[Function recursion]
- リロケータブル・オブジェクト / マルチ・コンパイル・ユニット(IDE版のみ)
最大数のビルトイン関数
CCSのコンパイラは効率的かつ高度に最適化されたコードを生成しながらハードウェアへのアクセスを簡素化する数百の 組み込み関数が含まれています。
デバイス・ペリフェラル・アクセス:
- I2C と SPI
- A/Dコンバーター
- オンチップ・データEEPROM
- LCDコントローラー
- プロセッサー制御
- 静電容量式タッチ
- メモリー・アクセス
- リアルタイム・クロック
外部メモリー・アクセス:
アドバンテージ:
- 素早くバスの番号に接続
- Capture/Compare/PWMペリフェラルを簡単にセットアップ
- マイクロコントローラのクロック速度を指定
- マイクロ秒、又は、ミリ秒で精度のあるディレイを生成
- セットアップし、 そして、オンチップA/Dコンバータからの値を読み取り
- PLLとパワー・セービング・オプション
- 静電容量式タッチをプロジェクトに迅速に統合
- 内部PIC® LCDコントローラーを駆動
- トライ-ステート・レジスターの保持
- PIC®レジスターをC変数にマップ
- dsPIC® DSCへのインターフェース・コーデック・チップ
パワフルなPIC® MCU特定デバイス・ライブラリー
アセンブリー、又は、Cで何故、何度も繰り返し関数をコーディングするのですか? 組み込み開発の助けとなるためにCCS Cコンパイラー製品には多くのライブラリーが提供されています。
含まれているドライバー:
- LCDモジュール
- キーパッド
- シリアルEEPROM
- リアルタイム・クロック
- タッチ・センサー
- メモリー・デバイス
- A/Dコンバーター
- 温度センサー
- デジタル・ポテンショメーター
- I/O エクスパンダー
- & 等々...
含まれている標準 C演算ライブラリー:
- 1/8/16/32ビット整数タイプと32ビット浮動小数点をサポート - サポートされている全デバイス
- 48/64ビット整数タイプと64ビット浮動小数点をサポート - PIC24 と dsPIC® DSCデバイス
- 固定小数点 - 整数の速度で10進表現を提供します。
- & 等々...
実行可能なプログラム・サンプル
CCSのCコンパイラは多くの一般的なアプリケーションのためのサンプル・プログラムのライブラリーが含まれています。 各サンプル・プログラムは例を実行する方法の説明を持ったヘッダが含まれており必要に応じて外部デバイスを接続するための 配線の指示も含みます。
含まれているサンプルには:
- FAT - FATファイル・システムを持つSD/MMCカード上のファイルにアクセス/読み取り/書き込み。ファイルに追加することにより各エントリを保存し、 PIC® MCU上の長期的なログを実行します。そして、ファイルを開くことによってPC上で結果を読み取ることが出来ます。
- SIM/SMART card - 一般的なGSM/GPRS携帯電話に見られるSIM/SMART card上の連絡先と電話番号の情報にアクセスします。
- Frequency Generator - 1つだけのユーザー定義の汎用I/Oピンを使ってトーン、周波数とDTMFを生成。 これは1つのピン上でソフトウェアPWMを実装することによって行われます。
- XTEA Cipher Library - XTEA暗号化を使用して2つのPIC® MCUとの間で暗号化されたデータを送信します。
- XML Parser - PIC® MCUの最小限のリソースを使用してXML文書を解析します。