デバッグアダプタの作り方

Information

今後はこちらもご利用下さいませ。

Import programSimple-CMSIS-DAP

simple CMSIS-DAP debug adapter.(not mbed interface)

/media/uploads/va009039/appboard-cmsis-dap-1.jpg

cmsis-dap.zip をダウンロードして展開する。
patch.bat patch.py diff.txt main.h USBDAP.h USBDAP.cpp が含まれています。

AN11321: Porting the CMSIS-DAP debugger to the Cortex-M0 platform から AN11321.zip をダウンロードする。
DAP.h だけを展開しておく。

patch.bat を実行する。
c:\python27\python patch.py AN11321.zip < diff.txt

main.cpp DAP_config.h DAP.cpp SW_DP.cpp JTAG_DP.cpp が作成されます。

オンラインコンパイラで New - Create new program 新規にプログラムを作成する。

C++のソースファイルをインポートする。
main.h USBDAP.h USBDAP.cpp
DAP.h
main.cpp DAP_config.h DAP.cpp SW_DP.cpp JTAG_DP.cpp

USBDeviceをインポートする。

Import libraryUSBDevice

USB device stack

コンパイルする。

LPCXpresso IDE v6対応方法

LPCXpresso IDE v6に認識させるには次のように修正して下さい。

main.cpp

USBDAP hid(DAP_PACKET_SIZE, DAP_PACKET_SIZE);

main.cpp

USBDAP hid(DAP_PACKET_SIZE, DAP_PACKET_SIZE, 0x0d28, 0x0204);

に変更します。










参考:
mbedをデバッグアダプタにしてみた(mbed-Link)
たいへん参考になりました。ありがとうございます。

履歴:
2013/4/21: cmsis-dap.zipを更新(nResetをPullUpにしました)。 旧ファイルはcmsis-dap-20130420.zipです。
2013/9/23: LPCXpresso IDE v6対応方法を追加しました。


5 comments on デバッグアダプタの作り方:

20 Apr 2013

すばらしい情報ありがとうございます(・∀・)

mbed 1768 に、上記のとおりビルドしたものを書き込んで、 1114 の DIP で実験しているのですが、 参考にされたページの「mbedをデバッグアダプタにしてみた(mbed-Link)」にあったバイナリでは動作していた ものが、こちらの方法だとなぜか 1114 のリセットがかかりっぱなしになったりしたので、 初期化の nreset.input() のあとに、 nreset.mode(PullUp) をつけたらうまく動きました。

#というか、そもそもここ(1114 の /RESET)は外にプルアップをつけなくちゃいけないんでしたか..... #うる覚えですみません。

21 Apr 2013

動作テストありがとうございます。
mbedライブラリDigitalInOutを調べてみたらデフォルトでPullDownにしていました。gpio_init()

21 Apr 2013

Norimasa Okamoto wrote:

動作テストありがとうございます。
mbedライブラリDigitalInOutを調べてみたらデフォルトでPullDownにしていました。gpio_init()

なるほど、そういうことなのですね。

FRDM-KL25Z でも同様にうまく動作しました。 安価なボードがデバッグアダプタに変身するとは、大変便利ですね(・∀・)

#11U24 はビルドできましたが、 uVISION が RDDI-DAP Error になってしまいました。

22 Apr 2013

fuyuno sakura wrote:

#11U24 はビルドできましたが、 uVISION が RDDI-DAP Error になってしまいました。

tdi、tdoをNCにしていたので、JTAGモードにすると、PORT_JTAG_SETUP()でハングアップしていました。 LPC11U24ではわからないですが、LPC1768では実在するポートに割り当てたらとりあえずハングアップは解消しました。

22 Apr 2013

Norimasa Okamoto wrote:

LPC1768では実在するポートに割り当てたらとりあえずハングアップは解消しました。

11U24 で NC を実在ポートに割り当ててみましたが、同じでした。

HID デバイスとしては両方とも認識しており、mbed の正式 CMSIS-DAP でも時々 RDDI-DAP Error

を起こすことがあるので、どうもPC環境に依存しているような気もしているのですが....

PC は Windows7 x64を使っています。

uVision のバージョンは 4.70a で、ライセンスなしの Lite 版です。

uVision の Project>Options for .. ででてくるダイアログのDebug タグで Use:CMSIS-DAP Debugger を選択し、 Settings をおした後、手元の PC と 11U24 の組み合わせでは必ず RDDI-DAP Error になります。

このときの挙動をデバッガで追うと、あきらかに 1768 と 11U24 で異なっているようです。 Error にならない 1768 の場合ですと、

DAP.cpp の DAP_ProcessCommand() の switch-case の 上から順に ID_DAP_INFO,ID_DAP_LED ... とブレークをかけてSetting をおしてやると、それぞれひっかかるようなのですが、

11U24 では ID_DAP_INFO ではブレークがかかるものの、ID_DAP_LED には何度やっても到達しませんでした。

DAP_Info() が悪いのかと思い、先頭の switch(id) でブレークをかけると、初回の id 値が両者で違っています。

1768 : id = 0x01

11U24: id = 0x02

なぜこうなるのかは、わかりません(・∀・;

Please log in to post comments.