C99
pic
PIC18F14K50
c90
xc8

8bit PIC の XC8 v2.* ビルドは C90で

この記事は、2018/5/27以降 8bit PICのファームウェアがビルドできなくなっちゃった人のためのものです。 ビルドができる人は読まなくて大丈夫。

Microchip社から出ている 8bit PICのコンパイラ XC8は、 2018/5/27に v2版が出ています。 v2は v1と違って、 gccぽいオプションになったり、大きな変更が入っています。

問題は、新しいコンパイラを嬉々としてインストールし、使おうとすると以前使っていたMicrochip mla と呼ばれるサンプルコードやライブラリのビルドができなくなってしまうこと。(そしてv1.*のコンパイラはすでにweb上には見つからないので戻して何がわるいのか確認することもできない)

結論としては MPLAB X IDEから、プロジェクトの property->XC8 Global Option -> C StandardをディフォルトのC99になっているところから C90に直すだけでビルドが通るようになります。  (仕事用に使っている場合は、XC8 v1.*は自分で保存しておかないとだめですね)

ほかに色々書いてある情報も多く、たった一つこの設定を変更すればよいと気がつくまでに数時間かかってしまい、また、ほとんど"PICは死んだのか"と思っていたところでこの情報に目が止まり、部品を無駄にしないで済んだので書きとめておきます。

PIC18F14K50は 8bitで1000円ほどなのだけど、 USB HIDや USB CDC経由でGPIOなどが使えちゃう便利な石です。 よかった。よかった。


ちなみに、 properties->Conf->PICkit3->(category=power)->Power target circuit from PICkit3 のチェックが外れてると(これがディフォルトらしい)PICkitからターゲットに電源がいかず、ターゲットがないと言われてプログラムができません。USBを繋いでないときは要注意。 これも一時間ほどはまりました。前に使っていたIDEにこんなオプションあったかな?