I've committed a fix in 1753 for memory corruption introduced in 1730.
Thanks for bisecting to the offending release. This is definitely a case
of where numerous small commits saved my butt.
Hopefully this covers the problem that you are seing, but I don't
have your precise setup so I can't run the exact test case you
are running...
--
Øyvind Harboe
Embedded software and hardware consulting services
http://consulting.zylin.com
### Eclipse Workspace Patch 1.0
#P openocd
Index: src/target/arm9tdmi.c
===================================================================
--- src/target/arm9tdmi.c (revision 1743)
+++ src/target/arm9tdmi.c (working copy)
@@ -291,9 +291,9 @@
extern void arm_endianness(u8 *tmp, void *in, int size, int be, int flip);
-static int arm9endianness(u8 *in, jtag_callback_data_t size,
jtag_callback_data_t be, jtag_callback_data_t dummy)
+static int arm9endianness(u8 *in, jtag_callback_data_t size,
jtag_callback_data_t be, jtag_callback_data_t captured)
{
- arm_endianness(in, in, (int)size, (int)be, 0);
+ arm_endianness((u8 *)captured, in, (int)size, (int)be, 0);
return ERROR_OK;
}
@@ -317,7 +317,7 @@
fields[0].tap = jtag_info->tap;
fields[0].num_bits = 32;
fields[0].out_value = NULL;
- fields[0].in_value = (u8 *)in;
+ jtag_alloc_in_value32(&fields[0]);
fields[1].tap = jtag_info->tap;
fields[1].num_bits = 3;
@@ -331,7 +331,7 @@
jtag_add_dr_scan(3, fields, TAP_INVALID);
- jtag_add_callback4(arm9endianness, in, (jtag_callback_data_t)size,
(jtag_callback_data_t)be, 0);
+ jtag_add_callback4(arm9endianness, in, (jtag_callback_data_t)size,
(jtag_callback_data_t)be, (jtag_callback_data_t)fields[0].in_value);
jtag_add_runtest(0, TAP_INVALID);
Index: src/target/arm7tdmi.c
===================================================================
--- src/target/arm7tdmi.c (revision 1750)
+++ src/target/arm7tdmi.c (working copy)
@@ -244,9 +244,9 @@
}
}
-static int arm7endianness(u8 *in, jtag_callback_data_t size,
jtag_callback_data_t be, jtag_callback_data_t dummy)
+static int arm7endianness(u8 *in, jtag_callback_data_t size,
jtag_callback_data_t be, jtag_callback_data_t captured)
{
- arm_endianness(in, in, (int)size, (int)be, 1);
+ arm_endianness((u8 *)captured, in, (int)size, (int)be, 1);
return ERROR_OK;
}
@@ -274,11 +274,11 @@
fields[1].tap = jtag_info->tap;
fields[1].num_bits = 32;
fields[1].out_value = NULL;
- fields[1].in_value = (u8 *)in;
+ jtag_alloc_in_value32(&fields[1]);
jtag_add_dr_scan(2, fields, TAP_INVALID);
- jtag_add_callback4(arm7endianness, in, (jtag_callback_data_t)size,
(jtag_callback_data_t)be, (jtag_callback_data_t)NULL);
+ jtag_add_callback4(arm7endianness, in, (jtag_callback_data_t)size,
(jtag_callback_data_t)be, (jtag_callback_data_t)fields[1].in_value);
jtag_add_runtest(0, TAP_INVALID);
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development