LMS3 and PM update

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4902 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-07-04 00:06:25 +00:00
parent 966d08230f
commit 20708a40ec
8 changed files with 99 additions and 27 deletions

View File

@ -73,9 +73,9 @@ CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP=lm3s CONFIG_ARCH_CHIP=lm3s
CONFIG_ARCH_CHIP_LM3S9B96=y CONFIG_ARCH_CHIP_LM3S9B96=y
CONFIG_ARCH_BOARD=ekk-lm3s9b96 CONFIG_ARCH_BOARD=ekk-lm3s9b96
CONFIG_ARCH_BOARD_EKK_LM3S9B96=y CONFIG_ARCH_BOARD_EKKLM3S9B96=y
CONFIG_BOARD_LOOPSPERMSEC=4531 CONFIG_BOARD_LOOPSPERMSEC=4531
CONFIG_DRAM_SIZE=0x00010000 CONFIG_DRAM_SIZE=0x00018000
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE) CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
@ -161,8 +161,8 @@ CONFIG_UART2_2STOP=0
# value is large, then larger values of this setting may cause # value is large, then larger values of this setting may cause
# Rx FIFO overrun errors. Default: half of the Tx FIFO size (4). # Rx FIFO overrun errors. Default: half of the Tx FIFO size (4).
# #
CONFIG_SSI0_DISABLE=n CONFIG_SSI0_DISABLE=y
CONFIG_SSI1_DISABLE=n CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4 #CONFIG_SSI_TXLIMIT=4
@ -424,6 +424,14 @@ CONFIG_FS_FAT=y
CONFIG_FS_ROMFS=n CONFIG_FS_ROMFS=n
CONFIG_NFS=y CONFIG_NFS=y
#
# SPI-based MMC/SD driver
#
# CONFIG_MMCSD_NSLOTS
# Number of MMC/SD slots supported by the driver
#
CONFIG_MMCSD_NSLOTS=0
# #
# TCP/IP and UDP support via uIP # TCP/IP and UDP support via uIP
# CONFIG_NET - Enable or disable all network features # CONFIG_NET - Enable or disable all network features
@ -452,7 +460,7 @@ CONFIG_NFS=y
# #
CONFIG_NET=y CONFIG_NET=y
CONFIG_NET_IPv6=n CONFIG_NET_IPv6=n
CONFIG_NSOCKET_DESCRIPTORS=8 CONFIG_NSOCKET_DESCRIPTORS=40
CONFIG_NET_SOCKOPTS=y CONFIG_NET_SOCKOPTS=y
CONFIG_NET_BUFSIZE=562 CONFIG_NET_BUFSIZE=562
CONFIG_NET_TCP=y CONFIG_NET_TCP=y

View File

@ -73,9 +73,9 @@ CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP=lm3s CONFIG_ARCH_CHIP=lm3s
CONFIG_ARCH_CHIP_LM3S9B96=y CONFIG_ARCH_CHIP_LM3S9B96=y
CONFIG_ARCH_BOARD=ekk-lm3s9b96 CONFIG_ARCH_BOARD=ekk-lm3s9b96
CONFIG_ARCH_BOARD_EKK_LM3S9B96=y CONFIG_ARCH_BOARD_EKKLM3S9B96=y
CONFIG_BOARD_LOOPSPERMSEC=4531 CONFIG_BOARD_LOOPSPERMSEC=4531
CONFIG_DRAM_SIZE=0x00010000 CONFIG_DRAM_SIZE=0x00018000
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE) CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
@ -161,8 +161,8 @@ CONFIG_UART2_2STOP=0
# value is large, then larger values of this setting may cause # value is large, then larger values of this setting may cause
# Rx FIFO overrun errors. Default: half of the Tx FIFO size (4). # Rx FIFO overrun errors. Default: half of the Tx FIFO size (4).
# #
CONFIG_SSI0_DISABLE=n CONFIG_SSI0_DISABLE=y
CONFIG_SSI1_DISABLE=n CONFIG_SSI1_DISABLE=y
CONFIG_SSI_POLLWAIT=y CONFIG_SSI_POLLWAIT=y
#CONFIG_SSI_TXLIMIT=4 #CONFIG_SSI_TXLIMIT=4
@ -423,6 +423,14 @@ CONFIG_FS_FAT=n
CONFIG_FS_ROMFS=n CONFIG_FS_ROMFS=n
CONFIG_NFS=n CONFIG_NFS=n
#
# SPI-based MMC/SD driver
#
# CONFIG_MMCSD_NSLOTS
# Number of MMC/SD slots supported by the driver
#
CONFIG_MMCSD_NSLOTS=0
# #
# TCP/IP and UDP support via uIP # TCP/IP and UDP support via uIP
# CONFIG_NET - Enable or disable all network features # CONFIG_NET - Enable or disable all network features

View File

@ -436,6 +436,10 @@ Where <subdir> is one of the following:
driver is waiting for the network to come up. That is probably driver is waiting for the network to come up. That is probably
a bug in the Ethernet driver behavior! a bug in the Ethernet driver behavior!
Network File System (NFS) support can be added by setting the
following in your configuration file:
CONFIG_NFS=y
nx: nx:
And example using the NuttX graphics system (NX). This example And example using the NuttX graphics system (NX). This example
uses the P14201 OLED driver. uses the P14201 OLED driver.

View File

