2013年2月3日日曜日

Stellaris LaunchPadをLinuxで開発する


Stellaris LaunchPadっていうTIのマイコンボードが、最近ぼくの付近で流行の兆しを見せています。そういうわけで一台手に入れた(頂いた)のですが、僕は仕事環境以外にWindowsマシンを持っておらず、公式提供ツールでは開発が出来ない状況でした。

そういうわけで、Linuxで開発環境を作りましたのでメモしておきます。


■ Stellaris LaunchPad

LaunchPadは、世界のテキサス・インスツルメンツが贈る今はやりのマイコンボード的な何かです。いや、紛れもなくマイコンボードですよね。Arduinoが意識されていそうですが、その実態は評価ボードです。
Arduinoに対してのメリットは、高速なARMマイコンの搭載と圧倒的な低価格。Arduinoが2000円くらいするのに大して、LaunchPadは1枚500円程度から(通常価格では1000円程度)入手可能です。フィジカルコンピューティングなんかでは、マイコンボードは作品1つに取り付けてしまう場合が多いと思います。低コストは魅力的でしょう。

共立電子のWebショップから入手できます。色々種類が有るようですが、僕の手元にあるモノはこれと同じLM4F120です。
http://eleshop.jp/shop/g/gC9Q361/

まだ日本ではあまり普及していないらしく、ブログを書いてる人もそんなに居ないですね。
でもこのカンジなら、そのうち盛り上がってきそうな気がします。


■ Linux向け環境構築

さて、冒頭でも述べたように僕はWindows環境を持っていません。いや、厳密には9インチウルトラモバイルのVAIO Pが有りますが、学生時代、なんで僕はアレでバリバリコードがかけていたんだろう、無限の体力があったんだろうなぁと不思議に思います。(それでもVAIO Pは良いマシンです)

そういうわけで、手元のUbuntu 12.10に対して環境を構築していきたいと思います。
ところで前提条件ですが、マイコンボードの開発環境とは、大きく分けて以下の3つに大別されます。
  • EEPROM焼き環境(ドライバ)
  • クロスコンパイル環境
  • ICD(In-Circuit Debugger)
今回はICD以外の上2つについて、開発環境を整えていきます。なお、いくつかのバイナリが発生するので、/usr/local/あたりに作業ディレクトリを作っておくと良いです。

まずはStellarisにFlashするツールを導入します。これにはlm4flashというツールを用いるようです。USB関連のものをビルドできる環境を整えてから、githubに公開されているソースを拾ってビルドします。
$ sudo apt-get install libusb-1.0-0dev
$ git clone https://github.com/utzig/lm4tools.git
$ cd lm4tools/lm4flash
$ make
次にStellarisのARM Cortex M4F用バイナリをビルド出来る環境を作ります。これにはarm-none-eabi-gccというツールを用いると良いようです。どうやら、OSとかのないシンプルなマイコン環境ではよく使われるコンパイラのようですね。
拾ってきた奴なんかを動かして、必要なツールをapt-getから拾って完了。比較的新しいバージョンのgccを要求するのにハマってしまい、苦戦しました。
$ apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev\
    libmpc-dev autoconf texinfo build-essential libftdi-dev\
    zlib1g-dev python-yaml gcc-4.5;
$ git clone https://github.com/esden/summon-arm-toolchain
$ cd summon-arm-toolchain
$ sudo ./summon-arm-toolchain
コレを通すと、HOMEにsatというディレクトリができているので、ここにPATHを通しておきます。適当に配置ディレクトリは操作できそうです。スクリプトの中身を覗けば、ココらへんを操作するオプションが見つかると思います。
最後にStellarisのSDKを落としてきます。Windows版の中にサンプルプログラムがあって、これが欲しいからですね。本来ならばWin版EXEを公式サイトから拾ってくることになりますが、これをダウンロードするにはTIのアカウント登録とか色々面倒臭いことになっています。そこで、Linuxビルドを前提に公開されているリポジトリから拾ってきます。
git clone https://github.com/yuvadm/stellaris.git
この中のstellaris/boards/ek-lm4f120xlディレクトリに公式サンプルとarm-none-eabiでビルドするためのMakefileが用意されています。適当なサンプルでもmakeしてみて、上手く動けば成功です。

■ 動かすところから焼くところまで

LEDチカチカ、略してLチカ?
ビルドはこんな感じでできています。・・・って内容を書こうと思ったんですけれど、別にそんなに書くようなことしていないです。サンプルのMakefile見ればわかりますし、実際にはコレをちまちま改変して使うのが良さそうですね。(めんどくさいので)
まぁmakeしてできたバイナリはlm4flashでこんな感じに焼けます。
$ sudo lm4flash project0.bin
project0を焼くと、StellarisのビルトインLEDがチカチカします。とりあえず書き込み確認にはコレで良いですかねーってところです。

これで久々にマイコン遊びが出来るようになりました。楽しみます。


■ 参考文献

0 件のコメント:

コメントを投稿