summaryrefslogtreecommitdiff
path: root/nuttx/arch/avr
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2015-01-24 06:03:39 -0600
committerGregory Nutt <gnutt@nuttx.org>2015-01-24 06:03:39 -0600
commitec6b436dc9afec0d39ce52c3e589a4e37bc1facd (patch)
treef49f588fd7fb77f9799fc666da6246f35efb68b6 /nuttx/arch/avr
parentdc57c53f080c460896db6309f98511f592c149ce (diff)
downloadpx4-nuttx-ec6b436dc9afec0d39ce52c3e589a4e37bc1facd.tar.gz
px4-nuttx-ec6b436dc9afec0d39ce52c3e589a4e37bc1facd.tar.bz2
px4-nuttx-ec6b436dc9afec0d39ce52c3e589a4e37bc1facd.zip
Add CONFIG_STACK_COLORATION that does the same thing as CONFIG_DEBUG_STACK but without enabling debug. From David Sidrane
Diffstat (limited to 'nuttx/arch/avr')
-rw-r--r--nuttx/arch/avr/src/at90usb/Make.defs4
-rw-r--r--nuttx/arch/avr/src/atmega/Make.defs4
-rw-r--r--nuttx/arch/avr/src/avr/up_checkstack.c8
-rw-r--r--nuttx/arch/avr/src/avr/up_createstack.c4
-rw-r--r--nuttx/arch/avr/src/avr/up_dumpstate.c6
-rw-r--r--nuttx/arch/avr/src/avr/up_usestack.c2
-rw-r--r--nuttx/arch/avr/src/avr32/up_createstack.c6
-rw-r--r--nuttx/arch/avr/src/avr32/up_dumpstate.c6
-rw-r--r--nuttx/arch/avr/src/avr32/up_usestack.c2
-rw-r--r--nuttx/arch/avr/src/common/up_initialize.c2
10 files changed, 27 insertions, 17 deletions
diff --git a/nuttx/arch/avr/src/at90usb/Make.defs b/nuttx/arch/avr/src/at90usb/Make.defs
index 249f345dc..a7e1526ac 100644
--- a/nuttx/arch/avr/src/at90usb/Make.defs
+++ b/nuttx/arch/avr/src/at90usb/Make.defs
@@ -58,6 +58,10 @@ ifeq ($(CONFIG_AVR_SPI),y)
CMN_CSRCS += up_spi.c
endif
+ifeq ($(CONFIG_STACK_COLORATION),y)
+CMN_CSRCS += up_checkstack.c
+endif
+
ifeq ($(CONFIG_DEBUG_STACK),y)
CMN_CSRCS += up_checkstack.c
endif
diff --git a/nuttx/arch/avr/src/atmega/Make.defs b/nuttx/arch/avr/src/atmega/Make.defs
index 73377bd1a..e61ef3ecc 100644
--- a/nuttx/arch/avr/src/atmega/Make.defs
+++ b/nuttx/arch/avr/src/atmega/Make.defs
@@ -58,6 +58,10 @@ ifeq ($(CONFIG_AVR_SPI),y)
CMN_CSRCS += up_spi.c
endif
+ifeq ($(CONFIG_STACK_COLORATION),y)
+CMN_CSRCS += up_checkstack.c
+endif
+
ifeq ($(CONFIG_DEBUG_STACK),y)
CMN_CSRCS += up_checkstack.c
endif
diff --git a/nuttx/arch/avr/src/avr/up_checkstack.c b/nuttx/arch/avr/src/avr/up_checkstack.c
index dd24e0c75..da7697be4 100644
--- a/nuttx/arch/avr/src/avr/up_checkstack.c
+++ b/nuttx/arch/avr/src/avr/up_checkstack.c
@@ -57,7 +57,7 @@
# undef CONFIG_DEBUG_STACK
#endif
-#if defined(CONFIG_DEBUG_STACK)
+#if defined(CONFIG_DEBUG_STACK)) || defined(CONFIG_STACK_COLORATION)
/****************************************************************************
* Public Data
@@ -67,6 +67,8 @@
* Private Functions
****************************************************************************/
+static size_t do_stackcheck(uintptr_t alloc, size_t size);
+
/****************************************************************************
* Name: do_stackcheck
*
@@ -84,7 +86,7 @@
*
****************************************************************************/
-size_t do_stackcheck(uintptr_t alloc, size_t size)
+static size_t do_stackcheck(uintptr_t alloc, size_t size)
{
FAR uint8_t *ptr;
size_t mark;
@@ -197,4 +199,4 @@ size_t up_check_intstack_remain(void)
}
#endif
-#endif /* CONFIG_DEBUG_STACK */
+#endif /* CONFIG_DEBUG_STACK || CONFIG_STACK_COLORATION */
diff --git a/nuttx/arch/avr/src/avr/up_createstack.c b/nuttx/arch/avr/src/avr/up_createstack.c
index 4b7df816b..ff3d26d01 100644
--- a/nuttx/arch/avr/src/avr/up_createstack.c
+++ b/nuttx/arch/avr/src/avr/up_createstack.c
@@ -120,7 +120,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
* then create a zeroed stack to make stack dumps easier to trace.
*/
-#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
+#if defined(CONFIG_DEBUG) && !(defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION))
tcb->stack_alloc_ptr = (uint32_t *)kumm_zalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kumm_malloc(stack_size);
@@ -147,7 +147,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
* water marks.
*/
-#if defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_STACK)
+#if (defined(CONFIG_DEBUG_STACK)) || defined(CONFIG_STACK_COLORATION))
memset(tcb->stack_alloc_ptr, STACK_COLOR, stack_size);
#endif
diff --git a/nuttx/arch/avr/src/avr/up_dumpstate.c b/nuttx/arch/avr/src/avr/up_dumpstate.c
index 78a8c50bf..1049c1fac 100644
--- a/nuttx/arch/avr/src/avr/up_dumpstate.c
+++ b/nuttx/arch/avr/src/avr/up_dumpstate.c
@@ -208,7 +208,7 @@ void up_dumpstate(void)
lldbg("IRQ stack:\n");
lldbg(" base: %04x\n", istackbase);
lldbg(" size: %04x\n", istacksize);
-#ifdef CONFIG_DEBUG_STACK
+#if defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION)
lldbg(" used: %08x\n", up_check_intstack());
#endif
@@ -237,7 +237,7 @@ void up_dumpstate(void)
lldbg("User stack:\n");
lldbg(" base: %04x\n", ustackbase);
lldbg(" size: %04x\n", ustacksize);
-#ifdef CONFIG_DEBUG_STACK
+#if defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION)
lldbg(" used: %08x\n", up_check_tcbstack(rtcb));
#endif
@@ -253,7 +253,7 @@ void up_dumpstate(void)
lldbg("sp: %04x\n", sp);
lldbg("stack base: %04x\n", ustackbase);
lldbg("stack size: %04x\n", ustacksize);
-#ifdef CONFIG_DEBUG_STACK
+#if defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION)
lldbg("stack used: %08x\n", up_check_tcbstack(rtcb));
#endif
diff --git a/nuttx/arch/avr/src/avr/up_usestack.c b/nuttx/arch/avr/src/avr/up_usestack.c
index cb19ed241..7113971a4 100644
--- a/nuttx/arch/avr/src/avr/up_usestack.c
+++ b/nuttx/arch/avr/src/avr/up_usestack.c
@@ -111,7 +111,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
* that we can use later to test for high water marks.
*/
-#if defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_STACK)
+#if (defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_STACK)) || defined(CONFIG_STACK_COLORATION))
memset(tcb->stack_alloc_ptr, STACK_COLOR, stack_size);
#endif
diff --git a/nuttx/arch/avr/src/avr32/up_createstack.c b/nuttx/arch/avr/src/avr32/up_createstack.c
index 1d840819b..be5e37e7e 100644
--- a/nuttx/arch/avr/src/avr32/up_createstack.c
+++ b/nuttx/arch/avr/src/avr32/up_createstack.c
@@ -129,7 +129,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
if (ttype == TCB_FLAG_TTYPE_KERNEL)
{
-#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
+#if defined(CONFIG_DEBUG) && !(defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION))
tcb->stack_alloc_ptr = (uint32_t *)kmm_zalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kmm_malloc(stack_size);
@@ -140,7 +140,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
{
/* Use the user-space allocator if this is a task or pthread */
-#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
+#if defined(CONFIG_DEBUG) && !(defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION))
tcb->stack_alloc_ptr = (uint32_t *)kumm_zalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kumm_malloc(stack_size);
@@ -169,7 +169,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
* water marks.
*/
-#if defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_STACK)
+#if (defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_STACK)) || defined(CONFIG_STACK_COLORATION)
memset(tcb->stack_alloc_ptr, STACK_COLOR, stack_size);
#endif
diff --git a/nuttx/arch/avr/src/avr32/up_dumpstate.c b/nuttx/arch/avr/src/avr32/up_dumpstate.c
index 55c4a7cba..6884a037d 100644
--- a/nuttx/arch/avr/src/avr32/up_dumpstate.c
+++ b/nuttx/arch/avr/src/avr32/up_dumpstate.c
@@ -185,7 +185,7 @@ void up_dumpstate(void)
lldbg("IRQ stack:\n");
lldbg(" base: %08x\n", istackbase);
lldbg(" size: %08x\n", istacksize);
-#ifdef CONFIG_DEBUG_STACK
+#if defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION)
lldbg(" used: %08x\n", up_check_intstack());
#endif
@@ -214,7 +214,7 @@ void up_dumpstate(void)
lldbg("User stack:\n");
lldbg(" base: %08x\n", ustackbase);
lldbg(" size: %08x\n", ustacksize);
-#ifdef CONFIG_DEBUG_STACK
+#if defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION)
lldbg(" used: %08x\n", up_check_tcbstack(rtcb));
#endif
@@ -230,7 +230,7 @@ void up_dumpstate(void)
lldbg("sp: %08x\n", sp);
lldbg("stack base: %08x\n", ustackbase);
lldbg("stack size: %08x\n", ustacksize);
-#ifdef CONFIG_DEBUG_STACK
+#if defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION)
lldbg("stack used: %08x\n", up_check_tcbstack(rtcb));
#endif
diff --git a/nuttx/arch/avr/src/avr32/up_usestack.c b/nuttx/arch/avr/src/avr32/up_usestack.c
index f606ff385..5c43c54d6 100644
--- a/nuttx/arch/avr/src/avr32/up_usestack.c
+++ b/nuttx/arch/avr/src/avr32/up_usestack.c
@@ -111,7 +111,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
* that we can use later to test for high water marks.
*/
-#if defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_STACK)
+#if (defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_STACK)) || defined(CONFIG_STACK_COLORATION)
memset(tcb->stack_alloc_ptr, STACK_COLOR, stack_size);
#endif
diff --git a/nuttx/arch/avr/src/common/up_initialize.c b/nuttx/arch/avr/src/common/up_initialize.c
index 630e5d405..92297d066 100644
--- a/nuttx/arch/avr/src/common/up_initialize.c
+++ b/nuttx/arch/avr/src/common/up_initialize.c
@@ -141,7 +141,7 @@ static void up_calibratedelay(void)
*
****************************************************************************/
-#if defined(CONFIG_DEBUG_STACK) && CONFIG_ARCH_INTERRUPTSTACK > 3
+#if (defined(CONFIG_DEBUG_STACK) || defined(CONFIG_STACK_COLORATION)) && CONFIG_ARCH_INTERRUPTSTACK > 3
static inline void up_color_intstack(void)
{
uint8_t *ptr = (uint8_t *)&g_intstackalloc;