X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fstm8.c;h=b62ff131de420702152a7856e68702dc18af88ff;hp=5a3438a6407b927e6e9e1a4164a8ba11f03004a2;hb=8f518d3592dd80bfc7637d16498f2994038ab77c;hpb=eb8912ec38c0fd6867d2b5a88b40549f791ce7bb diff --git a/src/target/stm8.c b/src/target/stm8.c index 5a3438a640..b62ff131de 100644 --- a/src/target/stm8.c +++ b/src/target/stm8.c @@ -1189,6 +1189,11 @@ static int stm8_write_core_reg(struct target *target, unsigned int num) return ERROR_OK; } +static const char *stm8_get_gdb_arch(struct target *target) +{ + return "stm8"; +} + static int stm8_get_gdb_reg_list(struct target *target, struct reg **reg_list[], int *reg_list_size, enum target_register_class reg_class) { @@ -1800,6 +1805,7 @@ static int stm8_blank_check_memory(struct target *target, destroy_mem_param(&mem_params[0]); destroy_mem_param(&mem_params[1]); destroy_reg_param(®_params[0]); + destroy_reg_param(®_params[1]); target_free_working_area(target, erase_check_algorithm); @@ -1884,6 +1890,8 @@ static int stm8_run_algorithm(struct target *target, int num_mem_params, } for (int i = 0; i < num_mem_params; i++) { + if (mem_params[i].direction == PARAM_IN) + continue; retval = target_write_buffer(target, mem_params[i].address, mem_params[i].size, mem_params[i].value); if (retval != ERROR_OK) @@ -1891,6 +1899,9 @@ static int stm8_run_algorithm(struct target *target, int num_mem_params, } for (int i = 0; i < num_reg_params; i++) { + if (reg_params[i].direction == PARAM_IN) + continue; + struct reg *reg = register_get_by_name(stm8->core_cache, reg_params[i].reg_name, 0); @@ -2199,6 +2210,7 @@ struct target_type stm8_target = { .assert_reset = stm8_reset_assert, .deassert_reset = stm8_reset_deassert, + .get_gdb_arch = stm8_get_gdb_arch, .get_gdb_reg_list = stm8_get_gdb_reg_list, .read_memory = stm8_read_memory,