Data abort isn’t really useful, if it happens because sp was corrupted, and it doesn’t have it’s own stack.
This seems to have propagated around:
Demo/ARM7_LPC2106_GCC/boot.s: msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode
Demo/WizNET_DEMO_GCC_ARM7/boot.s: msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode
Demo/ARM7_LPC2368_Eclipse/RTOSDemo/boot.s: msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode
Also this one is needed in Demo/ARM7_LPC2368_Eclipse/:
/* definition: char *pcStatus[ 3 ]; so pcStatus[3] (used later) is not valid */
+++ webserver/httpd-cgi.c (working copy)
@@ -235,7 +235,7 @@
OK, it seems I wasn’t clear, lets try it this way:
from Demo/ARM7_LPC2106_GCC/boot.s:
44 _mainCRTStartup:
45
46 /* Setup a stack for each mode - note that this only sets up a usable stack
47 for system/user, SWI and IRQ modes. Also each mode is setup with
48 interrupts initially disabled. */
49 ldr r0, .LC6
50 msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode
51 mov sp, r0
52 sub r0, r0, #UND_STACK_SIZE