MPLAB XC8コンパイラが1.21にバージョンアップした。その他XC16,32もバージョンアップしている。チェックは私のホームーページ左から常に行えるようになっている。
コンパイラのインストールは、インストーラを起動するだけでOK。最後のライセンスコードが表示されるが、無料版ならそのままNEXTをクリックで良い。
さて、インストールしても、現行プロジェクトは昔のままのバージョンのコンパイラが使用されるので、変更作業を行う。Dashboardウインドウが開いてあれば、Compiler Toolchainに表示されているProduction Imageの部分をダブルクリックする。Dashboardが表示されていなければFile→Project Properties とたどっても良い。
新しくインストールされたコンパイラをダブルクリックで選択しOK。
PCの環境によっては、多少変更の時間がかかるかもしれない。私のは10秒位時間が経ったあとに、上の状態になった。
これで新しいコンパイラでビルドが可能だ。
ところで、私が今開発しているコードの中で、Ver1.20でビルドしてOKだったソースコードが、新しいVer1.21でエラーが出た部分があった。
エラーの出たコード
temp = (buff[4] - 0x30) * 10 + (buff[5] - 0x30);
これは、通信バッファーで取り込んだ2バイトの数字のアスキーデータから、2桁の数字に変換する部分である。0はアスキーコードで0x30なので、それを引けば数字として取り出せる。10の位を10倍して、1の位を足している、よく使用するコードである。
エラーメッセージ
main.c:404: error: can't generate code for this expression
この表現では、コードを生成できない と出ている。
修正は2行に分けて、
temp = (buff[4] - 0x30) * 10;
temp += (buff[5] - 0x30);
これでエラーが無くなった。動作的にも問題がなかったが、あとでリリースノートを読んでみることにしよう。
最近のコメント