So-net無料ブログ作成

MSP430 LaunchPadとVirtualBox [プログラム]

MSP430の開発環境(linux版の場合)も64bit専用となりつつあり、非常に困ったものです。
Energiaにしろ、CCS7にしろ、64bitOS専用です。
なので、私はVirtualBoxに64bitOSを入れて、そこにMSP430の開発環境をインストールして使っています。

しかしながら、VirtualBoxだと、USBの問題を片付けなければなりません。
VirtualBoxから、ホストに接続されたUSBデバイスを操作するには
(a) VirtualBoxでUSB2.0,3.0を扱うためには、ホスト側にExtension Packをインストールしなければならない
(b) それが何のデバイスかをホストが知っていなければならない
ということのようです。

CCS7をインストールするとして、
(a)のExtension Packの方は、VirtualBoxのサイトからダウンロードしてインストールすればよいです。
(b)の方は、MSP430のCCS7/etc/udev/rule.d/71-ti-permissions.rulesを追加して、/etc/init.d/udev restartすればよいです(が、実は、それだけではダメでした)。

これらをして、MSP430のサンプルコード(出荷時に書き込まれているもの)をTIのサイトからダウンロードして、CCSでimportしてビルドしました。
ホストに接続したLauchPadを、ホストが認識したことを確認して、VirtualBoxの方でそのUSBデバイスを有効にすると、ゲストの64bitOSが認識しました。
CCSの設定で、デバッガ(ICEの設定)をそれに変更し、ビルドしてダウンロードしてデバッグに入ります。
が、アラートが出て、「LaunchPadの方の『eZ-FET on-board emulator』のファームウェアを更新する必要がある」と言われてしまいました。
なんとなく「update」ボタンを押してしまったら、... 緑と赤のLEDが点灯したまま止まってしまいました。数分待ったでしょうか、エラーメッセージがでました。updateに失敗!!! え? LaunchPadがいきなりゴミになった!?
こんな状態になることは少なからずあることなので、当然回復させるための手段があるはずですが、どうやるのでしょう?

まず、LaunchPadのUSBケーブルを一度抜いて挿し直してみます。当然、デモプログラムも動きません。
ホストもUSBデバイスを正しく認識できていません。USBデバイスとしては認識していますが、71-ti-permissions.rulesにあるデバイスではないので不明なデバイスとなり、(b)ができないため、VirtualBoxで使用できない(ゲストOSで使用できない)、ということです。
LaunchPadのeZ-FET on-board emulatorが初期化されたため、71-ti-permissions.rulesにはない、MSP430の素のUSBデバイスになっているようです。なら、これを71-ti-permissions.rulesに追加してやったらどうでしょうか? dmesgの出力をみて、VendorとProductのIDを追加してやります。
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",
ATTRS{idVendor}=="2047",ATTRS{idProduct}=="0203",MODE:="0666"
udevを再起動して、LaunchPadのUSBケーブルを差し直すと、デバイスとして認識しました。これでVirtualBoxでそのUSBデバイスが見えるようになりましたので、それを有効にしますと、ゲストOSからそのUSBデバイスが見えるようになりました。

そして、CCS7を起動して、デバッグしようとすると、「LaunchPadの方の『eZ-FET on-board emulator』のリカバリが必要」というので、リカバリすると、赤のLEDが不規則に点滅し、しばらくして、デバッガが起動しました。おお、ゴミからLaunchPadに戻ったよ。
続けて、CCSでソースレベルデバッグができることを確認しました。

これでやっと本来のプログラムへ進むことができます。やれやれ。


共通テーマ:パソコン・インターネット