From 01984fe6e743d9815d3be27a994d039849161392 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 20 Oct 2014 12:00:37 -0600 Subject: [PATCH] Add board support for the Olimex EFM32G8809128 STK --- Documentation/README.html | 2 + README.txt | 2 + configs/Kconfig | 199 +++-- configs/README.txt | 4 + configs/efm32-g8xx-stk/src/efm32_autoleds.c | 2 +- configs/olimex-efm32g880f128-stk/Kconfig | 10 + configs/olimex-efm32g880f128-stk/README.txt | 150 ++++ .../olimex-efm32g880f128-stk/include/board.h | 226 +++++ .../olimex-efm32g880f128-stk/nsh/Make.defs | 111 +++ .../olimex-efm32g880f128-stk/nsh/defconfig | 825 ++++++++++++++++++ .../olimex-efm32g880f128-stk/nsh/setenv.sh | 63 ++ .../scripts/ld.script | 110 +++ .../olimex-efm32g880f128-stk/src/.gitignore | 2 + configs/olimex-efm32g880f128-stk/src/Makefile | 77 ++ .../olimex-efm32g880f128-stk/src/efm32_boot.c | 81 ++ .../src/efm32g880f128-stk.h | 78 ++ 16 files changed, 1847 insertions(+), 95 deletions(-) create mode 100644 configs/olimex-efm32g880f128-stk/Kconfig create mode 100644 configs/olimex-efm32g880f128-stk/README.txt create mode 100644 configs/olimex-efm32g880f128-stk/include/board.h create mode 100644 configs/olimex-efm32g880f128-stk/nsh/Make.defs create mode 100644 configs/olimex-efm32g880f128-stk/nsh/defconfig create mode 100755 configs/olimex-efm32g880f128-stk/nsh/setenv.sh create mode 100644 configs/olimex-efm32g880f128-stk/scripts/ld.script create mode 100644 configs/olimex-efm32g880f128-stk/src/.gitignore create mode 100644 configs/olimex-efm32g880f128-stk/src/Makefile create mode 100644 configs/olimex-efm32g880f128-stk/src/efm32_boot.c create mode 100644 configs/olimex-efm32g880f128-stk/src/efm32g880f128-stk.h diff --git a/Documentation/README.html b/Documentation/README.html index dcb9c980b3..5481b0d622 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -142,6 +142,8 @@ | | | `- README.txt | | |- nutiny-nuc120/ | | | `- README.txt + | | |- olimex-efm32g880f129-stk/ + | | | `- README.txt | | |- olimex-lpc1766stk/ | | | `- README.txt | | |- olimex-lpc2378/ diff --git a/README.txt b/README.txt index 6eee8930ce..bc68f1545f 100644 --- a/README.txt +++ b/README.txt @@ -1023,6 +1023,8 @@ nuttx | | `- README.txt | |- nutiny-nuc120/ | | `- README.txt + | |- olimex-efm32g880f129-stk/ + | | `- README.txt | |- olimex-lpc1766stk/ | | `- README.txt | |- olimex-lpc2378/ diff --git a/configs/Kconfig b/configs/Kconfig index dc7cf28c1a..f176d1b484 100755 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -363,6 +363,13 @@ config ARCH_BOARD_NUTINY_NUC120 Nuvoton NUC120 chip, specifically the NUC120LE3AN. See http://www.nuvoton.com/ for further information. +config ARCH_BOARD_OLIMEX_EFM32G880F128_STK + bool "Olimex EFM32G880F128 STK" + depends on ARCH_CHIP_EFM32G880F128 + select ARCH_HAVE_BUTTONS + ---help--- + This options selects the Olimex EFM32G880F128 STK + config ARCH_BOARD_OLIMEXLPC2378 bool "Olimex-lpc2378 board" depends on ARCH_CHIP_LPC2378 @@ -966,100 +973,101 @@ config ARCH_BOARD_CUSTOM_DIR config ARCH_BOARD string - default "amber" if ARCH_BOARD_AMBER - default "arduino-due" if ARCH_BOARD_ARDUINO_DUE - default "avr32dev1" if ARCH_BOARD_AVR32DEV1 - default "c5471evm" if ARCH_BOARD_C5471EVM - default "compal_e86" if ARCH_BOARD_COMPALE86 - default "compal_e88" if ARCH_BOARD_COMPALE88 - default "compal_e99" if ARCH_BOARD_COMPALE99 - default "demo9s12ne64" if ARCH_BOARD_DEMOS92S12NEC64 - default "ea3131" if ARCH_BOARD_EA3131 - default "ea3152" if ARCH_BOARD_EA3152 - default "eagle100" if ARCH_BOARD_EAGLE100 - default "efm32-g8xx-stk" if ARCH_BOARD_EFM32G8XXSTK - default "ekk-lm3s9b96" if ARCH_BOARD_EKKLM3S9B96 - default "ez80f910200kitg" if ARCH_BOARD_EZ80F910200KITG - default "ez80f910200zco" if ARCH_BOARD_EZ80F910200ZCO - default "fire-stm32v2" if ARCH_BOARD_FIRE_STM32 - default "freedom-kl25z" if ARCH_BOARD_FREEDOM_KL25Z - default "hymini-stm32v" if ARCH_BOARD_HYMINI_STM32V - default "kwikstik-k40" if ARCH_BOARD_KWIKSTIK_K40 - default "lincoln60" if ARCH_BOARD_LINCOLN60 - default "lm3s6432-s2e" if ARCH_BOARD_LM3S6432S2E - default "lm3s6965-ek" if ARCH_BOARD_LM3S6965EK - default "lm3s8962-ek" if ARCH_BOARD_LM3S8962EK - default "lm4f120-launchpad" if ARCH_BOARD_LM4F120_LAUNCHPAD - default "lpc4330-xplorer" if ARCH_BOARD_LPC4330_XPLORER - default "lpcxpresso-lpc1768" if ARCH_BOARD_LPCXPRESSO - default "maple" if ARCH_BOARD_MAPLE - default "mbed" if ARCH_BOARD_MBED - default "mcu123-lpc214x" if ARCH_BOARD_MCU123_LPC214X - default "micropendous3" if ARCH_BOARD_MICROPENDOUS3 - default "mirtoo" if ARCH_BOARD_MIRTOO - default "mx1ads" if ARCH_BOARD_MX1ADS - default "ne64badge" if ARCH_BOARD_NE64BADGE - default "ntosd-dm320" if ARCH_BOARD_NTOSD_DM320 - default "nucleus2g" if ARCH_BOARD_NUCLEUS2G - default "nutiny-nuc120" if ARCH_BOARD_NUTINY_NUC120 - default "olimex-lpc1766stk" if ARCH_BOARD_LPC1766STK - default "olimex-lpc2378" if ARCH_BOARD_OLIMEXLPC2378 - default "olimex-lpc-h3131" if ARCH_BOARD_OLIMEX_LPC_H3131 - default "olimex-stm32-h405" if ARCH_BOARD_OLIMEX_STM32H405 - default "olimex-stm32-p107" if ARCH_BOARD_OLIMEX_STM32P107 - default "olimex-stm32-p207" if ARCH_BOARD_OLIMEX_STM32P207 - default "olimex-strp711" if ARCH_BOARD_OLIMEX_STRP711 - default "open1788" if ARCH_BOARD_OPEN1788 - default "p112" if ARCH_BOARD_P112 - default "pcblogic-pic32mx" if ARCH_BOARD_PCBLOGICPIC32MX - default "pcduino-a10" if ARCH_BOARD_PCDUINO_A10 - default "pic32-starterkit" if ARCH_BOARD_PIC32_STARTERKIT - default "pic32mx7mmb" if ARCH_BOARD_PIC32MX7MMB - default "pirelli_dpl10" if ARCH_BOARD_PIRELLI_DPL10 - default "px4fmu-v2_upstream" if ARCH_BOARD_PX4FMU_V2 - default "nucleo-f4x1re" if ARCH_BOARD_NUCLEO_F401RE || ARCH_BOARD_NUCLEO_F411RE - default "qemu-i486" if ARCH_BOARD_QEMU_I486 - default "rgmp" if ARCH_BOARD_RGMP - default "sama5d3x-ek" if ARCH_BOARD_SAMA5D3X_EK - default "sama5d3-xplained" if ARCH_BOARD_SAMA5D3_XPLAINED - default "sama5d4-ek" if ARCH_BOARD_SAMA5D4_EK - default "samd20-xplained" if ARCH_BOARD_SAMD20_XPLAINED - default "sam3u-ek" if ARCH_BOARD_SAM3UEK - default "sam4e-ek" if ARCH_BOARD_SAM4EEK - default "sam4l-xplained" if ARCH_BOARD_SAM4L_XPLAINED - default "sam4s-xplained" if ARCH_BOARD_SAM4S_XPLAINED - default "sam4s-xplained-pro" if ARCH_BOARD_SAM4S_XPLAINED_PRO - default "shenzhou" if ARCH_BOARD_SHENZHOU - default "skp16c26" if ARCH_BOARD_SKP16C26 - default "spark" if ARCH_BOARD_SPARK - default "stm32_tiny" if ARCH_BOARD_STM32_TINY - default "stm3210e-eval" if ARCH_BOARD_STM3210E_EVAL - default "stm3220g-eval" if ARCH_BOARD_STM3220G_EVAL - default "stm3240g-eval" if ARCH_BOARD_STM3240G_EVAL - default "stm32f100rc_generic" if ARCH_BOARD_STM32F100RC_GENERIC - default "stm32f3discovery" if ARCH_BOARD_STM32F3_DISCOVERY - default "stm32f4discovery" if ARCH_BOARD_STM32F4_DISCOVERY - default "stm32f429i-disco" if ARCH_BOARD_STM32F429I_DISCO - default "stm32ldiscovery" if ARCH_BOARD_STM32L_DISCOVERY - default "stm32vldiscovery" if ARCH_BOARD_STM32VL_DISCOVERY - default "mikroe-stm32f4" if ARCH_BOARD_MIKROE_STM32F4 - default "sure-pic32mx" if ARCH_BOARD_SUREPIC32MX - default "teensy" if ARCH_BOARD_TEENSY - default "tm4c123g-launchpad" if ARCH_BOARD_TM4C123G_LAUNCHPAD - default "cc3200-launchpad" if ARCH_BOARD_CC3200_LAUNCHPAD - default "twr-k60n512" if ARCH_BOARD_TWR_K60N512 - default "ubw32" if ARCH_BOARD_UBW32 - default "us7032evb1" if ARCH_BOARD_US7032EVB1 - default "viewtool-stm32f107" if ARCH_BOARD_VIEWTOOL_STM32F107 - default "vsn" if ARCH_BOARD_VSN - default "xtrs" if ARCH_BOARD_XTRS - default "z16f2800100zcog" if ARCH_BOARD_Z16F2800100ZCOG - default "z80sim" if ARCH_BOARD_Z80SIM - default "z8encore000zco" if ARCH_BOARD_Z8ENCORE000ZCO - default "z8f64200100kit" if ARCH_BOARD_Z8F64200100KIT - default "zp214xpa" if ARCH_BOARD_ZP214XPA - default "zkit-arm-1769" if ARCH_BOARD_ZKITARM - default "sim" if ARCH_BOARD_SIM + default "amber" if ARCH_BOARD_AMBER + default "arduino-due" if ARCH_BOARD_ARDUINO_DUE + default "avr32dev1" if ARCH_BOARD_AVR32DEV1 + default "c5471evm" if ARCH_BOARD_C5471EVM + default "compal_e86" if ARCH_BOARD_COMPALE86 + default "compal_e88" if ARCH_BOARD_COMPALE88 + default "compal_e99" if ARCH_BOARD_COMPALE99 + default "demo9s12ne64" if ARCH_BOARD_DEMOS92S12NEC64 + default "ea3131" if ARCH_BOARD_EA3131 + default "ea3152" if ARCH_BOARD_EA3152 + default "eagle100" if ARCH_BOARD_EAGLE100 + default "efm32-g8xx-stk" if ARCH_BOARD_EFM32G8XXSTK + default "ekk-lm3s9b96" if ARCH_BOARD_EKKLM3S9B96 + default "ez80f910200kitg" if ARCH_BOARD_EZ80F910200KITG + default "ez80f910200zco" if ARCH_BOARD_EZ80F910200ZCO + default "fire-stm32v2" if ARCH_BOARD_FIRE_STM32 + default "freedom-kl25z" if ARCH_BOARD_FREEDOM_KL25Z + default "hymini-stm32v" if ARCH_BOARD_HYMINI_STM32V + default "kwikstik-k40" if ARCH_BOARD_KWIKSTIK_K40 + default "lincoln60" if ARCH_BOARD_LINCOLN60 + default "lm3s6432-s2e" if ARCH_BOARD_LM3S6432S2E + default "lm3s6965-ek" if ARCH_BOARD_LM3S6965EK + default "lm3s8962-ek" if ARCH_BOARD_LM3S8962EK + default "lm4f120-launchpad" if ARCH_BOARD_LM4F120_LAUNCHPAD + default "lpc4330-xplorer" if ARCH_BOARD_LPC4330_XPLORER + default "lpcxpresso-lpc1768" if ARCH_BOARD_LPCXPRESSO + default "maple" if ARCH_BOARD_MAPLE + default "mbed" if ARCH_BOARD_MBED + default "mcu123-lpc214x" if ARCH_BOARD_MCU123_LPC214X + default "micropendous3" if ARCH_BOARD_MICROPENDOUS3 + default "mirtoo" if ARCH_BOARD_MIRTOO + default "mx1ads" if ARCH_BOARD_MX1ADS + default "ne64badge" if ARCH_BOARD_NE64BADGE + default "ntosd-dm320" if ARCH_BOARD_NTOSD_DM320 + default "nucleus2g" if ARCH_BOARD_NUCLEUS2G + default "nutiny-nuc120" if ARCH_BOARD_NUTINY_NUC120 + default "olimex-efm32g880f128-stk" if ARCH_BOARD_OLIMEX_EFM32G880F128_STK + default "olimex-lpc1766stk" if ARCH_BOARD_LPC1766STK + default "olimex-lpc2378" if ARCH_BOARD_OLIMEXLPC2378 + default "olimex-lpc-h3131" if ARCH_BOARD_OLIMEX_LPC_H3131 + default "olimex-stm32-h405" if ARCH_BOARD_OLIMEX_STM32H405 + default "olimex-stm32-p107" if ARCH_BOARD_OLIMEX_STM32P107 + default "olimex-stm32-p207" if ARCH_BOARD_OLIMEX_STM32P207 + default "olimex-strp711" if ARCH_BOARD_OLIMEX_STRP711 + default "open1788" if ARCH_BOARD_OPEN1788 + default "p112" if ARCH_BOARD_P112 + default "pcblogic-pic32mx" if ARCH_BOARD_PCBLOGICPIC32MX + default "pcduino-a10" if ARCH_BOARD_PCDUINO_A10 + default "pic32-starterkit" if ARCH_BOARD_PIC32_STARTERKIT + default "pic32mx7mmb" if ARCH_BOARD_PIC32MX7MMB + default "pirelli_dpl10" if ARCH_BOARD_PIRELLI_DPL10 + default "px4fmu-v2_upstream" if ARCH_BOARD_PX4FMU_V2 + default "nucleo-f4x1re" if ARCH_BOARD_NUCLEO_F401RE || ARCH_BOARD_NUCLEO_F411RE + default "qemu-i486" if ARCH_BOARD_QEMU_I486 + default "rgmp" if ARCH_BOARD_RGMP + default "sama5d3x-ek" if ARCH_BOARD_SAMA5D3X_EK + default "sama5d3-xplained" if ARCH_BOARD_SAMA5D3_XPLAINED + default "sama5d4-ek" if ARCH_BOARD_SAMA5D4_EK + default "samd20-xplained" if ARCH_BOARD_SAMD20_XPLAINED + default "sam3u-ek" if ARCH_BOARD_SAM3UEK + default "sam4e-ek" if ARCH_BOARD_SAM4EEK + default "sam4l-xplained" if ARCH_BOARD_SAM4L_XPLAINED + default "sam4s-xplained" if ARCH_BOARD_SAM4S_XPLAINED + default "sam4s-xplained-pro" if ARCH_BOARD_SAM4S_XPLAINED_PRO + default "shenzhou" if ARCH_BOARD_SHENZHOU + default "skp16c26" if ARCH_BOARD_SKP16C26 + default "spark" if ARCH_BOARD_SPARK + default "stm32_tiny" if ARCH_BOARD_STM32_TINY + default "stm3210e-eval" if ARCH_BOARD_STM3210E_EVAL + default "stm3220g-eval" if ARCH_BOARD_STM3220G_EVAL + default "stm3240g-eval" if ARCH_BOARD_STM3240G_EVAL + default "stm32f100rc_generic" if ARCH_BOARD_STM32F100RC_GENERIC + default "stm32f3discovery" if ARCH_BOARD_STM32F3_DISCOVERY + default "stm32f4discovery" if ARCH_BOARD_STM32F4_DISCOVERY + default "stm32f429i-disco" if ARCH_BOARD_STM32F429I_DISCO + default "stm32ldiscovery" if ARCH_BOARD_STM32L_DISCOVERY + default "stm32vldiscovery" if ARCH_BOARD_STM32VL_DISCOVERY + default "mikroe-stm32f4" if ARCH_BOARD_MIKROE_STM32F4 + default "sure-pic32mx" if ARCH_BOARD_SUREPIC32MX + default "teensy" if ARCH_BOARD_TEENSY + default "tm4c123g-launchpad" if ARCH_BOARD_TM4C123G_LAUNCHPAD + default "cc3200-launchpad" if ARCH_BOARD_CC3200_LAUNCHPAD + default "twr-k60n512" if ARCH_BOARD_TWR_K60N512 + default "ubw32" if ARCH_BOARD_UBW32 + default "us7032evb1" if ARCH_BOARD_US7032EVB1 + default "viewtool-stm32f107" if ARCH_BOARD_VIEWTOOL_STM32F107 + default "vsn" if ARCH_BOARD_VSN + default "xtrs" if ARCH_BOARD_XTRS + default "z16f2800100zcog" if ARCH_BOARD_Z16F2800100ZCOG + default "z80sim" if ARCH_BOARD_Z80SIM + default "z8encore000zco" if ARCH_BOARD_Z8ENCORE000ZCO + default "z8f64200100kit" if ARCH_BOARD_Z8F64200100KIT + default "zp214xpa" if ARCH_BOARD_ZP214XPA + default "zkit-arm-1769" if ARCH_BOARD_ZKITARM + default "sim" if ARCH_BOARD_SIM comment "Common Board Options" @@ -1224,6 +1232,9 @@ endif if ARCH_BOARD_NUTINY_NUC120 source "configs/nutiny-nuc120/Kconfig" endif +if ARCH_BOARD_OLIMEX_EFM32G880F128_STK +source "configs/olimex-efm32g880f128-stk/Kconfig" +endif if ARCH_BOARD_LPC1766STK source "configs/olimex-lpc1766stk/Kconfig" endif diff --git a/configs/README.txt b/configs/README.txt index 3f7e4ae979..0138cbdf0e 100644 --- a/configs/README.txt +++ b/configs/README.txt @@ -345,6 +345,10 @@ configs/nutiny-nuc120 This is the port of NuttX to the NuvoTon NuTiny-SDK-NUC120 board. This board has the NUC120LE3AN chip with a built-in NuLink debugger. +configs/olimex-efm32g880f128-stk + This is the port of NuttX to the Olimex EFM32G880F128-STK development + board. + configs/olimex-lpc1766stk This port uses the Olimex LPC1766-STK board and a GNU GCC toolchain* under Linux or Cygwin. STATUS: Complete and mature. diff --git a/configs/efm32-g8xx-stk/src/efm32_autoleds.c b/configs/efm32-g8xx-stk/src/efm32_autoleds.c index a155b4a751..1860281c29 100644 --- a/configs/efm32-g8xx-stk/src/efm32_autoleds.c +++ b/configs/efm32-g8xx-stk/src/efm32_autoleds.c @@ -55,7 +55,7 @@ #ifdef CONFIG_ARCH_LEDS /**************************************************************************** - * Definitions + * Pre-processor Definitions ****************************************************************************/ /* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG diff --git a/configs/olimex-efm32g880f128-stk/Kconfig b/configs/olimex-efm32g880f128-stk/Kconfig new file mode 100644 index 0000000000..f75593c220 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/Kconfig @@ -0,0 +1,10 @@ +# +# For a description of the syntax of this configuration file, +# see misc/tools/kconfig-language.txt. +# + +if ARCH_BOARD_OLIMEX_EFM32G880F128_STK + +#comment "EFM32 G8XX STK Hardware Configuration" + +endif # ARCH_BOARD_OLIMEX_EFM32G880F128_STK diff --git a/configs/olimex-efm32g880f128-stk/README.txt b/configs/olimex-efm32g880f128-stk/README.txt new file mode 100644 index 0000000000..887daa38e0 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/README.txt @@ -0,0 +1,150 @@ +README +====== + + This README file discusses the port of NuttX to the Olimex EFM32G880F128-STK + development board. This board features: + + • EFM32G880F128 + - 32 bit Cortex-M3™ + - 128KiB Program Flash, 16KiB Bytes RAM + - 85 GPIO, 8 Channel DMA + - 12 bit ADC 1Msps + - 3xUART/SPI, 2x low power UART + - I2C + - 3x 16bit TIMERS + - 3x2 CC-PWM + - SSC + - RTC + - WDT + - Up to 32MHz operation + • 32.768 kHz crystal + • 32 MHz crystal + • LCD custom display + • DEBUG connector with ARM 2x10 pin layout for programming/debugging + with ARM-JTAG-EW + • UEXT connector + • EXT extension connector + • RS232 connector and driver + • Power jack + • Lithium coin battery holder + • RESET circuit , RESET button + • Four user buttons + • Buzzer + • On-board voltage regulator 3.3V with up to 800mA current + • Power supply filtering capacitor + • Extension headers for some of the uC ports + RST and power supply + +LEDs +==== + + The EFM32G880F128-STK has no user controllable LEDs. + +Serial Console +============== + + Pin Availability + ---------------- + The EFM32G890F128 support the following options for serial output. NOTE + (1) that not all of these pins are available for use as a serial console, + however. And (2) not all pins made available by the board. + + EFM32 PIN GPIO NOTES/CONFLICTS/AVAILABILITY + ------- -- ---- ---------------------------------------------- + US0_RX #0 PE11 SEG7 (LCD) + US0_RX #1 PE6 COM2 (LCD) + US0_RX #2 PC10 **AVAILABLE at EXT-12** + + US0_TX #0 PE10 SEG6 (LCD) + US0_TX #1 PE7 COM3 (LCD) + US0_TX #2 PC11 **AVAILABLE at EXT-13** + ------- -- ---- + US1_RX #0 PC1 **AVAILABLE at EXT-5** + US1_RX #1 PD1 MISO1, Available at UEXT-7 + + US1_TX #0 PC0 **AVAILABLE at EXT-4** + US1_TX #1 PD0 MOSI1, Available at UEXT-8 + ------- -- ---- + US2_RX #0 PC3 **AVAILABLE at EXT-7** + US2_RX #1 PB4 SEG21 (LCD) + + US2_TX #0 PC2 **AVAILABLE at EXT-6** + US2_TX #1 PB3 SEG20 (LCD) + ------- -- ---- + U0_RX #0 PF7 SEG25 (LCD) + U0_RX #1 PE1 **AVAILABLE at EXT-19** + U0_RX #2 PA4 SEG18 (LCD) + U0_RX #3 PC15 DBG_SWV + + U0_TX #0 PF6 SEG24 (LCD) + U0_TX #1 PE0 **AVAILABLE at EXT-18** + U0_TX #2 PA3 SEG17 (LCD) + U0_TX #3 PC14 **AVAILABLE at EXT-16** + ------- -- ---- + LEU0_RX #0 PD5 LEU0_RX, Available at UEXT-4 + LEU0_RX #1 PB14 HFXTAL_N + LEU0_RX #2 PE15 SEG11 (LCD) + + LEU0_TX #0 PD4 LEU0_TX, Available at UEXT-3 + LEU0_TX #1 PB13 HFXTAL_P + LEU0_TX #2 PE14 SEG10 (LCD) + ------- -- ---- + LEU1_RX #0 PC7 LEU1_RX to DB-9 connector + LEU1_RX #1 PA6 SEG19 (LCD) + + LEU1_TX #0 PC6 LEU1_TX to DB-9 connector + LEU1_TX #1 PA5 SEG18 (LCD) + ------- -- ---- + + RS-232 Driver/DB-9 Connector + ---------------------------- + LEUART1 is available on through an RS232 driver on DB-9 connector. + Unfortunately, there is no LEUART serial driver available in NuttX as of + this writing. + + Default Serial Console + ---------------------- + UART0 is configured as the default serial console at 115200 8N1 + on pins PE0 and PE1. + +Configurations +============== + Each EFM32G880F128-STK configuration is maintained in a sub-director + and can be selected as follow: + + cd tools + ./configure.sh olimex-efm32g880f128-stk/ + cd - + . ./setenv.sh + + If this is a Windows native build, then configure.bat should be used + instead of configure.sh: + + configure.bat olimex-efm32g880f128-stk\ + + Where is one of the following: + + nsh: + --- + Configures the NuttShell (nsh) located at apps/examples/nsh. The + Configuration enables the serial interfaces on UART0. Support for + builtin applications is enabled, but in the base configuration no + builtin applications are selected (see NOTES below). + + NOTES: + + 1. This configuration uses the mconf-based configuration tool. To + change this configuration using that tool, you should: + + a. Build and install the kconfig-mconf tool. See nuttx/README.txt + and misc/tools/ + + b. Execute 'make menuconfig' in nuttx/ in order to start the + reconfiguration process. + + 2. By default, this configuration uses the CodeSourcery toolchain + for Windows and builds under Cygwin (or probably MSYS). That + can easily be reconfigured, of course. + + CONFIG_HOST_WINDOWS=y : Builds under Windows + CONFIG_WINDOWS_CYGWIN=y : Using Cygwin + CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery for Windows diff --git a/configs/olimex-efm32g880f128-stk/include/board.h b/configs/olimex-efm32g880f128-stk/include/board.h new file mode 100644 index 0000000000..96b11a40f8 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/include/board.h @@ -0,0 +1,226 @@ +/**************************************************************************** + * configs/olimex-efm32g880f128-stk/include/board.h + * + * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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. + * + ****************************************************************************/ + +#ifndef __CONFIGS_OLIMEX_EFM32G880F128_STK_INCLUDE_BOARD_H +#define __CONFIGS_OLIMEX_EFM32G880F128_STK_INCLUDE_BOARD_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +#include "chip/efm32_cmu.h" +#include "chip/efm32_usart.h" + +/**************************************************************************** + * Pre-Processor Definitions + ****************************************************************************/ +/* Clocking *****************************************************************/ +/* Clock Sources + * - 1-28 MHz High Frequency RC Oscillator (HFRCO) + * - 4-32 MHz High Frequency Crystal Oscillator (HFXO) + * - 32.768 kHz Low Frequency RC Oscillator (LFRCO) + * - 32.768 kHz Low Frequency Crystal Oscillator (LFXO) + * + * The device boots with 14 MHz HFRCO as the HFCLK source. + */ + +#define BOARD_HAVE_HFXO 1 /* Have High frequency crystal oscillator */ +#define BOARD_HAVE_LFXO 1 /* Have Loq frequency crystal oscillator */ + +#define BOARD_HFRCO_FREQUENCY 14000000 /* 14MHz on reset */ +#define BOARD_HFXO_FREQUENCY 32000000 /* 32MHz crystal on board */ +#define BOARD_LFRCO_FREQUENCY 32768 /* Low frequency oscillator */ +#define BOARD_LFXO_FREQUENCY 32768 /* 32MHz crystal on board */ + +/* HFCLK - High Frequency Clock + * + * HFCLK is the selected High Frequency Clock. This clock is used by the CMU + * and drives the two prescalers that generate HFCORECLK and HFPERCLK. The + * HFCLK can be driven by a high-frequency oscillator (HFRCO or HFXO) or one + * of the low-frequency oscillators (LFRCO or LFXO). By default the HFRCO is + * selected. + */ + +#define BOARD_HFCLKSEL _CMU_CMD_HFCLKSEL_HFXO +#define BOARD_HFCLKDIV 0 /* Does not apply to EFM32G */ +#define BOARD_HFCLK_FREQUENCY BOARD_HFXO_FREQUENCY + +/* HFCORECLK - High Frequency Core Clock + * + * HFCORECLK is a prescaled version of HFCLK. This clock drives the Core + * Modules, which consists of the CPU and modules that are tightly coupled + * to the CPU, e.g. MSC, DMA etc. The frequency of HFCORECLK is set using + * the CMU_HFCORECLKDIV register. + */ + +#define BOARD_HFCORECLKDIV _CMU_HFCORECLKDIV_HFCORECLKDIV_DEFAULT +#define BOARD_HFCORECLK_FREQUENCY BOARD_HFXO_FREQUENCY + +/* HFPERCLK - High Frequency Peripheral Clock + * + * Like HFCORECLK, HFPERCLK can also be a prescaled version of HFCLK. This + * clock drives the High-Frequency Peripherals. The frequency of HFPERCLK is + * set using the CMU_HFPERCLKDIV register. + */ + +#define BOARD_HFPERCLKDIV _CMU_HFPERCLKDIV_HFPERCLKDIV_DEFAULT +#define BOARD_HFPERCLK_FREQUENCY BOARD_HFXO_FREQUENCY + +/* LFACLK - Low Frequency A Clock + * + * LFACLK is the selected clock for the Low Energy A Peripherals. There are + * four selectable sources for LFACLK: LFRCO, LFXO, HFCORECLK/2 and ULFRCO. + * From reset, the LFACLK source is set to LFRCO. However, note that the + * LFRCO is disabled from reset. The selection is configured using the LFA + * field in CMU_LFCLKSEL. The HFCORECLK/2 setting allows the Low Energy A + * Peripherals to be used as high-frequency peripherals. + */ + +#define BOARD_LFACLKSEL _CMU_LFCLKSEL_LFA_LFXO +#define BOARD_LFACLK_FREQUENCY BOARD_LFXO_FREQUENCY + +/* LFBCLK - Low Frequency B Clock + * + * LFBCLK is the selected clock for the Low Energy B Peripherals. There are + * four selectable sources for LFBCLK: LFRCO, LFXO, HFCORECLK/2 and ULFRCO. + * From reset, the LFBCLK source is set to LFRCO. However, note that the + * LFRCO is disabled from reset. The selection is configured using the LFB + * field in CMU_LFCLKSEL. The HFCORECLK/2 setting allows the Low Energy B + * Peripherals to be used as high-frequency peripherals. + */ + +#define BOARD_LFBCLKSEL _CMU_LFCLKSEL_LFB_LFXO +#define BOARD_LFBCLK_FREQUENCY BOARD_LFXO_FREQUENCY + +/* PCNTnCLK - Pulse Counter n Clock + * + * Each available pulse counter is driven by its own clock, PCNTnCLK where + * n is the pulse counter instance number. Each pulse counter can be + * configured to use an external pin (PCNTn_S0) or LFACLK as PCNTnCLK. + */ + +/* WDOGCLK - Watchdog Timer Clock + * + * The Watchdog Timer (WDOG) can be configured to use one of three different + * clock sources: LFRCO, LFXO or ULFRCO. ULFRCO (Ultra Low Frequency RC + * Oscillator) is a separate 1 kHz RC oscillator that also runs in EM3. + */ + +/* AUXCLK - Auxiliary Clock + * + * AUXCLK is a 1-28 MHz clock driven by a separate RC oscillator, AUXHFRCO. + * This clock is used for flash programming and Serial Wire Output (SWO). + * During flash programming this clock will be active. If the AUXHFRCO has + * not been enabled explicitly by software, the MSC will automatically + * start and stop it. The AUXHFRCO is enabled by writing a 1 to AUXHFRCOEN + * in CMU_OSCENCMD. This explicit enabling is required when SWO is used. + */ + +/* LEDs *********************************************************************/ +/* The EFM32 Gecko Starter Kit supports 4 yellow LEDs. One side is grounded + * so these LEDs are illuminated by outputting a high value. + * + * 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 efm32_setled() */ + +#define BOARD_LED1 0 +#define BOARD_LED2 1 +#define BOARD_LED3 2 +#define BOARD_LED4 3 +#define BOARD_NLEDS 4 + +#define BOARD_LED_GREEN BOARD_LED1 +#define BOARD_LED_ORANGE BOARD_LED2 +#define BOARD_LED_RED BOARD_LED3 +#define BOARD_LED_BLUE BOARD_LED4 + +/* LED bits for use with efm32_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 EFM32 Gecko Starter Kit. The following definitions describe + * how NuttX controls the LEDs in this configuration: + */ + +#define LED_STARTED 0 /* LED1 */ +#define LED_HEAPALLOCATE 1 /* LED2 */ +#define LED_IRQSENABLED 2 /* LED1 + LED2 */ +#define LED_STACKCREATED 3 /* LED3 */ +#define LED_INIRQ 4 /* LED1 + LED3 */ +#define LED_SIGNAL 5 /* LED2 + LED3 */ +#define LED_ASSERTION 6 /* LED1 + LED2 + LED3 */ +#define LED_PANIC 7 /* N/C + N/C + N/C + LED4 */ + +/* Pin routing **************************************************************/ +/* UART0: + * + * U0_RX #1 PE1 **AVAILABLE at TP130** + * U0_TX #1 PE0 **AVAILABLE at TP129** + */ + +#define BOARD_UART0_ROUTE_LOCATION _USART_ROUTE_LOCATION_LOC1 + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +/**************************************************************************** + * Name: efm32_ledinit, efm32_setled, and efm32_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 interfaces + * are available to control the LEDs from user applications. + * + ****************************************************************************/ + +#ifndef CONFIG_ARCH_LEDS +void efm32_ledinit(void); +void efm32_setled(int led, bool ledon); +void efm32_setleds(uint8_t ledset); +#endif + +#endif /* __CONFIGS_EFM32_DK3650_INCLUDE_BOARD_H */ diff --git a/configs/olimex-efm32g880f128-stk/nsh/Make.defs b/configs/olimex-efm32g880f128-stk/nsh/Make.defs new file mode 100644 index 0000000000..5c8d276664 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/nsh/Make.defs @@ -0,0 +1,111 @@ +############################################################################ +# configs/olimex-efm32g880f128-stk/nsh/Make.defs +# +# Copyright (C) 2014 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# 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. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs +include ${TOPDIR}/tools/Config.mk + +LDSCRIPT = ld.script + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mknulldeps.sh + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps.sh + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx + ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(CROSSDEV)ar rcs +NM = $(CROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer +endif + +ARCHCFLAGS = -fno-builtin +ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fno-rtti +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow +ARCHWARNINGSXX = -Wall -Wshadow +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe +HOSTLDFLAGS = diff --git a/configs/olimex-efm32g880f128-stk/nsh/defconfig b/configs/olimex-efm32g880f128-stk/nsh/defconfig new file mode 100644 index 0000000000..298495ed94 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/nsh/defconfig @@ -0,0 +1,825 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +# CONFIG_EXPERIMENTAL is not set +# CONFIG_DEFAULT_SMALL is not set +# CONFIG_HOST_LINUX is not set +# CONFIG_HOST_OSX is not set +CONFIG_HOST_WINDOWS=y +# CONFIG_HOST_OTHER is not set +# CONFIG_WINDOWS_NATIVE is not set +CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_MSYS is not set +# CONFIG_WINDOWS_OTHER is not set + +# +# Build Configuration +# +# CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +# CONFIG_INTELHEX_BINARY is not set +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_ARCH_HAVE_HEAPCHECK is not set +# CONFIG_DEBUG_SYMBOLS is not set +CONFIG_ARCH_HAVE_CUSTOMOPT=y +# CONFIG_DEBUG_NOOPT is not set +# CONFIG_DEBUG_CUSTOMOPT is not set +CONFIG_DEBUG_FULLOPT=y + +# +# System Type +# +CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_A1X is not set +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +CONFIG_ARCH_CHIP_EFM32=y +# CONFIG_ARCH_CHIP_IMX is not set +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set +# CONFIG_ARCH_CHIP_LM is not set +# CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC17XX is not set +# CONFIG_ARCH_CHIP_LPC214X is not set +# CONFIG_ARCH_CHIP_LPC2378 is not set +# CONFIG_ARCH_CHIP_LPC31XX is not set +# CONFIG_ARCH_CHIP_LPC43XX is not set +# CONFIG_ARCH_CHIP_NUC1XX is not set +# CONFIG_ARCH_CHIP_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_STM32 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set +CONFIG_ARCH_CORTEXM3=y +# CONFIG_ARCH_CORTEXM4 is not set +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +CONFIG_ARCH_FAMILY="armv7-m" +CONFIG_ARCH_CHIP="efm32" +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_CMNVECTOR=y +CONFIG_ARMV7M_CMNVECTOR=y +# CONFIG_ARCH_HAVE_FPU is not set + +# +# ARMV7M Configuration Options +# +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set +# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set + +# +# EFM32 Configuration Options +# +# CONFIG_ARCH_CHIP_EFM32TG840F32 is not set +CONFIG_ARCH_CHIP_EFM32G880F128=y +# CONFIG_ARCH_CHIP_EFM32G890F128 is not set +# CONFIG_ARCH_CHIP_EFM32GG332F1024 is not set +# CONFIG_EFM32_EFM32TG is not set +CONFIG_EFM32_EFM32G=y +# CONFIG_EFM32_EFM32GG is not set + +# +# EFM32 Peripheral Support +# +CONFIG_EFM32_HAVE_USART2=y +CONFIG_EFM32_HAVE_UART0=y +# CONFIG_EFM32_HAVE_UART1 is not set +CONFIG_EFM32_HAVE_LEUART1=y +CONFIG_EFM32_UART=y +# CONFIG_EFM32_USART0 is not set +# CONFIG_EFM32_USART1 is not set +# CONFIG_EFM32_USART2 is not set +CONFIG_EFM32_UART0=y +# CONFIG_EFM32_UART1 is not set +# CONFIG_EFM32_LEUART0 is not set +# CONFIG_EFM32_LEUART1 is not set +CONFIG_EFM32_GPIO_IRQ=y + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +# CONFIG_ARCH_DMA is not set +CONFIG_ARCH_HAVE_IRQPRIO=y +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +# CONFIG_ARCH_HAVE_MPU is not set +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_IRQPRIO is not set +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +# CONFIG_ARCH_HAVE_RAMFUNCS is not set +CONFIG_ARCH_HAVE_RAMVECTORS=y +# CONFIG_ARCH_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=4531 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=0 +CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y +# CONFIG_ARCH_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +CONFIG_BOOT_RUNFROMFLASH=y +# CONFIG_BOOT_RUNFROMISRAM is not set +# CONFIG_BOOT_RUNFROMSDRAM is not set +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x20000000 +CONFIG_RAM_SIZE=32768 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +CONFIG_ARCH_BOARD_OLIMEX_EFM32G880F128_STK=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="olimex-efm32g880f128-stk" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_BUTTONS=y +# CONFIG_ARCH_BUTTONS is not set +CONFIG_NSH_MMCSDMINOR=0 + +# +# Board-Specific Options +# + +# +# RTOS Features +# +CONFIG_DISABLE_OS_API=y +# CONFIG_DISABLE_POSIX_TIMERS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_DISABLE_SIGNALS is not set +# CONFIG_DISABLE_MQUEUE is not set +CONFIG_DISABLE_ENVIRON=y + +# +# Clocks and Timers +# +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2010 +CONFIG_START_MONTH=5 +CONFIG_START_DAY=6 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=4 +CONFIG_WDOG_INTRESERVE=1 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_RR_INTERVAL=200 +CONFIG_TASK_NAME_SIZE=0 +CONFIG_MAX_TASK_ARGS=4 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +# CONFIG_SCHED_WAITPID is not set + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCONDTIMEDOUT=16 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=32 + +# +# Work Queue Support +# +# CONFIG_SCHED_WORKQUEUE is not set +# CONFIG_SCHED_HPWORK is not set +# CONFIG_SCHED_LPWORK is not set + +# +# Stack and heap information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=2048 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +CONFIG_DISABLE_POLL=y +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_PWM is not set +# CONFIG_ARCH_HAVE_I2CRESET is not set +# CONFIG_I2C is not set +# CONFIG_SPI is not set +# CONFIG_I2S is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_TIMER is not set +# CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_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 +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +CONFIG_ARCH_HAVE_UART0=y +# CONFIG_ARCH_HAVE_UART1 is not set +# CONFIG_ARCH_HAVE_UART2 is not set +# CONFIG_ARCH_HAVE_UART3 is not set +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set + +# +# USART Configuration +# +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +CONFIG_UART0_SERIAL_CONSOLE=y +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# UART0 Configuration +# +CONFIG_UART0_RXBUFSIZE=64 +CONFIG_UART0_TXBUFSIZE=64 +CONFIG_UART0_BAUD=115200 +CONFIG_UART0_BITS=8 +CONFIG_UART0_PARITY=0 +CONFIG_UART0_2STOP=0 +# CONFIG_UART0_IFLOWCONTROL is not set +# CONFIG_UART0_OFLOWCONTROL is not set +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +# CONFIG_RAMLOG is not set + +# +# Networking Support +# +# CONFIG_ARCH_HAVE_NET is not set +# CONFIG_ARCH_HAVE_PHY is not set +# CONFIG_NET is not set + +# +# Crypto API +# +# CONFIG_CRYPTO is not set + +# +# File Systems +# + +# +# File system configuration +# +CONFIG_DISABLE_MOUNTPOINT=y +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_FS_READABLE is not set +# CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +# CONFIG_FS_RAMMAP is not set +# CONFIG_FS_PROCFS is not set + +# +# System Logging +# +# CONFIG_SYSLOG is not set + +# +# Graphics Support +# +# CONFIG_NX is not set + +# +# Memory Management +# +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=1 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set + +# +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +# CONFIG_BUILTIN is not set +# CONFIG_PIC is not set +# CONFIG_SYMTAB_ORDEREDBYNAME is not set + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +# CONFIG_LIBM is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_ARCH_LOWPUTC=y +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +# CONFIG_HAVE_CXX is not set + +# +# Application Configuration +# + +# +# Built-In Applications +# + +# +# Examples +# +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CAN is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_HELLOXX is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set +CONFIG_EXAMPLES_NSH=y +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXFLAT is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_POLL is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_QENCODER is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_ROMFS is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_TCPECHO is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_THTTPD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_UDP is not set +# CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBSERIAL is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set + +# +# Network Utilities +# + +# +# Networking Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_FTPD is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set +# CONFIG_NETUTILS_TFTPC is not set +# CONFIG_NETUTILS_THTTPD is not set +# CONFIG_NETUTILS_NETLIB is not set +# CONFIG_NETUTILS_WEBCLIENT is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y + +# +# Command Line Configuration +# +# CONFIG_NSH_READLINE is not set +CONFIG_NSH_CLE=y +CONFIG_NSH_LINELEN=78 +# CONFIG_NSH_DISABLE_SEMICOLON is not set +CONFIG_NSH_MAXARGUMENTS=6 +CONFIG_NSH_ARGCAT=y +CONFIG_NSH_NESTDEPTH=3 +# CONFIG_NSH_DISABLEBG is not set + +# +# Disable Individual commands +# +# CONFIG_NSH_DISABLE_ADDROUTE is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_CMP is not set +# CONFIG_NSH_DISABLE_DD is not set +# CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_DELROUTE is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LOSETUP is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFIFO is not set +# CONFIG_NSH_DISABLE_MKRD is not set +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MW is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +CONFIG_NSH_CMDOPT_DF_H=y +CONFIG_NSH_CODECS_BUFSIZE=128 +CONFIG_NSH_CMDOPT_HEXDUMP=y +CONFIG_NSH_FILEIOSIZE=256 + +# +# Scripting Support +# +# CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_LOOPS is not set + +# +# Console Configuration +# +CONFIG_NSH_CONSOLE=y +# CONFIG_NSH_ALTCONDEV is not set +# CONFIG_NSH_ARCHINIT is not set + +# +# NxWidgets/NxWM +# + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# + +# +# Custom Free Memory Command +# +# CONFIG_SYSTEM_FREE is not set + +# +# EMACS-like Command Line Editor +# +CONFIG_SYSTEM_CLE=y +CONFIG_SYSTEM_CLE_DEBUGLEVEL=0 + +# +# FLASH Program Installation +# +# CONFIG_SYSTEM_INSTALL is not set + +# +# FLASH Erase-all Command +# + +# +# Intel HEX to binary conversion +# +# CONFIG_SYSTEM_HEX2BIN is not set + +# +# I2C tool +# + +# +# INI File Parser +# +# CONFIG_SYSTEM_INIFILE is not set + +# +# NxPlayer media player library / command Line +# +# CONFIG_SYSTEM_NXPLAYER is not set + +# +# RAM test +# +# CONFIG_SYSTEM_RAMTEST is not set + +# +# readline() +# +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y + +# +# P-Code Support +# + +# +# PHY Tool +# + +# +# Power Off +# +# CONFIG_SYSTEM_POWEROFF is not set + +# +# RAMTRON +# +# CONFIG_SYSTEM_RAMTRON is not set + +# +# SD Card +# +# CONFIG_SYSTEM_SDCARD is not set + +# +# Sudoku +# +# CONFIG_SYSTEM_SUDOKU is not set + +# +# Sysinfo +# +# CONFIG_SYSTEM_SYSINFO is not set + +# +# VI Work-Alike Editor +# +# CONFIG_SYSTEM_VI is not set + +# +# Stack Monitor +# + +# +# USB CDC/ACM Device Commands +# + +# +# USB Composite Device Commands +# + +# +# USB Mass Storage Device Commands +# + +# +# USB Monitor +# + +# +# Zmodem Commands +# +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/olimex-efm32g880f128-stk/nsh/setenv.sh b/configs/olimex-efm32g880f128-stk/nsh/setenv.sh new file mode 100755 index 0000000000..a772e5ac44 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/nsh/setenv.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# configs/olimex-efm32g880f128-stk/nsh/setenv.sh +# +# Copyright (C) 2014 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# 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. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This is the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +#export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" diff --git a/configs/olimex-efm32g880f128-stk/scripts/ld.script b/configs/olimex-efm32g880f128-stk/scripts/ld.script new file mode 100644 index 0000000000..1f934815c5 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/scripts/ld.script @@ -0,0 +1,110 @@ +/**************************************************************************** + * configs/olimex-efm32g880f128-stk/scripts/ld.script + * + * Copyright (C) 2012, 2014 Gregory Nutt. All rights reserved. + * + * 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. + * + ****************************************************************************/ + +MEMORY +{ + flash (rx) : ORIGIN = 0x00000000, LENGTH = 131072 + sram (rwx) : ORIGIN = 0x20000000, LENGTH = 16384 +} + +OUTPUT_ARCH(arm) +EXTERN(_vectors) +ENTRY(_stext) + +SECTIONS +{ + .text : { + _stext = ABSOLUTE(.); + *(.vectors) + *(.text .text.*) + *(.fixup) + *(.gnu.warning) + *(.rodata .rodata.*) + *(.gnu.linkonce.t.*) + *(.glue_7) + *(.glue_7t) + *(.got) + *(.gcc_except_table) + *(.gnu.linkonce.r.*) + _etext = ABSOLUTE(.); + } > flash + + .init_section : { + _sinit = ABSOLUTE(.); + *(.init_array .init_array.*) + _einit = ABSOLUTE(.); + } > flash + + .ARM.extab : { + *(.ARM.extab*) + } > flash + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : { + *(.ARM.exidx*) + } > flash + __exidx_end = ABSOLUTE(.); + + _eronly = ABSOLUTE(.); + + .data : { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + _edata = ABSOLUTE(.); + } > sram AT > flash + + .bss : { + _sbss = ABSOLUTE(.); + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + _ebss = ABSOLUTE(.); + } > sram + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_info 0 : { *(.debug_info) } + .debug_line 0 : { *(.debug_line) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_aranges 0 : { *(.debug_aranges) } +} diff --git a/configs/olimex-efm32g880f128-stk/src/.gitignore b/configs/olimex-efm32g880f128-stk/src/.gitignore new file mode 100644 index 0000000000..726d936e1e --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/src/.gitignore @@ -0,0 +1,2 @@ +/.depend +/Make.dep diff --git a/configs/olimex-efm32g880f128-stk/src/Makefile b/configs/olimex-efm32g880f128-stk/src/Makefile new file mode 100644 index 0000000000..bd927233d0 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/src/Makefile @@ -0,0 +1,77 @@ +############################################################################ +# configs/olimex-efm32g880f128-stk/src/Makefile +# +# Copyright (C) 2014 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# 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. +# +############################################################################ + +-include $(TOPDIR)/Make.defs + +CSRCS = efm32_boot.c + +COBJS = $(CSRCS:.c=$(OBJEXT)) +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) + +ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src +ifeq ($(CONFIG_WINDOWS_NATIVE),y) + CFLAGS += -I$(ARCH_SRCDIR)\chip -I$(ARCH_SRCDIR)\common -I$(ARCH_SRCDIR)\armv7-m +else +ifeq ($(WINTOOL),y) + CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \ + -I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \ + -I "${shell cygpath -w $(ARCH_SRCDIR)/armv7-m}" +else + CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(ARCH_SRCDIR)/armv7-m +endif +endif + +$(COBJS) $(LINKOBJS): %$(OBJEXT): %.c + $(call COMPILE, $<, $@) + +libboard$(LIBEXT): $(OBJS) + $(call ARCHIVE, $@, $(OBJS)) + +.depend: Makefile $(SRCS) + $(Q) $(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep + $(Q) touch $@ + +depend: .depend + +clean: + $(call DELFILE, libboard$(LIBEXT)) + $(call CLEAN) + +distclean: clean + $(call DELFILE, Make.dep) + $(call DELFILE, .depend) + +-include Make.dep diff --git a/configs/olimex-efm32g880f128-stk/src/efm32_boot.c b/configs/olimex-efm32g880f128-stk/src/efm32_boot.c new file mode 100644 index 0000000000..fe340505d9 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/src/efm32_boot.c @@ -0,0 +1,81 @@ +/***************************************************************************** + * configs/olimex-efm32g880f128-stk/src/efm32_boot.c + * + * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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 + +#include "efm32_start.h" + +#include "efm32g880f128-stk.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: efm32_boardinitialize + * + * Description: + * All EFM32 architectures must provide the following entry point. This + * entry point is called early in the initialization before any devices + * have been initialized. + * + ****************************************************************************/ + +void efm32_boardinitialize(void) +{ +} + +/**************************************************************************** + * 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_initialize() 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) +{ +} +#endif diff --git a/configs/olimex-efm32g880f128-stk/src/efm32g880f128-stk.h b/configs/olimex-efm32g880f128-stk/src/efm32g880f128-stk.h new file mode 100644 index 0000000000..f70344acc0 --- /dev/null +++ b/configs/olimex-efm32g880f128-stk/src/efm32g880f128-stk.h @@ -0,0 +1,78 @@ +/**************************************************************************** + * configs/olimex-efm32g880f128-stk/src/efm32g880f128-stk.h + * + * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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. + * + ****************************************************************************/ + +#ifndef __CONFIGS_OLIMEX_EFM32G880F128_STK_SRC_EFM32G880F128_STK_H +#define __CONFIGS_OLIMEX_EFM32G880F128_STK_SRC_EFM32G880F128_STK_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + + /* LEDs + * + * The EFM32 Gecko Start Kit has four yellow LEDs. These LEDs are connected + * as follows: + * + * ------------------------------------- -------------------- + * EFM32 PIN BOARD SIGNALS + * ------------------------------------- -------------------- + * C0/USART1_TX#0/PCNT0_S0IN#2/ACMP0_CH0 MCU_PC0 UIF_LED0 + * C1/USART1_RX#0/PCNT0_S1IN#2/ACMP0_CH1 MCU_PC1 UIF_LED1 + * C2/USART2_TX#0/ACMP0_CH2 MCU_PC2 UIF_LED2 + * C3/USART2_RX#0/ACMP0_CH3 MCU_PC3 UIF_LED3 + * ------------------------------------- -------------------- + * + * All LEDs are grounded and so are illuminated by outputting a high + * value to the LED. + */ + +#define GPIO_LED1 (GPIO_OUTPUT_WIREDOR_PULLDOWN|\ + GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN0) +#define GPIO_LED2 (GPIO_OUTPUT_WIREDOR_PULLDOWN|\ + GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN1) +#define GPIO_LED3 (GPIO_OUTPUT_WIREDOR_PULLDOWN|\ + GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN2) +#define GPIO_LED4 (GPIO_OUTPUT_WIREDOR_PULLDOWN|\ + GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN3) + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +#endif /* __CONFIGS_EFM32_DK3650_INCLUDE_BOARD_H */