summaryrefslogtreecommitdiff
path: root/src/target/armv4_5.c
diff options
context:
space:
mode:
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-03-28 16:31:55 +0000
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-03-28 16:31:55 +0000
commit4a5f45e87d593d6911da680cb92ffbc9b43c9486 (patch)
treed41ddb8594b5fab03c12075cbc4d3888d59ed027 /src/target/armv4_5.c
parent5ed126c4f90948fbf53d186dc4ef49018fb5ecfc (diff)
downloadopenocd_libswd-4a5f45e87d593d6911da680cb92ffbc9b43c9486.tar.gz
openocd_libswd-4a5f45e87d593d6911da680cb92ffbc9b43c9486.tar.bz2
openocd_libswd-4a5f45e87d593d6911da680cb92ffbc9b43c9486.tar.xz
openocd_libswd-4a5f45e87d593d6911da680cb92ffbc9b43c9486.zip
- merged XScale branch back into trunk
- fixed some compiler warnigns in amt_jtagaccel.c, bitbang.c, parport.c - free working area and register stuff if str7x block write algorithm failed - check PC after exiting a target algorithm in armv4_5.c git-svn-id: svn://svn.berlios.de/openocd/trunk@135 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target/armv4_5.c')
-rw-r--r--src/target/armv4_5.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/target/armv4_5.c b/src/target/armv4_5.c
index 3eab0335..dc42d1c0 100644
--- a/src/target/armv4_5.c
+++ b/src/target/armv4_5.c
@@ -442,7 +442,7 @@ int handle_armv4_5_disassemble_command(struct command_context_s *cmd_ctx, char *
for (i = 0; i < count; i++)
{
target_read_u32(target, address, &opcode);
- evaluate_opcode(opcode, address, &cur_instruction);
+ arm_evaluate_opcode(opcode, address, &cur_instruction);
command_print(cmd_ctx, "%s", cur_instruction.text);
address += (thumb) ? 2 : 4;
}
@@ -598,6 +598,13 @@ int armv4_5_run_algorithm(struct target_s *target, int num_mem_params, mem_param
}
}
+ if ((retval != ERROR_TARGET_TIMEOUT) &&
+ (buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32) != exit_point))
+ {
+ WARNING("target reentered debug state, but not at the desired exit point: 0x%4.4x",
+ buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32));
+ }
+
breakpoint_remove(target, exit_point);
for (i = 0; i < num_mem_params; i++)