Add 64-bit address support to the target mem2array and array2mem commands
Change-Id: Ibdcc076ca5581f4fd87e92318aab33907e22d6ce
Signed-off-by: Daniel Goehring <dgoehrin@os.amperecomputing.com>
Reviewed-on: http://openocd.zylin.com/6246
Tested-by: jenkins
Reviewed-by: Jan Matyas <matyas@codasip.com>
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
static int target_mem2array(Jim_Interp *interp, struct target *target, int argc, Jim_Obj *const *argv)
{
long l;
static int target_mem2array(Jim_Interp *interp, struct target *target, int argc, Jim_Obj *const *argv)
{
long l;
uint32_t count;
uint32_t v;
const char *varname;
uint32_t count;
uint32_t v;
const char *varname;
if (e != JIM_OK)
return e;
if (e != JIM_OK)
return e;
- e = Jim_GetLong(interp, argv[2], &l);
- addr = l;
+ e = Jim_GetWide(interp, argv[2], &wide_addr);
+ addr = (target_addr_t)wide_addr;
if (e != JIM_OK)
return e;
e = Jim_GetLong(interp, argv[3], &l);
if (e != JIM_OK)
return e;
e = Jim_GetLong(interp, argv[3], &l);
} else {
char buf[100];
Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
} else {
char buf[100];
Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
- sprintf(buf, "mem2array address: 0x%08" PRIx32 " is not aligned for %" PRIu32 " byte reads",
+ sprintf(buf, "mem2array address: " TARGET_ADDR_FMT " is not aligned for %" PRIu32 " byte reads",
addr,
width);
Jim_AppendStrings(interp, Jim_GetResult(interp), buf, NULL);
addr,
width);
Jim_AppendStrings(interp, Jim_GetResult(interp), buf, NULL);
retval = target_read_memory(target, addr, width, count, buffer);
if (retval != ERROR_OK) {
/* BOO !*/
retval = target_read_memory(target, addr, width, count, buffer);
if (retval != ERROR_OK) {
/* BOO !*/
- LOG_ERROR("mem2array: Read @ 0x%08" PRIx32 ", w=%" PRIu32 ", cnt=%" PRIu32 ", failed",
+ LOG_ERROR("mem2array: Read @ " TARGET_ADDR_FMT ", w=%" PRIu32 ", cnt=%" PRIu32 ", failed",
int argc, Jim_Obj *const *argv)
{
long l;
int argc, Jim_Obj *const *argv)
{
long l;
uint32_t count;
uint32_t v;
const char *varname;
uint32_t count;
uint32_t v;
const char *varname;
if (e != JIM_OK)
return e;
if (e != JIM_OK)
return e;
- e = Jim_GetLong(interp, argv[2], &l);
- addr = l;
+ e = Jim_GetWide(interp, argv[2], &wide_addr);
+ addr = (target_addr_t)wide_addr;
if (e != JIM_OK)
return e;
e = Jim_GetLong(interp, argv[3], &l);
if (e != JIM_OK)
return e;
e = Jim_GetLong(interp, argv[3], &l);
} else {
char buf[100];
Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
} else {
char buf[100];
Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
- sprintf(buf, "array2mem address: 0x%08" PRIx32 " is not aligned for %" PRIu32 " byte reads",
+ sprintf(buf, "array2mem address: " TARGET_ADDR_FMT " is not aligned for %" PRIu32 " byte reads",
addr,
width);
Jim_AppendStrings(interp, Jim_GetResult(interp), buf, NULL);
addr,
width);
Jim_AppendStrings(interp, Jim_GetResult(interp), buf, NULL);
retval = target_write_memory(target, addr, width, count, buffer);
if (retval != ERROR_OK) {
/* BOO !*/
retval = target_write_memory(target, addr, width, count, buffer);
if (retval != ERROR_OK) {
/* BOO !*/
- LOG_ERROR("array2mem: Write @ 0x%08" PRIx32 ", w=%" PRIu32 ", cnt=%" PRIu32 ", failed",
+ LOG_ERROR("array2mem: Write @ " TARGET_ADDR_FMT ", w=%" PRIu32 ", cnt=%" PRIu32 ", failed",