Other Parts Discussed in Thread: HALCOGEN
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.
