Mac OS X(MacPorts) 上で gcc を使って MSP430 LaunchPad 向けクロス開発するための情報整理
TOPPERS/SSPカーネルもようやく(1年ぶり?)バージョン1.2 がリリースされました.機能的にはだいたいこれで落ち着いてきたこともありますので,次は利用可能なターゲットハードウェアを広げようということでMSP430(対象ボード:LaunchPad)への移植を始めています.
こんなボードです.
カーネルを移植する前に開発環境を整えなければなりませんので,情報を整理してみました.
調べたところ
ボードの情報.最初のよりどころ.
プロセッサチップ.上のボード情報からたどれる.
Mac OS X 向け MSP430 プログラミングツールの情報.
ただし情報が古いようです.MacPorts で開発ツールが入手できたりすることが記載されていなかったり,USBドライバについては別のところからドライバを入手する必要がありました.
(追記)MSP向けGCCの実装としてこれまではMSPGCC4という名称で開発されていたらしいのですが,現在ではサポートが終了し,MSPGCCという名称で開発が行われているのが最新のようです.
必要なツール
上記の情報源を調べてみたところでは,以下のツールが必要とのこと.
mspdebug はUSBドライバを利用してボードとの仲介をしてくれるソフトウェア.それ自体でロードやステップなどのコマンドを利用することもできますし,gdb のためのリモートサーバの役割をさせることもできます(その場合はフロントエンドとしてgdbを利用).
- libusb, libusb-compat, libelf
- USB Driver
ボードに実装されているUSBシリアルを利用するためのドライバ.mspdebug が利用する.
MacPorts からの開発ツールのインストール
MacPorts ではすでに msp430 用の開発環境が用意されているので,それを利用しました.
最近の開発ツールはMSPGCCという名称です.
$ port search msp430 msp430-binutils @2.21.1a-20120406 (cross, devel) FSF Binutils for msp430 cross development msp430-binutils-devel @2.22-20120911 (cross, devel) FSF Binutils for msp430 cross development msp430-gcc @4.6.3-20120406 (cross, devel) The GNU compiler collection for msp430 msp430-gcc-devel @4.7.0-20120911 (cross, devel) The GNU compiler collection for msp430 This is the development version. msp430-gdb @7.2a-20111205 (cross) GDB for the MSP430 processors msp430-gdb-devel @7.2a (cross) GDB for the MSP430 processors. This is the development version- msp430-libc @20120224 (cross) C library for the MSP430 series microcontrollers. msp430-libc-devel @20120716 (cross) C library for the MSP430 series microcontrollers. This is the development version. msp430mcu @20120406 (cross, devel) Device capabilites database for MSP430 toolchain msp430mcu-devel @20120716 (cross, devel) Device capabilites database for MSP430 toolchain. This is the development version. mspdebug @0.21 (devel, cross) MSPDebug is a free debugger for use with MSP430 MCUs. Found 11 ports.
msp430-gcc と msp430-gcc-devel はバージョンが異なるということでどちらか片方を選択することになります.
$ sudo port install libusb libusb-compat libelf $ sudo port install msp430-binutils msp430-gcc msp430-gdb msp430-libc msp430mcu mspdebug
USBドライバのインストール
TIのWikiにおける情報からバイナリーとソースが公開されているらしい,ということで試してみたのですが,私の環境(Mac OS X 10.8)では一度もうまく動きませんでした.
例えば /var/log/system.log なんかだと,こんな出力が.
May 4 13:06:49 mac1 kernel[0]: 0 0 AppleUSBCDCACMControl: start - configureACM failed May 4 13:06:49 mac1 kernel[0]: AppleUSBCDC: Version number - 4.1.23
そこで調べてみたところ(こことか,こことか),以下のページで公開されているパッケージをインストールすることでボードをうまく認識させることができました.
LaunchPad OSX USB drivers (CDC /VCP)
うまくできた時の /var/log/system.log
May 4 15:14:20 mac1 kernel[0]: ---------------------------------------------------- May 4 15:14:20 mac1 kernel[0]: Texas Instrument LaunchPad / EZ430-RF2500 CDC/ACM Driver May 4 15:14:20 mac1 kernel[0]: Version 1.0.3b - Terence Ang 2011 May 4 15:14:20 mac1 kernel[0]: ---------------------------------------------------- May 4 15:14:20 mac1 kernel[0]: Device Name = Texas Instruments MSP-FET430UIF May 4 15:14:20 mac1 kernel[0]: Serial Number = A8FF46762593364C May 4 15:14:20 mac1 kernel[0]: ---------------------------------------------------- May 4 15:14:20 mac1 kernel[0]: MSP430LPCDC : Version number - 1.0.3b, Input buffers 8, Output buffers 16 May 4 15:14:20 mac1 kernel[0]: AppleUSBCDC: Version number - 4.1.23