Add APIs to support user access to the STM3240G-EVAL LEDs

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4263 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2012-01-05 16:58:18 +00:00
parent 550a7ef561
commit d880b5c4b5
6 changed files with 107 additions and 49 deletions

View File

@ -2344,3 +2344,5 @@
* arch/arm/src/lm3s: Add support for the LM3S6432S2E (Contributed by Mike Smith) * arch/arm/src/lm3s: Add support for the LM3S6432S2E (Contributed by Mike Smith)
* configs/lm3s6432-s2: Add support for the TI RDK-S2E (LM3S6432S2E) board * configs/lm3s6432-s2: Add support for the TI RDK-S2E (LM3S6432S2E) board
(Contributed by Mike Smith) (Contributed by Mike Smith)
* configs/stm3240g-eval/src: Add APIs support to support user access to the
LEDs

View File

@ -1642,6 +1642,7 @@
Refer to the <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KWIKSTIK-K40">Freescale web site</a> for further information about this board. Refer to the <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KWIKSTIK-K40">Freescale web site</a> for further information about this board.
The Kwikstik is used with the FreeScale Tower System (mostly just to provide a simple UART connection) The Kwikstik is used with the FreeScale Tower System (mostly just to provide a simple UART connection)
</p> </p>
<ul>
<p> <p>
<b>STATUS:</b> <b>STATUS:</b>
The unverified KwikStik K40 first appeared in NuttX-6.8 The unverified KwikStik K40 first appeared in NuttX-6.8
@ -1652,6 +1653,7 @@
(4) develop support for USB host and device, and (2) develop an LCD driver. (4) develop support for USB host and device, and (2) develop an LCD driver.
NOTE: Some of these remaining tasks are shared with the K60 work described below. NOTE: Some of these remaining tasks are shared with the K60 work described below.
</p> </p>
</ul>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -1667,6 +1669,7 @@
Refer to the <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=TWR-K60N512-KIT">Freescale web site</a> for further information about this board. Refer to the <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=TWR-K60N512-KIT">Freescale web site</a> for further information about this board.
The TWR-K60N51 includes with the FreeScale Tower System which provides (among other things) a DBP UART connection. The TWR-K60N51 includes with the FreeScale Tower System which provides (among other things) a DBP UART connection.
</p> </p>
<ul>
<p> <p>
<b>STATUS:</b> <b>STATUS:</b>
As of this writing, the basic port is complete and passes the NuttX OS test. As of this writing, the basic port is complete and passes the NuttX OS test.
@ -1679,6 +1682,7 @@
Additional work remaining includes: (1) integrate the Ethernet and SDHC drivers, and (2) develop support for USB host and device. Additional work remaining includes: (1) integrate the Ethernet and SDHC drivers, and (2) develop support for USB host and device.
NOTE: Most of these remaining tasks (excluding the Ethernet driver) are the same as the pending K40 tasks described above. NOTE: Most of these remaining tasks (excluding the Ethernet driver) are the same as the pending K40 tasks described above.
</p> </p>
</ul>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -1693,6 +1697,7 @@
This port uses the Freescale STMicro STM3240G-EVAL board featuring the STM32F407IGH6 MCU. This port uses the Freescale STMicro STM3240G-EVAL board featuring the STM32F407IGH6 MCU.
Refer to the <a href="http://www.st.com/internet/evalboard/product/252216.jsp">STMicro web site</a> for further information about this board. Refer to the <a href="http://www.st.com/internet/evalboard/product/252216.jsp">STMicro web site</a> for further information about this board.
</p> </p>
<ul>
<p> <p>
<b>STATUS:</b> <b>STATUS:</b>
As of this writing, the basic port is complete and first appeared in NuttX-6.12. As of this writing, the basic port is complete and first appeared in NuttX-6.12.
@ -1705,6 +1710,7 @@
Networking intensions include support for Telnet NSH sessions and new configurations for DHPCD and the networking test (nettest). Networking intensions include support for Telnet NSH sessions and new configurations for DHPCD and the networking test (nettest).
A more complete port would include support for SDIO and USB OTG which are not available in NuttX 6.13. A more complete port would include support for SDIO and USB OTG which are not available in NuttX 6.13.
</p> </p>
</ul>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -1720,11 +1726,13 @@
It will used the STMicor STM32F4-Discovery board featuring the STM32F407VGT6 MCU. It will used the STMicor STM32F4-Discovery board featuring the STM32F407VGT6 MCU.
Refer to the <a href="http://www.st.com/internet/evalboard/product/252419.jsp">STMicro web site</a> for further information about this board. Refer to the <a href="http://www.st.com/internet/evalboard/product/252419.jsp">STMicro web site</a> for further information about this board.
</p> </p>
<ul>
<p> <p>
<b>STATUS:</b> <b>STATUS:</b>
This is really a vapor ware, pre-announcement. This is really a vapor ware, pre-announcement.
I have the hardware and the motivation and I expect to announce the availability of support the STM32F4-Discovery in a later NuttX release. I have the hardware and the motivation and I expect to announce the availability of support the STM32F4-Discovery in a later NuttX release.
</p> </p>
</ul>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -1738,7 +1746,7 @@
<b>Development Environments:</b> <b>Development Environments:</b>
1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU Cortex-M3 or 4toolchain, or 3) Cygwin with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux or Cygwin is provided by the NuttX 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU Cortex-M3 or 4toolchain, or 3) Cygwin with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux or Cygwin is provided by the NuttX
<a href="http://sourceforge.net/projects/nuttx/files/buildroot/">buildroot</a> package. <a href="http://sourceforge.net/projects/nuttx/files/buildroot/">buildroot</a> package.
I use FreeScale's <i>CodeWarrior</i> IDE only to work with the JTAG debugger built into the boards. I use FreeScale's <i>CodeWarrior</i> IDE only to work with the JTAG debugger built into the Kinetis boards.
</p> </p>
</td> </td>
</tr> </tr>

