TOPPERS/ASP - PIC32MX版 概要
このブログ、気が付けば三ヶ月も更新を止めてしまいました。
本業が多忙過ぎたのもありますが、決してネタ切れというわけではありません。
まだまだ、公開したいネタはあります。
万が一、更新を待っていてくれた方がいましたら大変申し訳ありませんでした。
さてさて、今回取り上げるのは、Microchip社のマイコン「PIC32MX」です。
「PIC」といえば、電子工作を趣味としている方々の強い味方。
5V動作のDIPパッケージ(ゲジゲジの脚が太い形状)で手軽に扱えるマイコンとして、AVRマイコンと並び、あまりにも有名な存在ですね。
通常「PIC」といえば、このようなローエンドの8ビットマイコンを指すことが多いのですが、実は、16ビットや32ビットなどのバリエーションもあります。
一般的に、
PIC10,12,16,18系が8ビット、
PIC24,dsPIC系が16ビット、
PIC32系が32ビットと
かなりの大所帯なシリーズ展開となっております。
しかしながら、ここで厄介な問題が…。
それは、各ビットのシリーズ間で丸っきりCPUのアーキテクチャが異なることです。
つまり、8ビットのPICのアーキテクチャと32ビットのPICのそれとは全く違うということです。
8および16ビットのPICのアーキテクチャは、それぞれ異なるMicrochip社独自のものです。
32ビットのPICのアーキテクチャは「MIPS」と呼ばれるものを採用しています。
この「MIPS」なるものを説明すると多くのページが必要となってしまいますので、興味のある方はWikiをご参照ください。
簡単に言えば、RISCという設計思想の正しさを証明するという学術的な理由から開発された、大学の研究室由来のアカデミックなアーキテクチャです。
こんな大学の教科書みたいな表紙のイメージ通り、アカデミックです!
この評価の結果、旧来のCISCに対するRISCの優位性が証明され、後のARMやPowerPCの設計に大きな影響を与えたわけですが、これについての蘊蓄はこの辺にして。
この「MIPS」、昔は結構流行っていました。
私が今でも愛用する、このモバイルギアIIにもNEC製のMIPSアーキテクチャのマイコンが積まれています。
しかし、今となってはやや古いアーキテクチャであることは否めず、RTOSなどの移植の例も少ない寂しい現状…。
そこで、現在市場に流通している唯一のMIPSアーキテクチャのマイコンである「PIC32MX」に「μITRON4.0」準拠のRTOS(リアルタイムOS)であるTOPPERS/ASPを移植してみました。
直接の移植の動機は、なんと言っても秋月電子通商さんで販売されている以下の製品の存在ですね。
●PICマイコン PIC32MX270F256B-50I/SP
●PICマイコン PIC32MX250F128B-I/SP
MIPSアーキテクチャで動作周波数50MHz級の本格的なマイコンがDIPパッケージで売られているという事実。
DIPパッケージというところが肝心です。
私のようなボンクラソフトウェア技術者だと、ハンダ付けが下手ですので、QFPパッケージ(脚が四方に出ていて、めっちゃ細い形状)での実装は難しいのです。
なので、気軽に治具や簡単な計測器を作成する際に、これほど助かることはありません。
PIC32は8ビット系のシリーズとは異なり、5Vではなく3.3V駆動となってしまいますが、それでも十分にありがたい存在です。
必要なもの
今回のターゲットとなる「PIC32MX1/2/5 Starter Kit」です。
秋月電子通商さんで売ってます。
この記事の執筆時点の価格で、8,600円です。
デバッガー機能を内蔵していますので、これポッキリで開発が進められます。
これが高いか安いかの議論はさておき…。
他の型番への移植も可能ですが、TOPPERS/ASPを搭載して動作させるならROM:128KB/RAM:8KB以上の容量を持つ型番を選びましょう。
このブログでは「PIC32MX1/2/5 Starter Kit」を使用した場合の例を説明していきたいと思います。
ダウンロード/GitHub
ソースコードの入手は、こちらからどうぞ。
とは言っても、このソースコードをダウンロード、もしくは「git clone」しても、絶対にビルドが通りません。
このソースコードは未完成です。
なぜなら、Microchip社のドライバを後から付け加える必要があるんです。
そのMicrochip社のドライバのライセンスの条項が理解に難しく、公開、および再配布しない方が無難と判断したためです。
ですので、今後この記事では、それらのソースコードの入手方法やコピーする場所などを事細かに書いていくつもりです。
ちょっとだけ面倒ですが、お付き合いしていただけると嬉しいです。
ビルドは、まだやっちゃダメですよ~。
(あと、動かしながら記事書いてる過程でバグなんかが見つかるかもしれないので、ダウンロードは後の方が良いかも…。)
さて、次回から開発環境の構築をやっていきましょう。
そんなに間を空けずに更新…したいです。
<続く>