summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/target/dsp563xx.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/target/dsp563xx.c b/src/target/dsp563xx.c
index 9e2f6093..049ee1a7 100644
--- a/src/target/dsp563xx.c
+++ b/src/target/dsp563xx.c
@@ -246,6 +246,29 @@ static const struct
/* *INDENT-ON* */
};
+static int dsp563xx_get_gdb_reg_list(struct target *target, struct reg **reg_list[],
+ int *reg_list_size)
+{
+ struct dsp563xx_common *dsp563xx = target_to_dsp563xx(target);
+ int i;
+
+ if (target->state != TARGET_HALTED)
+ {
+ return ERROR_TARGET_NOT_HALTED;
+ }
+
+ *reg_list_size = DSP563XX_NUMCOREREGS;
+ *reg_list = malloc(sizeof(struct reg *) * (*reg_list_size));
+
+ for (i = 0; i < DSP563XX_NUMCOREREGS; i++)
+ {
+ (*reg_list)[i] = &dsp563xx->core_cache->reg_list[i];
+ }
+
+ return ERROR_OK;
+
+}
+
int dsp563xx_read_core_reg(struct target *target, int num)
{
uint32_t reg_value;
@@ -974,6 +997,8 @@ struct target_type dsp563xx_target = {
.target_request_data = NULL,
+ .get_gdb_reg_list = dsp563xx_get_gdb_reg_list,
+
.halt = dsp563xx_halt,
.resume = dsp563xx_resume,
.step = dsp563xx_step,