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 Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development