swj-dp.tcl 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # ARM Debug Interface V5 (ADI_V5) utility
  2. # ... Mostly for SWJ-DP (not SW-DP or JTAG-DP, since
  3. # SW-DP and JTAG-DP targets don't need to switch based
  4. # on which transport is active.
  5. #
  6. # declare a JTAG or SWD Debug Access Point (DAP)
  7. # based on the transport in use with this session.
  8. # You can't access JTAG ops when SWD is active, etc.
  9. # params are currently what "jtag newtap" uses
  10. # because OpenOCD internals are still strongly biased
  11. # to JTAG .... but for SWD, "irlen" etc are ignored,
  12. # and the internals work differently
  13. # for now, ignore non-JTAG and non-SWD transports
  14. # (e.g. initial flash programming via SPI or UART)
  15. # split out "chip" and "tag" so we can someday handle
  16. # them more uniformly irlen too...)
  17. if [catch {transport select}] {
  18. echo "Error: unable to select a session transport. Can't continue."
  19. shutdown
  20. }
  21. proc swj_newdap {chip tag args} {
  22. if [using_jtag] {
  23. eval jtag newtap $chip $tag $args
  24. } elseif [using_swd] {
  25. eval swd newdap $chip $tag $args
  26. } else {
  27. echo "Error: transport '[ transport select ]' not supported by swj_newdap"
  28. shutdown
  29. }
  30. }