ORANGE pico で遊ぶ (2):開発環境の整備

(2016年6月5日)

 BASIC でプログラミングをするだけなら、製作してファームウェアを書き込めば事足りる。けれども、せっかくフラッシュが 256 KB、SRAM が 64 KB もあるので、それを自由に使いこなしてみたい。

 純正の PIC32MX の開発環境は MPLAB X だが、コンパイラの最適化機能に制限があって、チップの性能を最大限に活用できない。しかし、PIC32MX はかつて広く採用された MIPS アーキテクチャーに基づいているので、MIPS 用にビルドした gcc を使って実行バイナリを作ることができる。この方式を採用しているのが、Pinguino プロジェクトである。そこで、Pinguino プロジェクトの成果物を流用して、ORANGE pico の開発環境を整えてみる。

1. Pinguino の Mac 版

 Pinguino は Windows, Linux, Mac OS X に対応していることになっている。しかし、Mac OS X 版の開発は遅れており、Windows 版と同じように使えると思っているとあちこちで壁にぶつかってしまう。特に、Pinguino IDE を動かそうとすると非常にハードルが高い。

 何が大変かというと、python + pyside + Qt をフルセットでビルドしないといけないこと。そもそも、「スクリプト言語+クロスプラットフォームの GUI キット」という組み合わせで書かれたツールは、「Mac でも動きます」と書かれていても、使い物にならないことが多い。クロスプラットフォームのアプリを本気で作るんだったら、各プラットフォーム用に独立した実行ファイルを作って、それぞれについて動作を検証しないとダメ。

 従って、Pinguino IDE を使うことは最初から諦めて、クロスコンパイラとライブラリだけ流用することにする。これなら、だいぶ話は簡単になる。もちろん、Mac 上に開発環境 (Xcode) をインストールしてあることは前提。インストール先は、/opt/Pinguino/v11 とする。

2. Pinguino コンパイラの取得

https://github.com/PinguinoIDE/pinguino-compilers.git にある。Mac OS X/Windows/Linux のファイルがあり、そのままダウンロードすると時間がかかってしょうがないので、svn を使って下のようにする。

$ cd /opt/Pinguino/v11 $ svn co --depth empty https://github.com/PinguinoIDE/pinguino-compilers.git $ cd pinguino-compilers.git $ svn up --depth empty trunk # macosx サブディレクトリだけ取得するため一手間かける $ cd trunk $ svn up macosx → macosx ディレクトリの中に p32, p8 ができて、その中にツールが取得できる。 $ rm -rf ../../compilers; mv macosx ../../compilers → 最初のディレクトリ中に compilers ディレクトリができて、その中の p32/p8 にツールが入る。 $ cd ../..; rm -rf pinguino-compilers.git

 Windows 版、Linux 版に比べて Mac OS X 版だけバージョンが低いので、そのうち自前でビルドしたい。今のところ動いているので、このまま先に進む。

3. Pinguino ライブラリの取得

 Pinguino ライブラリを zip アーカイブでダウンロード、展開する。→ https://github.com/PinguinoIDE/pinguino-libraries

 pinguino-libraries-master というフォルダができるので、その内容を /opt/Pinguino/v11 以下に移動。

$ cd pinguino-libaries-master $ mv * /opt/Pinguino/v11 $ cd ..; rm -rf pinguino-libraries-master

 ディレクトリ構成は下のようになった。

v11-+-README.md |-compilers----+-p32------+-bin # ← この中にクロスコンパイラがある | | |-lib | | |-libexec | | |-mips-elf | | |-share | |-p8---... | |-examples-----+-01.Basics | |-02.Digital | |-03.Analog | |-... | |-graphical_examples---... |-p32----------+-include-+-non-free-+-LICENSE # ← Microchip 提供のコード | | | |-p32xxxx.h | | | |-regdef.h | | | |-cp0defs.h | | | |-proc | | | |-sys | | | | | |-pinguino-+-core------+-analog.c # ← Pinguino ライブラリのソース | | | |-bcd.c | | | |-... | | | | | |-libraries-+-18b20.c | | |-1wire.c | | |-... | |-lkr | |-obj | |-pdl |-p8---... |-source---... |-todo.md

4. USBシリアル変換器のドライバを導入

 FTDI 社のウェブサイトから Mac OS X 用のドライバを入手してインストールしておく。この変換器はごく一般的なものなので、探せば情報はいくらでも見つかると思う。Marvericks 以降で問題が起きるという話もあるので、情報収集してください。私は未だに Mountain Lion (10.8) なのでよくわかりません。