はじめに
本稿では Eclipseの汎用性と組込み開発の特殊性の両方を軸に、ターゲットであるARMマイコンを使って、マイコン開発を行っていきます。ハンダ付けなども行い、基板や電子部品の取り扱いなどの説明もなるべくわかりやすく行っていこうと考えています。
実際にターゲットを開発していくと、何か具体的な制御対象にも目が向いていくと思いますが、近著『Eclipse/ARMプロセッサによる組込み開発 基礎講座』で、今回構築した開発環境をベースにサーボモータベースの二足歩行ロボットの制御基板の開発を解説する予定です。
対象読者
読者のパターンとして、以下の2通りを考えています。
ひとつは「現在、業務系ソフトウェア開発を主として行っていて、組込みソフトウェア開発をやらなければいけなくなった。あるいはそのための基本的な知識を必要としている」人。
もうひとつは「現在、組込み開発の知識はある程度あるが、Eclipseやオープンソースソフトウェア(OSS)などの知識も高めていきたい」と考えている開発者です。
筆者自身は、後者に近いです。
開発環境を整える
今回使う、主なソフトウェアと技術を列記してみます。原則として、開発ソフトウェアはOSSまたはそれに準ずるものを利用します。
- GCC/GDB( http://www.gnu.org/ )
- Eclipse( http://www.eclipse.org/ )
ここでは、ロボットの制御とソフトウェア開発のフロントエンドにしています。Eclipseと言う名前は言い得て妙ですね。Sun(太陽)が開発したJavaを食べてしまう(日蝕)わけですか? と。
- ZylinCDT( http://www.zylin.com/embeddedcdt.html )
Eclipseのプラグイン。C/C++の開発用のプラグインはCDTが有名ですが、そのCDTを組込み用に強化したものです。ノルウェーのZylin AS が開発・公開しています。
USB(UNIX系 OS)ドライバ
- libusb ( http://libusb.sourceforge.net/ )
UNIXのUSBのドライバは、カーネルに組み込んで使うものと、ユーザランドで動作するものがあります。libusbは、このユーザランドで動作するUSBドライバで、共通部分をまとめたものです。
- libftdi( http://freshmeat.net/projects/libftdi/ )
今回使うftdi社のUSBチップ用のドライバです。ftdi社から純正のドライバが各種プラットフォーム向けにリリースされていますが、今回は自分の環境に合わせてソースからビルドします。
- OpenOCD( http://openocd.berlios.de/web/ )
ドイツのDominic Rathによって開発された、GDBサーバ兼JTAGのピンドライバです。FT2232ベースかパラレルポートを用いたデバッガに対応しています。詳細は後述します。