こんにちはヌキヲです。
ついにやりました!MPLAB XC シリーズの野良ビルドです。
今回は MIPS コアを採用した PIC32MX シリーズ用の XC32 です。
秋月から PIC32MX220F032B が \220 で放出されて以来
電子工作界で微妙にホットな PIC32MX シリーズですが、
フリーバージョンのコンパイラでは -Os はまだしも -mips16 すら使えず、
古い C32 を使ったり Pinguino 付属のものを使ったりと苦労が絶えませんでした。
しかしそんなジレンマともおさらば。
今日からは気兼ねなく最適化オプションその他が使えます。
さらに、純正コンパイラなので Micorhip アプリケーションライブラリーも
手直しなしでビルドできるかも?
ではシナリオを決めます。
今回もまた Linux にて作業を行い、
Linux と Windows のネイティブバイナリーを作ります。
これらは別途 dll 等を必要としないスタンドアロン版です。
純正は MacOSX にて MacOSX Linux Windows の
それぞれをビルドされているようですが、
私は Mac を持っていないので再現できません。
申し訳ないですが MacOSX については
ビルド方法、バイナリー作成ともにスルーさせていただきます。
今回の作業は Ubuntu 12.04 LTS x86 で行いました。
ビルドするバージョンは v1.30 です。
今確認したら v1.31 がリリースされていてショックですが、
おそらく同じような方法でビルドできるでしょう。
・XC32_v1_30_src.zip
c30 のときみたいに分割されていないので一つだけです。
コマンドはめんどくさかったので gui のアーカイブマネージャから D&D しました。
ちなみに作業用フォルダは mplab/xc32-130-01 です。
展開すると xc32-tools-xc32-XC32_v1_30_branch-src というフォルダができると思いますが、
長ったらしいので src とりネームしました。
ここで真打登場です。
実は configure とか make とか長ったらしくて
微調整して打ち直すのがかなり面倒でした。
今回からビルドするパッケージがいくつか増えているのでなおさらですね。
そこで、すべてまとめてシェルスクリプトを作りましたので配布します。
私の置き場に置いておきます。
シェルスクリプトなんて初めて書いたので、過度の期待は禁物ですよ?
※リンク切れを修正しました。2016.04.08(fri)
こちらもダウンロードしたら build-xc32-130.sh というファイルを
mplab/xc32-130-01 に配置します。
もう少し待ってください。
MPLAB 恒例のバグ修正をします。
といっても見つかったのは1か所だけ。
もっとも野良ビルドではライセンスが関係ないので実行されませんけどね。
実験中はそれはもう引っかかりまくってひどかったですよ。
あとはPCが作業するのを待つばかり、
私の環境では1時間くらいだったでしょうか?
Core2 のメロムなノートPCなので、最近のPCならもっと早いかもです。
ちなみにデュアルコアとかは関係ありません。
これをリネームしてアーカイブするなりして持ち出します。
install-native → linux用
install-mingw32 → windows用
です。
やはりコマンドはめんどくさいのでアーカイブマネージャを使いました。
ビルドした側で必要なフォルダは次の通りです。
・bin
・libexec
・pic32mx
フリー版から拝借するのはこちらです。
・lib
・pic32mx/device_files
・pic32mx/include
・pic32mx/lib
・pic32mx/bin/device_files
まちがって pic32mx/bin の中身をそのまま上書きすると
ライセンスがとか言い出して動かないので注意してくださいね。
これで電子工作や pic32mx がもっと活発になればいいですね。
と、締めくくるのもさびいので、私がビルドしたものもこっそりと配布します。
気付いた方もいるかと思いますが、
シェルスクリプトと同じ置き場に置いてあります。
もちろん問題があれば消しますが、ライセンス的には OK なはずです。
また、手順5のマージだけは自分でやってください。
ご清聴ありがとうございました。
□2014.10.06(mon) 追記
v1.33 を MinGW+MSYS(Windows上) でビルドした記事はこちら。
□2014.10.11(fri) 追記
すみません、リンクのスペルミスをしていたので修正しました。
□2018.06.17(sun) 追記
v2.05 を Ubuntu でクロスビルドしました。こちら
ついにやりました!MPLAB XC シリーズの野良ビルドです。
今回は MIPS コアを採用した PIC32MX シリーズ用の XC32 です。
秋月から PIC32MX220F032B が \220 で放出されて以来
電子工作界で微妙にホットな PIC32MX シリーズですが、
フリーバージョンのコンパイラでは -Os はまだしも -mips16 すら使えず、
古い C32 を使ったり Pinguino 付属のものを使ったりと苦労が絶えませんでした。
しかしそんなジレンマともおさらば。
今日からは気兼ねなく最適化オプションその他が使えます。
さらに、純正コンパイラなので Micorhip アプリケーションライブラリーも
手直しなしでビルドできるかも?
○はじめに。
ではシナリオを決めます。
今回もまた Linux にて作業を行い、
Linux と Windows のネイティブバイナリーを作ります。
これらは別途 dll 等を必要としないスタンドアロン版です。
純正は MacOSX にて MacOSX Linux Windows の
それぞれをビルドされているようですが、
私は Mac を持っていないので再現できません。
申し訳ないですが MacOSX については
ビルド方法、バイナリー作成ともにスルーさせていただきます。
今回の作業は Ubuntu 12.04 LTS x86 で行いました。
ビルドするバージョンは v1.30 です。
今確認したら v1.31 がリリースされていてショックですが、
おそらく同じような方法でビルドできるでしょう。
○手順1 事前準備
●ファイル
おなじみ MPLAB Archive からソースをダウンロードします。・XC32_v1_30_src.zip
c30 のときみたいに分割されていないので一つだけです。
●Linux 環境
必要なパッケージ類をインストールします。sudo apt-get install p7zip-full sudo apt-get install mingw32 build-essenatial sudo apt-get install gettext bison flex texinfo7zip はアーカイブマネージャで zip ファイルが開けない場合に入れます。
●展開
作業用フォルダを適当に作ってそこに展開します。コマンドはめんどくさかったので gui のアーカイブマネージャから D&D しました。
ちなみに作業用フォルダは mplab/xc32-130-01 です。
展開すると xc32-tools-xc32-XC32_v1_30_branch-src というフォルダができると思いますが、
長ったらしいので src とりネームしました。
ここで真打登場です。
実は configure とか make とか長ったらしくて
微調整して打ち直すのがかなり面倒でした。
今回からビルドするパッケージがいくつか増えているのでなおさらですね。
そこで、すべてまとめてシェルスクリプトを作りましたので配布します。
私の置き場に置いておきます。
シェルスクリプトなんて初めて書いたので、過度の期待は禁物ですよ?
※リンク切れを修正しました。2016.04.08(fri)
こちらもダウンロードしたら build-xc32-130.sh というファイルを
mplab/xc32-130-01 に配置します。
○手順に2 ソースの修正
シェルスクリプトを用意しましたが、まだビルドしません。もう少し待ってください。
MPLAB 恒例のバグ修正をします。
といっても見つかったのは1か所だけ。
●src/gcc/gcc/config/pic32/mchp.c
-1044 warning("mchp_pic32_license_valid = %d", mchp_pic32_license_valid); +1044 warning(0, "mchp_pic32_license_valid = %d", mchp_pic32_license_valid);warning の出力先を指定し忘れています。
もっとも野良ビルドではライセンスが関係ないので実行されませんけどね。
実験中はそれはもう引っかかりまくってひどかったですよ。
○手順3 ビルド
ビルドします。cd mplab/xc32-130-01 ./build-xc32-130.sh 2>&1 | tee log.txtログを見たい場合には上記の様にログを保存します。
あとはPCが作業するのを待つばかり、
私の環境では1時間くらいだったでしょうか?
Core2 のメロムなノートPCなので、最近のPCならもっと早いかもです。
ちなみにデュアルコアとかは関係ありません。
○手順4 持ち出し
作業フォルダに install-native install-mingw32 ができるのでこれをリネームしてアーカイブするなりして持ち出します。
install-native → linux用
install-mingw32 → windows用
です。
やはりコマンドはめんどくさいのでアーカイブマネージャを使いました。
○手順5 マージ
ヘッダー、ライブラリー類が全くないのでフリー版から拝借します。ビルドした側で必要なフォルダは次の通りです。
・bin
・libexec
・pic32mx
フリー版から拝借するのはこちらです。
・lib
・pic32mx/device_files
・pic32mx/include
・pic32mx/lib
・pic32mx/bin/device_files
まちがって pic32mx/bin の中身をそのまま上書きすると
ライセンスがとか言い出して動かないので注意してくださいね。
○おわりに
さて、ここまでで無事にコンパイルできるものがビルドできたはずです。これで電子工作や pic32mx がもっと活発になればいいですね。
と、締めくくるのもさびいので、私がビルドしたものもこっそりと配布します。
気付いた方もいるかと思いますが、
シェルスクリプトと同じ置き場に置いてあります。
もちろん問題があれば消しますが、ライセンス的には OK なはずです。
また、手順5のマージだけは自分でやってください。
ご清聴ありがとうございました。
□2014.10.06(mon) 追記
v1.33 を MinGW+MSYS(Windows上) でビルドした記事はこちら。
□2014.10.11(fri) 追記
すみません、リンクのスペルミスをしていたので修正しました。
□2018.06.17(sun) 追記
v2.05 を Ubuntu でクロスビルドしました。こちら