LoginSignup
8
9

More than 3 years have passed since last update.

秋月のAE-LPC11U35-MBでDAPLinkを動かす

Last updated at Posted at 2019-11-17

この記事は、二台のAE-LPC11U35-MBを使用して、Mbed対応ボード(オレオレ版)を作成する手順を説明します。
一台はMbed OSが動作するターゲットボード、もう一台はDAPLinkファームウェアを書き込みます。

AE-LPC11U35-MBやEA LPC11U35 QuickStart Boardを使っていて、以下のようなストレスを持った事のある方にお勧めです。

  • Flashのチェックサムを書き込むのが面倒
  • 書き込み時に、ISPボタンを押したりfirmware.binを削除する手順が面倒
  • 普通にprintfが使いたい
  • デバッガも使いたい
  • DAPLinkのカスタマイズ方法を知りたい

AE-LPC11U35-MBをもう一台用意すれば、全て簡単に実現できます。

事前準備

DAPLinkファームウェアのビルド

ソースコードからDAPLinkファームウェアをビルドするときの手順を以下に示します。

ビルド済みのバイナリを使う場合は、この部分は読み飛ばしてください。バイナリは、こちらからダウンロードできます。
https://www.dropbox.com/s/36kayln4iz1vbbk/ae-lpc11u35-mb_crc.zip?dl=0

ソースコードは、こちらです。
https://github.com/toyowata/DAPLink/tree/ae-lpc11u35-mb
デフォルトのピン設定に対して、AE-LPC11U35-MB用に変更を行っています。

  • ターゲットをリセットするためのボタン変更
  • ターゲットのSWCLKと接続するためのポートの変更
  • USBドラッグ&ドロップ書き込み時のLEDポートと極性の変更

バイナリをビルドする場合は、以下のコマンドで行ってください。
Keil MDK v5.27.1(MDK-Essentialライセンス以上)が必要です。

> git clone -b ae-lpc11u35-mb https://github.com/toyowata/DAPLink
> cd DAPLink
> pip install -r requirements.txt
> progen generate -t uvision

これで、uvision用のプロジェクトが DAPLink\projectfiles\uvision\lpc11u35_lpc11u35_if 配下に生成されます。
lpc11u35_lpc11u35_if.uvprojx をオープンして、プロジェクトをビルドします。

DAPLinkファームウェアの書き込み

インタフェース用のAE-LPC11U35-MBにバイナリを書き込みます。ISPボタンを押しながら、USBケーブルでPCと接続します。

Windowsの場合

CRP DISABLDという名称のUSBマスストレージドライブがマウントされるので、ドライブ内のfirmware.binを消去します。続いて、DAPLinkファームウェアをコピーします。

Macの場合

消去と書き込みは、ターミナルを使用して以下のコマンドを入力します。

$ sudo mount -u -w -o sync /Volumes/CRP\ DISABLD
$ rm /Volumes/CRP\ DISABLD/firmware.bin && cp -X <path to firmware file> /Volumes/CRP\ DISABLD/

コピーが終了したら、USBケーブルを抜いて電源を切断します。

AE-LPC11U35-MB の接続

インタフェースとターゲット用のAE-LPC11U35-MBを接続します。以下の表を参照してください。

インタフェース (DAPLink) ターゲット (Mbed OS)
1: GND 1: GND
29: +3.3V 29: +3.3V
4: P0_8 12: SWDIO
8: P0_11 6: SWCLK
17: P0_18 18: TXD
18: P0_19 17: RXD
23: P0_2 21: RESET

以下の写真も参考にしてください。
lpc11u35_daplink.jpg

動作確認

AE-LPC11U35-MBの接続が出来たら、インタフェース側のボードをUSBケーブルでPCに接続します(ターゲット側ボードのUSBポートには何も接続しません)。
DAPLINKという名前のドライブがマウントされれば成功です。

ターゲットバイナリの書き込みと実行

MbedのオンラインIDEやMbed-CLIを使用してバイナリファイルを書き込みます。使用するサンプルコードは、こちらの記事を参考にしてください。
通常のMbedボードと同じようにUSBドライブにドラッグ&ドロップで書き込みます。書き込み後、USBドライブは再マウントされ、書き込んだファイルはドライブには表示されませんが、これは正常な動作です。書き込みが終了すると自動的にターゲット側ボードがリセットされ、プログラムが走り出します。
ターゲットボードのユーザーボタンを押すと、ターゲットボードをリセットすることもできます。

printfをシリアルポートに出力する

DAPLinkは、USB CDCでターゲットチップのUARTをホストのUSBに変換する機能を持っています。これを使うことによって、簡単にprintf出力をターミナルソフトウェアから受信することができます。同様に、scanfでターゲット側に送信することもできます。
ホスト側では、TeraTermやCoolTermなどのソフトウェアが利用可能です。

デバッグする

DAPLinkは、CMSISで標準化されているバッグのためのインタフェース規格CMSIS-DAPが使用可能です。
Mbed-CLIや、Mbed StudioのTerminalビューから以下のコマンドを入力して、MDK-ARMのプロジェクトファイルを生成します。

> mbed export -m LPC11U35_401 -i uvision6

プロジェクトのルートディレクトリに、mbed-os-example-blinky-baremetal.uvprojx ファイルが生成されるので、ダブルクリックしてMDK-ARMを立ち上げます。

標準設定のままビルドすると大量にエラーが発生するので、以下のようにLanguage C++の設定を変更します。

armc6.jpg

ビルド後、デバッグセッションを起動すると、プログラムがターゲットボードに書き込まれ、デバッグを行うことが出来ます。

uvision6.jpg

以上です。

8
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9