ArduinoボードをDAPLinkデバイスとして使用する
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
ArduinoボードをDAPLinkデバイスとして使用する方法

DAPLinkとは
Arm Mbed DAPLink は、Arm Cortex CPU 上で動作するアプリケーションソフトウェアをプログラムおよびデバッグするためのオープンソースソフトウェアプロジェクトです。DAPLinkはインターフェースファームウェアと呼ばれることが多く、アプリケーションMCUのSWDまたはJTAGポートに接続された補助MCU上で動作します。この構成はほぼすべての開発ボードで利用可能です。DAPLinkは、開発用コンピュータとCPUデバッグアクセスポートの間の橋渡しを行います。
詳細については、DAPLink をご覧ください。
Arduinoボード向けDAPLink
現在、Wio Terminal や Seeeduino Xiao などのArduinoボード(SAMDシリーズ)上で動作するDAPLinkファームウェアを開発しました。これにより、DAPLinkをサポートする開発ボードを最もコスト効率の高い方法でアップロードおよびデバッグすることができます!
特徴
- Arm Cortex CPUのデバッグとフラッシュ
- 仮想シリアルポートを提供し、USBからシリアルポートへの変換が不要
- ドラッグ&ドロップでファームウェアをアップロード(近日公開)
対応ボード
Seeed製のすべてのSAMDボードに対応しています:
- Wio Terminal
- Seeeduino XIAO
- Seeeduino Zeroシリーズ:
- Seeeduino LoRaWAN
これを動作させるには、最新のArduinoSAMDボードライブラリ(>=1.8.1)をインストールしていることを確認してください!
始め方
1. DAPLink Arduinoライブラリのインストール
Seeed_Arduino_DAPLink リポジトリにアクセスし、リポジトリ全体をローカルドライブにダウンロードします。
次に、Seeed_Arduino_DAPLinkライブラリをArduino IDEにインストールします。Arduino IDEを開き、
スケッチ
->ライブラリをインクルード
->ZIP形式のライブラリを追加
をクリックし、先ほどダウンロードしたSeeed_Arduino_DAPLink
ファイルを選択します。
2. Adafruit_TinyUSB_Arduinoライブラリのインストール
Adafruit_TinyUSB_Arduino リポジトリにアクセスし、リポジトリ全体をローカルドライブにダウンロードします。
次に、Adafruit_TinyUSB_ArduinoライブラリをArduino IDEにインストールします。Arduino IDEを開き、
スケッチ
->ライブラリをインクルード
->ZIP形式のライブラリを追加
をクリックし、先ほどダウンロードしたAdafruit_TinyUSB_Arduino
ファイルを選択します。
ピン定義のカスタマイズ
Wio Terminal または Seeeduino Xiao を使用している場合、このセクションをスキップしてデフォルトの定義を使用できます。
- DAPLinkのピン定義は、
Seeed_Arduino_DAPLink/src
内のDAP_config.h
に定義されています。以下を参照してください:

Arduinoボードへのアップロード
Arduino IDEを使用して、Seeed_Arduino_DAPLink/example
内の simple_daplink.ino
を開きます。ツール
-> USBスタック
で TinyUSB を選択します。

コードをコンパイルしてアップロードします!
ハードウェア接続例
このWikiでは、接続例としてSTM32F410RB開発ボードを使用しています。
ピン配置の定義を変更した場合は、ご自身の定義に従って接続してください。
- Seeeduino Xiao接続例

- Wio Terminal接続例

IDEでのデバッグとフラッシュの例
ArduinoボードがDAPLinkデバイスとしてMCUへのアップロードに使用できるようになりました!以下に、参考として異なるIDEでの例を示します。
OpenOCDを使用したデバッグ
上記の接続に従ってArduino DAPLinkをターゲット開発ボードに接続し、PCに接続します。
OpenOCDがインストールされていることを確認してください。
ターミナルを開き、以下を実行します:
開発ボードに応じてデバイスターゲットを変更してください。詳細は公式ドキュメントを参照してください。
openocd -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg

- 開発ボードプロジェクトのビルドパスでgccを実行します。以下のような形になります:

- gdbでローカルホストに接続するには、以下を実行します:
target remote 127.0.0.1:3333

- 開発ボードが接続されました。これでデバッグやアップロードを開始できます!
load
を実行して開発ボードにアップロードします:

GDBで使用できる便利なコマンド:
continue/cont
ctrl
+c
next
break
info break
clear
delete
list
Eclipseを使用したデバッグ
Eclipseでは、OpenOCDをバックエンドとして使用できるため、OpenOCDと非常に似ています。
- Help -> Eclipse Marketplaceに移動し、Eclipse Embedded CDTを検索してダウンロードします:

- Window -> Preference -> MCU -> Global OpenOCD Pathに移動し、以下のようにOpenOCDパスを入力します:

- プロジェクトをビルドします。Run Last Toolの下で、External Tools Configurationsをクリックします:

- 以下の設定をコピーしてください。パス(およびターゲットボード)を変更してください。

うまくいけば、以下のようになります:

- Debugの下で、Debug Configurationsをクリックし、Debuggerセクションを選択してgccパスを入力します:

これでデバッグの準備が整いました!

詳細についてはこちらを参照してください。
Keilを使用したデバッグ
- 上記の接続に従ってArduino DAPLinkをターゲット開発ボードに接続し、PCに接続します。
KeilでArduino DAPLinkを使用するには、以下を確認してください:
- Keilでプロジェクトを開き、Options for targetをクリックします。
以下のようなウィンドウが表示されます。デバイスが一致していることを確認してください。Debugセクションに移動し、CMSIS-DAP Debuggerを選択します。
- CMSIS-DAP Debuggerの横にあるsettingsをクリックします。

- Seeed CMSIS-DAP(Arduinoボード)を選択し、接続されていることを確認します。

- Flash Downloadセクションに移動し、正しいデバイスであることを確認してOKをクリックします。

- BuildとFlashをクリックします!

IAR Embedded Workbenchを使用したデバッグ
上記の接続に従ってArduino DAPLinkをターゲット開発ボードに接続し、PCに接続します。
プロジェクトを開き、Project -> Optionsに移動します。オプションメニューでDebuggerを選択します:

- Setupタブで、ドライバのドロップダウンメニューからCMSIS DAPを選択します。

- Downloadタブで、Verify downloadとflash loader(s)を使用するオプションをチェックします。

- 左側のメニューからCMSIS DAPを選択し、InterfaceタブでSWDプロトコルを設定します。

- OKをクリックし、Download and Debugをクリックします!

シリアル使用
作業を簡単にするために、追加のハードウェアを必要とせずに済むよう、ArduinoスケッチにUSBからシリアルへの機能を実装しました!
- デフォルトでは、
Serial1
として定義されており、これはハードウェアシリアルピンです。例えば、Seeeduino XIAOではピン6と7が該当します。
Arduinoスケッチ内で独自のシリアルを定義することも可能です。

使用例については、こちらを参照してください。
リソース
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。