diff options
-rw-r--r-- | swd/README | 87 | ||||
-rw-r--r-- | swd/ftdi_openocd/init.sr | bin | 0 -> 1344 bytes | |||
-rw-r--r-- | swd/ftdi_openocd/init_noreply.sr | bin | 0 -> 754 bytes | |||
-rw-r--r-- | swd/ftdi_openocd/init_wait_fault.sr | bin | 0 -> 12691 bytes | |||
-rw-r--r-- | swd/ftdi_openocd/init_write_0xabbabeeb.sr | bin | 0 -> 1543 bytes | |||
-rw-r--r-- | swd/stlink_openocd/init.sr | bin | 0 -> 1419 bytes | |||
-rw-r--r-- | swd/stlink_openocd/init_write_0xabbabeeb.sr | bin | 0 -> 5004 bytes | |||
-rw-r--r-- | swd/stlink_openocd/wait_retry.sr | bin | 0 -> 11320 bytes |
8 files changed, 87 insertions, 0 deletions
diff --git a/swd/README b/swd/README new file mode 100644 index 0000000..572bfd9 --- /dev/null +++ b/swd/README @@ -0,0 +1,87 @@ +------------------------------------------------------------------------------- +SWD +------------------------------------------------------------------------------- + +This is a set of example captures of the ARM SWD (version 1) protocol. + +Details: +http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0031c/index.html +(Registration required) + + +Logic analyzer setup +-------------------- + + Probe SWD + --------------- + 0 swclk + 1 swdio + + +Data +---- + +Different SWD sessions showing different types of behaviour: + +* ftdi_openocd/ + +Using an FTDI-based adapter via "openocd ftdi resistor hack". OpenOCD +0.9.0 development version. Device under test is a Nordic nRF51822. + +Command line: + + $ openocd -f interface/ftdi/olimex-arm-usb-tiny-h.cfg \ + -f interface/ftdi/swd-resistor-hack.cfg \ + -f target/nrf51.cfg + +** ftdi_openocd/init.sr + Initialising device, IDCODE read, etc. + OpenOCD args: -c "init; exit" + +** ftdi_openocd/init_noreply.sr + Initialising when no device is connected (i.e. all responses are 1s.) + OpenOCD args: -c "init; exit" + +** ftdi_openocd/init_write_0xabbabeeb.sr + Initialise, write 20 bytes of 0xabbabeeb at start of RAM. + OpenOCD args: -c "init; halt; mww 0x20000000 0xabbabeeb 20; exit" + +** ftdi_openocd/init_wait_fault.sr + Initialise, attempt to write flash fill of 0xabbabeeb via async loader. + This causes SWD WAIT states in "overrun" mode, so the first WAIT causes all + subsequent responses to be FAULT until OpenOCD clears the sticky error bit. + + For this capture OpenOCD was patched with this change (known to induce + SWD WAITs): http://openocd.zylin.com/#/c/2204/ + + OpenOCD args: -c "init; reset halt; flash fillw 0 0xabbabeeb 2048; exit" + + +* stlink_openocd/ + +Using an STLINK-V2 adapter via OpenOCD 0.9.0 development +version. Device under test is a Nordic nRF51822. + +Command line: + + $ openocd -f interface/stlink-v2.cfg -c 'transport select hla_swd' \ + -f target/nrf51.cfg + +** stlink_openocd/init.sr + Intiliasing device, IDCODE read, etc. + OpenOCD args: -c "init; exit" + +** stlink_openocd/init_write_0xabbabeeb.sr + Initialise, write 20 bytes of 0xabbabeeb at start of RAM. + OpenOCD args: -c "init; halt; mww 0x20000000 0xabbabeeb 20; exit" + +** stlink_openocd/wait_retry.sr + Capture showing an SWD WAIT with overrun mode not enabled (in contrast to + ftdi_openocd/wait_retry.sr), adapter immediately retries and gets an OK + response. + + For this capture OpenOCD was patched with this change (known to induce + SWD WAITs): http://openocd.zylin.com/#/c/2204/ + + OpenOCD args: -c "init; reset halt; flash fillw 0 0xabbabeeb 2048; exit" + diff --git a/swd/ftdi_openocd/init.sr b/swd/ftdi_openocd/init.sr Binary files differnew file mode 100644 index 0000000..be7073f --- /dev/null +++ b/swd/ftdi_openocd/init.sr diff --git a/swd/ftdi_openocd/init_noreply.sr b/swd/ftdi_openocd/init_noreply.sr Binary files differnew file mode 100644 index 0000000..d540852 --- /dev/null +++ b/swd/ftdi_openocd/init_noreply.sr diff --git a/swd/ftdi_openocd/init_wait_fault.sr b/swd/ftdi_openocd/init_wait_fault.sr Binary files differnew file mode 100644 index 0000000..abf1090 --- /dev/null +++ b/swd/ftdi_openocd/init_wait_fault.sr diff --git a/swd/ftdi_openocd/init_write_0xabbabeeb.sr b/swd/ftdi_openocd/init_write_0xabbabeeb.sr Binary files differnew file mode 100644 index 0000000..8052e7e --- /dev/null +++ b/swd/ftdi_openocd/init_write_0xabbabeeb.sr diff --git a/swd/stlink_openocd/init.sr b/swd/stlink_openocd/init.sr Binary files differnew file mode 100644 index 0000000..092ac3d --- /dev/null +++ b/swd/stlink_openocd/init.sr diff --git a/swd/stlink_openocd/init_write_0xabbabeeb.sr b/swd/stlink_openocd/init_write_0xabbabeeb.sr Binary files differnew file mode 100644 index 0000000..f83c309 --- /dev/null +++ b/swd/stlink_openocd/init_write_0xabbabeeb.sr diff --git a/swd/stlink_openocd/wait_retry.sr b/swd/stlink_openocd/wait_retry.sr Binary files differnew file mode 100644 index 0000000..da114bb --- /dev/null +++ b/swd/stlink_openocd/wait_retry.sr |