From 711e0ec6ade67f4c10f068d74b14ba9efd549f38 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 23 Mar 2014 10:05:21 -0600 Subject: Every ARM architecture must export g_instackbase --- nuttx/arch/arm/src/armv6-m/up_assert.c | 22 +++++++++++++++++++--- nuttx/arch/arm/src/c5471/c5471_vectors.S | 6 ++++-- nuttx/arch/arm/src/kinetis/kinetis_vectors.S | 3 ++- nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S | 3 ++- nuttx/arch/arm/src/sam34/sam_vectors.S | 1 + nuttx/arch/arm/src/tiva/tiva_vectors.S | 1 + 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/nuttx/arch/arm/src/armv6-m/up_assert.c b/nuttx/arch/arm/src/armv6-m/up_assert.c index bee569cce..9dec6306a 100644 --- a/nuttx/arch/arm/src/armv6-m/up_assert.c +++ b/nuttx/arch/arm/src/armv6-m/up_assert.c @@ -63,8 +63,14 @@ # undef CONFIG_ARCH_USBDUMP #endif -/* Output debug info if stack dump is selected -- even if - * debug is not selected. +/* Check if we can dump stack usage information */ + +#ifndef CONFIG_DEBUG +# undef CONFIG_DEBUG_STACK +#endif + +/* Output debug info if stack dump is selected -- even if debug is not + * selected. */ #ifdef CONFIG_ARCH_STACKDUMP @@ -213,7 +219,7 @@ static void up_dumpstate(void) #if CONFIG_ARCH_INTERRUPTSTACK > 3 istackbase = (uint32_t)&g_intstackbase; - istacksize = (CONFIG_ARCH_INTERRUPTSTACK & ~3) - 4; + istacksize = (CONFIG_ARCH_INTERRUPTSTACK & ~3); /* Show interrupt stack info */ @@ -221,6 +227,9 @@ static void up_dumpstate(void) lldbg("IRQ stack:\n"); lldbg(" base: %08x\n", istackbase); lldbg(" size: %08x\n", istacksize); +#ifdef CONFIG_DEBUG_STACK + lldbg(" used: %08x\n", up_check_intstack()); +#endif /* Does the current stack pointer lie within the interrupt * stack? @@ -247,6 +256,9 @@ static void up_dumpstate(void) lldbg("User stack:\n"); lldbg(" base: %08x\n", ustackbase); lldbg(" size: %08x\n", ustacksize); +#ifdef CONFIG_DEBUG_STACK + lldbg(" used: %08x\n", up_check_tcbstack(rtcb)); +#endif /* Dump the user stack if the stack pointer lies within the allocated user * stack memory. @@ -256,10 +268,14 @@ static void up_dumpstate(void) { up_stackdump(sp, ustackbase); } + #else lldbg("sp: %08x\n", sp); lldbg("stack base: %08x\n", ustackbase); lldbg("stack size: %08x\n", ustacksize); +#ifdef CONFIG_DEBUG_STACK + lldbg("stack used: %08x\n", up_check_tcbstack(rtcb)); +#endif /* Dump the user stack if the stack pointer lies within the allocated user * stack memory. diff --git a/nuttx/arch/arm/src/c5471/c5471_vectors.S b/nuttx/arch/arm/src/c5471/c5471_vectors.S index a553f7219..ba4b5e3ee 100644 --- a/nuttx/arch/arm/src/c5471/c5471_vectors.S +++ b/nuttx/arch/arm/src/c5471/c5471_vectors.S @@ -1,7 +1,7 @@ /************************************************************************************ * arch/arm/src/c5471/c5471_vectors.S * - * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2009, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -472,7 +472,9 @@ up_vectoraddrexcptn: #if CONFIG_ARCH_INTERRUPTSTACK > 3 .bss .align 4 - .globl g_intstackbase + .global g_intstackalloc + .global g_intstackbase + .type g_intstackalloc, object .type g_intstackbase, object g_intstackalloc: .skip ((CONFIG_ARCH_INTERRUPTSTACK & ~3) - 4) diff --git a/nuttx/arch/arm/src/kinetis/kinetis_vectors.S b/nuttx/arch/arm/src/kinetis/kinetis_vectors.S index dd2e35aea..8ba6db658 100644 --- a/nuttx/arch/arm/src/kinetis/kinetis_vectors.S +++ b/nuttx/arch/arm/src/kinetis/kinetis_vectors.S @@ -2,7 +2,7 @@ * arch/arm/src/kinetis/kinetis_vectors.S * arch/arm/src/chip/kinetis_vectors.S * - * Copyright (C) 2011, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2013-2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -848,6 +848,7 @@ exception_common: #if CONFIG_ARCH_INTERRUPTSTACK > 3 .bss + .global g_intstackalloc .global g_intstackbase .align 4 g_intstackalloc: diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S b/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S index d88fd88ce..9e54b3048 100644 --- a/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S +++ b/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S @@ -2,7 +2,7 @@ * arch/arm/src/lpc17xx/lpc17_vectors.S * arch/arm/src/chip/lpc17_vectors.S * - * Copyright (C) 2010-2011, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2010-2011, 2013-2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -460,6 +460,7 @@ exception_common: #if CONFIG_ARCH_INTERRUPTSTACK > 3 .bss + .global g_intstackalloc .global g_intstackbase .align 4 g_intstackalloc: diff --git a/nuttx/arch/arm/src/sam34/sam_vectors.S b/nuttx/arch/arm/src/sam34/sam_vectors.S index fa008b67b..1ee78569c 100644 --- a/nuttx/arch/arm/src/sam34/sam_vectors.S +++ b/nuttx/arch/arm/src/sam34/sam_vectors.S @@ -469,6 +469,7 @@ exception_common: #if CONFIG_ARCH_INTERRUPTSTACK > 3 .bss + .global g_intstackalloc .global g_intstackbase .align 4 g_intstackalloc: diff --git a/nuttx/arch/arm/src/tiva/tiva_vectors.S b/nuttx/arch/arm/src/tiva/tiva_vectors.S index 454ea1e4b..8dc52e881 100644 --- a/nuttx/arch/arm/src/tiva/tiva_vectors.S +++ b/nuttx/arch/arm/src/tiva/tiva_vectors.S @@ -450,6 +450,7 @@ exception_common: #if CONFIG_ARCH_INTERRUPTSTACK > 3 .bss + .global g_intstackalloc .global g_intstackbase .align 4 g_intstackalloc: -- cgit v1.2.3