@ -418,8 +418,10 @@ CONFIG_PREALLOC_TIMERS=4
# CONFIG_FS_FAT - Enable FAT filesystem support # CONFIG_FS_FAT - Enable FAT filesystem support
# CONFIG_FAT_SECTORSIZE - Max supported sector size # CONFIG_FAT_SECTORSIZE - Max supported sector size
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support # CONFIG_FS_ROMFS - Enable ROMFS filesystem support
# CONFIG_NFS - Enable NFS filesystem support
CONFIG_FS_FAT=y CONFIG_FS_FAT=y
CONFIG_FS_ROMFS=n CONFIG_FS_ROMFS=n
CONFIG_NFS=n
# #
# SPI-based MMC/SD driver # SPI-based MMC/SD driver

View File

@ -304,6 +304,18 @@ void stm32_deselectlcd(void);
#endif /* CONFIG_STM32_FSMC */ #endif /* CONFIG_STM32_FSMC */
/************************************************************************************
* Name: up_unregisterbuttons
*
* Description:
* Un-register button handlers
*
************************************************************************************/
#if defined(CONFIG_PM) && defined(CONFIG_IDLE_CUSTOM)
void up_unregisterbuttons(void);
#endif
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#endif /* __CONFIGS_STM3210E_EVAL_SRC_STM3210E_INTERNAL_H */ #endif /* __CONFIGS_STM3210E_EVAL_SRC_STM3210E_INTERNAL_H */

View File

@ -123,23 +123,43 @@ static void up_idlepm(void)
switch (newstate) switch (newstate)
{ {
case PM_NORMAL: case PM_NORMAL:
break; break;
case PM_IDLE: case PM_IDLE:
{
/* Check if the buttons have already been registered */
up_unregisterbuttons();
/* Initialize the buttoms to wake up the system from the idle
* mode
*/
up_pmbuttons();
}
break; break;
case PM_STANDBY: case PM_STANDBY:
/* Configure all the buttons as wakeup EXTI */ {
/* Check if the buttons have already been registered */
up_pmbuttons(); up_unregisterbuttons();
/* Call the STM32 stop mode */ /* Configure all the buttons as wakeup EXTI */
stm32_pmstop(true); up_pmbuttons();
/* Call the STM32 stop mode */
stm32_pmstop(true);
}
break; break;
case PM_SLEEP: case PM_SLEEP:
(void)stm32_pmstandby(); {
(void)stm32_pmstandby();
}
break; break;
default: default:
@ -182,12 +202,8 @@ void up_idle(void)
/* Perform IDLE mode power management */ /* Perform IDLE mode power management */
up_idlepm();
/* Sleep until an interrupt occurs to save power */
BEGIN_IDLE(); BEGIN_IDLE();
__asm("wfi"); up_idlepm();
END_IDLE(); END_IDLE();
#endif #endif
} }

View File

@ -1740,7 +1740,7 @@ int up_lcdinitialize(void)
#ifdef CONFIG_PM #ifdef CONFIG_PM
ret = pm_register(&g_lcdcb); ret = pm_register(&g_lcdcb);
if (ret =! OK) if (ret != OK)
{ {
lcddbg("ERROR: pm_register failed: %d\n", ret); lcddbg("ERROR: pm_register failed: %d\n", ret);
} }

View File

@ -186,7 +186,7 @@ static int button7_handler(int irq, FAR void *context);
* Private Data * Private Data
****************************************************************************/ ****************************************************************************/
/* Button Names */ /* Button Names */
static const struct button_info_s g_buttoninfo[NUM_PMBUTTONS] = static const struct button_info_s g_buttoninfo[NUM_PMBUTTONS] =
{ {
@ -260,11 +260,17 @@ static const struct button_info_s g_buttoninfo[NUM_PMBUTTONS] =
* Private Functions * Private Functions
****************************************************************************/ ****************************************************************************/
/****************************************************************************
* Name: button_handler
*
* Description:
* Handle a button wake-up interrupt
*
****************************************************************************/
#ifdef CONFIG_ARCH_IRQBUTTONS #ifdef CONFIG_ARCH_IRQBUTTONS
static void button_handler(int id, int irq) static void button_handler(int id, int irq)
{ {
int i;
/* At this point the MCU should have already awakened. Just report some /* At this point the MCU should have already awakened. Just report some
* activity in order to drive the rest of the system to the PM_NORMAL state * activity in order to drive the rest of the system to the PM_NORMAL state
*/ */
@ -273,10 +279,7 @@ static void button_handler(int id, int irq)
/* Un-register button handlers */ /* Un-register button handlers */
for (i = CONFIG_PM_IRQBUTTONS_MIN; i <= CONFIG_PM_IRQBUTTONS_MAX; i++) up_unregisterbuttons();
{
(void)up_irqbutton(i, NULL);
}
} }
#if MIN_BUTTON < 1 #if MIN_BUTTON < 1
@ -379,4 +382,23 @@ void up_pmbuttons(void)
#endif #endif
} }
/****************************************************************************
* Name: up_unregisterbuttons
*
* Description:
* Un-register button handlers
*
****************************************************************************/
void up_unregisterbuttons(void)
{
#ifdef CONFIG_ARCH_IRQBUTTONS
int i;
for (i = CONFIG_PM_IRQBUTTONS_MIN; i <= CONFIG_PM_IRQBUTTONS_MAX; i++)
{
(void)up_irqbutton(i, NULL);
}
#endif
}
#endif /* defined(CONFIG_PM) && defined(CONFIG_IDLE_CUSTOM) */ #endif /* defined(CONFIG_PM) && defined(CONFIG_IDLE_CUSTOM) */