b9748e50ea
In function pxPortInitialiseStack of port.c: sp = ( StackType_t * ) ( ( ( UBaseType_t ) ( pxTopOfStack + 1 ) - XT_CP_SIZE - XT_STK_FRMSZ ) & ~0xf ); We assume XT_CP_SIZE is 0xE4, XT_STK_FRMSZ is 0xA0, pxTopOfStack is 0xA0000000, sp is 0x9FFFFE80. From port.c, we know the frame->a1 as below: frame->a1 = ( UBaseType_t ) sp + XT_STK_FRMSZ; /* physical top of stack frame */ So frame->a1 is 0x9FFFFF20. Therefore the interrupt stack frame range is 0x9FFFFE80 ~ 0x9FFFFF20. The coproc_area is: p = ( uint32_t * ) ( ( ( uint32_t ) pxTopOfStack - XT_CP_SIZE ) & ~0xf ); So its value is 0x9FFFFF10. Obviously, the interrupt stack frame overlaps the coproc_area. Co-authored-by: Carl Lundin <53273776+lundinc2@users.noreply.github.com> |
||
---|---|---|
.. | ||
Makefile | ||
port.c | ||
portasm.S | ||
portbenchmark.h | ||
portclib.c | ||
portmacro.h | ||
porttrace.h | ||
readme_xtensa.txt | ||
xtensa_api.h | ||
xtensa_config.h | ||
xtensa_context.h | ||
xtensa_context.S | ||
xtensa_init.c | ||
xtensa_intr_asm.S | ||
xtensa_intr.c | ||
xtensa_overlay_os_hook.c | ||
xtensa_rtos.h | ||
xtensa_timer.h | ||
xtensa_vectors.S |