mirror of
git://git.code.sf.net/p/openocd/code
synced 2025-07-20 01:36:35 +10:00
Valgrind-tested. Comparison of flashing performance on an FRDM-KL25Z board running mbed CMSIS-DAP variant, 5MHz clock, old driver: wrote 28096 bytes from file demo.elf in 26.833590s (1.023 KiB/s) verified 27264 bytes in 1.754972s (15.171 KiB/s) this implementation: wrote 28096 bytes from file demo.elf in 3.691939s (7.432 KiB/s) verified 27264 bytes in 0.598987s (44.450 KiB/s) Also tested "Keil ULINK-ME CMSIS-DAP" with an STM32F100 target, 5MHz clock, results reading from flash, old driver: dumped 131072 bytes in 98.445305s (1.300 KiB/s) this implementation: dumped 131072 bytes in 8.242686s (15.529 KiB/s) Change-Id: Ic64d3124b1d6cd9dd1016445bb627c71e189ae95 Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/2356 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
35 lines
1.0 KiB
Tcl
35 lines
1.0 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...)
|
|
|
|
if [catch {transport select}] {
|
|
echo "Info : session transport was not selected, defaulting to JTAG"
|
|
transport select jtag
|
|
}
|
|
|
|
proc swj_newdap {chip tag args} {
|
|
if [using_hla] {
|
|
eval hla newtap $chip $tag $args
|
|
} elseif [using_jtag] {
|
|
eval jtag newtap $chip $tag $args
|
|
} elseif [using_swd] {
|
|
eval swd newdap $chip $tag $args
|
|
}
|
|
}
|