auto-sync
This commit is contained in:
parent
cd7671d3ef
commit
47e55aa2b6
|
@ -15,7 +15,11 @@ int getRemainingStack(Thread *otp);
|
||||||
|
|
||||||
extern stkalign_t __main_stack_base__;
|
extern stkalign_t __main_stack_base__;
|
||||||
|
|
||||||
|
#if defined __GNUC__
|
||||||
|
// GCC version
|
||||||
|
|
||||||
int getRemainingStack(Thread *otp) {
|
int getRemainingStack(Thread *otp) {
|
||||||
|
|
||||||
#if CH_DBG_ENABLE_STACK_CHECK
|
#if CH_DBG_ENABLE_STACK_CHECK
|
||||||
register struct intctx *r13 asm ("r13");
|
register struct intctx *r13 asm ("r13");
|
||||||
otp->activeStack = r13;
|
otp->activeStack = r13;
|
||||||
|
@ -35,6 +39,31 @@ int getRemainingStack(Thread *otp) {
|
||||||
#endif /* CH_DBG_ENABLE_STACK_CHECK */
|
#endif /* CH_DBG_ENABLE_STACK_CHECK */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else /* __GNUC__ */
|
||||||
|
|
||||||
|
|
||||||
|
int getRemainingStack(Thread *otp) {
|
||||||
|
#if CH_DBG_ENABLE_STACK_CHECK || defined(__DOXYGEN__)
|
||||||
|
int remainingStack;
|
||||||
|
if (dbg_isr_cnt > 0) {
|
||||||
|
remainingStack = 999; // todo
|
||||||
|
} else {
|
||||||
|
remainingStack = (stkalign_t *)(__get_SP() - sizeof(struct intctx)) - otp->p_stklimit;
|
||||||
|
}
|
||||||
|
otp->remainingStack = remainingStack;
|
||||||
|
return remainingStack;
|
||||||
|
#else
|
||||||
|
return 999999;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// IAR version
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void baseHardwareInit(void) {
|
void baseHardwareInit(void) {
|
||||||
// looks like this holds a random value on start? Let's set a nice clean zero
|
// looks like this holds a random value on start? Let's set a nice clean zero
|
||||||
|
|
Loading…
Reference in New Issue