You are here

MPLAB C30

MPLAB C30の概要

MPLAB C30はMicrochip社が提供している純正のCコンパイラで、MPLAB IDEに組み込んで利用します。基本的には有償の商品なのですが、大変ありがたいことに、性能面で少し制限されたものが評価版(Student Editionと呼ばれています)として無償で利用できるようになっています。制限といっても機能的には製品版と同じで、コードの最適化処理に関して、高度なものが機能しないようになっているだけです。基本的な最適化処理は機能するため、ホビーレベルでは性能面でもコードサイズ面でも十分なコードが得られます。

興味深いことに、コンパイラの中核はGNUのGCCで、GPLに従いそのソースコードも配布されています。少々(かなり :-P)残念なのは、同じGCCをベースとして開発されたAVRの8ビットプロセッサ用のWinAVRがC++のコンパイルができる一方で、16ビットプロセッサ用のMPLAB C30はコンパイル対象がCだけに限定されていることです。今後のバージョンアップで、C++にも対応してくれることを大いに期待しています。

MPLAB C30は当初dsPIC用とPIC24用の区別はありませんでしたが、現在は2つに分かれて提供されています。

MPLAB C30(Student Edition)は以下のページからダウンロードできます。

ダウンロードする際には、メイルアドレスや名前などを登録する必要があります。

ライブラリ

Cなどの言語処理系はコンパイラだけでは不十分で、一緒に利用できるライブラリの善し悪しが、開発ツールとしての評価に強く影響します。

MPLAB C30には、stdio.hやshtdlib.hに代表されるC言語の標準ライブラリのうち、組み込み系システムで利用する可能性が高いものが提供されており、ライブラリも含めたC言語という意味では、特段の違和感なく利用することができます。

PIC24には、浮動小数点演算装置は実装されていませんが、単精度の浮動小数点演算を行うためのライブラリが提供されており、プログラムの中で整数演算だけでなく、必要に応じて浮動小数演算を行うことができるようになっています。浮動小数点演算は、IEEE754に準拠した標準的なものとなっており、三角関数や、指数、対数関数なども用意されており、便利に使うことができます。ただし、あくまでもソフトウェア的な実装で演算時間をそれなりに必要とするので、時間にシビアな処理では、浮動少数点計算をすることを控えるなどの配慮が必要です。

MPLAB C30のライブラリでPIC24を最大限に活用する上で必要で、また助かるのは、やはり周辺モジュールの操作ライブラリでしょう。タイマ、USART、AD変換などを始め、周辺モジュールをC言語で操作するための関数群がライブラリとして豊富に提供されており、周辺モジュールの活用を含めたPIC24用の開発に申し分のない開発環境を提供するものとなっています。

MPLAB C30の周辺モジュールライブラリは大変魅力的なライブラリなのですが、あえてあその難点をいえば、PIC24の周辺モジュールをよくいえば細大漏らさず利用することを指向したライブラリとなっており、悪くいえば抽象度の低い関数群となっていることでしょう。このため、それらの関数群を利用するためには、引数の意味を含め、結局アセンブラでプログラミングするのと同様に、特殊機能レジスタ(SFR)の全機能を学習/確認する必要があり、ややもすれば、高級言語を利用する意味を見失いがちなことでしょう。

趣味やプロトタイピングなどで手軽にプログラミングしたいのに、MPLAB C30の周辺モジュールライブラリは少し腰が引けてしまうという方には、以下に示すPICSYSが朗報となります。

PICSYSフレームワーク

マイクロファンのキット製品のサポートソフトウェアとして、MPLAB C30で利用できるPICSYS18:Arduinoライクなライブラリ(フレームワーク)をご提供しています。PIC24Fファミリー用のPICSYS24は、2009年2月よりご提供を開始いたしました。PICSYS24のサポート対象となるマイクロファンのキット製品のご購入者は、無償でご利用いただくことができます。

PICSYSを利用すると、PICの周辺モジュールに詳しくなくても、ç文字LCD、7セグメントLED、ドットマトリックスLEDなどの表示装置やAD変換、RCサーボなどを活用するプログラムを驚くほど簡単に作成できるようになります。マイクロファンのキット製品と共にお楽しみください。

開発ソフト: