- return retval;
-}
-
-
-/*
- * Return the debug ap id in hexadecimal;
- * no extra output to simplify script processing
- */
-extern int handle_dap_apid_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc)
-{
- target_t *target = get_current_target(cmd_ctx);
- armv7m_common_t *armv7m = target->arch_info;
- swjdp_common_t *swjdp = &armv7m->swjdp_info;
-
- return dap_apid_command(cmd_ctx, swjdp, args, argc);
-}
-
-static int handle_dap_apsel_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc)
-{
- target_t *target = get_current_target(cmd_ctx);
- armv7m_common_t *armv7m = target->arch_info;
- swjdp_common_t *swjdp = &armv7m->swjdp_info;
-
- return dap_apsel_command(cmd_ctx, swjdp, args, argc);
-}
-
-static int handle_dap_memaccess_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc)
-{
- target_t *target = get_current_target(cmd_ctx);
- armv7m_common_t *armv7m = target->arch_info;
- swjdp_common_t *swjdp = &armv7m->swjdp_info;
-
- return dap_memaccess_command(cmd_ctx, swjdp, args, argc);
-}
-
-
-static int handle_dap_info_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc)
-{
- target_t *target = get_current_target(cmd_ctx);
- armv7m_common_t *armv7m = target->arch_info;
- swjdp_common_t *swjdp = &armv7m->swjdp_info;
- uint32_t apsel;
-
- apsel = swjdp->apsel;
- if (argc > 0)
- apsel = strtoul(args[0], NULL, 0);
-
- return dap_info_command(cmd_ctx, swjdp, apsel);
-}
+ pc &= ~1;
+ if (target_read_u16(target, pc, &op) == ERROR_OK)
+ {
+ if ((op & 0xFF00) == 0xBE00)
+ {
+ pc = buf_get_u32(r->value, 0, 32) + 2;
+ buf_set_u32(r->value, 0, 32, pc);
+ r->dirty = true;
+ r->valid = true;
+ result = true;
+ LOG_DEBUG("Skipping over BKPT instruction");
+ }
+ }
+ }