SSブログ

HI-TECH C で#ifdef __DEBUGを使う [PICkit3]

I2Cライブラリの開発ではDEBUGモードとRELEASEモードを切り替えて、何度もコンパイルしました。PIC18F2550はMPLAB IDEのプルダウン・メニューの操作だけで済むのですが、PIC16F887の方はmain.cの__CONFIGを毎回書き換えていたのです。

 あるとき、BUILDウィンドウをスクロールするHI-TCH Cのコマンドを何気無く眺めていて”-D_DEBUG=1”という記述に気付きました。

『ん、これってシンボル定義のコンパイラ・オプション?』

試してみると・・・ビンゴ!

MPLAB IDEのプルダウン・メニューで”DEBUG”を指定するとこのオプションが指定され、”RELEASE”では指定されないことが分かりました。

つまり、以下のように記述すればモードを切り替える度に書き換えなくとも良くなるのです。
#ifdef __DEBUG
// for DEBUG
__CONFIG (FOSC_INTRC_NOCLKOUT & PWRTE_OFF & ... & DEBUG_ON );
#else
// for RELEASE
__CONFIG (FOSC_INTRC_NOCLKOUT & PWRTE_ON & ... & DEBUG_OFF );
#endif

”今頃気付いたのか!”ってお叱りを受けるかも知れませんが、HI-TECH Cのサンプル・プログラムには出てきません。また、MPLAB C18の例にも出てこない(多分ユーザの目に触れない所でやっている)ので、この機能の存在に気づかなかったのです。

まぁ、DEBUGモードとRELEASEモードの切り替えを何度も繰り返すことなど、あんまり無い(そうで有って欲しい)気もしますが、知っていて損は無い小技だと思います。

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。