This is based on work from: https://github.com/TheShed/OpenOCD-CMSIS-DAP/tree/cmsis-dap Main changes include moving over to using HIDAPI rather than libusb-1.0 and cleaning up to merge into master. Support for reset using srst has also been added. It has been tested on all the mbed boards as well as the Freedom board from Freescale. These boards only implement SWD mode, however JTAG mode has been tested with a Keil ULINK2 and a stm32 target - but requires a lot more work. Change-Id: I96d5ee1993bc9c0526219ab754c5aad3b55d812d Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Signed-off-by: Andrey Yurovsky <yurovsky@gmail.com> Reviewed-on: http://openocd.zylin.com/1542 Tested-by: jenkins
31 lines
1.1 KiB
Tcl
31 lines
1.1 KiB
Tcl
# ARM Debug Interface V5 (ADI_V5) utility
|
|
# ... Mostly for SWJ-DP (not SW-DP or JTAG-DP, since
|
|
# SW-DP and JTAG-DP targets don't need to switch based
|
|
# on which transport is active.
|
|
#
|
|
# declare a JTAG or SWD Debug Access Point (DAP)
|
|
# based on the transport in use with this session.
|
|
# You can't access JTAG ops when SWD is active, etc.
|
|
|
|
# params are currently what "jtag newtap" uses
|
|
# because OpenOCD internals are still strongly biased
|
|
# to JTAG .... but for SWD, "irlen" etc are ignored,
|
|
# and the internals work differently
|
|
|
|
# for now, ignore non-JTAG and non-SWD transports
|
|
# (e.g. initial flash programming via SPI or UART)
|
|
|
|
# split out "chip" and "tag" so we can someday handle
|
|
# them more uniformly irlen too...)
|
|
|
|
global using_jtag
|
|
set using_jtag 1
|
|
|
|
proc swj_newdap {chip tag args} {
|
|
global using_jtag
|
|
set tran [transport select]
|
|
if [string equal $tran "jtag"] { eval jtag newtap $chip $tag $args; set using_jtag 1 }
|
|
if [string equal $tran "swd"] { eval swd newdap $chip $tag $args; set using_jtag 0 }
|
|
if [string equal $tran "cmsis-dap"] { eval cmsis-dap newdap $chip $tag $args; set using_jtag 0 }
|
|
}
|