zephyr/samples/subsys/dap
Johann Fischer f624486f66 samples: dap: use new USB device stack and new DAP backend USB
Rework the sample to use the new USB device stack and the new DAP
backend and align the sample with the WebUSB sample which has a similar
BOS descriptor.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-03-11 18:54:24 +01:00
..
boards
src
app.overlay
CMakeLists.txt
Kconfig
prj.conf
README.rst
sample.yaml

.. zephyr:code-sample:: cmsis-dap
   :name: CMSIS-DAP

   Implement a custom CMSIS-DAP controller using SWDP interface driver.

Overview
********

This sample app demonstrates use of a SWDP interface driver and CMSIS DAP
controller through DAP USB backend.

Requirements
************

This sample supports multiple hardware configurations:

The simplest configuration would be to connect ``SWDIO`` to ``dio``, ``SWDCLK`` to ``clk``
and optionally ``nRESET`` to ``reset``.  The optional ``noe`` pin is used to enable the port,
e.g. if the SWD connections are multiplexed.

Building and Running
********************

The following commands build and flash DAP sample.

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/dap
   :board: nrf52840dk_nrf52840
   :goals: flash
   :compact:

Connect HIC to the target and try some pyOCD commands, for example:

.. code-block:: console

   pyocd commander -t nrf52840

   0029527 W Board ID FE5D is not recognized [mbed_board]
   Connected to NRF52840 [Sleeping]: FE5D244DFE1F33DB
   pyocd> read32 0x20004f18 32
   20004f18:  20001160 2000244c 00000000 0000e407    | ..` .$L........|
   20004f28:  ffffffff ffffffff 00000000 aaaaaaaa    |................|
   pyocd> halt
   Successfully halted device
   pyocd> reg
   general registers:
         lr: 0x00009cdd                   r7: 0x00000000 (0)
         pc: 0x000033ca                   r8: 0x00000000 (0)
         r0: 0x00000000 (0)               r9: 0x00000000 (0)
         r1: 0x20002854 (536881236)      r10: 0x00000000 (0)
         r2: 0x20000be4 (536873956)      r11: 0x00000000 (0)
         r3: 0x00000000 (0)              r12: 0x00000000 (0)
         r4: 0x200017e8 (536877032)       sp: 0x20002898
         r5: 0x20001867 (536877159)     xpsr: 0x61000000 (1627389952)
         r6: 0x00000000 (0)