「Arduinoの設定 - デバッグ」の版間の差分
細 (Wiki がページ「Arduinoの設定 -デバッグ」を「Arduinoの設定 - デバッグ」に、リダイレクトを残さずに移動しました) |
編集の要約なし |
||
4行目: | 4行目: | ||
<br><br> | <br><br> | ||
== 前提条件 == | == Arduino UNO R3 == | ||
==== 前提条件 ==== | |||
Arduinoをデバッグするには、以下のような注意点がある。<br> | Arduinoをデバッグするには、以下のような注意点がある。<br> | ||
* Arduino ICSP接続ができるデバッガが必要となる。<br>(例: Atmel-ICE等) | * Arduino ICSP接続ができるデバッガが必要となる。<br>(例: Atmel-ICE等) | ||
* Atmel Studio 7をインストールする必要がある。 | * Atmel Studio 7をインストールする必要がある。 | ||
* ArduinoでdebugWireを動作させるため、Arduinoの回路を変更する必要がある。<br><u>Atmel Studio 7で設計を行う場合、Arduinoのブートローダが消去される。</u><br><u>そのため、他の開発環境でArduinoを使用する場合は、ブートローダを再び書き込む必要がある。</u> | * ArduinoでdebugWireを動作させるため、Arduinoの回路を変更する必要がある。<br><u>Atmel Studio 7で設計を行う場合、Arduinoのブートローダが消去される。</u><br><u>そのため、他の開発環境でArduinoを使用する場合は、ブートローダを再び書き込む必要がある。</u> | ||
<br> | |||
==== Arduinoの回路の変更 ==== | |||
== Arduinoの回路の変更 == | |||
Arduino Unoには、ATmega 328Pとブートローダ(optiboot_atmega328.hex)が搭載されている。<br> | Arduino Unoには、ATmega 328Pとブートローダ(optiboot_atmega328.hex)が搭載されている。<br> | ||
<br> | <br> | ||
51行目: | 51行目: | ||
<center>図. </center><br> | <center>図. </center><br> | ||
<br><br> | <br><br> | ||
== Arduino UNO R4 WiFi == | |||
==== 手順 ==== | |||
# Arduino UNO R4 WiFiに外部電源 (ACアダプタ) を接続する。 | |||
# Arduino IDE 2の[ツール]メニューバー - [ARM CMSS-DAP互換]を選択する。 | |||
# Arduino IDE 2の[スケッチ]メニューバー - [デバッグに最適化]を選択する。 | |||
#: Arduino IDEでは、ボード上でより効率的に (クロックサイクルやメモリ使用量等) 実行できるよう、コンパイラがプログラムを最適化するように自動設定される。 | |||
#: しかし、最適化を行うと生成されるプログラムがソースコードと大きく異なってしまい、デバッガが使用可能な結果を得られないことがある。 | |||
#: そこで、デバッグ時には最適化レベルを下げる。 | |||
# 再コンパイルしてアップロードする。 | |||
# デバッグコンソールを開いている場合は閉じる。 | |||
# 既にGDB Serverを起動している場合は、Arduino IDEのメイン画面左上にある[Stop]アイコンを選択する。 | |||
# デバッグを開始する。 | |||
<br> | |||
==== エラー ==== | |||
以下に示すようなエラーが表示される場合がある。<br> | |||
Arduino R4 WiFi Debug OpenOCD: GDB Server Quit Unexpectedly. | |||
See gdb-server output for more details. | |||
<br> | |||
===== 修正方法 1 ===== | |||
Arduino UNO R4 WiFiに外部電源 (ACアダプタ) を再接続する。<br> | |||
<br> | |||
===== 修正方法 2 ===== | |||
最新のopenocd.exeをインストールする。<br> | |||
https://github.com/xpack-dev-tools/openocd-xpack<br> | |||
<br> | |||
===== 修正方法 3 ===== | |||
Linuxの場合は、udevルールファイルを再インストールする。<br> | |||
git clone https://github.com/arduino/ArduinoCore-renesas.git | |||
cd ArduinoCore-renesas | |||
<br> | |||
sudo ./post_install.sh | |||
<br> | |||
下記のudevファイルがインストールされる。<br> | |||
/etc/udev/rules.d/60-arduino-renesas.rules | |||
<br><br> | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Arduino]] | [[カテゴリ:Arduino]] |
2024年12月19日 (木) 15:01時点における版
概要
Atmel Studio 7を使用すると、Arduinoのスケッチをインポートしてデバッグできる。
これにより、Arduinoはプロの設計エンジニアツールとなる。
Arduino UNO R3
前提条件
Arduinoをデバッグするには、以下のような注意点がある。
- Arduino ICSP接続ができるデバッガが必要となる。
(例: Atmel-ICE等) - Atmel Studio 7をインストールする必要がある。
- ArduinoでdebugWireを動作させるため、Arduinoの回路を変更する必要がある。
Atmel Studio 7で設計を行う場合、Arduinoのブートローダが消去される。
そのため、他の開発環境でArduinoを使用する場合は、ブートローダを再び書き込む必要がある。
Arduinoの回路の変更
Arduino Unoには、ATmega 328Pとブートローダ(optiboot_atmega328.hex)が搭載されている。
ブートローダは、リセット時に実行されて、シリアルインターフェイスを介して送信された値により、ATmega 328のメモリをプログラムする。
これは、新しいスケッチをArduinoにアップロードできるようにするものである。
DTR信号の状態が一時的に変化する時、ブートローダが開始される。
下図に示す回路において、CH1がDTRであり、CH2がRESETである。
下図に、スケッチがArduinoにアップロードされた時、オシロスコープにより計測されたリセットパルスを示す。
回路図のコンデンサC5は、debugWIREインターフェースに影響を与えており、また、ATmega 328Pのリセット制御にも依存している。
幸い、リセットラインからコンデンサC5を切り離すことができるジャンパーカットをPCBに残している。
剃刀等の鋭利な工具を使用して、"RESET EN"または"RESET ON"と書かれた2つの錫メッキパッドを接続するパターンをカットする。
(C5までのパターンを切らないように注意すること)
パッドのパターンをカットした後、Arduinoのデバッグが可能になる。
※注意
このパターンを切断している状態では、ブートローダが書き込まれている場合でも、Arduino IDEはスケッチをアップロードできない。
下図のように、パッドに2ピンのヘッダを接続して、debugWIREインターフェースと標準のArduinoのブートロードを切り替えられるようにするとよい。
切り替えは、ジャンパの接続または取り外すことで行う。
Arduinoのスケッチをデバッグするには、以下のようにする必要がある。
- リセットがコンデンサC5から切り離されていることを確認する。
2ピンのヘッダを接続している場合は、ヘッダからジャンパーを取り外す。 - ICSPのシルクがあるコネクタにAtmel-ICEを接続する。
接続方法は、Atmel-ICEコネクタのタブ(出っ張り)を、ArduinoのコンデンサC5に向けて接続する。 - PCとArduinoをUSBケーブルで接続して、ArduinoのDCジャックに電源を供給する。
Arduino UNO R4 WiFi
手順
- Arduino UNO R4 WiFiに外部電源 (ACアダプタ) を接続する。
- Arduino IDE 2の[ツール]メニューバー - [ARM CMSS-DAP互換]を選択する。
- Arduino IDE 2の[スケッチ]メニューバー - [デバッグに最適化]を選択する。
- Arduino IDEでは、ボード上でより効率的に (クロックサイクルやメモリ使用量等) 実行できるよう、コンパイラがプログラムを最適化するように自動設定される。
- しかし、最適化を行うと生成されるプログラムがソースコードと大きく異なってしまい、デバッガが使用可能な結果を得られないことがある。
- そこで、デバッグ時には最適化レベルを下げる。
- 再コンパイルしてアップロードする。
- デバッグコンソールを開いている場合は閉じる。
- 既にGDB Serverを起動している場合は、Arduino IDEのメイン画面左上にある[Stop]アイコンを選択する。
- デバッグを開始する。
エラー
以下に示すようなエラーが表示される場合がある。
Arduino R4 WiFi Debug OpenOCD: GDB Server Quit Unexpectedly. See gdb-server output for more details.
修正方法 1
Arduino UNO R4 WiFiに外部電源 (ACアダプタ) を再接続する。
修正方法 2
最新のopenocd.exeをインストールする。
https://github.com/xpack-dev-tools/openocd-xpack
修正方法 3
Linuxの場合は、udevルールファイルを再インストールする。
git clone https://github.com/arduino/ArduinoCore-renesas.git cd ArduinoCore-renesas
sudo ./post_install.sh
下記のudevファイルがインストールされる。
/etc/udev/rules.d/60-arduino-renesas.rules