projects
/
fw
/
openocd
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Adding support for the Atmel SAMR21.
[fw/openocd]
/
src
/
jtag
/
tcl.c
diff --git
a/src/jtag/tcl.c
b/src/jtag/tcl.c
index fb060f9a7b7ab44d4be9ee75f9cb61718b4b9094..dd2be1e5ad3f58e06794d5440841d559704aaf16 100644
(file)
--- a/
src/jtag/tcl.c
+++ b/
src/jtag/tcl.c
@@
-59,8
+59,6
@@
static const Jim_Nvp nvp_jtag_tap_event[] = {
{ .name = NULL, .value = -1 }
};
{ .name = NULL, .value = -1 }
};
-extern struct jtag_interface *jtag_interface;
-
struct jtag_tap *jtag_tap_by_jim_obj(Jim_Interp *interp, Jim_Obj *o)
{
const char *cp = Jim_GetString(o, NULL);
struct jtag_tap *jtag_tap_by_jim_obj(Jim_Interp *interp, Jim_Obj *o)
{
const char *cp = Jim_GetString(o, NULL);
@@
-171,7
+169,10
@@
static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
return JIM_ERR;
num_fields = (argc-2)/2;
return JIM_ERR;
num_fields = (argc-2)/2;
- assert(num_fields > 0);
+ if (num_fields <= 0) {
+ Jim_SetResultString(interp, "drscan: no scan fields supplied", -1);
+ return JIM_ERR;
+ }
fields = malloc(sizeof(struct scan_field) * num_fields);
for (i = 2; i < argc; i += 2) {
long bits;
fields = malloc(sizeof(struct scan_field) * num_fields);
for (i = 2; i < argc; i += 2) {
long bits;
@@
-205,7
+206,7
@@
static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
Jim_GetLong(interp, args[i], &bits);
str = buf_to_str(fields[field_count].in_value, bits, 16);
Jim_GetLong(interp, args[i], &bits);
str = buf_to_str(fields[field_count].in_value, bits, 16);
- free(
(void *)fields[field_count].out
_value);
+ free(
fields[field_count].in
_value);
Jim_ListAppendElement(interp, list, Jim_NewStringObj(interp, str, strlen(str)));
free(str);
Jim_ListAppendElement(interp, list, Jim_NewStringObj(interp, str, strlen(str)));
free(str);
@@
-563,7
+564,7
@@
static int jim_newtap_cmd(Jim_GetOptInfo *goi)
e = Jim_GetOpt_Nvp(goi, opts, &n);
if (e != JIM_OK) {
Jim_GetOpt_NvpUnknown(goi, opts, 0);
e = Jim_GetOpt_Nvp(goi, opts, &n);
if (e != JIM_OK) {
Jim_GetOpt_NvpUnknown(goi, opts, 0);
- free(
(void *)pTap->dotted_name
);
+ free(
cp
);
free(pTap);
return e;
}
free(pTap);
return e;
}
@@
-578,7
+579,7
@@
static int jim_newtap_cmd(Jim_GetOptInfo *goi)
case NTAP_OPT_EXPECTED_ID:
e = jim_newtap_expected_id(n, goi, pTap);
if (JIM_OK != e) {
case NTAP_OPT_EXPECTED_ID:
e = jim_newtap_expected_id(n, goi, pTap);
if (JIM_OK != e) {
- free(
(void *)pTap->dotted_name
);
+ free(
cp
);
free(pTap);
return e;
}
free(pTap);
return e;
}
@@
-588,7
+589,7
@@
static int jim_newtap_cmd(Jim_GetOptInfo *goi)
case NTAP_OPT_IRCAPTURE:
e = jim_newtap_ir_param(n, goi, pTap);
if (JIM_OK != e) {
case NTAP_OPT_IRCAPTURE:
e = jim_newtap_ir_param(n, goi, pTap);
if (JIM_OK != e) {
- free(
(void *)pTap->dotted_name
);
+ free(
cp
);
free(pTap);
return e;
}
free(pTap);
return e;
}
@@
-1133,14
+1134,14
@@
COMMAND_HANDLER(handle_irscan_command)
}
int field_size = tap->ir_length;
fields[i].num_bits = field_size;
}
int field_size = tap->ir_length;
fields[i].num_bits = field_size;
-
fields[i].out_value
= malloc(DIV_ROUND_UP(field_size, 8));
+
uint8_t *v
= malloc(DIV_ROUND_UP(field_size, 8));
uint64_t value;
retval = parse_u64(CMD_ARGV[i * 2 + 1], &value);
if (ERROR_OK != retval)
goto error_return;
uint64_t value;
retval = parse_u64(CMD_ARGV[i * 2 + 1], &value);
if (ERROR_OK != retval)
goto error_return;
- void *v = (void *)fields[i].out_value;
buf_set_u64(v, 0, field_size, value);
buf_set_u64(v, 0, field_size, value);
+ fields[i].out_value = v;
fields[i].in_value = NULL;
}
fields[i].in_value = NULL;
}