auto-sync

This commit is contained in:
rusEfi 2014-11-06 18:03:21 -06:00
parent cd7671d3ef
commit 47e55aa2b6
1 changed files with 29 additions and 0 deletions

View File

@ -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