SSブログ

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でソースレベルデバッグができることを確認しました。

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


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

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。