たまたまWebサーフィンしていたら、MSP430のLinux開発環境について記載されているページがあったので、追試を兼ねて環境構築してみることにしました。
内容物はこれ。エミュレータ機能付きのターゲットボード(MSP430G2231付き)と、予備?のMSP430G2231、32.768kHzのクリスタル、いかにもブレッドボードにつないでください、という感じのヘッダソケット、シールです。
で、今回の情報元はここです。詳しくは直接情報元を参照してもらうとして、Ubuntu10.04LTSで追試した際の手順だけ記載します。赤字で書いた部分がオリジナルとの差分です。おそらく、オリジナルの環境では texinfo がインストールされていたのでしょう。
1) subversionのインストール
・・・・すでに入ってました。
2) texinfoのインストール
$ sudo apt-get install makeinfo
で texinfo をインストールします。そうしないと途中で「makeinfoがない」と怒られて終了します。
3) 作業用ディレクトリを作る
$ cd ~
$ mkdir mspwork
$ cd mspwork
4) ソースの入手
$ svn co https://mspgcc4.svn.sourceforge.net/svnroot/mspgcc4 mspgcc4
5) コンパイル
$ sudo ./buildgcc.sh
を実行すると、構築するツールのバージョンやディレクトリをいくつか聞いてきます。Insightはwgetでダウンロードするところで 404 Not Found で引っかかるので、InsightとGDBは構築しないことにして、それ以外は今回はすべてデフォルトにしました。
最後に、「今構築するか?」と聞いてくるので、そこだけ「今構築する」に変更しました。そうすると、勝手に binutils や gcc のソースなどをダウンロードして構築してくれます。
6) パスの修正
パスに「/opt/msp430-gcc-4.4.3/bin」を追加します。具体的には、.bashrc の最後の行に、
PATH=$PATH:/opt/msp430-gcc-4.4.3/bin
を追加します。
7) mspdebugを書き込みツールとしてインストール
ソースコードを mspdebug の sourceforge のページからダウンロードしてきて、コンパイルする。(ubuntuはパッケージがあるようなことが書いてあるが、実際にはない *後述)
$ tar xvfz mspdebug-0.17.tar.gz
$ cd mspdebug-0.17
$ make WITHOUT_READLINE=1
$ sudo make install
8) LanuchPadのパーミッション変更
ルート権限で以下の内容のファイルを /etc/udev/rules.d/z99_msp430launchpad.rules として作成します。
ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0666", GROUP="plugdev"
その後、
$ sudo /etc/init.d/udev reload
として設定を有効にします。
9) LaunchPadの動作確認
LaunchPadを接続して動作確認します。開封直後の状態で接続すると、2つのLEDが交互に点滅します。
この状態で「mspdebug –usb-list」でデバイス一覧が表示されるのを確認しました。(マニュアルはこっちを参照)
$ mspdebug --usb-list
Devices on bus 005:
005:001 1d6b:0001
Devices on bus 004:
004:001 1d6b:0001
Devices on bus 003:
003:001 1d6b:0001
Devices on bus 002:
002:002 0451:f432 eZ430-RF2500 [serial: E3FF4225A511471A]
002:001 1d6b:0001
Devices on bus 001:
001:002 13fd:1040
001:001 1d6b:0002
となるので、eZ430-RF2500として認識していることがわかります。
そこで、「$ mspdebug rf2500」とするとLEDの点滅が止まり、以下の表示がされてコマンド入力待ちになります。
$ mspdebug rf2500
MSPDebug version 0.17 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2011 Daniel Beer <dlbeer@gmail.com>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Trying to open interface 1 on 002
Initializing FET...
FET protocol version is 30001000
Configured for Spy-Bi-Wire
Set Vcc: 3000 mV
Device ID: 0xf201
Device: MSP430G2231
Code memory starts at 0xf800
Number of breakpoints: 1
fet: FET returned NAK
fet: warning: message 0x30 failed
Available commands:
= delbreak gdb load opt reset simio
alias dis help locka prog run step
break erase hexout md read set sym
cgraph exit isearch mw regs setbreak
Available options:
color gdb_loop iradix
fet_block_size gdbc_xfer_size quiet
Type "help <topic>" for more information.
Press Ctrl+D to quit.
(mspdebug)
この状態で「run」コマンドを実行すると再びLEDの点滅が始まり、CTRL+C でブレークをかけることができました。
また、「hexout 0xf800 0x800 original.hex」で元々書き込まれていたプログラムを読み出して HEX ファイルに格納できました。続けて「erase」でflashの消去、「prog original.hex」で再プログラミング、「run」で点滅を再現させることができました。
10) コンパイルと実行の確認
参考にさせていただいたこちらのページのまんまで完全に動作しました。
ということで、最低限の環境構築ができました。できれば gdb と Insight も動かしたいところですが、とりあえずはここまでということで。
あと、launchpad.net(こっちは Canonicalが管理している方です)のこちらのページやこちらのページを見ると、どうもubuntuの11.04(natty)や11.10(oneiric)ではMSP430開発環境がパッケージでサポートされているっぽい感じです。時間があれば確認してみたいと思います。