Skip to main content

ArduinoボードをDAPLinkデバイスとして使用する

note

この文書は 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 をご覧ください。

現在、Wio TerminalSeeeduino Xiao などのArduinoボード(SAMDシリーズ)上で動作するDAPLinkファームウェアを開発しました。これにより、DAPLinkをサポートする開発ボードを最もコスト効率の高い方法でアップロードおよびデバッグすることができます!

特徴

  • Arm Cortex CPUのデバッグとフラッシュ
  • 仮想シリアルポートを提供し、USBからシリアルポートへの変換が不要
  • ドラッグ&ドロップでファームウェアをアップロード(近日公開)

対応ボード

Seeed製のすべてのSAMDボードに対応しています:

note

これを動作させるには、最新のArduinoSAMDボードライブラリ(>=1.8.1)をインストールしていることを確認してください!

始め方

  1. Seeed_Arduino_DAPLink リポジトリにアクセスし、リポジトリ全体をローカルドライブにダウンロードします。

  2. 次に、Seeed_Arduino_DAPLinkライブラリをArduino IDEにインストールします。Arduino IDEを開き、スケッチ -> ライブラリをインクルード -> ZIP形式のライブラリを追加 をクリックし、先ほどダウンロードした Seeed_Arduino_DAPLink ファイルを選択します。

InstallLibrary

2. Adafruit_TinyUSB_Arduinoライブラリのインストール

  1. Adafruit_TinyUSB_Arduino リポジトリにアクセスし、リポジトリ全体をローカルドライブにダウンロードします。

  2. 次に、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をクリックします。
  • BuildFlashをクリックします!

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が該当します。
note
Arduinoスケッチ内で独自のシリアルを定義することも可能です。

使用例については、こちらを参照してください。

リソース

技術サポートと製品ディスカッション

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

Loading Comments...