From 8dd2fa230db80d319ed8e92448d533cabd967b08 Mon Sep 17 00:00:00 2001 From: TC Wan Date: Tue, 21 Dec 2010 17:59:28 +0800 Subject: invoke armdebg undef handler in vector table, initialized abort stack Update vector table to call debugger undef_handler. Initialized Abort stack on startup. --- AT91SAM7S256/SAM7S256/Include/Cstartup.S | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'AT91SAM7S256') diff --git a/AT91SAM7S256/SAM7S256/Include/Cstartup.S b/AT91SAM7S256/SAM7S256/Include/Cstartup.S index b60ba2c..af87159 100644 --- a/AT91SAM7S256/SAM7S256/Include/Cstartup.S +++ b/AT91SAM7S256/SAM7S256/Include/Cstartup.S @@ -136,13 +136,15 @@ FIQ_Handler_Entry: /* end of fiqhandler */ Reset_Addr: .word InitReset -Undef_Addr: .word Undef_Handler +Undef_Addr: .word undef_handler /* BKPT instruction trap */ SWI_Addr: .word SWI_Handler /*SWI_Addr: .word SoftwareInterruptASM*/ /*in swi_handler.S */ PAbt_Addr: .word PAbt_Handler DAbt_Addr: .word DAbt_Handler IRQ_Addr: .word IRQ_Handler_Entry - + + .global default_undef_handler +default_undef_handler: Undef_Handler: B Undef_Handler SWI_Handler: B SWI_Handler PAbt_Handler: B PAbt_Handler @@ -255,6 +257,7 @@ already_remapped: .EQU ARM_MODE_FIQ, 0x11 .EQU ARM_MODE_IRQ, 0x12 .EQU ARM_MODE_SVC, 0x13 + .EQU ARM_MODE_ABT, 0x17 .EQU I_BIT, 0x80 .EQU F_BIT, 0x40 @@ -264,6 +267,10 @@ already_remapped: //*-------------------------------*/ mov r0, sp /* see (**) */ +/*- Set up Abort Mode Stack for Debugger*/ + msr CPSR_c, #ARM_MODE_ABT | I_BIT | F_BIT + ldr sp, =__abort_stack_top__ + /*- Set up Fast Interrupt Mode and set FIQ Mode Stack*/ msr CPSR_c, #ARM_MODE_FIQ | I_BIT | F_BIT mov sp, r0 @@ -286,6 +293,8 @@ already_remapped: mov sp, r0 /* Init stack Sup */ + + /*- Enable interrupt & Set up Supervisor Mode and set Supervisor Mode Stack*/ /* Relocate .data section (Copy from ROM to RAM) -- cgit v1.2.3