トップページ 組込みソフト PICマイコン PICの開発環境 ソースブーストC Ver6.0

ソースブーストC Ver6.0                          2010/2/8更新
 安いので最初に使いました。とりあえずPICというものを評価するために
USB-PICトレーナー
を購入しました。
USB-PICトレーナー

 評価用PC板はもちろんですが、437ページもあるマニュアルもついていたので親切という印象を持ちました。最近はこのような紙のマニュアルがあるのは少なくなりましたね。このマニュアルには他の評価用ボードの記述もあるので自分にとって関係ない部分も多くあります。
 CDにはコンパイラ本体とサンプルプログラムが入っています。コンパイラはLiteバージョンでした。本来の目的はUSBの評価ですが、LiteバージョンではROM8KBまでという制約があり、USBのサンプルに修正を加えたりして評価することができませんでした。HEXファイルがあったのでとりあえずボードを動かして確認することはできましたが、USB-PICトレーナーなのに
USBのサンプルがコンパイルできないとは、しゃれにもならない!
ですね。
 ボードのサンプルプログラムでPWMを使った音声処理がありました。音声入力をADコンバーターで取り込み、PWMで出力するというものでです。PWMといえばモーターの回転制御と決まりきったサンプルがいろいろな書籍で紹介されています。しかし、PWMで音声を出力することができるのです。昔、PC98やIBM PCでサウンドカードがない時代でもこのPWM方式で音をだすことができました。PC98、MS-DOSで般若心経を読経する作ったことがあります。
 また、SDカードのコネクタもついていて、サンプルプログラムもあったのですが残念ながらファイルシステムがライブラリでサポートされていません。SDの内容が部分的に見れるだけでした。
以心電信をPICに移植する
 H8で開発した以心電信をPICに移植するにあたり、LiteバージョンのROMの制約8KBをオーバーしないか心配でしたが、結論的に6KB位に収まりました。正常に動作するようになりました。しかし、H8をgccでコンパイルしていたときに比べ、8ビットならではの違和感とコンパイラの機能的な低さを感じました。感想としては小さなプログラムを作って趣味などで使うにはLiteバージョンで十分であると思います。
 以下にこのコンパイラで気になった点を記述します。
float の演算が弱い
float a,b,c;
a = 1.1;
b = 2.2;
c = a+b;
cが3.3になりません。C言語では当たりまえの記述ですが、これがだめなのです。floatの演算は専用の関数でおこないます。
ROMテーブルの制約
 ROMに配列を作成してデータを参照したということはよくあります。しかし、ROMの配列の制約として、
1.char 型しか使えない
2.配列の大きさは256バイトまで
があります。
H8で作った以心電信では構造体の配列にしていたのでchar型に書き直しです。
また256バイトを超えていたのでこの部分も書き直しです。
コンパイルの速さ
 個人の感覚に依存することですが、使用パソコンとコンパイルするソースの行数からすると遅く感じました。また、ソースブーストC IDEの立ち上がり時間が遅く感じます。
sprintfが低機能
sprintf(buf, "x=%d y=%d", x, y);
というのがだめです。
sprintf(buf, "x=%d", x);
ならOKです。
また、%s,%fが使えません。
全体の感想
 全体に地味な印象です。必要最小限の機能は持っていると思います。