23enum class CommandId : std::uint8_t
30 TRANSFER_CONFIGURE = 0x04,
32 TRANSFER_BLOCK = 0x06,
33 TRANSFER_ABORT = 0x07,
44 JTAG_CONFIGURE = 0x15,
59 QUEUE_COMMANDS = 0x7E,
60 EXECUTE_COMMANDS = 0x7F,
69enum class InfoId : std::uint8_t
74 FIRMWARE_VERSION = 0x04,
80 PRODUCT_FIRMWARE_VERSION = 0x09,
83 TIMESTAMP_CLOCK = 0xF1,
84 SWO_BUFFER_SIZE = 0xFD,
101enum class Status : std::uint8_t
107enum class Port : std::uint8_t
114enum class DebugPort : std::uint8_t
125static constexpr std::uint8_t DAP_TRANSFER_APNDP = (1u << 0);
126static constexpr std::uint8_t DAP_TRANSFER_RNW = (1u << 1);
127static constexpr std::uint8_t DAP_TRANSFER_A2 = (1u << 2);
128static constexpr std::uint8_t DAP_TRANSFER_A3 = (1u << 3);
129static constexpr std::uint8_t DAP_TRANSFER_MATCH_VALUE = (1u << 4);
130static constexpr std::uint8_t DAP_TRANSFER_MATCH_MASK = (1u << 5);
134static constexpr std::uint8_t DAP_TRANSFER_OK = (1u << 0);
135static constexpr std::uint8_t DAP_TRANSFER_WAIT = (1u << 1);
136static constexpr std::uint8_t DAP_TRANSFER_FAULT = (1u << 2);
137static constexpr std::uint8_t DAP_TRANSFER_ERROR = (1u << 3);
138static constexpr std::uint8_t DAP_TRANSFER_MISMATCH = (1u << 4);
145static constexpr std::uint8_t DAP_SWJ_SWCLK_TCK = (1u << 0);
146static constexpr std::uint8_t DAP_SWJ_SWDIO_TMS = (1u << 1);
147static constexpr std::uint8_t DAP_SWJ_TDI = (1u << 2);
148static constexpr std::uint8_t DAP_SWJ_TDO = (1u << 3);
149static constexpr std::uint8_t DAP_SWJ_NTRST = (1u << 5);
150static constexpr std::uint8_t DAP_SWJ_NRESET = (1u << 7);
156static constexpr std::uint8_t SWD_SEQUENCE_CLK = 0x3Fu;
157static constexpr std::uint8_t SWD_SEQUENCE_DIN = (1u << 7);
159static constexpr std::uint8_t JTAG_SEQUENCE_TCK = 0x3Fu;
160static constexpr std::uint8_t JTAG_SEQUENCE_TMS = (1u << 6);
161static constexpr std::uint8_t JTAG_SEQUENCE_TDO = (1u << 7);
169static inline constexpr std::uint8_t
req_addr2b(std::uint8_t req)
171 return static_cast<std::uint8_t
>(((req & DAP_TRANSFER_A2) ? 1u : 0u) |
172 ((req & DAP_TRANSFER_A3) ? 2u : 0u));
178 return (req & DAP_TRANSFER_APNDP) != 0u;
184 return (req & DAP_TRANSFER_RNW) != 0u;