summaryrefslogtreecommitdiff
path: root/nuttx/configs/mikroe-stm32f4
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2013-05-03 12:52:33 -0600
committerGregory Nutt <gnutt@nuttx.org>2013-05-03 12:52:33 -0600
commit1092e4b16395d945517b9bcbc2c48828fbe9303c (patch)
treee2171ab3f21ae1e0610903694901c776a7e1a1d8 /nuttx/configs/mikroe-stm32f4
parent2567deb0338a774086231fbb778b639c10398cc1 (diff)
downloadpx4-nuttx-1092e4b16395d945517b9bcbc2c48828fbe9303c.tar.gz
px4-nuttx-1092e4b16395d945517b9bcbc2c48828fbe9303c.tar.bz2
px4-nuttx-1092e4b16395d945517b9bcbc2c48828fbe9303c.zip
Rearchitecting of some MTD, partition, SMART interfaces, and FLASH drivers to: Better use the byte write capbility when available and to use smaller erase sectors for the erase sector size when available).
Diffstat (limited to 'nuttx/configs/mikroe-stm32f4')
-rw-r--r--nuttx/configs/mikroe-stm32f4/Kconfig69
-rw-r--r--nuttx/configs/mikroe-stm32f4/README.txt15
-rw-r--r--nuttx/configs/mikroe-stm32f4/src/up_nsh.c82
-rw-r--r--nuttx/configs/mikroe-stm32f4/usbnsh/defconfig67
4 files changed, 160 insertions, 73 deletions
diff --git a/nuttx/configs/mikroe-stm32f4/Kconfig b/nuttx/configs/mikroe-stm32f4/Kconfig
index 8e55f0d17..0790f123a 100644
--- a/nuttx/configs/mikroe-stm32f4/Kconfig
+++ b/nuttx/configs/mikroe-stm32f4/Kconfig
@@ -5,53 +5,94 @@
if ARCH_BOARD_MIKROE_STM32F4
-config PM_BUTTONS
- bool "PM Button support"
+config MIKROE_FLASH
+ bool "MTD driver for onboard 1M FLASH"
default n
- depends on PM && ARCH_IRQBUTTONS
+ select MTD
+ select MTD_M25P
+ select MTD_SMART
+ select FS_SMARTFS
+ select STM32_SPI3
+ select MTD_BYTE_WRITE
---help---
- Enable PM button EXTI interrupts to support PM testing
+ Configures an MTD device for use with the onboard flash
-config PM_BUTTON_ACTIVITY
- int "Button PM activity weight"
- default 10
- depends on PM_BUTTONS
+config MIKROE_FLASH_MINOR
+ int "Minor number for the FLASH /dev/smart entry"
+ default 0
+ depends on MIKROE_FLASH
+ ---help---
+ Sets the minor number for the FLASH MTD /dev entry
+
+config MIKROE_FLASH_PART
+ bool "Enable partition support on FLASH"
+ default n
+ depends on MIKROE_FLASH
+ ---help---
+ Enables creation of partitions on the FLASH
+
+config MIKROE_FLASH_PART_LIST
+ string "Flash partition size list"
+ default "256,768"
+ depends on MIKROE_FLASH_PART
+ ---help---
+ Comma separated list of partition sizes in KB
+
+config MIKROE_RAMMTD
+ bool "MTD driver for SMARTFS RAM disk"
+ default n
+ select MTD
+ select RAMMTD
---help---
- The activity weight to report to the power management subsystem when a button is pressed.
+ Configures an MTD based RAM device for use with SMARTFS.
+
+config MIKROE_RAMMTD_MINOR
+ int "Minor number for RAM /dev/smart entry"
+ default 1
+ depends on MIKROE_RAMMTD
+ ---help---
+ Sets the minor number for the RAM MTD /dev entry
+
+config MIKROE_RAMMTD_SIZE
+ int "Size in KB of the RAM device to create"
+ default 32
+ depends on MIKROE_RAMMTD
+ ---help---
+ Sets the size of static RAM allocation for the SMART RAM device
config PM_ALARM_SEC
int "PM_STANDBY delay (seconds)"
default 15
depends on PM && RTC_ALARM
- --help---
+ ---help---
Number of seconds to wait in PM_STANDBY before going to PM_STANDBY mode.
config PM_ALARM_NSEC
int "PM_STANDBY delay (nanoseconds)"
default 0
depends on PM && RTC_ALARM
- --help---
+ ---help---
Number of additional nanoseconds to wait in PM_STANDBY before going to PM_STANDBY mode.
config PM_SLEEP_WAKEUP
bool "PM_SLEEP wake-up alarm"
default n
depends on PM && RTC_ALARM
- --help---
+ ---help---
Wake-up of PM_SLEEP mode after a delay and resume normal operation.
config PM_SLEEP_WAKEUP_SEC
int "PM_SLEEP delay (seconds)"
default 10
depends on PM && RTC_ALARM
- --help---
+ ---help---
Number of seconds to wait in PM_SLEEP before going to PM_STANDBY mode.
config PM_SLEEP_WAKEUP_NSEC
int "PM_SLEEP delay (nanoseconds)"
default 0
depends on PM && RTC_ALARM
- --help---
+ ---help---
Number of additional nanoseconds to wait in PM_SLEEP before going to PM_STANDBY mode.
endif
diff --git a/nuttx/configs/mikroe-stm32f4/README.txt b/nuttx/configs/mikroe-stm32f4/README.txt
index ed4ecbf2c..7d46fbc5c 100644
--- a/nuttx/configs/mikroe-stm32f4/README.txt
+++ b/nuttx/configs/mikroe-stm32f4/README.txt
@@ -2,7 +2,20 @@ README
======
This README discusses issues unique to NuttX configurations for the
-MikroElektronika Mikromedia for STM32F4 development board.
+MikroElektronika Mikromedia for STM32F4 development board. This is
+another board support by NuttX that uses the same STM32F407VGT6 MCU
+as does the STM32F4-Discovery board. This board, however, has very
+different on-board peripherals than does the STM32F4-Discovery:
+
+ - TFT display with touch panel,
+ - VS1053 stereo audio codec with headphone jack,
+ - SD card slot,
+ - Serial FLASH memory,
+ - USB OTG FS with micro-AB connector, and
+ - Battery connect and batter charger circuit.
+
+See the http://www.mikroe.com/mikromedia/stm32-m4/ for more information
+about this board.
Contents
========
diff --git a/nuttx/configs/mikroe-stm32f4/src/up_nsh.c b/nuttx/configs/mikroe-stm32f4/src/up_nsh.c
index e92a02e83..226a715f6 100644
--- a/nuttx/configs/mikroe-stm32f4/src/up_nsh.c
+++ b/nuttx/configs/mikroe-stm32f4/src/up_nsh.c
@@ -128,9 +128,14 @@
# define CONFIG_EXAMPLES_SMART_NEBLOCKS (22)
# endif
-# undef CONFIG_EXAMPLES_SMART_BUFSIZE
-# define CONFIG_EXAMPLES_SMART_BUFSIZE \
- (CONFIG_RAMMTD_ERASESIZE * CONFIG_EXAMPLES_SMART_NEBLOCKS)
+#ifdef CONFIG_MIKROE_RAMMTD
+# ifndef CONFIG_MIKROE_RAMMTD_MINOR
+# define CONFIG_MIKROE_RAMMTD_MINOR 1
+# endif
+# ifndef CONFIG_MIKROE_RAMMTD_SIZE
+# define CONFIG_MIKROE_RAMMTD_SIZE 32
+# endif
+#endif
/* Debug ********************************************************************/
@@ -151,11 +156,6 @@
/****************************************************************************
* Private Data
****************************************************************************/
-/* Pre-allocated simulated flash */
-
-#ifdef CONFIG_RAMMTD
-//static uint8_t g_simflash[CONFIG_EXAMPLES_SMART_BUFSIZE];
-#endif
/****************************************************************************
* Public Functions
@@ -197,7 +197,7 @@ int nsh_archinitialize(void)
/* Now bind the SPI interface to the M25P8 SPI FLASH driver */
-#ifdef CONFIG_MTD
+#if defined(CONFIG_MTD) && defined(CONFIG_MIKROE_FLASH)
message("nsh_archinitialize: Bind SPI to the SPI flash driver\n");
mtd = m25p_initialize(spi);
if (!mtd)
@@ -208,28 +208,78 @@ int nsh_archinitialize(void)
{
message("nsh_archinitialize: Successfully bound SPI port 3 to the SPI FLASH driver\n");
- /* Now initialize a SMART Flash block device and bind it to the MTD device */
+#ifdef CONFIG_MIKROE_FLASH_PART
+ {
+ int partno;
+ int partsize;
+ int partoffset;
+ const char *partstring = CONFIG_MIKROE_FLASH_PART_LIST;
+ const char *ptr;
+ FAR struct mtd_dev_s *mtd_part;
+ char partname[4];
+
+ /* Now create a partition on the FLASH device */
+
+ partno = 0;
+ ptr = partstring;
+ partoffset = 0;
+ while (*ptr != '\0')
+ {
+ /* Get the partition size */
+
+ partsize = atoi(ptr);
+ mtd_part = mtd_partition(mtd, partoffset, (partsize>>2)*16);
+ partoffset += (partsize >> 2) * 16;
+
+ /* Now initialize a SMART Flash block device and bind it to the MTD device */
#if defined(CONFIG_MTD_SMART) && defined(CONFIG_FS_SMARTFS)
- smart_initialize(0, mtd);
+ sprintf(partname, "p%d", partno);
+ smart_initialize(CONFIG_MIKROE_FLASH_MINOR, mtd_part, partname);
#endif
+
+ /* Update the pointer to point to the next size in the list */
+
+ while ((*ptr >= '0') && (*ptr <= '9'))
+ {
+ ptr++;
+ }
+
+ if (*ptr == ',')
+ {
+ ptr++;
+ }
+
+ /* Increment the part number */
+
+ partno++;
+ }
+ }
+#else /* CONFIG_MIKROE_FLASH_PART */
+
+ /* Configure the device with no partition support */
+
+ smart_initialize(CONFIG_MIKROE_FLASH_MINOR, mtd, NULL);
+
+#endif /* CONFIG_MIKROE_FLASH_PART */
}
/* Create a RAM MTD device if configured */
-#ifdef CONFIG_RAMMTD
+#if defined(CONFIG_RAMMTD) && defined(CONFIG_MIKROE_RAMMTD)
{
- uint8_t *start = (uint8_t *) kmalloc(CONFIG_EXAMPLES_SMART_BUFSIZE);
- mtd = rammtd_initialize(start, CONFIG_EXAMPLES_SMART_BUFSIZE);
+ uint8_t *start = (uint8_t *) kmalloc(CONFIG_MIKROE_RAMMTD_SIZE * 1024);
+ mtd = rammtd_initialize(start, CONFIG_MIKROE_RAMMTD_SIZE * 1024);
mtd->ioctl(mtd, MTDIOC_BULKERASE, 0);
/* Now initialize a SMART Flash block device and bind it to the MTD device */
+
#if defined(CONFIG_MTD_SMART) && defined(CONFIG_FS_SMARTFS)
- smart_initialize(1, mtd);
+ smart_initialize(CONFIG_MIKROE_RAMMTD_MINOR, mtd, NULL);
#endif
}
-#endif /* CONFIG_RAMMTD */
+#endif /* CONFIG_RAMMTD && CONFIG_MIKROE_RAMMTD */
#endif /* CONFIG_MTD */
#endif /* CONFIG_STM32_SPI3 */
diff --git a/nuttx/configs/mikroe-stm32f4/usbnsh/defconfig b/nuttx/configs/mikroe-stm32f4/usbnsh/defconfig
index 29e948be5..3340a95e6 100644
--- a/nuttx/configs/mikroe-stm32f4/usbnsh/defconfig
+++ b/nuttx/configs/mikroe-stm32f4/usbnsh/defconfig
@@ -16,7 +16,7 @@ CONFIG_HOST_LINUX=y
#
# Build Configuration
#
-# CONFIG_APPS_DIR="../apps"
+CONFIG_APPS_DIR="../apps"
# CONFIG_BUILD_2PASS is not set
#
@@ -38,27 +38,8 @@ CONFIG_RAW_BINARY=y
#
# Debug Options
#
-CONFIG_DEBUG=y
-# CONFIG_DEBUG_VERBOSE is not set
-
-#
-# Subsystem Debug Options
-#
-# CONFIG_DEBUG_MM is not set
-# CONFIG_DEBUG_SCHED is not set
-# CONFIG_DEBUG_USB is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_DEBUG_LIB is not set
-# CONFIG_DEBUG_BINFMT is not set
-# CONFIG_DEBUG_GRAPHICS is not set
-
-#
-# Driver Debug Options
-#
-# CONFIG_DEBUG_ANALOG is not set
-# CONFIG_DEBUG_SPI is not set
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_DEBUG_SYMBOLS=y
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_SYMBOLS is not set
#
# System Type
@@ -104,7 +85,6 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y
# CONFIG_ARCH_FPU is not set
CONFIG_ARCH_HAVE_MPU=y
# CONFIG_ARMV7M_MPU is not set
-# CONFIG_DEBUG_HARDFAULT is not set
#
# ARMV7M Configuration Options
@@ -310,6 +290,13 @@ CONFIG_NSH_MMCSDSPIPORTNO=0
#
# Board-Specific Options
#
+CONFIG_MIKROE_FLASH=y
+CONFIG_MIKROE_FLASH_MINOR=0
+CONFIG_MIKROE_FLASH_PART=y
+CONFIG_MIKROE_FLASH_PART_LIST="256,768"
+CONFIG_MIKROE_RAMMTD=y
+CONFIG_MIKROE_RAMMTD_MINOR=1
+CONFIG_MIKROE_RAMMTD_SIZE=32
#
# RTOS Features
@@ -408,21 +395,27 @@ CONFIG_MMCSD_SPI=y
CONFIG_MMCSD_SPICLOCK=20000000
# CONFIG_MMCSD_SDIO is not set
CONFIG_MTD=y
-# CONFIG_MTD_PARTITION is not set
+
+#
+# MTD Configuration
+#
+CONFIG_MTD_PARTITION=y
+CONFIG_MTD_BYTE_WRITE=y
+
+#
+# MTD Device Drivers
+#
CONFIG_RAMMTD=y
CONFIG_RAMMTD_BLOCKSIZE=512
CONFIG_RAMMTD_ERASESIZE=4096
CONFIG_RAMMTD_ERASESTATE=0xff
# CONFIG_RAMMTD_FLASHSIM is not set
-CONFIG_RAMMTD_SMART=y
# CONFIG_MTD_AT24XX is not set
# CONFIG_MTD_AT45DB is not set
CONFIG_MTD_M25P=y
CONFIG_M25P_SPIMODE=0
CONFIG_M25P_MANUFACTURER=0x1C
CONFIG_M25P_MEMORY_TYPE=0x31
-CONFIG_M25P_SUBSECTOR_ERASE=y
-CONFIG_M25P_BYTEWRITE=y
CONFIG_MTD_SMART=y
CONFIG_MTD_SMART_SECTOR_SIZE=512
# CONFIG_MTD_RAMTRON is not set
@@ -441,7 +434,6 @@ CONFIG_SERIAL_REMOVABLE=y
CONFIG_ARCH_HAVE_USART2=y
CONFIG_MCU_SERIAL=y
CONFIG_STANDARD_SERIAL=y
-# CONFIG_SERIAL_TIOCSERGSTRUCT is not set
# CONFIG_USART2_SERIAL_CONSOLE is not set
CONFIG_NO_SERIAL_CONSOLE=y
@@ -529,7 +521,7 @@ CONFIG_FS_ROMFS=y
CONFIG_FS_SMARTFS=y
CONFIG_SMARTFS_ERASEDSTATE=0xff
CONFIG_SMARTFS_MAXNAMLEN=16
-CONFIG_SMARTFS_MULTI_ROOT_DIRS=y
+# CONFIG_SMARTFS_MULTI_ROOT_DIRS is not set
# CONFIG_FS_BINFS is not set
#
@@ -650,6 +642,7 @@ CONFIG_EXAMPLES_NSH=y
# CONFIG_EXAMPLES_NX is not set
# CONFIG_EXAMPLES_NXCONSOLE is not set
# CONFIG_EXAMPLES_NXFFS is not set
+# CONFIG_EXAMPLES_SMART is not set
# CONFIG_EXAMPLES_NXFLAT is not set
# CONFIG_EXAMPLES_NXHELLO is not set
# CONFIG_EXAMPLES_NXIMAGE is not set
@@ -664,8 +657,8 @@ CONFIG_EXAMPLES_NSH=y
# CONFIG_EXAMPLES_ROMFS is not set
# CONFIG_EXAMPLES_SENDMAIL is not set
# CONFIG_EXAMPLES_SERLOOP is not set
-CONFIG_EXAMPLES_FLASH_TEST=y
-CONFIG_EXAMPLES_SMART_TEST=y
+# CONFIG_EXAMPLES_FLASH_TEST is not set
+# CONFIG_EXAMPLES_SMART_TEST is not set
# CONFIG_EXAMPLES_TELNETD is not set
# CONFIG_EXAMPLES_THTTPD is not set
# CONFIG_EXAMPLES_TIFF is not set
@@ -774,23 +767,13 @@ CONFIG_NSH_LINELEN=64
CONFIG_NSH_NESTDEPTH=3
# CONFIG_NSH_DISABLESCRIPT is not set
# CONFIG_NSH_DISABLEBG is not set
-CONFIG_NSH_ROMFSETC=y
-# CONFIG_NSH_ROMFSRC is not set
-CONFIG_NSH_ROMFSMOUNTPT="/etc"
-CONFIG_NSH_INITSCRIPT="init.d/rcS"
-CONFIG_NSH_ROMFSDEVNO=0
-CONFIG_NSH_ROMFSSECTSIZE=64
-CONFIG_NSH_FATDEVNO=0
-CONFIG_NSH_FATSECTSIZE=512
-CONFIG_NSH_FATNSECTORS=1024
-CONFIG_NSH_FATMOUNTPT="/tmp"
+# CONFIG_NSH_ROMFSETC is not set
CONFIG_NSH_CONSOLE=y
# CONFIG_NSH_USBCONSOLE is not set
#
# USB Trace Support
#
-# CONFIG_NSH_USBDEV_TRACE is not set
# CONFIG_NSH_CONDEV is not set
CONFIG_NSH_ARCHINIT=y