View File

@ -383,14 +383,14 @@ extern "C" {
EXTERN void lpc17_boardinitialize(void); EXTERN void lpc17_boardinitialize(void);
/************************************************************************************ /************************************************************************************
* Name: lpc17_ledinit and lpc17_setled * Name: lpc17_ledinit, lpc17_setled, and lpc17_setleds
* *
* Description: * Description:
* If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board LEDs. If * If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board LEDs. If
* CONFIG_ARCH_LEDS is not defined, then the following interfacesare available to * CONFIG_ARCH_LEDS is not defined, then the following interfacesare available to
* control the LEDs from user applications. * control the LEDs from user applications.
* *
****************************************************************************/ ************************************************************************************/
#ifndef CONFIG_ARCH_LEDS #ifndef CONFIG_ARCH_LEDS
EXTERN void lpc17_ledinit(void); EXTERN void lpc17_ledinit(void);
@ -406,7 +406,7 @@ EXTERN void lpc17_setleds(uint8_t ledset);
* up_buttons() may be called to collect the current state of all buttons or * up_buttons() may be called to collect the current state of all buttons or
* up_irqbutton() may be called to register button interrupt handlers. * up_irqbutton() may be called to register button interrupt handlers.
* *
****************************************************************************/ ************************************************************************************/
#ifdef CONFIG_ARCH_BUTTONS #ifdef CONFIG_ARCH_BUTTONS
EXTERN void up_buttoninit(void); EXTERN void up_buttoninit(void);
@ -423,7 +423,7 @@ EXTERN void up_buttoninit(void);
* associated with a button. See the BOARD_BUTTON_*_BIT and BOARD_JOYSTICK_*_BIT * associated with a button. See the BOARD_BUTTON_*_BIT and BOARD_JOYSTICK_*_BIT
* definitions above for the meaning of each bit. * definitions above for the meaning of each bit.
* *
****************************************************************************/ ************************************************************************************/
EXTERN uint8_t up_buttons(void); EXTERN uint8_t up_buttons(void);

View File

@ -212,7 +212,28 @@
#endif #endif
/* LED definitions ******************************************************************/ /* LED definitions ******************************************************************/
/* The STM3240G-EVAL board has 4 LEDs that we will encode as: */ /* If CONFIG_ARCH_LEDS is not defined, then the user can control the LEDs in any
* way. The following definitions are used to access individual LEDs.
*/
/* LED index values for use with stm32_setled() */
#define BOARD_LED1 0
#define BOARD_LED2 1
#define BOARD_LED3 2
#define BOARD_LED4 3
#define BOARD_NLEDS 4
/* LED bits for use with stm32_setleds() */
#define BOARD_LED1_BIT (1 << BOARD_LED1)
#define BOARD_LED2_BIT (1 << BOARD_LED2)
#define BOARD_LED3_BIT (1 << BOARD_LED3)
#define BOARD_LED4_BIT (1 << BOARD_LED4)
/* If CONFIG_ARCH_LEDs is defined, then NuttX will control the 4 LEDs on board the
* STM3240G-EVAL. The following definitions describe how NuttX controls the LEDs:
*/
#define LED_STARTED 0 /* LED1 */ #define LED_STARTED 0 /* LED1 */
#define LED_HEAPALLOCATE 1 /* LED2 */ #define LED_HEAPALLOCATE 1 /* LED2 */
@ -356,6 +377,22 @@ extern "C" {
EXTERN void stm32_boardinitialize(void); EXTERN void stm32_boardinitialize(void);
/************************************************************************************
* Name: stm32_ledinit, stm32_setled, and stm32_setleds
*
* Description:
* If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board LEDs. If
* CONFIG_ARCH_LEDS is not defined, then the following interfacesare available to
* control the LEDs from user applications.
*
************************************************************************************/
#ifndef CONFIG_ARCH_LEDS
EXTERN void stm32_ledinit(void);
EXTERN void stm32_setled(int led, bool ledon);
EXTERN void stm32_setleds(uint8_t ledset);
#endif
/************************************************************************************ /************************************************************************************
* Button support. * Button support.
* *

View File

@ -40,7 +40,17 @@ CFLAGS += -I$(TOPDIR)/sched
ASRCS = ASRCS =
AOBJS = $(ASRCS:.S=$(OBJEXT)) AOBJS = $(ASRCS:.S=$(OBJEXT))
CSRCS = up_boot.c up_leds.c up_buttons.c up_spi.c CSRCS = up_boot.c up_spi.c
ifeq ($(CONFIG_ARCH_LEDS),y)
CSRCS += up_autoleds.c
else
CSRCS += up_userleds.c
endif
ifeq ($(CONFIG_ARCH_BUTTONS),y)
CSRCS += up_buttons.c
endif
ifeq ($(CONFIG_ADC),y) ifeq ($(CONFIG_ADC),y)
CSRCS += up_adc.c CSRCS += up_adc.c

View File

@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
* configs/stm3240g_eval/src/up_leds.c * configs/stm3240g_eval/src/up_autoleds.c
* arch/arm/src/board/up_leds.c * arch/arm/src/board/up_autoleds.c
* *
* Copyright (C) 2011 Gregory Nutt. All rights reserved. * Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org> * Author: Gregory Nutt <gnutt@nuttx.org>
@ -52,6 +52,8 @@
#include "stm32_internal.h" #include "stm32_internal.h"
#include "stm3240g-internal.h" #include "stm3240g-internal.h"
#ifdef CONFIG_ARCH_LEDS
/**************************************************************************** /****************************************************************************
* Definitions * Definitions
****************************************************************************/ ****************************************************************************/
@ -227,7 +229,6 @@ static void led_setonoff(unsigned int bits)
* Name: up_ledinit * Name: up_ledinit
****************************************************************************/ ****************************************************************************/
#ifdef CONFIG_ARCH_LEDS
void up_ledinit(void) void up_ledinit(void)
{ {
/* Configure LED1-4 GPIOs for output */ /* Configure LED1-4 GPIOs for output */