aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/armdebug/Debugger/undef_handler.S
diff options
context:
space:
mode:
authorTat-Chee Wan (USM)2011-04-01 12:13:46 +0800
committerTat-Chee Wan (USM)2011-04-01 12:13:46 +0800
commita49b11a219f6876e63844c2b89f45122f64ab702 (patch)
tree47ddbff09837ea1262431a8fe5d6f479219a7e3f /AT91SAM7S256/armdebug/Debugger/undef_handler.S
parent5fdfaa83874590fcd9082659a55abd5dcca05c4f (diff)
parent1783911a091554b2fec8acbf10f46a3e6fb02575 (diff)
Merge branch 'master' of ssh://svc.cs.usm.my/~/gitrepo-bare/armdebug
Diffstat (limited to 'AT91SAM7S256/armdebug/Debugger/undef_handler.S')
-rw-r--r--AT91SAM7S256/armdebug/Debugger/undef_handler.S5
1 files changed, 3 insertions, 2 deletions
diff --git a/AT91SAM7S256/armdebug/Debugger/undef_handler.S b/AT91SAM7S256/armdebug/Debugger/undef_handler.S
index b980a5d..f185fbd 100644
--- a/AT91SAM7S256/armdebug/Debugger/undef_handler.S
+++ b/AT91SAM7S256/armdebug/Debugger/undef_handler.S
@@ -87,6 +87,7 @@ _is_thumb:
teq r2, r1
bne default_undef_handler
ldr r1, =BKPT16_ENUM_MASK /* get Thumb BKPT Enum Mask */
+ ldr r2, =dbg__thumb_bkpt_handler /* handle BKPT, BKPT index in r0 */
b _exit_undef_handler
_is_arm:
ldr r0, [r0] /* load UNDEF instruction into r0 */
@@ -96,11 +97,11 @@ _is_arm:
teq r2, r1
bne default_undef_handler
ldr r1, =BKPT32_ENUM_MASK /* get ARM BKPT Enum Mask */
+ ldr r2, =dbg__arm_bkpt_handler /* handle BKPT, BKPT index in r0 */
_exit_undef_handler:
and r0, r1, r0 /* Keep index value */
msr cpsr_c, #(MODE_ABT) /* Configure Abort Mode */
- ldr lr, =dbg__arm_bkpt_handler /* handle BKPT, BKPT index in r0 */
- mov pc, lr /* Invoke Debugger State (Supervisor Mode) */
+ mov pc, r2 /* Invoke Debugger State (Supervisor Mode) */
.global resume_execution