たまたま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開発環境がパッケージでサポートされているっぽい感じです。時間があれば確認してみたいと思います。