なぜARM?

高画質版をダウンロード

みなさんこんにちは。マイコン徹底入門の筆者の川内康雄です。
今回はどうして私が、この本で使用するマイコンとして、ARMマイコンを選んだのかをご説明します。

ARMマイコンにはいろいろなアドバンテージがあります。ARM社がアピールしている点としては、
・アーキテクチャが洗練されている
・業界での実績がある
・コアの性能・集積度が高い
といったものがあります。

ただ、こういった点というのは、マイコンに入門する学生さんや、趣味でマイコンに取り組んでいる方には、今ひとつぴんと来ないものでは無いかと思います。他のマイコンに比べて大きなメリットがあるとは感じられないかもしれません。

そこでここでは、私なりに思うところの、ホビイストがARMマイコンを使うべき3つの理由を紹介します。
その3つというのは、
・優秀なコンパイラが使える
・無償のデバッガがある
・使える情報がある
です。

一つ目の理由は、優秀なコンパイラが使えることです。
マイコンでの開発には通常C言語を使用します。そうするとプログラムのソースコードを書いたら、マイコン上で動作させられるようにするため、コンパイル作業が必要になります。そしてコンパイルには、コンパイルのためのソフト、つまりコンパイラが必要です。
コンパイラは商用として販売されているものもありますが、値段が何十万円もします。個人で購入するのは現実的ではありません。商用版コンパイラの多くは、フリー版もでていますが、コードサイズに制限があり、大容量のマイコンを活用するには無理があります。
そこで個人での開発では必然的にフリーのコンパイラを使用することになります。フリーのコンパイラで現在選択が可能なのは事実上gccのみといっていいでしょう。
gccはARM系だけでなく、国産の各種のマイコンや、海外のARM以外のコアにも対応しています。そのためARMだからgccを使えるということではありません。ところがマイコン毎にコンパイル性能や対応度に違いがあります。gccはオープンソースで開発されています。要はボランティアの協力によってできあがっているということです。そのためマイコン毎に、開発のスピードが異なり、コンパイラの性能はまちまちです。そんななかでもARM用のgccは、開発のスピードも速く、新型のコアにも素早く対応しています。結果、商用のコンパイラにかなうわけではないのですが、商用の開発にも使えるぐらいの性能を有しています。これはgccの開発メンバーであるCodesourcery社にARM社がパートナーとして協力しているからです。
もちろんフリーコンパイラであるgccでコンパイルしても、コードサイズが小さくて、スピードが速いコードが生成できます。
コンパイラがとてもパワフルですから、個人レベルの開発でも、十分使い物になるコードが作れるというわけです。

2つめの理由はデバッガです。
デバッガというのはデバッグのためのソフトウェアです。デバッガを使用すると、マイコン上のプログラムを1行ごとに実行したり、実行中に任意の位置で停止させるといったことができます。停止させた場合には、その時点での各種の変数の中身や、その他のメモリの内容を確認することもできます。デバッガはマイコンへのプログラムの転送に使用することもできます。
デバッガはこのように非常に便利なのものです。しかし、マイコン開発では誰でもデバッガを使うことができるわけではありません。というのもソフトウェアであるデバッガの価格が高いのと、デバッガを使用するためのハードウェアが高価だからです。ソフトウェアとしてのデバッガは、コンパイラとセットになって、統合開発環境として販売されていることがほとんどです。統合開発環境一式の価格はやはり何十万円もします。デバッガを使用するためのハードウェアは、インサーキットエミュレータやJTAGインターフェースと呼ばれるものなのですが、これも数万円から10万円近くの値段が付いているのが通常です。やはりこれではホビイストにはデバッガは手が届きません。
ところがARM用にはオープンソースのデバッガがあります。GNUツールのうちの一つであるgdbとこちらもオープンソースであるOpenOCDというソフトを組み合わせると、無償のツールだけでデバッグができます。
さらにARMの場合、安価なJTAGインターフェースが使用可能です。というのもFTDI社が発売しているFT2232というUSBシリアル変換チップをJTAGインターフェースとして利用できるからです。FT2232を搭載した基板は2000円ぐらいから購入可能ですから、個人レベルでも十分に手が届きます。

最後の理由は情報量です。
ARMの場合、コンパイラやデバッガが個人でも利用可能ですので、世界中に多くのホビーユーザーがいます。ARMは32ビットのRISCプロセッサで圧倒的なシェアを占めているので、その結果開発人口が多いということもいえると思います。ARMユーザーは情報発信・情報交換が非常に活発です。自分が作った作品の回路図、ソースコードをホームページで公開しているユーザーが多いですし、掲示板で質問・回答のやりとりが多く行われています。そういった状況ですので、開発中に困ったときには、インターネットで検索を掛けてみると、解決法や少なくとも解決への手がかりが得られることが多いです。ハマる状況になってしまったときにはすぐに検索をしてみましょう。もちろん自分で質問をポストしても構いません。「ARM系マイコンのネット上の情報は使えるものが多い」と皆さんも感じるはずです。

以上、
・優秀なコンパイラが使える
・無償のデバッガがある
・使える情報がある
という3つのポイントが、私がホビーユーザーにARMをお勧めする3つの理由です。
是非皆さんもARMマイコンを利用してマイコン開発に挑戦してみてください