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)
* configs/lm3s6432-s2: Add support for the TI RDK-S2E (LM3S6432S2E) board
(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.
The Kwikstik is used with the FreeScale Tower System (mostly just to provide a simple UART connection)
</p>
<ul>
<p>
<b>STATUS:</b>
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.
NOTE: Some of these remaining tasks are shared with the K60 work described below.
</p>
</ul>
</td>
</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.
The TWR-K60N51 includes with the FreeScale Tower System which provides (among other things) a DBP UART connection.
</p>
<ul>
<p>
<b>STATUS:</b>
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.
NOTE: Most of these remaining tasks (excluding the Ethernet driver) are the same as the pending K40 tasks described above.
</p>
</ul>
</td>
</tr>
<tr>
@ -1693,6 +1697,7 @@
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.
</p>
<ul>
<p>
<b>STATUS:</b>
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).
A more complete port would include support for SDIO and USB OTG which are not available in NuttX 6.13.
</p>
</ul>
</td>
</tr>
<tr>
@ -1720,11 +1726,13 @@
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.
</p>
<ul>
<p>
<b>STATUS:</b>
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.
</p>
</ul>
</td>
</tr>
<tr>
@ -1738,7 +1746,7 @@
<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
<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>
</td>
</tr>

View File

@ -383,14 +383,14 @@ extern "C" {
EXTERN void lpc17_boardinitialize(void);
/************************************************************************************
* Name: lpc17_ledinit and lpc17_setled
* Name: lpc17_ledinit, lpc17_setled, and lpc17_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 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_irqbutton() may be called to register button interrupt handlers.
*
****************************************************************************/
************************************************************************************/
#ifdef CONFIG_ARCH_BUTTONS
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
* definitions above for the meaning of each bit.
*
****************************************************************************/
************************************************************************************/
EXTERN uint8_t up_buttons(void);

View File

@ -212,7 +212,28 @@
#endif
/* 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_HEAPALLOCATE 1 /* LED2 */
@ -356,6 +377,22 @@ extern "C" {
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.
*

View File

@ -40,7 +40,17 @@ CFLAGS += -I$(TOPDIR)/sched
ASRCS =
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)
CSRCS += up_adc.c

View File

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