2017年1月25日水曜日

ubuntuのArduino IDEからBLEnanoへのプログラムアップロード時に遭遇したエラーの回避方法


解決に時間がかかったので、メモを共有します。

使ったもの

  • ubuntu16.10
  • Arduino IDE 1.8.1
    2017.01.23時点で最新のリリース版IDEです。
  • nRF51822-Arduino
    BLEnanoを作ったRedBearLabが作成してくれている、Arduino IDEでBLEnanoのプログラムを書き込むための、Arduino IDE向けボード情報です。
    Arduino IDEにjsonを登録して、IDEのボードマネージャーからインストールしました。
  • openOCDの設定ファイル
    Arduinoのグループが管理している設定ファイルを利用しました。

エラーの内容

ubuntuでは何も設定しないと下記のエラーが出て書き込みが失敗してしまいます。

Arduino: 1.8.1 (Linux), Board: "BLE Nano(V1.0 16KB)"

Build options changed, rebuilding all
Sketch uses 5980 bytes (2%) of program storage space. Maximum is 262144 bytes.
Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-09-12:07)
Licensed under GNU GPL v2
For bug reports, read
 http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
Info : only one transport option; autoselect 'swd'
cortex_m reset_config sysresetreq
adapter speed: 1000 kHz
Error: unable to open CMSIS-DAP device 0xd28:0x204

the selected serial port
 does not exist or your board is not connected

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

回避方法: openOCDの設定ファイルをubuntuに追加

openOCDというARMのデバッガを制御するプログラムの設定が期待通りではないのが原因です。

下記のコマンドで/etc/udev/rules.dに設定ファイルを置いて、デバイス設定を更新すると、DapLinkやMK20がArduino IDEの期待する設定でマウントされるようになります。

cd /etc/udev/rules.d
sudo wget https://raw.githubusercontent.com/arduino/OpenOCD/master/contrib/60-openocd.rules
sudo udevadm control --reload-rules

設定更新後にDapLinkかMK20をPCにして、Arduino IDEからプログラムを書き込んでみてください。
成功すると思います。

参考:
openocd issue on Linux #73
arduino/OpenOCD
arduino/OpenOCD/blob/master/contrib/60-openocd.rules

共有する情報は以上です。

0 件のコメント :