Spark configuration updates from David Sidrane

This commit is contained in:
Gregory Nutt
2013-10-16 07:55:04 -06:00
parent f44c54bcc0
commit c511ebd035
9 changed files with 994 additions and 251 deletions
+40
View File
@@ -5,4 +5,44 @@
if ARCH_BOARD_SPARK
config SPARK_FLASH
bool "MTD driver for onboard 2M FLASH"
default y
select MTD
select MTD_SST25
select FS_FAT
select STM32_SPI2
select MTD_BYTE_WRITE
---help---
Configures an MTD device for use with the onboard flash
config SPARK_FLASH_SPI
int "Flash SPI bus number"
default 2
depends on SPARK_FLASH
---help---
Selects the SPI bus number identying that SPI interface that
connects the Flash to the MCU.
config SPARK_FLASH_MINOR
int "Minor number for the FLASH /dev/fat entry"
default 0
depends on SPARK_FLASH
---help---
Sets the minor number for the FLASH MTD /dev entry
config SPARK_FLASH_PART
bool "Enable partition support on FLASH"
default n
depends on SPARK_FLASH
---help---
Enables creation of partitions on the FLASH
config SPARK_FLASH_PART_LIST
string "Flash partition size list"
default "512,1536"
depends on SPARK_FLASH_PART
---help---
Comma separated list of partition sizes in KB
endif
+478 -19
View File
File diff suppressed because it is too large Load Diff
+125 -10
View File
@@ -145,16 +145,63 @@
#endif
/* LED definitions ******************************************************************/
/* 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 /* Tied to LED_USR */
#define BOARD_LED2 1 /* Tied to LED_RGB RED */
#define BOARD_LED3 2 /* Tied to LED_RGB BLUE */
#define BOARD_LED4 3 /* Tied to LED_RGB GREEN */
#define BOARD_NLEDS 4
#define BOARD_USR_LED_BLUE BOARD_LED1
#define BOARD_RGB_LED_RED BOARD_LED2
#define BOARD_RGB_LED_GREEN BOARD_LED4
#define BOARD_RGB_LED_BLUE BOARD_LED3
/* LED bits for use with stm32_setleds() */
#define BOARD_USR_LED_BIT (1 << BOARD_USR_LED_BLUE)
#define BOARD_RED_LED_BIT (1 << BOARD_RGB_LED_RED)
#define BOARD_BLUE_LED_BIT (1 << BOARD_RGB_LED_BLUE)
#define BOARD_GREEN_LED_BIT (1 << BOARD_RGB_LED_GREEN)
#define LED_ACTIVE_LOW (BOARD_RED_LED_BIT|BOARD_BLUE_LED_BIT|BOARD_GREEN_LED_BIT)
/* If CONFIG_ARCH_LEDs is defined, then NuttX will control the 4 LEDs on board the
* spark. The following definitions describe how NuttX controls the LEDs:
*/
/* LED1 LED2 LED3 LED4 */
/* blue red blue green Color */
#define LED_STARTED 0 /* ------ ------ ------ ------ --------- */
#define LED_HEAPALLOCATE 1 /* OFF ON OFF OFF Red */
#define LED_IRQSENABLED 2 /* OFF OFF ON OFF Blue */
#define LED_STACKCREATED 3 /* OFF ON OFF ON Orange */
#define LED_INIRQ 4 /* N/C OFF OFF ON Green */
#define LED_SIGNAL 5 /* N/C ON N/C N/C Red Glow */
#define LED_ASSERTION 6 /* N/C N/C ON N/C Blue Glow */
#define LED_PANIC 7 /* N/C ON ON ON White */
#define LED_NUM_CODES 8
/* Button definitions ***************************************************************/
/* The Spark supports two buttons; only one button is controllable by software:
*
* BTN: user and wake-up button connected to the I/O PB2/BOOT1 of the STM32F103CB.
* N.B. Since BOOT0 is tied to GND it is a moot point that BTN signal is connected
* to the BOOT1 signal.
* RESET: This pushbutton connected to NRST is used to RESET the STM32F103CB.
*/
#define BUTTON_USER 0
#define NUM_BUTTONS 1
#define BUTTON_USER_BIT (1 << BUTTON_USER)
#define BUTTON_ACTIVE_LOW (BUTTON_USER_BIT)
/* The board has only one controllable LED */
#define LED_STARTED 0 /* No LEDs */
#define LED_HEAPALLOCATE 1 /* LED1 on */
#define LED_IRQSENABLED 2 /* LED2 on */
#define LED_STACKCREATED 3 /* LED1 on */
#define LED_INIRQ 4 /* LED1 off */
#define LED_SIGNAL 5 /* LED2 on */
#define LED_ASSERTION 6 /* LED1 + LED2 */
#define LED_PANIC 7 /* LED1 / LED2 blinking */
/************************************************************************************
* Public Data
@@ -165,7 +212,8 @@
#undef EXTERN
#if defined(__cplusplus)
#define EXTERN extern "C"
extern "C" {
extern "C"
{
#else
#define EXTERN extern
#endif
@@ -173,6 +221,54 @@ extern "C" {
/************************************************************************************
* Public Function Prototypes
************************************************************************************/
/************************************************************************************
* Button support.
*
* Description:
* up_buttoninit() must be called to initialize button resources. After
* that, up_buttons() may be called to collect the current state of all
* buttons or up_irqbutton() may be called to register button interrupt
* handlers.
*
* After up_buttoninit() has been called, up_buttons() may be called to
* collect the state of all buttons. up_buttons() returns an 8-bit bit set
* with each bit associated with a button. See the BUTTON_*_BIT and JOYSTICK_*_BIT
* definitions in board.h for the meaning of each bit.
*
* up_irqbutton() may be called to register an interrupt handler that will
* be called when a button is depressed or released. The ID value is a
* button enumeration value that uniquely identifies a button resource. See the
* BUTTON_* and JOYSTICK_* definitions in board.h for the meaning of enumeration
* value. The previous interrupt handler address is returned (so that it may
* restored, if so desired).
*
************************************************************************************/
#ifdef CONFIG_ARCH_BUTTONS
void up_buttoninit(void);
uint8_t up_buttons(void);
#ifdef CONFIG_ARCH_IRQBUTTONS
xcpt_t up_irqbutton(int id, xcpt_t irqhandler);
#endif
#endif
/************************************************************************************
* Name: up_ledinit, up_setled, and up_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
#undef up_ledinit // Remove macro definition to reuse name
void up_ledinit(void);
void up_setled(int led, bool ledon);
void up_setleds(uint8_t ledset, uint8_t led_states_set);
#endif
/************************************************************************************
* Name: stm32_boardinitialize
*
@@ -185,6 +281,25 @@ extern "C" {
void stm32_boardinitialize(void);
/************************************************************************************
* Name: nsh_archinitialize
*
* Description:
* Perform architecture specific initialization for NSH.
*
* CONFIG_NSH_ARCHINIT=y :
* Called from the NSH library
*
* CONFIG_BOARD_INITIALIZE=y, CONFIG_NSH_LIBRARY=y, &&
* CONFIG_NSH_ARCHINIT=n:
* Called from board_initialize().
*
************************************************************************************/
#ifdef CONFIG_NSH_LIBRARY
int nsh_archinitialize(void);
#endif
#undef EXTERN
#if defined(__cplusplus)
}
+127 -43
View File
@@ -100,8 +100,8 @@ CONFIG_ARCH_HAVE_MPU=y
#
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set
CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y
# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set
# CONFIG_SERIAL_TERMIOS is not set
#
@@ -199,17 +199,17 @@ CONFIG_STM32_DFU=y
# CONFIG_STM32_ADC3 is not set
# CONFIG_STM32_BKP is not set
# CONFIG_STM32_CAN1 is not set
# CONFIG_STM32_CRC is not set
CONFIG_STM32_CRC=y
# CONFIG_STM32_DMA1 is not set
# CONFIG_STM32_DMA2 is not set
# CONFIG_STM32_DAC1 is not set
# CONFIG_STM32_DAC2 is not set
CONFIG_STM32_I2C1=y
CONFIG_STM32_I2C2=y
# CONFIG_STM32_I2C1 is not set
# CONFIG_STM32_I2C2 is not set
# CONFIG_STM32_PWR is not set
# CONFIG_STM32_SDIO is not set
# CONFIG_STM32_SPI1 is not set
# CONFIG_STM32_SPI2 is not set
CONFIG_STM32_SPI2=y
# CONFIG_STM32_TIM1 is not set
# CONFIG_STM32_TIM2 is not set
# CONFIG_STM32_TIM3 is not set
@@ -218,23 +218,23 @@ CONFIG_STM32_I2C2=y
# CONFIG_STM32_TIM6 is not set
# CONFIG_STM32_TIM7 is not set
# CONFIG_STM32_TIM8 is not set
CONFIG_STM32_USART1=y
# CONFIG_STM32_USART2 is not set
# CONFIG_STM32_USART1 is not set
CONFIG_STM32_USART2=y
# CONFIG_STM32_USART3 is not set
# CONFIG_STM32_UART4 is not set
# CONFIG_STM32_UART5 is not set
CONFIG_STM32_USB=y
# CONFIG_STM32_IWDG is not set
# CONFIG_STM32_WWDG is not set
CONFIG_STM32_I2C=y
# CONFIG_STM32_I2C is not set
#
# Alternate Pin Mapping
#
# CONFIG_STM32_I2C1_REMAP is not set
# CONFIG_STM32_USART1_REMAP is not set
CONFIG_STM32_JTAG_DISABLE=y
# CONFIG_STM32_JTAG_FULL_ENABLE is not set
# CONFIG_STM32_JTAG_DISABLE is not set
CONFIG_STM32_JTAG_FULL_ENABLE=y
# CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set
# CONFIG_STM32_JTAG_SW_ENABLE is not set
# CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG is not set
@@ -253,9 +253,9 @@ CONFIG_STM32_USART=y
# I2C Configuration
#
# CONFIG_STM32_I2C_DYNTIMEO is not set
CONFIG_STM32_I2CTIMEOSEC=1
CONFIG_STM32_I2CTIMEOMS=500
CONFIG_STM32_I2CTIMEOTICKS=500
# CONFIG_STM32_I2CTIMEOSEC is not set
# CONFIG_STM32_I2CTIMEOMS is not set
# CONFIG_STM32_I2CTIMEOTICKS is not set
# CONFIG_STM32_I2C_DUTY16_9 is not set
#
@@ -317,16 +317,26 @@ CONFIG_ARCH_BOARD="spark"
#
CONFIG_ARCH_HAVE_LEDS=y
CONFIG_ARCH_LEDS=y
CONFIG_NSH_MMCSDMINOR=0
CONFIG_ARCH_HAVE_BUTTONS=y
CONFIG_ARCH_BUTTONS=y
CONFIG_ARCH_HAVE_IRQBUTTONS=y
CONFIG_ARCH_IRQBUTTONS=y
#
# Board-Specific Options
#
CONFIG_SPARK_FLASH=y
CONFIG_SPARK_FLASH_SPI=2
CONFIG_SPARK_FLASH_MINOR=0
CONFIG_SPARK_FLASH_PART=y
CONFIG_SPARK_FLASH_PART_LIST="256,768"
CONFIG_SPARK_FLASH_MOUNT_POINT="/mnt/p%d"
#
# RTOS Features
#
# CONFIG_BOARD_INITIALIZE is not set
CONFIG_BOARD_INITIALIZE=y
CONFIG_MSEC_PER_TICK=10
CONFIG_RR_INTERVAL=200
# CONFIG_SCHED_INSTRUMENTATION is not set
@@ -390,24 +400,40 @@ CONFIG_DEV_NULL=y
# CONFIG_RAMDISK is not set
# CONFIG_CAN is not set
# CONFIG_PWM is not set
CONFIG_I2C=y
# CONFIG_I2C is not set
# CONFIG_I2C_SLAVE is not set
CONFIG_I2C_TRANSFER=y
# CONFIG_I2C_TRANSFER is not set
# CONFIG_I2C_WRITEREAD is not set
# CONFIG_I2C_POLLED is not set
# CONFIG_I2C_TRACE is not set
CONFIG_ARCH_HAVE_I2CRESET=y
# CONFIG_ARCH_HAVE_I2CRESET is not set
# CONFIG_I2C_RESET is not set
# CONFIG_SPI is not set
CONFIG_SPI=y
# CONFIG_RTC is not set
# CONFIG_WATCHDOG is not set
# CONFIG_ANALOG is not set
CONFIG_ANALOG=y
# CONFIG_AUDIO_DEVICES is not set
# CONFIG_BCH is not set
# CONFIG_INPUT is not set
# CONFIG_LCD is not set
# CONFIG_MMCSD is not set
# CONFIG_MTD is not set
#
# MTD Configuration
#
CONFIG_MTD=y
CONFIG_MTD_PARTITION=y
CONFIG_MTD_BYTE_WRITE=y
#
# MTD Device Drivers
#
CONFIG_MTD_SST25=y
CONFIG_SST25_SPIMODE=1
CONFIG_SST25_SPIFREQUENCY=20000000
CONFIG_SST25_SECTOR512=n
# CONFIG_PIPES is not set
# CONFIG_PM is not set
# CONFIG_POWER is not set
@@ -415,26 +441,27 @@ CONFIG_ARCH_HAVE_I2CRESET=y
CONFIG_SERIAL=y
# CONFIG_DEV_LOWCONSOLE is not set
# CONFIG_16550_UART is not set
CONFIG_ARCH_HAVE_USART1=y
CONFIG_ARCH_HAVE_USART2=y
#
# USART Configuration
#
CONFIG_USART1_ISUART=y
CONFIG_USART2_ISUART=y
CONFIG_MCU_SERIAL=y
CONFIG_STANDARD_SERIAL=y
CONFIG_USART1_SERIAL_CONSOLE=y
CONFIG_USART2_SERIAL_CONSOLE=y
# CONFIG_NO_SERIAL_CONSOLE is not set
#
# USART1 Configuration
#
CONFIG_USART1_RXBUFSIZE=256
CONFIG_USART1_TXBUFSIZE=256
CONFIG_USART1_BAUD=115200
CONFIG_USART1_BITS=8
CONFIG_USART1_PARITY=0
CONFIG_USART1_2STOP=0
CONFIG_USART2_RXBUFSIZE=256
CONFIG_USART2_TXBUFSIZE=256
CONFIG_USART2_BAUD=115200
CONFIG_USART2_BITS=8
CONFIG_USART2_PARITY=0
CONFIG_USART2_2STOP=0
# CONFIG_USART1_IFLOWCONTROL is not set
# CONFIG_USART1_OFLOWCONTROL is not set
# CONFIG_SERIAL_IFLOWCONTROL is not set
@@ -457,12 +484,64 @@ CONFIG_USBDEV_TRACE_NRECORDS=32
#
# USB Device Class Driver Options
#
# CONFIG_USBDEV_COMPOSITE is not set
CONFIG_USBDEV_COMPOSITE=y
CONFIG_COMPOSITE_IAD=y
CONFIG_COMPOSITE_EP0MAXPACKET=64
CONFIG_COMPOSITE_VENDORID=0x03eb
CONFIG_COMPOSITE_VENDORSTR="NuttX"
CONFIG_COMPOSITE_PRODUCTID=0x0000
CONFIG_COMPOSITE_PRODUCTSTR="Composite device"
CONFIG_COMPOSITE_SERIALSTR="001"
CONFIG_COMPOSITE_CONFIGSTR="NuttX COMPOSITE config"
CONFIG_COMPOSITE_VERSIONNO=0x1010
# CONFIG_PL2303 is not set
# CONFIG_CDCACM is not set
# CONFIG_USBMSC is not set
CONFIG_CDCACM=y
CONFIG_CDCACM_CONSOLE=n
CONFIG_CDCACM_COMPOSITE=y
CONFIG_CDCACM_IFNOBASE=0
CONFIG_CDCACM_STRBASE=0
CONFIG_CDCACM_EP0MAXPACKET=64
CONFIG_CDCACM_EPINTIN=1
CONFIG_CDCACM_EPINTIN_FSSIZE=64
CONFIG_CDCACM_EPINTIN_HSSIZE=64
CONFIG_CDCACM_EPBULKOUT=3
CONFIG_CDCACM_EPBULKOUT_FSSIZE=64
CONFIG_CDCACM_EPBULKOUT_HSSIZE=512
CONFIG_CDCACM_EPBULKIN=2
CONFIG_CDCACM_EPBULKIN_FSSIZE=64
CONFIG_CDCACM_EPBULKIN_HSSIZE=512
CONFIG_CDCACM_NWRREQS=4
CONFIG_CDCACM_NRDREQS=4
CONFIG_CDCACM_BULKIN_REQLEN=768
CONFIG_CDCACM_RXBUFSIZE=256
CONFIG_CDCACM_TXBUFSIZE=256
CONFIG_CDCACM_VENDORID=0x0525
CONFIG_CDCACM_PRODUCTID=0xa4a7
CONFIG_CDCACM_VENDORSTR="NuttX"
CONFIG_CDCACM_PRODUCTSTR="CDC/ACM Serial"
CONFIG_USBMSC=y
CONFIG_USBMSC_COMPOSITE=y
CONFIG_USBMSC_IFNOBASE=2
CONFIG_USBMSC_STRBASE=2
CONFIG_USBMSC_EP0MAXPACKET=64
CONFIG_USBMSC_EPBULKOUT=2
CONFIG_USBMSC_EPBULKIN=3
CONFIG_USBMSC_NWRREQS=4
CONFIG_USBMSC_NRDREQS=4
CONFIG_USBMSC_BULKINREQLEN=512
CONFIG_USBMSC_BULKOUTREQLEN=512
CONFIG_USBMSC_VENDORID=0x584e
CONFIG_USBMSC_VENDORSTR="NuttX"
CONFIG_USBMSC_PRODUCTID=0x5342
CONFIG_USBMSC_PRODUCTSTR="Mass Storage"
CONFIG_USBMSC_VERSIONNO=0x399
# CONFIG_USBMSC_REMOVABLE is not set
# CONFIG_USBHOST is not set
# CONFIG_WIRELESS is not set
CONFIG_WIRELESS=y
# CONFIG_WL_CC1101 is not set
CONFIG_WL_CC3000=y
# CONFIG_WL_CC3000_DUMMY is not set
# CONFIG_WL_NRF24L01 is not set
#
# System Logging Device Options
@@ -487,7 +566,12 @@ CONFIG_USBDEV_TRACE_NRECORDS=32
#
# CONFIG_DISABLE_MOUNTPOINT is not set
# CONFIG_FS_RAMMAP is not set
# CONFIG_FS_FAT is not set
CONFIG_FS_FAT=y
CONFIG_FAT_LCNAMES=y
CONFIG_FAT_LFN=y
CONFIG_FAT_MAXFNAME=32
CONFIG_FS_FATTIME=y
# CONFIG_FS_NXFFS is not set
# CONFIG_FS_ROMFS is not set
# CONFIG_FS_SMARTFS is not set
@@ -764,13 +848,13 @@ CONFIG_NSH_CONSOLE=y
#
# I2C tool
#
CONFIG_SYSTEM_I2CTOOL=y
CONFIG_I2CTOOL_MINBUS=1
CONFIG_I2CTOOL_MAXBUS=2
CONFIG_I2CTOOL_MINADDR=0x0
CONFIG_I2CTOOL_MAXADDR=0xf0
CONFIG_I2CTOOL_MAXREGADDR=0xff
CONFIG_I2CTOOL_DEFFREQ=100000
# CONFIG_SYSTEM_I2CTOOL is not set
# CONFIG_I2CTOOL_MINBUS is not set
# CONFIG_I2CTOOL_MAXBUS is not set
# CONFIG_I2CTOOL_MINADDR is not set
# CONFIG_I2CTOOL_MAXADDR is not set
# CONFIG_I2CTOOL_MAXREGADDR is not set
# CONFIG_I2CTOOL_DEFFREQ is not set
#
# FLASH Program Installation
+23 -5
View File
@@ -41,22 +41,40 @@ CFLAGS += -I$(TOPDIR)/sched
ASRCS =
AOBJS = $(ASRCS:.S=$(OBJEXT))
CSRCS = up_boot.c up_leds.c up_usbdev.c
CSRCS = up_boot.c up_spi.c
ifeq ($(CONFIG_NX_LCDDRIVER),y)
ifeq ($(CONFIG_HAVE_CXX),y)
CSRCS += up_cxxinitialize.c
endif
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_NSH_ARCHINIT),y)
CSRCS += up_nsh.c
endif
ifeq ($(CONFIG_INPUT),y)
ifeq ($(CONFIG_USBDEV),y)
CSRCS += up_usbdev.c
endif
ifeq ($(CONFIG_USBMSC),y)
ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
CSRCS += up_composite.c
endif
ifeq ($(CONFIG_WL_CC3000),y)
CSRCS += up_wireless.c
endif
ifeq ($(CONFIG_WATCHDOG),y)
CSRCS += up_watchdog.c
CSRCS += up_watchdog.c
endif
COBJS = $(CSRCS:.c=$(OBJEXT))
+159 -18
View File
@@ -4,6 +4,7 @@
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
* Author: Laurent Latil <laurent@latil.nom.fr>
* Librae <librae8226@gmail.com>
* David_s5 <david_s5@nscdg.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -34,8 +35,8 @@
*
************************************************************************************/
#ifndef __CONFIGS_SPARK_SRC_SPARK_INTERNAL_H
#define __CONFIGS_SPARK_SRC_SPARK_INTERNAL_H
#ifndef __CONFIGS_SPARK_SRC_SPARK_H
#define __CONFIGS_SPARK_SRC_SPARK_H
/************************************************************************************
* Included Files
@@ -48,6 +49,106 @@
/************************************************************************************
* Definitions
************************************************************************************/
/* During the development of the SparkCore, the hardware was in limited supply
* As a work around david_s5 created a SparkCore Big board (http://nscdg.com/spark/sparkBB.png)
* that will interface with a maple mini (http://leaflabs.com/docs/hardware/maple-mini.html),
* and a CC3000BOOST (https://estore.ti.com/CC3000BOOST-CC3000-BoosterPack-P4258.aspx)
*
* It breaks out the Tx, Rx to connect to a FTDI TTL-232RG-VREG3V3-WE for the console and
* wires in the spark LEDs and serial flash to the same I/O as the sparkcore. It has a Jlink
* compatible Jtag connector on it.
*
*
* Board GPIO Usage:
*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
* PA[00] WKUP/USART2_CTS/ADC12_IN0/TIM2_CH1_ETR 10 A0 JP1-12 J1-8
* PA[01] USART2_RTS/ADC12_IN1/TIM2_CH2 11 A1 JP1-11 J1-9
* PA[02] USART2_TX/ADC12_IN2/TIM2_CH3 12 TX JP1-3 J1-10
* PA[03] USART2_RX/ADC12_IN3/TIM2_CH4 13 RX JP1-4 J1-11
* PA[04] SPI1_NSS/USART2_CK/ADC12_IN4 14 A2 JP1-10 J1-12
* PA[05] SPI1_SCK/ADC12_IN5 15 A3 JP1-9 J1-13
* PA[06] SPI1_MISO/ADC12_IN6/TIM3_CH1 16 A4 JP1-8 J1-14
* PA[07] SPI1_MOSI/ADC12_IN7/TIM3_CH2 17 A5 JP1-7 J1-15
* PA[08] USART1_CK/TIM1_CH1/MCO 29 LED2 J2-5
* PA[09] USART1_TX/TIM1_CH2 30 LED3 J2-6
* PA[10] USART1_RX/TIM1_CH3 31 LED4 J2-7
* PA[11] USART1_CTS/CAN_RX/TIM1_CH4/USBDM 32 USBM USBDM J2-8
* PA[12] USART1_RTS/CAN_TX/TIM1_ETR/USBDP 33 USBP USBDP J2-9
* PA[13] JTMS/SWDIO 34 D7,LED1 JP2-5 J2-10
* PA[14] JTCK/SWCLK 37 D6 JP2-6 J2-11
* PA[15] JTDI 38 D5 JP2-7 J2-12
*
* PB[00] ADC12_IN8/TIM3_CH3 18 A6 JP1-6 J1-16
* PB[01] ADC12_IN9/TIM3_CH4 19 A7 JP1-5 R1-LED
* PB[02] BOOT1 20 BTN BTN J1-17
* PB[03] JTDO 39 D4 JP2-8 J2-13
* PB[04] NJTRST 40 D3 JP2-9 J2-14
* PB[05] I2C1_SMBA 41 D2 JP2-10 J2-15
* PB[06] I2C1_SCL/TIM4_CH1 42 D1 JP2-11 J2-16
* PB[07] I2C1_SDA/TIM4_CH2 43 D0 JP2-12 J2-17
* PB[08] TIM4_CH3 45 WIFI_EN BOOT0 J2-18
* PB[09] TIM4_CH4 46 MEM_CS DISC
* PB[10] I2C2_SCL/USART3_TX 21 USB_DISC J1-18
* PB[11] I2C2_SDA/USART3_RX 22 WIFI_INT J1-19
* PB[12] SPI2_NSS/I2C2_SMBA/USART3_CK/TIM1_BKIN 25 WIFI_CS J2-1
* PB[13] SPI2_SCK/USART3_CTS/TIM1_CH1N 26 SPI_CLK J2-2
* PB[14] SPI2_MISO/USART3_RTS/TIM1_CH2N 27 SPI_MISO J2-3
* PB[15] SPI2_MOSI/TIM1_CH3N 28 SPI_MOSI J2-4
*
* PC[13] TAMPER-RTC 2 N.C. J1-4
* PC[14] OSC32_IN 3 OSC32_IN Y1 N.C.
* PC[15] OSC32_OUT 4 OSC32_OUT Y1 N.C.
*
* PD[00] OSC_IN 5 OSC_IN Y2 8MHZ OSC 8MHZ OSC
* PD[01] OSC_OUT 6 OSC_OUT Y2 8MHZ OSC 8MHZ OSC
*
* Spark Core pin Mapping
*
* GPIO ADC Timer I2C UART SPI JTAG Other 5V? STM Pin# Core HW Core SW
* PA0 CH0 2_CH1_ETR 2_CTS 10 A0 10
* PA1 CH1 2_CH2 2_RTS 11 A1 11
* PA2 CH2 2_CH3 2_TX 12 TX 19
* PA3 CH3 2_CH4 2_RX 13 RX 18
* PA4 CH4 2_CK 1_NSS 14 A2 12
* PA5 CH5 1_SCK 15 A3 13
* PA6 CH6 3_CH1 1_MISO 16 A4 14
* PA7 CH7 3_CH2 1_MOSI 17 A5 15
* PA8 1_CH1 1_CK MCO Yes 29 LED2
* PA9 1_CH2 1_TX Yes 30 LED3
* PA10 1_CH3 1_RX Yes 31 LED4
* PA11 1_CH4 1_CTS USB- Yes 32 USBM
* PA12 1_ETR 1_RTS USB+ Yes 33 USBP
* PA13 JTMS Yes 34 D7 7
* PA14 JTCK Yes 37 D6 6
* PA15 JTDI Yes 38 D5 5
*
* PB0 CH8 3_CH3 18 A6 16
* PB1 CH9 3_CH4 19 A7 17
* PB2 BOOT1 Yes 20 BTN
* PB3 JTDO Yes 39 D4 4
* PB4 NJTRST Yes 40 D3 3
* PB5 1_SMBA 41 D2 2
* PB6 4_CH1 1_SCL Yes 42 D1 1
* PB7 4_CH2 1_SDA Yes 43 D0 0
* PB8 4_CH3 Yes 45 WIFI_EN
* PB9 4_CH4 Yes 46 MEM_CS
* PB10 2_SCL 3_TX Yes 21 USB_DISC
* PB11 2_SDA 3_RX Yes 22 WIFI_INT
* PB12 1_BKIN 2_SMBA 3_CK 2_NSS Yes 25 WIFI_CS
* PB13 3_CTS 2_SCK Yes 26 SPI_SCK
* PB14 3_RTS 2_MISO Yes 27 SPI_MISO
* PB15 2_MOSI Yes 28 SPI_MOSI
*
* PC13 2
* PC14 RTC Oscillator 3 OSC32IN
* PC15 RTC Oscillator 4 OSC32OUT
*
* PD0 Oscillator <= 5 OSC
* PD1 Oscillator => 6 OSC
*/
/* How many SPI modules does this chip support? The LM3S6918 supports 2 SPI
* modules (others may support more -- in such case, the following must be
@@ -61,12 +162,62 @@
# undef CONFIG_STM32_SPI2
#endif
/* GPIOs **************************************************************/
/* LEDs *****************************************************************************/
/*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
*
* PA[08] USART1_CK/TIM1_CH1/MCO 29 LED2 J2-5
* PA[09] USART1_TX/TIM1_CH2 30 LED3 J2-6
* PA[10] USART1_RX/TIM1_CH3 31 LED4 J2-7
* PA[13] JTMS/SWDIO 34 D7,LED1 JP2-5 J2-10
*/
#define GPIO_LED (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|\
GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN1)
#define GPIO_USB_PULLUP (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|\
GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9)
#define GPIO_LED1 (GPIO_PORTA | GPIO_PIN13 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_LED_USR GPIO_LED1
#define GPIO_LED2 (GPIO_PORTA | GPIO_PIN8 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_LED3 (GPIO_PORTA | GPIO_PIN9 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_LED4 (GPIO_PORTA | GPIO_PIN10 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_USB_PULLUP (GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz | GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9)
/* BUTTON ***************************************************************************/
/*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
* PB[02] BOOT1 20 BTN BTN J1-17
*/
#define IRQBUTTON BUTTON_USER
#define GPIO_BTN (GPIO_PORTB | GPIO_PIN2 | GPIO_INPUT | GPIO_CNF_INPULLUP | GPIO_EXTI)
/* MEMORYs **************************************************************************/
/*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
* PB[09] TIM4_CH4 46 MEM_CS DISC
*/
#define GPIO_MEM_CS (GPIO_PORTB | GPIO_PIN9 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
/* CCS3000 **************************************************************************/
/*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
* PB[08] TIM4_CH3 45 WIFI_EN BOOT0 J2-18
* PB[11] I2C2_SDA/USART3_RX 22 WIFI_INT J1-19
* PB[12] SPI2_NSS/I2C2_SMBA/USART3_CK/TIM1_BKIN 25 WIFI_CS J2-1
*/
#define GPIO_WIFI_EN (GPIO_PORTB | GPIO_PIN8 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_WIFI_CS (GPIO_PORTB | GPIO_PIN12 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_WIFI_INT (GPIO_PORTB | GPIO_PIN11 | GPIO_INPUT | GPIO_CNF_INPULLUP | GPIO_EXTI)
/************************************************************************************
* Public Types
@@ -102,15 +253,5 @@ void stm32_spiinitialize(void);
void stm32_usbinitialize(void);
/************************************************************************************
* Name: up_wlinitialize
*
* Description:
* Called to configure wireless module (nRF24L01).
*
************************************************************************************/
void up_wlinitialize(void);
#endif /* __ASSEMBLY__ */
#endif /* __CONFIGS_SPARK_SRC_SPARK_INTERNAL_H */
#endif /* __CONFIGS_SPARK_SRC_SPARK_H */
+41 -3
View File
@@ -77,14 +77,19 @@ void stm32_boardinitialize(void)
up_ledinit();
#endif
/* Configure SPI chip selects if 1) SPI is not disabled, and 2) the weak function
#ifdef CONFIG_ARCH_HAVE_BUTTONS
up_buttoninit();
#endif
/* Configure SPI chip selects if 1) SP2 is not disabled, and 2) the weak function
* stm32_spiinitialize() has been brought into the link.
*/
#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2)
stm32_spiinitialize();
#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || defined(CONFIG_STM32_SPI3)
stm32_spiinitialize();
#endif
/* Initialize USB is 1) USBDEV is selected, 2) the USB controller is not
* disabled, and 3) the weak function stm32_usbinitialize() has been brought
* into the build.
@@ -93,4 +98,37 @@ void stm32_boardinitialize(void)
#if defined(CONFIG_USBDEV) && defined(CONFIG_STM32_USB)
stm32_usbinitialize();
#endif
}
/****************************************************************************
* Name: board_initialize
*
* Description:
* If CONFIG_BOARD_INITIALIZE is selected, then an additional
* initialization call will be performed in the boot-up sequence to a
* function called board_initialize(). board_initialize() will be
* called immediately after up_intiialize() is called and just before the
* initial application is started. This additional initialization phase
* may be used, for example, to initialize board-specific device drivers.
*
****************************************************************************/
#ifdef CONFIG_BOARD_INITIALIZE
void board_initialize(void)
{
/* Perform NSH initialization here instead of from the NSH. This
* alternative NSH initialization is necessary when NSH is ran in user-space
* but the initialization function must run in kernel space.
*/
#if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_NSH_ARCHINIT)
nsh_archinitialize();
wireless_archinitialize();
#endif
}
#endif
-152
View File
@@ -1,152 +0,0 @@
/****************************************************************************
* configs/spark/src/up_leds.c
*
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
* Librae <librae8226@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <stdint.h>
#include <stdbool.h>
#include <debug.h>
#include <arch/board/board.h>
#include "chip.h"
#include "up_arch.h"
#include "up_internal.h"
#include "stm32.h"
#include "spark.h"
/****************************************************************************
* Definitions
****************************************************************************/
/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG
* with CONFIG_DEBUG_VERBOSE too)
*/
#ifdef CONFIG_DEBUG_LEDS
# define leddbg lldbg
# define ledvdbg llvdbg
#else
# define leddbg(x...)
# define ledvdbg(x...)
#endif
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
static inline void set_led(bool v)
{
ledvdbg("Turn LED %s\n", v? "on":"off");
stm32_gpiowrite(GPIO_LED, v);
}
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: up_ledinit
****************************************************************************/
#ifdef CONFIG_ARCH_LEDS
void up_ledinit(void)
{
/* Configure LED GPIO for output */
stm32_configgpio(GPIO_LED);
}
/****************************************************************************
* Name: up_ledon
****************************************************************************/
void up_ledon(int led)
{
ledvdbg("up_ledon(%d)\n", led);
switch (led)
{
case LED_STARTED:
case LED_HEAPALLOCATE:
/* As the board provides only one soft controllable LED, we simply turn
* it on when the board boots
*/
set_led(true);
break;
case LED_PANIC:
/* For panic state, the LED is blinking */
set_led(true);
break;
default:
break;
}
}
/****************************************************************************
* Name: up_ledoff
****************************************************************************/
void up_ledoff(int led)
{
ledvdbg("up_ledoff(%d)\n", led);
switch (led)
{
case LED_STARTED:
case LED_PANIC:
/* For panic state, the LED is blinking */
set_led(false);
break;
default:
break;
}
}
#endif /* CONFIG_ARCH_LEDS */
+1 -1
View File
@@ -119,7 +119,7 @@
int up_wdginitialize(void)
{
/* Initialize tha register the watchdog timer device */
/* Initialize and register the watchdog timer device */
#if defined(CONFIG_STM32_WWDG)
stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH);