(同じ利用者による、間の3版が非表示)
21行目: 21行目:
下図に示す回路において、CH1がDTRであり、CH2がRESETである。<br>
下図に示す回路において、CH1がDTRであり、CH2がRESETである。<br>
[[ファイル:Arduino Debug 1.jpg|フレームなし|中央]]
[[ファイル:Arduino Debug 1.jpg|フレームなし|中央]]
<center>図. </center><br>
<br>
<br>
下図に、スケッチがArduinoにアップロードされた時、オシロスコープにより計測されたリセットパルスを示す。<br>
下図に、スケッチがArduinoにアップロードされた時、オシロスコープにより計測されたリセットパルスを示す。<br>
[[ファイル:Arduino Debug 2.jpg|フレームなし|中央]]
[[ファイル:Arduino Debug 2.jpg|フレームなし|中央]]
<center>図. </center><br>
<br>
<br>
回路図のコンデンサC5は、debugWIREインターフェースに影響を与えており、また、ATmega 328Pのリセット制御にも依存している。<br>
回路図のコンデンサC5は、debugWIREインターフェースに影響を与えており、また、ATmega 328Pのリセット制御にも依存している。<br>
37行目: 35行目:
このパターンを切断している状態では、ブートローダが書き込まれている場合でも、Arduino IDEはスケッチをアップロードできない。<br>
このパターンを切断している状態では、ブートローダが書き込まれている場合でも、Arduino IDEはスケッチをアップロードできない。<br>
[[ファイル:Arduino Debug 3.jpg|フレームなし|中央]]
[[ファイル:Arduino Debug 3.jpg|フレームなし|中央]]
<center>図. </center><br>
<br>
<br>
下図のように、パッドに2ピンのヘッダを接続して、debugWIREインターフェースと標準のArduinoのブートロードを切り替えられるようにするとよい。<br>
下図のように、パッドに2ピンのヘッダを接続して、debugWIREインターフェースと標準のArduinoのブートロードを切り替えられるようにするとよい。<br>
切り替えは、ジャンパの接続または取り外すことで行う。<br>
切り替えは、ジャンパの接続または取り外すことで行う。<br>
[[ファイル:Arduino Debug 4.jpg|フレームなし|中央]]
[[ファイル:Arduino Debug 4.jpg|フレームなし|中央]]
<center>図. </center><br>
<br>
<br>
Arduinoのスケッチをデバッグするには、以下のようにする必要がある。<br>
Arduinoのスケッチをデバッグするには、以下のようにする必要がある。<br>
49行目: 45行目:
# PCとArduinoをUSBケーブルで接続して、ArduinoのDCジャックに電源を供給する。
# PCとArduinoをUSBケーブルで接続して、ArduinoのDCジャックに電源を供給する。
[[ファイル:Arduino Debug 5.jpg|フレームなし|中央]]
[[ファイル:Arduino Debug 5.jpg|フレームなし|中央]]
<center>図. </center><br>
<br><br>
<br><br>


57行目: 52行目:
==== 必要なもの ====
==== 必要なもの ====
* UNO R4ボードパッケージ
* UNO R4ボードパッケージ
* Segger J-Link
* [https://www.segger.com/products/debug-probes/j-link/ Segger J-Link]
*: J-Linkは、PCとArduino UNO R4 Minimaを直接接続できるデバッグツールである。
*: J-Linkは、PCとArduino UNO R4 Minimaを直接接続できるデバッグツールである。
*: これにより、マイコンの内部レジスタ、メモリ、変数にフルアクセスすることができる。
*: これにより、マイコンの内部レジスタ、メモリ、変数にフルアクセスすることができる。
63行目: 58行目:
*: Ozoneと併用することにより、ソースコードを1行ずつステップスルーすることができるため、ソースコードを分析することができる。
*: Ozoneと併用することにより、ソースコードを1行ずつステップスルーすることができるため、ソースコードを分析することができる。
<br>
<br>
==== UNO R4ボードパッケージのインストール ====
==== UNO R4ボードパッケージのインストール ====
まず、UNO R4ボードパッケージをインストールする。<br>
まず、UNO R4ボードパッケージをインストールする。<br>
79行目: 75行目:
<br>
<br>
J-linkとArduino UNO R4 Minimaの接続は、SWDピンと表示されたデバッグ用の特別なピンがあるため理解しやすい。<br>
J-linkとArduino UNO R4 Minimaの接続は、SWDピンと表示されたデバッグ用の特別なピンがあるため理解しやすい。<br>
[[ファイル:Arduino Debug 6.png|フレームなし|中央]]
<br>
<br>
==== コンパイル ====
==== コンパイル ====
87行目: 84行目:
<br>
<br>
Arduino IDE 2からスケッチをアップロードする場合、.ELFファイルの保存場所を知る必要がある。<br>
Arduino IDE 2からスケッチをアップロードする場合、.ELFファイルの保存場所を知る必要がある。<br>
<br>
下図では、<u>"C:\Users\profile\AppData\Local\Temp\arduino_build_815037\<スケッチ名>.elf"</u> (Windowsの場合) のようなパスに出力される。<br>
下図では、<u>"C:\Users\profile\AppData\Local\Temp\arduino_build_815037\<スケッチ名>.elf"</u> (Windowsの場合) のようなパスに出力される。<br>
Linuxの場合は、<u>"~/.cache/arduino/sketches/<ランダムな値>/<スケッチ名>.elf"</u>のようなパスの出力される。<br>
Linuxの場合は、<u>"~/.cache/arduino/sketches/<ランダムな値>/<スケッチ名>.elf"</u>のようなパスの出力される。<br>
 
[[ファイル:Arduino Debug 7.png|フレームなし|中央]]
<br>
<br>
この.ELFファイルを使用することにより、J-LinkおよびSegger Ozoneでデバッグを行うことができる。<br>
この.ELFファイルを使用することにより、J-LinkおよびSegger Ozoneでデバッグを行うことができる。<br>
95行目: 93行目:
==== Segger Ozone ====
==== Segger Ozone ====
[https://www.segger.com/products/development-tools/ozone-j-link-debugger/ Segger Ozoneの公式Webサイト]にアクセスして、Ozoneデバッガをダウンロードおよびインストールする。<br>
[https://www.segger.com/products/development-tools/ozone-j-link-debugger/ Segger Ozoneの公式Webサイト]にアクセスして、Ozoneデバッガをダウンロードおよびインストールする。<br>
<br>
Windowsの場合は、J-Link Software and Documentation Pack for Windowsもダウンロードする。
Windowsの場合は、J-Link Software and Documentation Pack for Windowsもダウンロードする。
<br>
<br>
136行目: 135行目:
# デバッグコンソールを開いている場合は閉じる。
# デバッグコンソールを開いている場合は閉じる。
# 既にGDB Serverを起動している場合は、Arduino IDEのメイン画面左上にある[Stop]アイコンを選択する。
# 既にGDB Serverを起動している場合は、Arduino IDEのメイン画面左上にある[Stop]アイコンを選択する。
# デバッグを開始する。
# Arduino IDE 2メイン画面左上にあるデバッグアイコンを選択して、デバッグを開始する。
#: [[ファイル:Arduino Debug 8.png|フレームなし]]
<br>
<br>
==== エラー ====
==== エラー ====
以下に示すようなエラーが表示される場合がある。<br>
以下に示すようなエラーが表示される場合がある。<br>