Hi,
I've had problem with running code without the debugger. JTAG works fine, but standalone doesn't start. Jumping to a data abort in the VFP init sequence.
Halcogen generates this in "sys_startup.c"
/* Note: stackless keyword is supported since compiler version 6.20.1 */ __stackless void _c_int00() { /* Enable VFP Unit */ _coreEnableVfp_(); /* Initialize Core Registers */ _coreInitRegisters_(); /* Initialize Stack Pointers */ _coreInitStackPointer_();
I'm using IAR, note the "stackless" keyword.
But in "_coreEnableVfp_" in the "sys_core.asm" we have:
_coreEnableVfp_ stmfd sp!, {r0} mrc p15, #0x00, r0, c1, c0, #0x02 orr r0, r0, #0xF00000 mcr p15, #0x00, r0, c1, c0, #0x02 mov r0, #0x40000000 fmxr fpexc, r0 ldmfd sp!, {r0} bx lr
My ARM assembly is a bit rusty, but isn't this using the stack?
When analysing the Data abort, none of the stack pointers are pointing to the system RAM.