(同じ利用者による、間の5版が非表示)
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>
 
== Arduino UNO R4 Minima ==
Arduino UNO R4 Minimaをデバッグすることにより、トラブルシューティングやコードの実行を分析することができる。<br>
<br>
==== 必要なもの ====
* UNO R4ボードパッケージ
* [https://www.segger.com/products/debug-probes/j-link/ Segger J-Link]
*: J-Linkは、PCとArduino UNO R4 Minimaを直接接続できるデバッグツールである。
*: これにより、マイコンの内部レジスタ、メモリ、変数にフルアクセスすることができる。
* Ozone
*: Ozoneと併用することにより、ソースコードを1行ずつステップスルーすることができるため、ソースコードを分析することができる。
<br>
 
==== UNO R4ボードパッケージのインストール ====
まず、UNO R4ボードパッケージをインストールする。<br>
<br>
Arduino IDE 2のメイン画面左にある[ボードマネージャー]を選択する。<br>
UNO R4 Minimaを検索して、最新のバージョンをインストールする。<br>
<br>
Arduino IDE 2のメイン画面上にあるボードセレクターから、Arduino UNO R4 Minimaを選択する。<br>
最後に、PCとArduino UNO R4 MinimaをUSB-C経由で接続する。<br>
<br>
==== Seagger J-Link ====
次に、PCとJ-Linkを接続、J-LinkとArduino UNO R4 Minimaを接続する。<br>
<br>
J-linkにはケーブルが同梱されており、ケーブルの向きを示す赤い印が片側に付いている。<br>
ケーブルの赤い側は、SWDパッドのVCCピンと同じ側にある。(ケーブルの正確な向きは、デバッガのマニュアルやデータシートを参照すること)<br>
<br>
J-linkとArduino UNO R4 Minimaの接続は、SWDピンと表示されたデバッグ用の特別なピンがあるため理解しやすい。<br>
[[ファイル:Arduino Debug 6.png|フレームなし|中央]]
<br>
==== コンパイル ====
Arduino IDE 2のメイン画面から、[ファイル] - [基本設定...]を選択する。<br>
[基本設定]画面の[より詳細な情報を表示する]項目から、[コンパイル]チェックボックスおよび[書き込み]チェックボックスにチェックを入力する。<br>
<br>
デバッグ対象のスケッチをコンパイルする。<br>
<br>
Arduino IDE 2からスケッチをアップロードする場合、.ELFファイルの保存場所を知る必要がある。<br>
<br>
下図では、<u>"C:\Users\profile\AppData\Local\Temp\arduino_build_815037\<スケッチ名>.elf"</u> (Windowsの場合) のようなパスに出力される。<br>
Linuxの場合は、<u>"~/.cache/arduino/sketches/<ランダムな値>/<スケッチ名>.elf"</u>のようなパスの出力される。<br>
[[ファイル:Arduino Debug 7.png|フレームなし|中央]]
<br>
この.ELFファイルを使用することにより、J-LinkおよびSegger Ozoneでデバッグを行うことができる。<br>
<br>
==== Segger Ozone ====
[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もダウンロードする。
<br>
==== デバッグプロジェクトの作成 ====
# Ozoneを起動する。
# ターゲットデバイスの設定を行う。
#* [Target Device Settings]画面から、[Manufacturer]プルダウンから[Renesas]、[Device]プルダウンから[R7FA4M1AB] (Arduino UNO R4 Minimaの搭載マイコン) を選択する。
#* [OK]ボタンを押下する。
# 接続設定を行う。
#* [Target Interface]プルダウンから[SWD]を選択する。
#* [Emulators connected via USB]リストから、J-Linkデバイスを選択して、[Next]ボタンを押下する。
# デバッグするスケッチの.ELFファイルを選択する。<br>これは、上記でコンパイルした.ELFファイルのフルパスを入力する。
# [Next]ボタンを押下する。
# [Optional Settings]画面では、[Initial PC]ラジオボタンおよび[Initial Stack Pointer]ラジボタンの両オプションを[Do not set]に設定する。
# [Finish]ボタンを押下する。
<br>
セットアップの完了後、メイン関数を含むファイルが自動的に開かれる。<br>
これは、Arduino IDE 2によって生成された抽象化レイヤーであるため、開発者が設計したスケッチではないことに注意すること。<br>
<br>
スケッチ本体を開く場合は、Ozoneの上部ツールバーから、[Find] -[Find source file]を選択する。<br>
右上に表示された小さなウィンドウに".ino"と入力することによりスケッチ群が表示されるため、該当するスケッチを選択する。<br>
<br>
==== ブレークポイントの設定 ====
スケッチの横にあるサイドバーを選択して、ブレークポイントを設定する。<br>
<br>
==== デバッグの開始 ====
スケッチのデバッグを開始するには、Ozoneのメイン画面上部にある[Debug]メニューバー - [Start Debug Session] - [Download & Reset Program]を選択する。<br>
<br>
Ozoneデバッガの詳細な機能については、[https://www.segger.com/products/development-tools/ozone-j-link-debugger/technology/application-debugging/ 公式Webサイト]を参照すること。<br>
<br><br>
<br><br>


63行目: 135行目:
# デバッグコンソールを開いている場合は閉じる。
# デバッグコンソールを開いている場合は閉じる。
# 既にGDB Serverを起動している場合は、Arduino IDEのメイン画面左上にある[Stop]アイコンを選択する。
# 既にGDB Serverを起動している場合は、Arduino IDEのメイン画面左上にある[Stop]アイコンを選択する。
# デバッグを開始する。
# Arduino IDE 2メイン画面左上にあるデバッグアイコンを選択して、デバッグを開始する。
#: [[ファイル:Arduino Debug 8.png|フレームなし]]
<br>
<br>
==== エラー ====
==== エラー ====
以下に示すようなエラーが表示される場合がある。<br>
以下に示すようなエラーが表示される場合がある。<br>