From 8a590215b66ac780c9d5a168146b945b8071dcf6 Mon Sep 17 00:00:00 2001 From: mbbill Date: Tue, 29 Dec 2009 07:48:10 +0000 Subject: [PATCH] FIX: If abort happened in irq mode, halt system. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@259 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- libcpu/arm/AT91SAM7X/start_rvds.S | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libcpu/arm/AT91SAM7X/start_rvds.S b/libcpu/arm/AT91SAM7X/start_rvds.S index 453d8beea2..bc5c6e9cce 100644 --- a/libcpu/arm/AT91SAM7X/start_rvds.S +++ b/libcpu/arm/AT91SAM7X/start_rvds.S @@ -415,11 +415,16 @@ MC_RCR EQU 0x00 ; MC_RCR Offset IMPORT rt_interrupt_from_thread IMPORT rt_interrupt_to_thread IMPORT rt_hw_trap_irq - IMPORT rt_hw_trap_abort + IMPORT rt_hw_trap_abort + IMPORT rt_interrupt_nest Abort_Handler PROC EXPORT Abort_Handler stmfd sp!, {r0-r12,lr} + LDR r0, =rt_interrupt_nest + LDR r1, [r0] + CMP r1, #0 +DeadLoop BHI DeadLoop ; Abort happened in irq mode, halt system. bl rt_interrupt_enter bl rt_hw_trap_abort bl rt_interrupt_leave