From d7d60dba3533d766bc5afd4126cb67a5585bea5b Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 22 Mar 2012 14:07:45 +0000 Subject: [PATCH] Change STM32 so that stm32_pmstop.c and stm32_pmstandby are built even if CONFIG_PM is not defined git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4502 42af7a65-404d-4744-a932-0658087f49c3 --- TODO | 22 +++++++++++++++++++++- arch/arm/src/Makefile | 2 +- arch/arm/src/stm32/Make.defs | 3 ++- arch/arm/src/stm32/stm32_pm.h | 11 ++++++----- arch/arm/src/stm32/stm32_pmstandby.c | 7 ++----- arch/arm/src/stm32/stm32_pmstop.c | 7 ++----- arch/avr/src/Makefile | 2 +- arch/hc/src/Makefile | 2 +- arch/mips/src/Makefile | 2 +- arch/sh/src/Makefile | 2 +- arch/x86/src/Makefile | 2 +- 11 files changed, 39 insertions(+), 23 deletions(-) diff --git a/TODO b/TODO index 0baac17ab7..f5dd64ddf0 100644 --- a/TODO +++ b/TODO @@ -10,7 +10,7 @@ nuttx/ (1) On-demand paging (sched/) (1) Memory Managment (mm/) (2) Signals (sched/, arch/) - (1) pthreads (sched/) + (2) pthreads (sched/) (2) C++ Support (5) Binary loaders (binfmt/) (17) Network (net/, drivers/net) @@ -190,6 +190,26 @@ o pthreads (sched/) Status: Open Priority: Low, probably not that useful + Title: PTHREAD_PRIO_PROTECT + Extended pthread_mutexattr_setprotocol() suport PTHREAD_PRIO_PROTECT: + "When a thread owns one or more mutexes initialized with the + PTHREAD_PRIO_PROTECT protocol, it shall execute at the higher of its + priority or the highest of the priority ceilings of all the mutexes + owned by this thread and initialized with this attribute, regardless of + whether other threads are blocked on any of these mutexes or not. + + "While a thread is holding a mutex which has been initialized with + the PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT protocol attributes, + it shall not be subject to being moved to the tail of the scheduling queue + at its priority in the event that its original priority is changed, + such as by a call to sched_setparam(). Likewise, when a thread unlocks + a mutex that has been initialized with the PTHREAD_PRIO_INHERIT or + PTHREAD_PRIO_PROTECT protocol attributes, it shall not be subject to + being moved to the tail of the scheduling queue at its priority in the + event that its original priority is changed." + Status: Open + Priority: Low, probably not that useful + o C++ Support ^^^^^^^^^^^ diff --git a/arch/arm/src/Makefile b/arch/arm/src/Makefile index 790880c86a..3d4f30043b 100644 --- a/arch/arm/src/Makefile +++ b/arch/arm/src/Makefile @@ -71,7 +71,7 @@ SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) LDFLAGS = $(ARCHSCRIPT) -EXTRA_LIBS = +EXTRA_LIBS ?= LINKLIBS = ifeq ($(WINTOOL),y) diff --git a/arch/arm/src/stm32/Make.defs b/arch/arm/src/stm32/Make.defs index 79f0979cc7..516cc434e3 100644 --- a/arch/arm/src/stm32/Make.defs +++ b/arch/arm/src/stm32/Make.defs @@ -76,8 +76,9 @@ ifneq ($(CONFIG_IDLE_CUSTOM),y) CHIP_CSRCS += stm32_idle.c endif +CHIP_CSRCS += stm32_pmstop.c stm32_pmstandby.c ifeq ($(CONFIG_PM),y) -CHIP_CSRCS += stm32_pminitialize.c stm32_pmstop.c stm32_pmstandby.c +CHIP_CSRCS += stm32_pminitialize.c endif ifeq ($(CONFIG_STM32_ETHMAC),y) diff --git a/arch/arm/src/stm32/stm32_pm.h b/arch/arm/src/stm32/stm32_pm.h index 87af09cb93..25c56ecbb9 100644 --- a/arch/arm/src/stm32/stm32_pm.h +++ b/arch/arm/src/stm32/stm32_pm.h @@ -48,8 +48,6 @@ #include "chip.h" #include "up_internal.h" -#ifdef CONFIG_PM - /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ @@ -75,7 +73,9 @@ extern "C" { * state activities. */ +#ifdef CONFIG_PM EXTERN sem_t g_pmsem; +#endif /**************************************************************************** * Public Function Prototypes @@ -99,7 +99,8 @@ EXTERN sem_t g_pmsem; * errno value is returned to indicate the cause of the failure. * * Assumptions: - * The caller holds the PM semaphore (g_pmsem). + * The caller holds the PM semaphore (g_pmsem) if this function is used + * as part of the NuttX power management logic. * ****************************************************************************/ @@ -121,7 +122,8 @@ EXTERN int stm32_pmstop(bool lpds); * failure. * * Assumptions: - * The caller holds the PM semaphore (g_pmsem). + * The caller holds the PM semaphore (g_pmsem) if this function is used + * as part of the NuttX power management logic. * ****************************************************************************/ @@ -133,5 +135,4 @@ EXTERN int stm32_pmstandby(void); #endif #endif /* __ASSEMBLY__ */ -#endif /* CONFIG_PM */ #endif /* __ARCH_ARM_SRC_STM32_STM32_PM_H */ diff --git a/arch/arm/src/stm32/stm32_pmstandby.c b/arch/arm/src/stm32/stm32_pmstandby.c index 7364dbaeb8..6846ac1f13 100644 --- a/arch/arm/src/stm32/stm32_pmstandby.c +++ b/arch/arm/src/stm32/stm32_pmstandby.c @@ -46,8 +46,6 @@ #include "stm32_pwr.h" #include "stm32_pm.h" -#ifdef CONFIG_PM - /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ @@ -80,7 +78,8 @@ * failure. * * Assumptions: - * The caller holds the PM semaphore (g_pmsem). + * The caller holds the PM semaphore (g_pmsem) if this function is used + * as part of the NuttX power management logic. * ****************************************************************************/ @@ -112,5 +111,3 @@ int stm32_pmstandby(void) asm("WFI"); return OK; /* Won't get here */ } - -#endif /* CONFIG_PM */ diff --git a/arch/arm/src/stm32/stm32_pmstop.c b/arch/arm/src/stm32/stm32_pmstop.c index 259f0d7dfa..55e8201c6a 100644 --- a/arch/arm/src/stm32/stm32_pmstop.c +++ b/arch/arm/src/stm32/stm32_pmstop.c @@ -46,8 +46,6 @@ #include "stm32_pwr.h" #include "stm32_pm.h" -#ifdef CONFIG_PM - /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ @@ -82,7 +80,8 @@ * errno value is returned to indicate the cause of the failure. * * Assumptions: - * The caller holds the PM semaphore (g_pmsem). + * The caller holds the PM semaphore (g_pmsem) if this function is used + * as part of the NuttX power management logic. * ****************************************************************************/ @@ -117,5 +116,3 @@ int stm32_pmstop(bool lpds) asm("WFI"); return OK; } - -#endif /* CONFIG_PM */ diff --git a/arch/avr/src/Makefile b/arch/avr/src/Makefile index 5584ca5afd..6bcb8707b8 100644 --- a/arch/avr/src/Makefile +++ b/arch/avr/src/Makefile @@ -76,7 +76,7 @@ SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) LDFLAGS = $(ARCHSCRIPT) -EXTRA_LIBS = +EXTRA_LIBS ?= LINKLIBS = ifeq ($(WINTOOL),y) diff --git a/arch/hc/src/Makefile b/arch/hc/src/Makefile index 9e5be386e5..63b8df643e 100755 --- a/arch/hc/src/Makefile +++ b/arch/hc/src/Makefile @@ -68,7 +68,7 @@ SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) LDFLAGS = $(ARCHSCRIPT) -EXTRA_LIBS = +EXTRA_LIBS ?= LINKLIBS = ifeq ($(WINTOOL),y) diff --git a/arch/mips/src/Makefile b/arch/mips/src/Makefile index 57da4844b5..5c763da1e1 100644 --- a/arch/mips/src/Makefile +++ b/arch/mips/src/Makefile @@ -65,7 +65,7 @@ SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) LDFLAGS = $(ARCHSCRIPT) -EXTRA_LIBS = +EXTRA_LIBS ?= LINKLIBS = ifeq ($(WINTOOL),y) diff --git a/arch/sh/src/Makefile b/arch/sh/src/Makefile index 3423b63f49..4a6f3eb9c3 100644 --- a/arch/sh/src/Makefile +++ b/arch/sh/src/Makefile @@ -51,7 +51,7 @@ SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) LDFLAGS = $(ARCHSCRIPT) -EXTRA_LIBS = +EXTRA_LIBS ?= LINKLIBS = LDPATHES = $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS))) diff --git a/arch/x86/src/Makefile b/arch/x86/src/Makefile index 8b7032a095..1221262965 100644 --- a/arch/x86/src/Makefile +++ b/arch/x86/src/Makefile @@ -65,7 +65,7 @@ SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) LDFLAGS = $(ARCHSCRIPT) -EXTRA_LIBS = +EXTRA_LIBS ?= LINKLIBS = ifeq ($(WINTOOL),y)