ciniml / rust-dap

CMSIS-DAP Rust implementation
Apache License 2.0
88 stars 10 forks source link

Fix packet overrun #27

Closed tnishinaga closed 2 years ago

tnishinaga commented 2 years ago

やりたいこと

やったこと

確認方法

以下のコマンドを実行してDPIDRが見えるところまで確認しました。 (速度的な問題か、手元ではbitbang featureのものしか動きませんでした)

openocd -f interface/cmsis-dap.cfg \
-c 'transport select swd' \
-c 'adapter speed 1000' \
-c 'swd newdap rp2040.core0 cpu -dp-id 0x01002927 -instance-id 0' \
-c 'dap create rp2040_0.dap -chain-position rp2040.core0.cpu'

実行結果

Open On-Chip Debugger 0.11.0+dev-00640-ge83eeb44a (2022-04-16-16:58)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
swd
adapter speed: 1000 kHz

Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : Using CMSIS-DAPv2 interface with VID:PID=0x6666:0x4444, serial=xiao-rp2040
Info : CMSIS-DAP: SWD supported
Info : CMSIS-DAP: FW Version = 2.00
Info : CMSIS-DAP: Serial# = Piyo
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 1 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : clock speed 1000 kHz
Info : SWD DPIDR 0x0bc12477

補足

https://github.com/ciniml/rust-dap/pull/26 が取り込まれたらrebaseしてcargo fmtによる変更部を取り除きます。

ciniml commented 2 years ago

バグ修正ありがとうございます。

速度的な問題か、手元ではbitbang featureのものしか動きませんでした

issueあがってる通り、クロック設定無視してるので、設定するようにしないとダメですね…

ご指摘のとおり、#26 先に取り込んだのでconflictしてるみたいです。お手数ですがrebaseお願いできますでしょうか。

tnishinaga commented 2 years ago

@ciniml rebaseでなくmergeですが、conflict対応しました

elfmimi commented 2 years ago

良かれと思って設定している SlewRate の設定が逆効果だった可能性もあるので、 よければ以下の部分を消して試してみて下さい。 @tnishinaga https://github.com/ciniml/rust-dap/blob/120d157e25c259bbe92e5ccf344fce9b05329aed/boards/rpi_pico/src/main.rs#L161-L162

試しにクロックを遅くして実験するにはここを変えるのが簡単です。 https://github.com/ciniml/rust-dap/blob/120d157e25c259bbe92e5ccf344fce9b05329aed/rust-dap-rp2040/src/pio.rs#L150

ciniml commented 2 years ago

余談:現状のPIO実装のSWCLKは15.625[MHz]になる模様。まあ、ターゲットによっては応答できなさそうな気もする。

image
ciniml commented 2 years ago

私の手元でbitbang無し (pio) で probe-run が動くのを確認しました。

tnishinaga commented 2 years ago

余談:現状のPIO実装のSWCLKは15.625[MHz]になる模様。まあ、ターゲットによっては応答できなさそうな気もする。

image

こちらのデバッガーは何を使われているか教えていただけないでしょうか?

ciniml commented 2 years ago

SaleaeのLogic Pro 16ですね。5月くらいに秋月で円安などの影響で5万円近く値上がりするって聞いたので、その前に滑り込みで買ったやつです。(14万くらいだったのが20万になった…)

https://akizukidenshi.com/catalog/g/gM-08977/

USB3.0接続時はホストPCのメモリが空いている限りサンプリング続けられたりして便利です。 あと、デジタル・アナログ同時取り込みとか。

ロジック解析機能は自分で追加できるみたいですけど、SWDはデフォで入ってました。