Cコンパイラー機能 - PIC24とdsPIC®

24-bit CCS CコンパイラーはPIC24 と dsPIC® DSCデバイスをサポートしています。 機能は他のCCS Cコンパイラーと殆ど同様です。 コンパイラはPIC®レジスター特有の標準C演算子とビルト-イン・ライブラリを含んでいます。 C言語からハードウエア機能へのアクセスするための含まれている主な機能:

  • 標準 C プリ-プロセッサー, 演算子 & ステートメント
  • 1, 8, 16, 32, 48 と 64 bit整数タイプ
  • 32, 48 と 64-bit 浮動少数点
  • 標準1ビット・タイプ(Short Int)によりコンパイラが非常に効率のよいビット・オリエントされたコードを生成します。
  • #BIT, #BYTE と #WORD はC変数にレジスターをマップするために絶対番地に指定することが出来ます。
  • ビット・アレイ
  • 固定小数点
  • ROM内の定数
  • 定数データのフレキシブルな操作
  • 可変長定数文字列
  • addressmod機能は メモリー・デバイスにユーザー定義アドレス・スペースを作ることが出来ます。

内蔵関数

48-bitと64-bit整数と浮動小数点数のような機能により、より高い精度、またはより広い範囲より簡単に必要とする計算を行います。 関数再帰は反復処理アルゴリズムのための新たな可能性を可能にします。 大幅に強化拡張されたオシレータ制御は他のCCS Cコンパイラとの下位互換性を 維持しながら多くのクロック・ソース, PLLと省電力オプションから選択することができます。

PIC24 と dsPIC®対応Cコンパイラーはさらに最適化されたプロセッサーとペリフェラル制御 を含んでいます。400以上の内蔵関数が用意されておりPIC® MCU ハードウエアに 簡単に効率的で高度に最適化されたコードを生成します。内蔵関数にはDSPのための拡張されたA/D変換, 16-bit と 32-bitタイマー, イディペンデント I2C と SPI, UART通信, 入力キャプチャ/出力コンペア とモーター制御PWMモジュールを含んでいます。含まれている関数:

  • 内蔵ライブラリはすべてのチップでRS232CシリアルI/O, I2C, ディスクリートI/O と精密なディレイで動作します。
  • シリアルI/O関数はGETC()とPRINTF()のような標準関数を使ってRS232CをI/Oのように使うことができます。
  • フォーマットされたprintfでヘキ(HEX)サ又は、デシマル(decimal)でのフォーマットと表示が簡単に出来ます。
    *printf出力はどの関数にも当てはめることができます。
  • 複数の I2C と RS232ポートを簡単に定義
  • #use rs232() はgetcに対して最大待ち時間を指定するオプションを提供します。
  • ハードウエア・トランシーバが可能な場合は相当するパーツに使用されます。 他の全ての場合はコンパイラによりソフトウエア・シリアル・トランシーバが生成されます。
  • マイクロコントローラーのクロック・スピードにかかわらずPRAGMA を使って内蔵関数によってマイクロ秒,ミリ秒単位で設定できます。
  • INPUT()やOUTPUT_HIGH()等の関数がトライステート・レジスターを適切にメンテナンス出来ます。
  • コンパイラ指令が全てのI/Oでトライ・ステート・レジスターのリフレッシュ、 又は、I/Oを可能な限り早くするように決定します。
  • #USE SPI()
  • A/Dコンバータからの値を読み出すためのREAD_ADC()のようなシンプルな関数
  • ソース・コード・ドライバーはLCDモジュール, キーパッド,24xxと94xxシリアルEEPROM, X10, DS1302 と NJU6355リアル・タイム・クロック, ダラス・タッチ・メモリー・デバイス, DS2223 と PCF8570, LTC1298 と PCF8591 A/Dコンバーター, 温度センサー, デジタル・ポット, I/Oエクスパンダー等々のドライバーやプログラムのサンプルを提供しています。
  • 133の直ぐに使えるプログラムが含まれいます。

追加機能

PIC24とdsPIC® Cコンパイラはインライン,又は、セパレート関数を扱うことが出来ますので、再使用可能なレジスターにパラメータを通します。 ユーザーには見えませんがコンパイラはプログラムの構造を解析し, そして、RAMとROMの使用を最適化するためにコールツリーを 処理します。更に下記の機能を含んでいます:

  • アセンブラー・コードをソースに直接,どこにでも入れることが出来,Cで定義された変数の参照が出来ます。
  • 多重関数機能はパラメータの数と タイプの違いのみで同じ名前でいくつかの関数を持つことが出来ます。
  • コールで引数が使用されていない場合、デフォルト・パラメータを関数で 使用することが出来ます。パラメータを関数に渡したくない場合は初期値が使用されます。
  • インターラプト関数では、正しいインターラプトがコールされたかを認識すると同時に コンパイラがすべてのスタートアップとクリーンアップ・コードを作成します。
  • リファレンス・パラメータがコードの可読を向上させスタックのスペースをセーブするためインライン処理を効率よく行います。
  • 関数内のパラメータの可変数
  • リロケータブル・オブジェクト/マルチ・ コンパイレーション・ユニット(*IDEのみ)
  • 自動 #fusesコンフィギュレーション
  • Data Converter Interface(DCI)ペリフェラルはI2S, AC '97 16-bitと20-bitのプロトコルを 使ったコーデック・チップの通信をサポートしていますのでオーディオ・アプリケーションが簡単に作れます。
  • 新しいプリプロセッサ宣言での高速アクセスのためのデータ・スペースに変数を手動で割り当てることによって新しいデジタル信号処理機能
  • 最もパフォーマンスが重要なコードのためにDSPインライン・アセンブリを使用して下さい

CCSのコンパイラはWindows 95, 98, ME, NT4, 2000, XP, Vista, Windows7, Windows8, Windows8.1, Windows10(64bit含む) 又は, Linux[リナック版が必要]に対応しております。 MPLAB® IDEを含むポピュラーな エミュレーターやプログラマーに対応した出力ヘキサとデバッグ・ファイルを選択でき、そして、ソース・レベル・ デバッグのためにウィンドウズ版はパワフルなウィンドウズでのデバッグ環境を提供しております。