MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Arduinoの設定 - デバッグのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Arduinoの設定 - デバッグ
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Atmel Studio 7を使用すると、Arduinoのスケッチをインポートしてデバッグできる。<br> これにより、Arduinoはプロの設計エンジニアツールとなる。<br> <br><br> == Arduino UNO R3 == ==== 前提条件 ==== Arduinoをデバッグするには、以下のような注意点がある。<br> * Arduino ICSP接続ができるデバッガが必要となる。<br>(例: Atmel-ICE等) * Atmel Studio 7をインストールする必要がある。 * ArduinoでdebugWireを動作させるため、Arduinoの回路を変更する必要がある。<br><u>Atmel Studio 7で設計を行う場合、Arduinoのブートローダが消去される。</u><br><u>そのため、他の開発環境でArduinoを使用する場合は、ブートローダを再び書き込む必要がある。</u> <br> ==== Arduinoの回路の変更 ==== Arduino Unoには、ATmega 328Pとブートローダ(optiboot_atmega328.hex)が搭載されている。<br> <br> ブートローダは、リセット時に実行されて、シリアルインターフェイスを介して送信された値により、ATmega 328のメモリをプログラムする。<br> これは、新しいスケッチをArduinoにアップロードできるようにするものである。<br> <br> DTR信号の状態が一時的に変化する時、ブートローダが開始される。<br> <br> 下図に示す回路において、CH1がDTRであり、CH2がRESETである。<br> [[ファイル:Arduino Debug 1.jpg|フレームなし|中央]] <br> 下図に、スケッチがArduinoにアップロードされた時、オシロスコープにより計測されたリセットパルスを示す。<br> [[ファイル:Arduino Debug 2.jpg|フレームなし|中央]] <br> 回路図のコンデンサC5は、debugWIREインターフェースに影響を与えており、また、ATmega 328Pのリセット制御にも依存している。<br> 幸い、リセットラインからコンデンサC5を切り離すことができるジャンパーカットをPCBに残している。<br> <br> 剃刀等の鋭利な工具を使用して、"RESET EN"または"RESET ON"と書かれた2つの錫メッキパッドを接続するパターンをカットする。<br> (C5までのパターンを切らないように注意すること)<br> パッドのパターンをカットした後、Arduinoのデバッグが可能になる。<br> <br> ※注意<br> このパターンを切断している状態では、ブートローダが書き込まれている場合でも、Arduino IDEはスケッチをアップロードできない。<br> [[ファイル:Arduino Debug 3.jpg|フレームなし|中央]] <br> 下図のように、パッドに2ピンのヘッダを接続して、debugWIREインターフェースと標準のArduinoのブートロードを切り替えられるようにするとよい。<br> 切り替えは、ジャンパの接続または取り外すことで行う。<br> [[ファイル:Arduino Debug 4.jpg|フレームなし|中央]] <br> Arduinoのスケッチをデバッグするには、以下のようにする必要がある。<br> # リセットがコンデンサC5から切り離されていることを確認する。<br>2ピンのヘッダを接続している場合は、ヘッダからジャンパーを取り外す。 # ICSPのシルクがあるコネクタにAtmel-ICEを接続する。<br>接続方法は、Atmel-ICEコネクタのタブ(出っ張り)を、ArduinoのコンデンサC5に向けて接続する。 # PCとArduinoをUSBケーブルで接続して、ArduinoのDCジャックに電源を供給する。 [[ファイル:Arduino Debug 5.jpg|フレームなし|中央]] <br><br> == Arduino UNO R4 Minima == Arduino UNO R4 Minimaをデバッグすることにより、トラブルシューティングやコードの実行を分析することができる。<br> <br> ==== 必要なもの ==== * UNO R4ボードパッケージ * 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> == 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> Arudino UNO R4 WiFiのudevファイルがインストールされる。<br> /etc/udev/rules.d/60-arduino-renesas.rules <br><br> __FORCETOC__ [[カテゴリ:Arduino]]
Arduinoの設定 - デバッグ
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse