From 71f174d00dcd678fa9da5acea8e1454f2417810c Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 2 Apr 2016 16:47:14 +0000 Subject: Fixed stack limit conditions in RT4. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9224 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/common/ports/ARM/chcore.h | 4 ++-- os/common/ports/ARMCMx/chcore_v6m.h | 2 +- os/common/ports/ARMCMx/chcore_v7m.h | 4 ++-- os/common/ports/e200/chcore.h | 2 +- os/common/ports/templates/chcore.h | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) (limited to 'os/common') diff --git a/os/common/ports/ARM/chcore.h b/os/common/ports/ARM/chcore.h index 532fb0d11..3aa31eedc 100644 --- a/os/common/ports/ARM/chcore.h +++ b/os/common/ports/ARM/chcore.h @@ -337,7 +337,7 @@ struct port_context { #if CH_DBG_ENABLE_STACK_CHECK == TRUE #define port_switch(ntp, otp) { \ register struct port_intctx *r13 asm ("r13"); \ - if ((stkalign_t *)(r13 - 1) < otp->p_stklimit) \ + if ((stkalign_t *)(r13 - 1) < otp->wabase) \ chSysHalt("stack overflow"); \ _port_switch_thumb(ntp, otp); \ } @@ -350,7 +350,7 @@ struct port_context { #if CH_DBG_ENABLE_STACK_CHECK == TRUE #define port_switch(ntp, otp) { \ register struct port_intctx *r13 asm ("r13"); \ - if ((stkalign_t *)(r13 - 1) < otp->stklimit) \ + if ((stkalign_t *)(r13 - 1) < otp->wabase) \ chSysHalt("stack overflow"); \ _port_switch_arm(ntp, otp); \ } diff --git a/os/common/ports/ARMCMx/chcore_v6m.h b/os/common/ports/ARMCMx/chcore_v6m.h index 0afeeabe9..06039ecc6 100644 --- a/os/common/ports/ARMCMx/chcore_v6m.h +++ b/os/common/ports/ARMCMx/chcore_v6m.h @@ -285,7 +285,7 @@ struct port_intctx { #else #define port_switch(ntp, otp) { \ struct port_intctx *r13 = (struct port_intctx *)__get_PSP(); \ - if ((stkalign_t *)(r13 - 1) < (otp)->stklimit) { \ + if ((stkalign_t *)(r13 - 1) < (otp)->wabase) { \ chSysHalt("stack overflow"); \ } \ _port_switch(ntp, otp); \ diff --git a/os/common/ports/ARMCMx/chcore_v7m.h b/os/common/ports/ARMCMx/chcore_v7m.h index 5dbbed8bd..bf6a998f3 100644 --- a/os/common/ports/ARMCMx/chcore_v7m.h +++ b/os/common/ports/ARMCMx/chcore_v7m.h @@ -440,7 +440,7 @@ struct port_intctx { #if PORT_ENABLE_GUARD_PAGES == FALSE #define port_switch(ntp, otp) { \ struct port_intctx *r13 = (struct port_intctx *)__get_PSP(); \ - if ((stkalign_t *)(r13 - 1) < (otp)->stklimit) { \ + if ((stkalign_t *)(r13 - 1) < (otp)->wabase) { \ chSysHalt("stack overflow"); \ } \ _port_switch(ntp, otp); \ @@ -451,7 +451,7 @@ struct port_intctx { \ /* Setting up the guard page for the switched-in thread.*/ \ mpuConfigureRegion(MPU_REGION_0, \ - chThdGetSelfX()->stklimit, \ + chThdGetSelfX()->wabase, \ MPU_RASR_ATTR_AP_NA_NA | \ MPU_RASR_ATTR_NON_CACHEABLE | \ MPU_RASR_SIZE_32 | \ diff --git a/os/common/ports/e200/chcore.h b/os/common/ports/e200/chcore.h index d031f1c28..453f955bb 100644 --- a/os/common/ports/e200/chcore.h +++ b/os/common/ports/e200/chcore.h @@ -392,7 +392,7 @@ struct port_context { #else #define port_switch(ntp, otp) { \ register struct port_intctx *sp asm ("%r1"); \ - if ((stkalign_t *)(sp - 1) < otp->stklimit) \ + if ((stkalign_t *)(sp - 1) < otp->wabase) \ chSysHalt("stack overflow"); \ _port_switch(ntp, otp); \ } diff --git a/os/common/ports/templates/chcore.h b/os/common/ports/templates/chcore.h index 4b92a3a23..8faf4ec35 100644 --- a/os/common/ports/templates/chcore.h +++ b/os/common/ports/templates/chcore.h @@ -272,7 +272,7 @@ struct port_context { #else #define port_switch(ntp, otp) { \ register struct port_intctx *sp asm ("%r1"); \ - if ((stkalign_t *)(sp - 1) < otp->stklimit) \ + if ((stkalign_t *)(sp - 1) < otp->wabase) \ chSysHalt("stack overflow"); \ _port_switch(ntp, otp); \ } -- cgit v1.2.3