diff --git a/arch/arm/src/armv7-m/Kconfig b/arch/arm/src/armv7-m/Kconfig index 381725e006..5908816483 100644 --- a/arch/arm/src/armv7-m/Kconfig +++ b/arch/arm/src/armv7-m/Kconfig @@ -108,6 +108,16 @@ config ARMV7M_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" depends on TOOLCHAIN_WINDOWS select ARCH_TOOLCHAIN_GNU + +config ARMV7M_TOOLCHAIN_CLANGL + bool "Generic Clang toolchain under Linux (or other POSIX environment)" + depends on !WINDOWS_NATIVE + select ARCH_TOOLCHAIN_GNU + +config ARMV7M_TOOLCHAIN_CLANGW + bool "Generic Clang toolchain under Windows" + depends on TOOLCHAIN_WINDOWS + select ARCH_TOOLCHAIN_GNU ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi. diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs index 74b1fcdcc3..9838cdf1bf 100644 --- a/arch/arm/src/armv7-m/Toolchain.defs +++ b/arch/arm/src/armv7-m/Toolchain.defs @@ -102,6 +102,18 @@ ifeq ($(filter y, \ CONFIG_ARMV7M_TOOLCHAIN ?= GNU_EABIW endif +ifeq ($(filter y, \ + $(CONFIG_ARMV7M_TOOLCHAIN_CLANGL) \ + ),y) + CONFIG_ARMV7M_TOOLCHAIN ?= CLANGL +endif + +ifeq ($(filter y, \ + $(CONFIG_ARMV7M_TOOLCHAIN_CLANGW) \ + ),y) + CONFIG_ARMV7M_TOOLCHAIN ?= CLANGW +endif + # # Supported toolchains # @@ -255,6 +267,27 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),GNU_EABIW) endif endif +# Clang toolchain on OS X, Linux or any typical Posix system + +ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CLANGL) + CROSSDEV ?= arm-none-eabi- + ARCROSSDEV ?= arm-none-eabi- + MAXOPTIMIZATION ?= -Os + ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) +endif + +# Clang toolchain under Windows + +ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CLANGW) + CROSSDEV ?= arm-none-eabi- + ARCROSSDEV ?= arm-none-eabi- + MAXOPTIMIZATION ?= -Os + ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) + ifeq ($(CONFIG_WINDOWS_CYGWIN),y) + WINTOOL = y + endif +endif + # Raisonance RIDE7 under Windows ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),RAISONANCE) diff --git a/configs/nucleo-f4x1re/f401-nsh-clang/Make.defs b/configs/nucleo-f4x1re/f401-nsh-clang/Make.defs index 586784f71c..2d2e46689b 100644 --- a/configs/nucleo-f4x1re/f401-nsh-clang/Make.defs +++ b/configs/nucleo-f4x1re/f401-nsh-clang/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/nucleo-f4x1re/f401-nsh-clang/Make.defs # -# Copyright (C) 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without diff --git a/configs/nucleo-f4x1re/f401-nsh-clang/defconfig b/configs/nucleo-f4x1re/f401-nsh-clang/defconfig index 51dbf6f282..1e70d31d46 100644 --- a/configs/nucleo-f4x1re/f401-nsh-clang/defconfig +++ b/configs/nucleo-f4x1re/f401-nsh-clang/defconfig @@ -16,7 +16,7 @@ CONFIG_HOST_LINUX=y # # Build Configuration # -CONFIG_APPS_DIR="../apps" +# CONFIG_APPS_DIR="../apps" CONFIG_BUILD_FLAT=y # CONFIG_BUILD_2PASS is not set @@ -147,7 +147,8 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=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_GNU_EABIL is not set +CONFIG_ARMV7M_TOOLCHAIN_CLANGL=y CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARMV7M_STACKCHECK is not set # CONFIG_ARMV7M_ITMSYSLOG is not set @@ -1083,7 +1084,6 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # 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 @@ -1104,17 +1104,16 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_SERIALRX is not set # CONFIG_EXAMPLES_SERLOOP is not set # CONFIG_EXAMPLES_SLCD is not set -# CONFIG_EXAMPLES_SMART_TEST is not set # CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMART_TEST is not set # CONFIG_EXAMPLES_SMP is not set # CONFIG_EXAMPLES_STAT is not set # CONFIG_EXAMPLES_TCPECHO is not set -# CONFIG_EXAMPLES_TELNETD is not set # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set -# CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set # CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_XBC_TEST is not set # # File System Utilities @@ -1219,6 +1218,7 @@ CONFIG_NSH_DISABLE_PRINTF=y # CONFIG_NSH_DISABLE_SLEEP is not set # CONFIG_NSH_DISABLE_TIME is not set # CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_TELNETD is not set # CONFIG_NSH_DISABLE_UMOUNT is not set # CONFIG_NSH_DISABLE_UNAME is not set # CONFIG_NSH_DISABLE_UNSET is not set @@ -1260,6 +1260,7 @@ CONFIG_NSH_CONSOLE=y # Platform-specific Support # # CONFIG_PLATFORM_CONFIGDATA is not set +# CONFIG_HAVE_CXXINITIALIZE is not set # # System Libraries and NSH Add-Ons @@ -1282,3 +1283,14 @@ CONFIG_READLINE_ECHO=y # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set + +# +# Wireless Libraries and NSH Add-Ons +# + +# +# IEEE 802.15.4 applications +# +# CONFIG_IEEE802154_LIBMAC is not set +# CONFIG_IEEE802154_LIBUTILS is not set +# CONFIG_IEEE802154_I8SAK is not set