X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Farmv7m.c;h=696f85cb2721b05d677f0c170bf27ac567b9c1b2;hp=a8ddfe894a2cba659941df41851f4c02385ec0f1;hb=eb8912ec38c0fd6867d2b5a88b40549f791ce7bb;hpb=f00d9bb1d7e6d52e62e7cfc402fda96f3544d911 diff --git a/src/target/armv7m.c b/src/target/armv7m.c index a8ddfe894a..696f85cb27 100644 --- a/src/target/armv7m.c +++ b/src/target/armv7m.c @@ -733,7 +733,7 @@ cleanup: /** Checks whether a memory region is erased. */ int armv7m_blank_check_memory(struct target *target, - target_addr_t address, uint32_t count, uint32_t *blank, uint8_t erased_value) + struct target_memory_check_block *blocks, int num_blocks, uint8_t erased_value) { struct working_area *erase_check_algorithm; struct reg_param reg_params[3]; @@ -774,10 +774,10 @@ int armv7m_blank_check_memory(struct target *target, armv7m_info.core_mode = ARM_MODE_THREAD; init_reg_param(®_params[0], "r0", 32, PARAM_OUT); - buf_set_u32(reg_params[0].value, 0, 32, address); + buf_set_u32(reg_params[0].value, 0, 32, blocks->address); init_reg_param(®_params[1], "r1", 32, PARAM_OUT); - buf_set_u32(reg_params[1].value, 0, 32, count); + buf_set_u32(reg_params[1].value, 0, 32, blocks->size); init_reg_param(®_params[2], "r2", 32, PARAM_IN_OUT); buf_set_u32(reg_params[2].value, 0, 32, erased_value); @@ -793,7 +793,7 @@ int armv7m_blank_check_memory(struct target *target, &armv7m_info); if (retval == ERROR_OK) - *blank = buf_get_u32(reg_params[2].value, 0, 32); + blocks->result = buf_get_u32(reg_params[2].value, 0, 32); destroy_reg_param(®_params[0]); destroy_reg_param(®_params[1]); @@ -802,7 +802,10 @@ int armv7m_blank_check_memory(struct target *target, cleanup: target_free_working_area(target, erase_check_algorithm); - return retval; + if (retval != ERROR_OK) + return retval; + + return 1; /* only one block checked */ } int armv7m_maybe_skip_bkpt_inst(struct target *target, bool *inst_found)