メモ書き

自分が後で見直すためにつけている作業のメモ書きです.それ以上の意味はありません

Mac OS X(MacPorts) 上で gcc を使って MSP430 LaunchPad 向けクロス開発するための情報整理

TOPPERS/SSPカーネルもようやく(1年ぶり?)バージョン1.2 がリリースされました.機能的にはだいたいこれで落ち着いてきたこともありますので,次は利用可能なターゲットハードウェアを広げようということでMSP430(対象ボード:LaunchPad)への移植を始めています.

こんなボードです.
f:id:nsaito_nmiri:20120605130535j:plain

カーネルを移植する前に開発環境を整えなければなりませんので,情報を整理してみました.

調べたところ

ボードの情報.最初のよりどころ.

プロセッサチップ.上のボード情報からたどれる.

Mac OS X 向け MSP430 プログラミングツールの情報.
ただし情報が古いようです.MacPorts で開発ツールが入手できたりすることが記載されていなかったり,USBドライバについては別のところからドライバを入手する必要がありました.

(追記)MSP向けGCCの実装としてこれまではMSPGCC4という名称で開発されていたらしいのですが,現在ではサポートが終了し,MSPGCCという名称で開発が行われているのが最新のようです.

必要なツール

上記の情報源を調べてみたところでは,以下のツールが必要とのこと.

  • GNU Toolchain (gcc, binutils)
  • 標準ライブラリ msplibc
  • デバッガ msp-gdb, mspdebug

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-gccmsp430-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