feat(esp8266): hardware check task stack overflow

This commit is contained in:
Dong Heng
2019-12-24 18:56:45 +08:00
parent a3537856b2
commit 53e4e1687c
7 changed files with 99 additions and 13 deletions

View File

@ -134,6 +134,21 @@ static inline void soc_wait_int(void)
);
}
static inline uint32_t soc_debug_reason(void)
{
uint32_t tmp;
__asm__ __volatile__(
"movi %0, 0\n"
"wsr %0, dbreakc0\n"
"rsr.debugcause %0\n"
: "=r"(tmp)
:
: "memory");
return tmp;
}
#ifdef __cplusplus
}
#endif

View File

@ -57,7 +57,12 @@ int xt_retaddr_callee(const void *i_pc, const void *i_sp, const void *i_lr, void
}
sp -= stk_size;
pc = *(uint32_t *)(sp - 4);
if (off <= 3) {
pc = lr;
} else {
pc = *(uint32_t *)(sp - 4);
}
*o_sp = (void *)sp;
*o_pc = (void *)pc;