はじめに
arudinoを以前に購入しMacbookProで動かしていたのですが、archlinuxでも動かしてみようと思いやってみたところ、うまくarudinoへ書き込むことができなかったので、その回避方法を記載したいと思います。
環境など
-
Arduino M0 Pro
- Arduino Unoよりスペックが高い
- フラッシュメモリ32KB→256KB
- SRAM 2KB→32KB
クロック 16MHz→48MHz)
- Arduino Unoよりスペックが高い
- Archlinux
- ArduinoIDE 1.8.3
Arduino M0 Proは、amazonで購入しました。
セットアップ
archlinuxのマニュアルを見ながらセットアップします。
エラー内容
ArduinoIDEから書き込みを行おうとすると、以下のようなエラーが発生し、書き込めませんでした。
cortex_m reset_config sysresetreq
Error: unable to find CMSIS-DAP device
Error: No Valid JTAG Interface Configured.
Error: No Valid JTAG Interface Configured.
エラーの原因&回避方法
ARMデバッガ「openocd」の設定が行われていない為、発生しているエラーです。
回避するためには、「/etc/udev/rules.d」ディレクトリにopenocd設定ファイルを追加します。
98-openocd.rules
ACTION!="add|change", GOTO="openocd_rules_end"
SUBSYSTEM!="usb|tty|hidraw", GOTO="openocd_rules_end"
# CMSIS-DAP compatible adapters
ATTRS{product}=="*CMSIS-DAP*", MODE="660", GROUP="plugdev", TAG+="uaccess"
LABEL="openocd_rules_end"
上記ファイルを追加し再起動した後、ArduinoIDEから書き込みを行うと、正常に書き込みできました。
(何故か、sudo udevadm control --reload
では反映されませんでした)
Open On-Chip Debugger 0.9.0-g932ec70 (2017-02-15-11:32)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 0
adapter speed: 500 kHz
adapter_nsrst_delay: 100
cortex_m reset_config sysresetreq
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x81000000 pc: 0x000028f4 msp: 0x20002c00
** Programming Started **
auto erase enabled
wrote 16384 bytes from file /tmp/arduino_build_34990/sketch_jul08a.ino.bin in 1.976586s (8.095 KiB/s)
** Programming Finished **
** Verify Started **
verified 10404 bytes in 0.866759s (11.722 KiB/s)
** Verified OK **
** Resetting Target **
shutdown command invoked