bm: Exposed cortexm-functions to be used for nRF-targets.

Exposed cortexm_reset & cortexm_halt_request in order to be populated as
operators for nRF-targets. Also added the already exposed cortexm_halt_resume
functon to nRF. By this it will be possible to handle such blackmagic probe
commands towards connected nRF-targets.
This commit is contained in:
rodale75 2021-04-23 15:50:31 +02:00
parent 66fb7caa50
commit 1713eb4215
3 changed files with 7 additions and 7 deletions

View File

@ -52,9 +52,7 @@ static void cortexm_regs_read(target *t, void *data);
static void cortexm_regs_write(target *t, const void *data);
static uint32_t cortexm_pc_read(target *t);
static void cortexm_reset(target *t);
static enum target_halt_reason cortexm_halt_poll(target *t, target_addr *watch);
static void cortexm_halt_request(target *t);
static int cortexm_fault_unwind(target *t);
static int cortexm_breakwatch_set(target *t, struct breakwatch *);
@ -500,7 +498,7 @@ static void cortexm_pc_write(target *t, const uint32_t val)
/* The following three routines implement target halt/resume
* using the core debug registers in the NVIC. */
static void cortexm_reset(target *t)
void cortexm_reset(target *t)
{
if ((t->target_options & CORTEXM_TOPT_INHIBIT_SRST) == 0) {
platform_srst_set_val(true);
@ -534,7 +532,7 @@ static void cortexm_reset(target *t)
platform_delay(1);
}
static void cortexm_halt_request(target *t)
void cortexm_halt_request(target *t)
{
volatile struct exception e;
TRY_CATCH (e, EXCEPTION_TIMEOUT) {

View File

@ -173,6 +173,8 @@ ADIv5_AP_t *cortexm_ap(target *t);
bool cortexm_attach(target *t);
void cortexm_detach(target *t);
void cortexm_reset(target *t);
void cortexm_halt_request(target *t);
void cortexm_halt_resume(target *t, bool step);
int cortexm_run_stub(target *t, uint32_t loadaddr,
uint32_t r0, uint32_t r1, uint32_t r2, uint32_t r3);

View File

@ -403,10 +403,10 @@ void nrf51_mdm_probe(ADIv5_AP_t *ap)
t->regs_size = 4;
t->regs_read = (void*)nop_function;
t->regs_write = (void*)nop_function;
t->reset = (void*)nop_function;
t->halt_request = (void*)nop_function;
t->reset = cortexm_reset;
t->halt_request = cortexm_halt_request;
//t->halt_poll = mdm_halt_poll;
t->halt_resume = (void*)nop_function;
t->halt_resume = cortexm_halt_resume;
target_add_commands(t, nrf51_mdm_cmd_list, t->driver);
}