diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index d56e0a861e1..fd44dcff077 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -302,6 +302,10 @@ config ARCH_CORTEXM0 select ARCH_HAVE_IRQPRIO select ARCH_HAVE_RESET +config ARCH_CORTEXM23 + bool + default n + config ARCH_CORTEXM3 bool default n @@ -310,6 +314,10 @@ config ARCH_CORTEXM3 select ARCH_HAVE_HIPRI_INTERRUPT select ARCH_HAVE_RESET +config ARCH_CORTEXM33 + bool + default n + config ARCH_CORTEXM4 bool default n @@ -325,6 +333,7 @@ config ARCH_CORTEXM7 select ARCH_HAVE_IRQPRIO select ARCH_HAVE_RAMVECTORS select ARCH_HAVE_HIPRI_INTERRUPT + select ARCH_HAVE_RESET select ARCH_HAVE_COHERENT_DCACHE if ELF || MODULE config ARCH_CORTEXA5 diff --git a/arch/arm/include/sam34/chip.h b/arch/arm/include/sam34/chip.h index 3bd3b42d51e..fc67f3b5fd4 100644 --- a/arch/arm/include/sam34/chip.h +++ b/arch/arm/include/sam34/chip.h @@ -543,21 +543,21 @@ /* AT91SAM4S Family *****************************************************************/ /* - * FEATURE SAM4SD32C SAM4SD32B SAM4SD16C SAM4SD16B SAM4SA16C SAM4SA16B SAM4S16C SAM4S16B SAM4S8C SAM4S8B - * ------------- --------- --------- --------- --------- --------- --------- -------- -------- ------- ------- - * Flash 2x1MB 2x1MB 2x512KB 1x1MB 1x1MB 1x1MB 1x1MB 1x1MB 1x512KB 1x512KB - * SRAM 160KB 160KB 160KB 160KB 160KB 160KB 128KB 128KB 128KB 128KB - * HCACHE 2KB 2KB 2KB 2KB 2KB 2KB - - - - - * Pins 100 64 100 64 100 64 100 64 100 64 - * No. PIOs 79 47 79 47 79 47 79 47 79 47 - * Ext. BUS Yes No Yes No Yes No Yes No Yes No - * 12-bit ADC 16 ch 11 ch 16 ch 11 ch 16 ch 11 ch 16 ch 11 ch 16 ch 11 ch - * 12-bit DAC 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch - * Timer Counter 6 ch 3 ch 6 ch 3 ch 6 ch 3 ch 6 ch 3 ch 6 ch 3 ch - * PDC 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch - * USART 2 2 2 2 2 2 2 2 2 2 - * UART 2 2 2 2 2 2 2 2 2 2 - * HSMCI Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes + * FEATURE SAM4SD32C SAM4SD32B SAM4SD16C SAM4SD16B SAM4SA16C SAM4SA16B SAM4S16C SAM4S16B SAM4S8C SAM4S8B SAM4S4C + * ------------- --------- --------- --------- --------- --------- --------- -------- -------- ------- ------- ------- + * Flash 2x1MB 2x1MB 2x512KB 1x1MB 1x1MB 1x1MB 1x1MB 1x1MB 1x512KB 1x512KB 1x256KB + * SRAM 160KB 160KB 160KB 160KB 160KB 160KB 128KB 128KB 128KB 128KB 64KB + * HCACHE 2KB 2KB 2KB 2KB 2KB 2KB - - - - - + * Pins 100 64 100 64 100 64 100 64 100 64 100 + * No. PIOs 79 47 79 47 79 47 79 47 79 47 79 + * Ext. BUS Yes No Yes No Yes No Yes No Yes No Yes + * 12-bit ADC 16 ch 11 ch 16 ch 11 ch 16 ch 11 ch 16 ch 11 ch 16 ch 11 ch 16 ch + * 12-bit DAC 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch 2 ch + * Timer Counter 6 ch 3 ch 6 ch 3 ch 6 ch 3 ch 6 ch 3 ch 6 ch 3 ch 6 ch + * PDC 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch 22 ch + * USART 2 2 2 2 2 2 2 2 2 2 2 + * UART 2 2 2 2 2 2 2 2 2 2 2 + * HSMCI Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes */ #elif defined(CONFIG_ARCH_CHIP_ATSAM4SD32C) @@ -760,6 +760,26 @@ # define SAM34_NUDPFS 1 /* 1 USB full speed device */ # define SAM34_NUHPFS 0 /* No USB full speed embedded host */ +#elif defined(CONFIG_ARCH_CHIP_ATSAM4S4C) +/* Internal memory */ + +# define SAM34_FLASH_SIZE (256*1024) /* 256KB */ +# define SAM34_SRAM0_SIZE (64*1024) /* 64KB */ +# define SAM34_SRAM1_SIZE 0 /* None */ +# define SAM34_NFCSRAM_SIZE 0 /* None */ + +/* Peripherals */ + +# define SAM34_NDMACHAN 0 /* No DMAC Channels */ +# define SAM34_NPDCCHAN 22 /* 22 PDC Channels */ +# define SAM34_NMCI2 1 /* 1 memory card interface */ +# define SAM34_NSLCD 0 /* No segment LCD interface */ +# define SAM34_NAESA 0 /* No advanced encryption standard */ +# define SAM34_NUDPHS 0 /* No USB high speed device */ +# define SAM34_NUHPHS 0 /* No USB high speed embedded host */ +# define SAM34_NUDPFS 1 /* 1 USB full speed device */ +# define SAM34_NUHPFS 0 /* No USB full speed embedded host */ + /* AT91SAM4E Family *****************************************************************/ /* FEATURE SAM4E16E SAM4E8E SAM4E16C SAM4E8C * ----------- --------- -------- -------- -------- diff --git a/arch/arm/src/a1x/Make.defs b/arch/arm/src/a1x/Make.defs index f823d5c4e61..7ffb41537e9 100644 --- a/arch/arm/src/a1x/Make.defs +++ b/arch/arm/src/a1x/Make.defs @@ -59,10 +59,6 @@ CMN_ASRCS += arm_testset.S CMN_ASRCS += cp15_coherent_dcache.S cp15_invalidate_dcache.S CMN_ASRCS += cp15_clean_dcache.S cp15_flush_dcache.S cp15_invalidate_dcache_all.S -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += arm_memcpy.S -endif - # Common C source files CMN_CSRCS = up_initialize.c up_idle.c up_interruptcontext.c up_exit.c @@ -112,9 +108,9 @@ endif endif ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += arm_elf.c arm_coherent_dcache.c +CMN_CSRCS += arm_coherent_dcache.c else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += arm_elf.c arm_coherent_dcache.c +CMN_CSRCS += arm_coherent_dcache.c endif ifeq ($(CONFIG_ARCH_FPU),y) diff --git a/arch/arm/src/armv7-a/Kconfig b/arch/arm/src/armv7-a/Kconfig index 312ed8d4413..e4746900a3f 100644 --- a/arch/arm/src/armv7-a/Kconfig +++ b/arch/arm/src/armv7-a/Kconfig @@ -133,10 +133,12 @@ choice config ARMV7A_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" + select ARM_TOOLCHAIN_GNU depends on !WINDOWS_NATIVE config ARMV7A_TOOLCHAIN_CODESOURCERYL bool "CodeSourcery GNU toolchain under Linux" + select ARM_TOOLCHAIN_GNU depends on HOST_LINUX ---help--- For use with the GNU toolchain built with the NuttX buildroot package. @@ -145,20 +147,24 @@ config ARMV7A_TOOLCHAIN_CODESOURCERYL config ARMV7A_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" + select ARM_TOOLCHAIN_GNU depends on TOOLCHAIN_WINDOWS config ARMV7A_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" + select ARM_TOOLCHAIN_GNU depends on TOOLCHAIN_WINDOWS config ARMV7A_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" + select ARM_TOOLCHAIN_GNU ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi-. config ARMV7A_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" + select ARM_TOOLCHAIN_GNU depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) @@ -166,6 +172,7 @@ config ARMV7A_TOOLCHAIN_GNU_EABIW config ARMV7A_TOOLCHAIN_GNU_OABI bool "Generic GNU OABI toolchain" + select ARM_TOOLCHAIN_GNU ---help--- This option should work for any GNU toolchain configured for arm-elf-. diff --git a/arch/arm/src/armv7-a/arm_cpupause.c b/arch/arm/src/armv7-a/arm_cpupause.c index ef324448e22..6f92343c149 100644 --- a/arch/arm/src/armv7-a/arm_cpupause.c +++ b/arch/arm/src/armv7-a/arm_cpupause.c @@ -244,14 +244,14 @@ int up_cpu_pause(int cpu) { int ret; + DEBUGASSERT(cpu >= 0 && cpu < CONFIG_SMP_NCPUS && cpu != this_cpu()); + #ifdef CONFIG_SCHED_INSTRUMENTATION /* Notify of the pause event */ sched_note_cpu_pause(this_task(), cpu); #endif - DEBUGASSERT(cpu >= 0 && cpu < CONFIG_SMP_NCPUS && cpu != this_cpu()); - /* Take the both spinlocks. The g_cpu_wait spinlock will prevent the SGI2 * handler from returning until up_cpu_resume() is called; g_cpu_paused * is a handshake that will prefent this function from returning until @@ -313,14 +313,14 @@ int up_cpu_pause(int cpu) int up_cpu_resume(int cpu) { + DEBUGASSERT(cpu >= 0 && cpu < CONFIG_SMP_NCPUS && cpu != this_cpu()); + #ifdef CONFIG_SCHED_INSTRUMENTATION /* Notify of the resume event */ sched_note_cpu_resume(this_task(), cpu); #endif - DEBUGASSERT(cpu >= 0 && cpu < CONFIG_SMP_NCPUS && cpu != this_cpu()); - /* Release the spinlock. Releasing the spinlock will cause the SGI2 * handler on 'cpu' to continue and return from interrupt to the newly * established thread. diff --git a/arch/arm/src/armv7-a/arm_schedulesigaction.c b/arch/arm/src/armv7-a/arm_schedulesigaction.c index ce765a33e77..9f1a46f6754 100644 --- a/arch/arm/src/armv7-a/arm_schedulesigaction.c +++ b/arch/arm/src/armv7-a/arm_schedulesigaction.c @@ -320,7 +320,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver) if (cpu != me) { - up_cpu_pause(cpu); + up_cpu_resume(cpu); } } } diff --git a/arch/arm/src/armv7-m/up_coherent_dcache.c b/arch/arm/src/armv7-m/up_coherent_dcache.c index 019205f46bc..008b37a9a33 100644 --- a/arch/arm/src/armv7-m/up_coherent_dcache.c +++ b/arch/arm/src/armv7-m/up_coherent_dcache.c @@ -46,18 +46,6 @@ #include -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-m/up_copyarmstate.c b/arch/arm/src/armv7-m/up_copyarmstate.c index 13fec55422a..22e2f390036 100644 --- a/arch/arm/src/armv7-m/up_copyarmstate.c +++ b/arch/arm/src/armv7-m/up_copyarmstate.c @@ -48,18 +48,6 @@ #if defined(CONFIG_ARCH_FPU) && \ (!defined(CONFIG_ARMV7M_CMNVECTOR) || defined(CONFIG_ARMV7M_LAZYFPU)) -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-m/up_copyfullstate.c b/arch/arm/src/armv7-m/up_copyfullstate.c index e3618d48623..43b10751898 100644 --- a/arch/arm/src/armv7-m/up_copyfullstate.c +++ b/arch/arm/src/armv7-m/up_copyfullstate.c @@ -44,18 +44,6 @@ #include "up_internal.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-m/up_initialstate.c b/arch/arm/src/armv7-m/up_initialstate.c index 7cf6816c218..37cb86cb464 100644 --- a/arch/arm/src/armv7-m/up_initialstate.c +++ b/arch/arm/src/armv7-m/up_initialstate.c @@ -51,18 +51,6 @@ #include "psr.h" #include "exc_return.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-m/up_ramvec_initialize.c b/arch/arm/src/armv7-m/up_ramvec_initialize.c index 277862bcf36..4db7bb2be32 100644 --- a/arch/arm/src/armv7-m/up_ramvec_initialize.c +++ b/arch/arm/src/armv7-m/up_ramvec_initialize.c @@ -90,14 +90,6 @@ up_vector_t g_ram_vectors[ARMV7M_VECTAB_SIZE] __attribute__ ((section (".ram_vectors"), aligned (RAMVEC_ALIGN))); -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-m/up_schedulesigaction.c b/arch/arm/src/armv7-m/up_schedulesigaction.c index fd248dc012b..42aa2932ba6 100644 --- a/arch/arm/src/armv7-m/up_schedulesigaction.c +++ b/arch/arm/src/armv7-m/up_schedulesigaction.c @@ -372,7 +372,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver) if (cpu != me) { - up_cpu_pause(cpu); + up_cpu_resume(cpu); } } } diff --git a/arch/arm/src/armv7-r/Kconfig b/arch/arm/src/armv7-r/Kconfig index 03012b5da25..b4ec974db03 100644 --- a/arch/arm/src/armv7-r/Kconfig +++ b/arch/arm/src/armv7-r/Kconfig @@ -149,10 +149,12 @@ choice config ARMV7R_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" + select ARM_TOOLCHAIN_GNU depends on !WINDOWS_NATIVE config ARMV7R_TOOLCHAIN_CODESOURCERYL bool "CodeSourcery GNU toolchain under Linux" + select ARM_TOOLCHAIN_GNU depends on HOST_LINUX ---help--- For use with the GNU toolchain built with the NuttX buildroot package. @@ -161,20 +163,24 @@ config ARMV7R_TOOLCHAIN_CODESOURCERYL config ARMV7R_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" + select ARM_TOOLCHAIN_GNU depends on TOOLCHAIN_WINDOWS config ARMV7R_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" + select ARM_TOOLCHAIN_GNU depends on TOOLCHAIN_WINDOWS config ARMV7R_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" + select ARM_TOOLCHAIN_GNU ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi-. config ARMV7R_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" + select ARM_TOOLCHAIN_GNU depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) @@ -182,6 +188,7 @@ config ARMV7R_TOOLCHAIN_GNU_EABIW config ARMV7R_TOOLCHAIN_GNU_OABI bool "Generic GNU OABI toolchain" + select ARM_TOOLCHAIN_GNU ---help--- This option should work for any GNU toolchain configured for arm-elf-. diff --git a/arch/arm/src/c5471/Make.defs b/arch/arm/src/c5471/Make.defs index 92320e5d480..a0c3b9a5b39 100644 --- a/arch/arm/src/c5471/Make.defs +++ b/arch/arm/src/c5471/Make.defs @@ -45,12 +45,6 @@ CMN_CSRCS += up_releasestack.c up_reprioritizertr.c up_schedulesigaction.c CMN_CSRCS += up_sigdeliver.c up_stackframe.c up_syscall.c up_unblocktask.c CMN_CSRCS += up_undefinedinsn.c up_usestack.c up_vfork.c -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif diff --git a/arch/arm/src/dm320/Make.defs b/arch/arm/src/dm320/Make.defs index ab9b2afa638..0c408f66243 100644 --- a/arch/arm/src/dm320/Make.defs +++ b/arch/arm/src/dm320/Make.defs @@ -46,12 +46,6 @@ CMN_CSRCS += up_reprioritizertr.c up_schedulesigaction.c CMN_CSRCS += up_sigdeliver.c up_stackframe.c up_syscall.c up_unblocktask.c CMN_CSRCS += up_undefinedinsn.c up_usestack.c up_vfork.c -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif diff --git a/arch/arm/src/efm32/Make.defs b/arch/arm/src/efm32/Make.defs index 623941031bb..0b5ae3819fd 100644 --- a/arch/arm/src/efm32/Make.defs +++ b/arch/arm/src/efm32/Make.defs @@ -63,10 +63,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_BUILD_PROTECTED),y) CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c ifneq ($(CONFIG_DISABLE_SIGNALS),y) @@ -79,12 +75,6 @@ ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) diff --git a/arch/arm/src/imx1/Make.defs b/arch/arm/src/imx1/Make.defs index 40999a4e5fc..3a3b245da41 100644 --- a/arch/arm/src/imx1/Make.defs +++ b/arch/arm/src/imx1/Make.defs @@ -45,12 +45,6 @@ CMN_CSRCS += up_reprioritizertr.c up_schedulesigaction.c CMN_CSRCS += up_sigdeliver.c up_stackframe.c up_syscall.c up_unblocktask.c CMN_CSRCS += up_undefinedinsn.c up_usestack.c up_vfork.c -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif diff --git a/arch/arm/src/imx6/Make.defs b/arch/arm/src/imx6/Make.defs index 9986ac23d9d..c551c22d97b 100644 --- a/arch/arm/src/imx6/Make.defs +++ b/arch/arm/src/imx6/Make.defs @@ -62,10 +62,6 @@ CMN_ASRCS += arm_testset.S CMN_ASRCS += cp15_coherent_dcache.S cp15_invalidate_dcache.S CMN_ASRCS += cp15_clean_dcache.S cp15_flush_dcache.S cp15_invalidate_dcache_all.S -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += arm_memcpy.S -endif - # Common C source files CMN_CSRCS = up_initialize.c up_idle.c up_interruptcontext.c up_exit.c @@ -124,9 +120,9 @@ endif endif ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += arm_elf.c arm_coherent_dcache.c +CMN_CSRCS += arm_coherent_dcache.c else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += arm_elf.c arm_coherent_dcache.c +CMN_CSRCS += arm_coherent_dcache.c endif ifeq ($(CONFIG_ARCH_FPU),y) diff --git a/arch/arm/src/kinetis/Make.defs b/arch/arm/src/kinetis/Make.defs index e4dd09df790..bd4eed06484 100644 --- a/arch/arm/src/kinetis/Make.defs +++ b/arch/arm/src/kinetis/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/kinetis/Make.defs # -# Copyright (C) 2011, 2013-2016 Gregory Nutt. All rights reserved. +# Copyright (C) 2011, 2013-2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -71,10 +71,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_BUILD_PROTECTED),y) CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c ifneq ($(CONFIG_DISABLE_SIGNALS),y) @@ -97,12 +93,6 @@ CMN_CSRCS += up_etherstub.c endif endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) @@ -174,6 +164,9 @@ endif ifeq ($(CONFIG_RTC),y) CHIP_CSRCS += kinetis_rtc.c +ifeq ($(CONFIG_RTC_DRIVER),y) +CHIP_CSRCS += kinetis_rtc_lowerhalf.c +endif endif ifeq ($(CONFIG_NET),y) diff --git a/arch/arm/src/kinetis/chip/kinetis_rtc.h b/arch/arm/src/kinetis/chip/kinetis_rtc.h index 948c6ce8771..4ad016af6c0 100644 --- a/arch/arm/src/kinetis/chip/kinetis_rtc.h +++ b/arch/arm/src/kinetis/chip/kinetis_rtc.h @@ -1,7 +1,7 @@ /************************************************************************************ * arch/arm/src/kinetis/chip/kinetis_rtc.h * - * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -52,39 +52,80 @@ /* Register Offsets *****************************************************************/ -#define KINETIS_RTC_TSR_OFFSET 0x0000 /* RTC Time Seconds Register */ -#define KINETIS_RTC_TPR_OFFSET 0x0004 /* RTC Time Prescaler Register */ -#define KINETIS_RTC_TAR_OFFSET 0x0008 /* RTC Time Alarm Register */ -#define KINETIS_RTC_TCR_OFFSET 0x000c /* RTC Time Compensation Register */ -#define KINETIS_RTC_CR_OFFSET 0x0010 /* RTC Control Register */ -#define KINETIS_RTC_SR_OFFSET 0x0014 /* RTC Status Register */ -#define KINETIS_RTC_LR_OFFSET 0x0018 /* RTC Lock Register */ -#if defined(KINETIS_K20) || defined(KINETIS_K40) || defined(KINETIS_K64) -# define KINETIS_RTC_IER_OFFSET 0x001c /* RTC Interrupt Enable Register (K40) */ +/* NXP/Freescale has familes and technology generations (sometimes seen as processor + * speed). These are organized into feature families, and faster speeds sometimes + * have extended features. Families are K02 K10 K20 K22 K24 K30 K40 K50 K60 K64 K65 + * K66 K70 K80 + * + * So far only two variations/generations on the RTC have been discovered. + * GEN1 RTC_TSR TPR TAR TCR CR SR LR IER WAR RAR + * GEN2 RTC_TSR TPR TAR TCR CR SR LR IER TTSR MER MCLR MCHR WAR RAR + * + * KINETIS RTC_GEN1 K20P32-->K20P81M K22 K40 K50 K60@100Mhz K64 120MHz + * Assumed K10 K11 + * + * KINETIS_RTC_GEN2 K02 K20P144M K26P169 K60@120Mhz K65x K66x + * + * Note current naming doesn't allow GEN1:MK60FN...Q10 & GEN2:MK60FN...Q12 + */ + +#if defined(KINETIS_K26) || defined(KINETIS_K65) || defined(KINETIS_K66) +# define KINETIS_RTC_GEN2 #endif + +#define KINETIS_RTC_TSR_OFFSET 0x0000 /* RTC Time Seconds Register */ +#define KINETIS_RTC_TPR_OFFSET 0x0004 /* RTC Time Prescaler Register */ +#define KINETIS_RTC_TAR_OFFSET 0x0008 /* RTC Time Alarm Register */ +#define KINETIS_RTC_TCR_OFFSET 0x000c /* RTC Time Compensation Register */ +#define KINETIS_RTC_CR_OFFSET 0x0010 /* RTC Control Register */ +#define KINETIS_RTC_SR_OFFSET 0x0014 /* RTC Status Register */ +#define KINETIS_RTC_LR_OFFSET 0x0018 /* RTC Lock Register */ +#define KINETIS_RTC_IER_OFFSET 0x001c /* RTC Interrupt Enable Register (K40) */ + #ifdef KINETIS_K60 -# define KINETIS_RTC_CCR_OFFSET 0x001c /* RTC Chip Configuration Register (K60) */ + /* Haven't found a processor or nuttx file where KINETIS_RTC_CCR is in it + * from K60P100M100SF2V2RM this would be called KINETIS_RTC_IER_OFFSET. + */ + +# define KINETIS_RTC_CCR_OFFSET 0x001c /* RTC Chip Configuration Register (K60) */ #endif -#define KINETIS_RTC_WAR_OFFSET 0x0800 /* RTC Write Access Register */ -#define KINETIS_RTC_RAR_OFFSET 0x0804 /* RTC Read Access Register */ + +#ifdef KINETIS_RTC_GEN2 +# define KINETIS_RTC_TTSR_OFFSET 0x0020 /* RTC Tamper Times Seconds Register */ +# define KINETIS_RTC_MR_OFFSET 0x0024 /* RTC Monotonic Enable Register */ +# define KINETIS_RTC_MCLR_OFFSET 0x0028 /* RTC Monotonic Counter Low Register */ +# define KINETIS_RTC_MCHR_OFFSET 0x002c /* RTC Monotonic Counter High Register */ +#endif + +#define KINETIS_RTC_WAR_OFFSET 0x0800 /* RTC Write Access Register */ +#define KINETIS_RTC_RAR_OFFSET 0x0804 /* RTC Read Access Register */ /* Register Addresses ***************************************************************/ -#define KINETIS_RTC_TSR (KINETIS_RTC_BASE+KINETIS_RTC_TSR_OFFSET) -#define KINETIS_RTC_TPR (KINETIS_RTC_BASE+KINETIS_RTC_TPR_OFFSET) -#define KINETIS_RTC_TAR (KINETIS_RTC_BASE+KINETIS_RTC_TAR_OFFSET) -#define KINETIS_RTC_TCR (KINETIS_RTC_BASE+KINETIS_RTC_TCR_OFFSET) -#define KINETIS_RTC_CR (KINETIS_RTC_BASE+KINETIS_RTC_CR_OFFSET) -#define KINETIS_RTC_SR (KINETIS_RTC_BASE+KINETIS_RTC_SR_OFFSET) -#define KINETIS_RTC_LR (KINETIS_RTC_BASE+KINETIS_RTC_LR_OFFSET) -#if defined(KINETIS_K20) || defined(KINETIS_K40) || defined(KINETIS_K64) -# define KINETIS_RTC_IER (KINETIS_RTC_BASE+KINETIS_RTC_IER_OFFSET) -#endif +#define KINETIS_RTC_TSR (KINETIS_RTC_BASE+KINETIS_RTC_TSR_OFFSET) +#define KINETIS_RTC_TPR (KINETIS_RTC_BASE+KINETIS_RTC_TPR_OFFSET) +#define KINETIS_RTC_TAR (KINETIS_RTC_BASE+KINETIS_RTC_TAR_OFFSET) +#define KINETIS_RTC_TCR (KINETIS_RTC_BASE+KINETIS_RTC_TCR_OFFSET) +#define KINETIS_RTC_CR (KINETIS_RTC_BASE+KINETIS_RTC_CR_OFFSET) +#define KINETIS_RTC_SR (KINETIS_RTC_BASE+KINETIS_RTC_SR_OFFSET) +#define KINETIS_RTC_LR (KINETIS_RTC_BASE+KINETIS_RTC_LR_OFFSET) +#define KINETIS_RTC_IER (KINETIS_RTC_BASE+KINETIS_RTC_IER_OFFSET) + #ifdef KINETIS_K60 -# define KINETIS_CCR_IER (KINETIS_RTC_BASE+KINETIS_RTC_CCR_OFFSET) +/* From K60P100M100SF2V2RM this would be called KINETIS_RTC_IER */ + +# define KINETIS_CCR_IER (KINETIS_RTC_BASE+KINETIS_RTC_CCR_OFFSET) #endif -#define KINETIS_RTC_WAR (KINETIS_RTC_BASE+KINETIS_RTC_WAR_OFFSET) -#define KINETIS_RTC_RAR (KINETIS_RTC_BASE+KINETIS_RTC_RAR_OFFSET) + +#ifdef KINETIS_RTC_GEN2 +# define KINETIS_RTC_TTSR (KINETIS_RTC_BASE+KINETIS_RTC_TTSR_OFFSET) +# define KINETIS_RTC_MER (KINETIS_RTC_BASE+KINETIS_RTC_MER_OFFSET) +# define KINETIS_RTC_MCLR (KINETIS_RTC_BASE+KINETIS_RTC_MCLR_OFFSET) +# define KINETIS_RTC_MCHR (KINETIS_RTC_BASE+KINETIS_RTC_MCHR_OFFSET) +#endif + +#define KINETIS_RTC_WAR (KINETIS_RTC_BASE+KINETIS_RTC_WAR_OFFSET) +#define KINETIS_RTC_RAR (KINETIS_RTC_BASE+KINETIS_RTC_RAR_OFFSET) /* Register Bit Definitions *********************************************************/ @@ -92,104 +133,133 @@ /* RTC Time Prescaler Register */ -#define RTC_TPR_SHIFT (0) /* Bits 0-15: Time Prescaler Register */ -#define RTC_TPR_MASK (0xffff << RTC_TPR_SHIFT) +#define RTC_TPR_SHIFT (0) /* Bits 0-15: Time Prescaler Register */ +#define RTC_TPR_MASK (0xffff << RTC_TPR_SHIFT) /* Bits 16-31: Reserved */ /* RTC Time Alarm Register (32-bits of time alarm) */ /* RTC Time Compensation Register (32-bits) */ -#define RTC_TCR_TCR_SHIFT (0) /* Bits 0-7: Time Compensation Register */ -#define RTC_TCR_TCR_MASK (0xff << RTC_TCR_CIR_MASK) -#define RTC_TCR_CIR_SHIFT (8) /* Bits 8-15: Compensation Interval Register */ -#define RTC_TCR_CIR_MASK (0xff << RTC_TCR_CIR_SHIFT) -#define RTC_TCR_TCV_SHIFT (16) /* Bits 16-23: Time Compensation Value */ -#define RTC_TCR_TCV_MASK (0xff << RTC_TCR_TCV_SHIFT) -#define RTC_TCR_CIC_SHIFT (24) /* Bits 24-31: Compensation Interval Counter */ -#define RTC_TCR_CIC_MASK (0xff << RTC_TCR_CIC_SHIFT) +#define RTC_TCR_TCR_SHIFT (0) /* Bits 0-7: Time Compensation Register */ +#define RTC_TCR_TCR_MASK (0xff << RTC_TCR_CIR_MASK) +#define RTC_TCR_CIR_SHIFT (8) /* Bits 8-15: Compensation Interval Register */ +#define RTC_TCR_CIR_MASK (0xff << RTC_TCR_CIR_SHIFT) +#define RTC_TCR_TCV_SHIFT (16) /* Bits 16-23: Time Compensation Value */ +#define RTC_TCR_TCV_MASK (0xff << RTC_TCR_TCV_SHIFT) +#define RTC_TCR_CIC_SHIFT (24) /* Bits 24-31: Compensation Interval Counter */ +#define RTC_TCR_CIC_MASK (0xff << RTC_TCR_CIC_SHIFT) /* RTC Control Register (32-bits) */ -#define RTC_CR_SWR (1 << 0) /* Bit 0: Software Reset */ -#define RTC_CR_WPE (1 << 1) /* Bit 1: Wakeup Pin Enable */ -#define RTC_CR_SUP (1 << 2) /* Bit 2: Supervisor Access */ -#define RTC_CR_UM (1 << 3) /* Bit 3: Update Mode */ - /* Bits 4-7: Reserved */ -#define RTC_CR_OSCE (1 << 8) /* Bit 8: Oscillator Enable */ -#define RTC_CR_CLKO (1 << 9) /* Bit 9: Clock Output */ -#define RTC_CR_SC16P (1 << 10) /* Bit 10: Oscillator 16pF load configure */ -#define RTC_CR_SC8P (1 << 11) /* Bit 11: Oscillator 8pF load configure */ -#define RTC_CR_SC4P (1 << 12) /* Bit 12: Oscillator 4pF load configure */ -#define RTC_CR_SC2P (1 << 13) /* Bit 13: Oscillator 2pF load configure */ - /* Bits 14-31: Reserved */ +#define RTC_CR_SWR (1 << 0) /* Bit 0: Software Reset */ +#define RTC_CR_WPE (1 << 1) /* Bit 1: Wakeup Pin Enable */ +#define RTC_CR_SUP (1 << 2) /* Bit 2: Supervisor Access */ +#define RTC_CR_UM (1 << 3) /* Bit 3: Update Mode */ + /* Bits 4-7: Reserved */ +#define RTC_CR_OSCE (1 << 8) /* Bit 8: Oscillator Enable */ +#define RTC_CR_CLKO (1 << 9) /* Bit 9: Clock Output */ +#define RTC_CR_SC16P (1 << 10) /* Bit 10: Oscillator 16pF load configure */ +#define RTC_CR_SC8P (1 << 11) /* Bit 11: Oscillator 8pF load configure */ +#define RTC_CR_SC4P (1 << 12) /* Bit 12: Oscillator 4pF load configure */ +#define RTC_CR_SC2P (1 << 13) /* Bit 13: Oscillator 2pF load configure */ + /* Bits 14-31: Reserved */ /* RTC Status Register (32-bits) */ -#define RTC_SR_TIF (1 << 0) /* Bit 0: Time Invalid Flag */ -#define RTC_SR_TOF (1 << 1) /* Bit 1: Time Overflow Flag */ - /* Bit 3: Reserved */ -#define RTC_SR_TAF (1 << 2) /* Bit 2: Time Alarm Flag */ -#define RTC_SR_TCE (1 << 4) /* Bit 4: Time Counter Enable */ - /* Bits 5-31: Reserved */ -/* RTC Lock Register (32-bits) */ - /* Bits 0-2: Reserved */ -#define RTC_LR_TCL (1 << 3) /* Bit 3: Time Compensation Lock */ -#define RTC_LR_CRL (1 << 4) /* Bit 4: Control Register Lock */ -#define RTC_LR_SRL (1 << 5) /* Bit 5: Status Register Lock */ -#if defined(KINETIS_K20) || defined(KINETIS_K40) -# define RTC_LR_LRL (1 << 6) /* Bit 6: Lock Register Lock (K40) */ +#define RTC_SR_TIF (1 << 0) /* Bit 0: Time Invalid Flag */ +#define RTC_SR_TOF (1 << 1) /* Bit 1: Time Overflow Flag */ +#define RTC_SR_TAF (1 << 2) /* Bit 2: Time Alarm Flag */ + +#ifdef KINETIS_RTC_GEN2 +# define RTC_SR_MOF (1 << 3) /* Bit 3: Time Monotonic overflow Flag */ #endif - /* Bits 7-31: Reserved */ + /* Bit 3: Reserved RTC_GEN1 */ +#define RTC_SR_TCE (1 << 4) /* Bit 4: Time Counter Enable */ + /* Bits 5-31: Reserved */ +/* RTC Lock Register (32-bits) */ + /* Bits 0-2: Reserved */ +#define RTC_LR_TCL (1 << 3) /* Bit 3: Time Compensation Lock */ +#define RTC_LR_CRL (1 << 4) /* Bit 4: Control Register Lock */ +#define RTC_LR_SRL (1 << 5) /* Bit 5: Status Register Lock */ +#define RTC_LR_LRL (1 << 6) /* Bit 6: Lock Register Lock */ + /* Bit 7: Reserved */ +#ifdef KINETIS_RTC_GEN2 +# define RTC_LR_TTSL (1 << 8) /* Bit 8: Tamper Time Seconds Lock */ +# define RTC_LR_MEL (1 << 9) /* Bit 9: Monotonic Enable lock */ +# define RTC_LR_MCLL (1 << 10) /* Bit 10: Monotoic Counter Low Lock */ +# define RTC_LR_MCHL (1 << 11) /* Bit 10: Monotoic Counter High Lock */ +#endif + /* Bits 12-31: Reserved */ /* RTC Interrupt Enable Register (32-bits, K40) */ -#if defined(KINETIS_K20) || defined(KINETIS_K40) || defined(KINETIS_K64) -# define RTC_IER_TIIE (1 << 0) /* Bit 0: Time Invalid Interrupt Enable */ -# define RTC_IER_TOIE (1 << 1) /* Bit 1: Time Overflow Interrupt Enable */ -# define RTC_IER_TAIE (1 << 2) /* Bit 2: Time Alarm Interrupt Enable */ - /* Bit 3: Reserved */ -# define RTC_IER_TSIE (1 << 4) /* Bit 4: Time Seconds Interrupt Enable */ - /* Bits 5-31: Reserved */ +# define RTC_IER_TIIE (1 << 0) /* Bit 0: Time Invalid Interrupt Enable */ +# define RTC_IER_TOIE (1 << 1) /* Bit 1: Time Overflow Interrupt Enable */ +# define RTC_IER_TAIE (1 << 2) /* Bit 2: Time Alarm Interrupt Enable */ + +#ifdef KINETIS_RTC_GEN2 +# define RTC_IER_MOIE (1 << 3) /* Bit 3: Monotonic Overflow Interrupt Enable */ #endif -/* RTC Chip Configuration Register (32-bits,K60) */ +# define RTC_IER_TSIE (1 << 4) /* Bit 4: Time Seconds Interrupt Enable */ + /* Bits 5-6: Reserved */ +# define RTC_IER_WPON (1 << 7) /* Bit 7: Wakeup Pin On */ #ifdef KINETIS_K60 -# define RTC_CCR_CONFIG_SHIFT (0) /* Bits 0-7: Chip Configuration */ -# define RTC_CCR_CONFIG_MASK (0xff << RTC_CCR_CONFIG_SHIFT) - /* Bits 8-31: Reserved */ +/* RTC Chip Configuration Register (32-bits,K60) */ +/* Haven't found this in K60P100M100SF2V2RM */ + +# define RTC_CCR_CONFIG_SHIFT (0) /* Bits 0-7: Chip Configuration */ +# define RTC_CCR_CONFIG_MASK (0xff << RTC_CCR_CONFIG_SHIFT) + /* Bits 8-31: Reserved */ #endif /* RTC Write Access Register (32-bits) */ -#define RTC_WAR_TSRW (1 << 0) /* Bit 0: Time Seconds Register Write */ -#define RTC_WAR_TPRW (1 << 1) /* Bit 1: Time Prescaler Register Write */ -#define RTC_WAR_TARW (1 << 2) /* Bit 2: Time Alarm Register Write */ -#define RTC_WAR_TCRW (1 << 3) /* Bit 3: Time Compensation Register Write */ -#define RTC_WAR_CRW (1 << 4) /* Bit 4: Control Register Write */ -#define RTC_WAR_SRW (1 << 5) /* Bit 5: Status Register Write */ -#define RTC_WAR_LRW (1 << 6) /* Bit 6: Lock Register Write */ -#if defined(KINETIS_K40) || defined(KINETIS_K64) -# define RTC_WAR_IERW (1 << 7) /* Bit 7: Interrupt Enable Register Write */ -#endif +#define RTC_WAR_TSRW (1 << 0) /* Bit 0: Time Seconds Register Write */ +#define RTC_WAR_TPRW (1 << 1) /* Bit 1: Time Prescaler Register Write */ +#define RTC_WAR_TARW (1 << 2) /* Bit 2: Time Alarm Register Write */ +#define RTC_WAR_TCRW (1 << 3) /* Bit 3: Time Compensation Register Write */ +#define RTC_WAR_CRW (1 << 4) /* Bit 4: Control Register Write */ +#define RTC_WAR_SRW (1 << 5) /* Bit 5: Status Register Write */ +#define RTC_WAR_LRW (1 << 6) /* Bit 6: Lock Register Write */ +#define RTC_WAR_IERW (1 << 7) /* Bit 7: Interrupt Enable Register Write */ + #ifdef KINETIS_K60 -# define RTC_WAR_CCRW (1 << 7) /* Bit 7: Chip Config Register Write */ +/* This looks like old name, from K60P100M100SF2V2RM bit 7 would be called RTC_RAR_IERW */ + +# define RTC_WAR_CCRW (1 << 7) /* Bit 7: Chip Config Register Write */ #endif - /* Bits 8-31: Reserved */ + /* Bits 8-31: Reserved */ /* RTC Read Access Register */ -#define RTC_RAR_TSRR (1 << 0) /* Bit 0: Time Seconds Register Read */ -#define RTC_RAR_TPRR (1 << 1) /* Bit 1: Time Prescaler Register Read */ -#define RTC_RAR_TARR (1 << 2) /* Bit 2: Time Alarm Register Read */ -#define RTC_RAR_TCRR (1 << 3) /* Bit 3: Time Compensation Register Read */ -#define RTC_RAR_CRR (1 << 4) /* Bit 4: Control Register Read */ -#define RTC_RAR_SRR (1 << 5) /* Bit 5: Status Register Read */ -#define RTC_RAR_LRR (1 << 6) /* Bit 6: Lock Register Read */ -#if defined(KINETIS_K40) || defined(KINETIS_K64) -# define RTC_RAR_IERR (1 << 7) /* Bit 7: Interrupt Enable Register Read */ -#endif +#define RTC_RAR_TSRR (1 << 0) /* Bit 0: Time Seconds Register Read */ +#define RTC_RAR_TPRR (1 << 1) /* Bit 1: Time Prescaler Register Read */ +#define RTC_RAR_TARR (1 << 2) /* Bit 2: Time Alarm Register Read */ +#define RTC_RAR_TCRR (1 << 3) /* Bit 3: Time Compensation Register Read */ +#define RTC_RAR_CRR (1 << 4) /* Bit 4: Control Register Read */ +#define RTC_RAR_SRR (1 << 5) /* Bit 5: Status Register Read */ +#define RTC_RAR_LRR (1 << 6) /* Bit 6: Lock Register Read */ +#define RTC_RAR_IERR (1 << 7) /* Bit 7: Interrupt Enable Register Read */ + #ifdef KINETIS_K60 -# define RTC_RAR_CCRR (1 << 7) /* Bit 7: Chip Config Register Read */ +/* This is possibly an old name, from K60P100M100SF2V2RM bit 7 would be called + * RTC_RAR_IERR. + */ + +# define RTC_RAR_CCRR (1 << 7) /* Bit 7: Chip Config Register Read */ +#endif + +#ifdef KINETIS_RTC_GEN2 +# define RTC_RAR_TTSR (1 << 8) /* Bit 8: Tamper Time Seconds Read */ +# define RTC_RAR_MERR (1 << 9) /* Bit 9: Monotonic Enable Read */ +# define RTC_RAR_MCLR (1 << 10) /* Bit 10: Monotoic Counter Low Register Read */ +# define RTC_RAR_MCHR (1 << 11) /* Bit 10: Monotoic Counter High Register Read */ +#endif + /* Bits 11-31: Reserved */ + +#if defined(KINETIS_RTC_GEN2)/* && defined(CONFIG_RTC_MAGIC) */ +# define CONFIG_RTC_MAGICL 0xfacefee0 +# define CONFIG_RTC_MAGICH 0xef32a141 #endif - /* Bits 8-31: Reserved */ /************************************************************************************ * Public Types diff --git a/arch/arm/src/kinetis/kinetis_alarm.h b/arch/arm/src/kinetis/kinetis_alarm.h index 751cfd8cf05..3815e374c88 100644 --- a/arch/arm/src/kinetis/kinetis_alarm.h +++ b/arch/arm/src/kinetis/kinetis_alarm.h @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/kinetis/kinetis_alarm.h * - * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2016-2017 Gregory Nutt. All rights reserved. * Author: Matias v01d * * Redistribution and use in source and binary forms, with or without @@ -56,6 +56,34 @@ typedef CODE void (*alarmcb_t)(void); +/* These features are in KinetisK 1st generation + * Time Alarm Interrupt + * Time Overflow Interrupt + * Time Seconds Interrupt + * + * For KinetisK 2nd Generation devices + * 64bit Monotonic register. + */ + +enum alm_id_e +{ + /* Used for indexing - must be sequential */ + + RTC_ALARMA = 0, /* RTC ALARM A */ + RTC_ALARMM, /* FUT: RTC Monotonic */ + RTC_ALARM_LAST +}; + +/* Structure used to pass parmaters to set an alarm */ + +struct alm_setalarm_s +{ + int as_id; /* enum alm_id_e */ + struct tm as_time; /* Alarm expiration time */ + alarmcb_t as_cb; /* Callback (if non-NULL) */ + FAR void *as_arg; /* Argument for callback */ +}; + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -84,7 +112,6 @@ extern "C" * ****************************************************************************/ -struct timespec; int kinetis_rtc_setalarm(FAR const struct timespec *tp, alarmcb_t callback); /**************************************************************************** @@ -103,6 +130,30 @@ int kinetis_rtc_setalarm(FAR const struct timespec *tp, alarmcb_t callback); int kinetis_rtc_cancelalarm(void); +/**************************************************************************** + * Name: kinetis_rtc_lowerhalf + * + * Description: + * Instantiate the RTC lower half driver for the Kinetis. General usage: + * + * #include + * #include "kinetis_rtc.h> + * + * struct rtc_lowerhalf_s *lower; + * lower = kinetis_rtc_lowerhalf(); + * rtc_initialize(0, lower); + * + * Input Parameters: + * None + * + * Returned Value: + * On success, a non-NULL RTC lower interface is returned. + * NULL is returned on any failure. + * + ****************************************************************************/ + +FAR struct rtc_lowerhalf_s *kinetis_rtc_lowerhalf(void); + #undef EXTERN #if defined(__cplusplus) } diff --git a/arch/arm/src/kinetis/kinetis_rtc.c b/arch/arm/src/kinetis/kinetis_rtc.c index ca0f4848d19..19db2796b44 100644 --- a/arch/arm/src/kinetis/kinetis_rtc.c +++ b/arch/arm/src/kinetis/kinetis_rtc.c @@ -60,12 +60,23 @@ #if defined(CONFIG_RTC) +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#if !defined(BOARD_RTC_CAP) +/* Capacitance values 8pF if not already defined */ + +# define BOARD_RTC_CAP RTC_CR_SC8P | RTC_CR_SC4P +#endif + /**************************************************************************** * Private Data ****************************************************************************/ #ifdef CONFIG_RTC_ALARM static alarmcb_t g_alarmcb; +static bool rtc_irq_state = false; #endif /**************************************************************************** @@ -78,6 +89,73 @@ volatile bool g_rtc_enabled = false; * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: rtc_dumpregs + * + * Description: + * Disable RTC write protection + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_DEBUG_RTC_INFO +static void rtc_dumpregs(FAR const char *msg) +{ + rtcinfo("%s:\n", msg); + rtcinfo(" TSR: %08x\n", getreg32(KINETIS_RTC_TSR)); + rtcinfo(" TPR: %08x\n", getreg32(KINETIS_RTC_TPR)); + rtcinfo(" TAR: %08x\n", getreg32(KINETIS_RTC_TAR)); + rtcinfo(" CR: %08x\n", getreg32(KINETIS_RTC_CR)); + rtcinfo(" SR: %08x\n", getreg32(KINETIS_RTC_SR)); + rtcinfo(" LR: %08x\n", getreg32(KINETIS_RTC_LR)); + rtcinfo(" IER: %08x\n", getreg32(KINETIS_RTC_IER)); +#if defined(KINETIS_RTC_GEN2) + rtcinfo(" TTSR: %08x\n", getreg32(KINETIS_RTC_TTSR)); + rtcinfo(" MER: %08x\n", getreg32(KINETIS_RTC_MER)); + rtcinfo(" MCLR: %08x\n", getreg32(KINETIS_RTC_MCLR)); + rtcinfo(" MCHR: %08x\n", getreg32(KINETIS_RTC_MCHR)); + rtcinfo(" WAR: %08x\n", getreg32(KINETIS_RTC_WAR)); + rtcinfo(" RAR: %08x\n", getreg32(KINETIS_RTC_RAR)); +#endif +} +#else +# define rtc_dumpregs(msg) +#endif + +/**************************************************************************** + * Name: rtc_dumptime + * + * Description: + * Disable RTC write protection + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_DEBUG_RTC_INFO +static void rtc_dumptime(FAR struct tm *tp, FAR const char *msg) +{ + rtcinfo("%s:\n", msg); + rtcinfo(" tm_sec: %08x\n", tp->tm_sec); + rtcinfo(" tm_min: %08x\n", tp->tm_min); + rtcinfo(" tm_hour: %08x\n", tp->tm_hour); + rtcinfo(" tm_mday: %08x\n", tp->tm_mday); + rtcinfo(" tm_mon: %08x\n", tp->tm_mon); + rtcinfo(" tm_year: %08x\n", tp->tm_year); +} +#else +# define rtc_dumptime(tp, msg) +#endif + /**************************************************************************** * Name: kinetis_rtc_interrupt * @@ -96,27 +174,119 @@ volatile bool g_rtc_enabled = false; #if defined(CONFIG_RTC_ALARM) static int kinetis_rtc_interrupt(int irq, void *context) { - if (g_alarmcb != NULL) - { - /* Alarm callback */ + uint16_t rtc_sr; - g_alarmcb(); - g_alarmcb = NULL; + /* if alarm */ + rtc_sr = getreg32( KINETIS_RTC_SR); + if (rtc_sr & RTC_SR_TAF ) + { + if (g_alarmcb != NULL) + { + /* Alarm callback */ + + g_alarmcb(); + g_alarmcb = NULL; + } + } + else + { + /* other interrupts are serious and should leave a turd + * + * RTC_SR_TIF _TOF _MOF + */ + + rtcwarn("unexp int src=0x%x, num=", rtc_sr); } /* Clear pending flags, disable alarm */ - putreg32(0, KINETIS_RTC_TAR); /* unset alarm (resets flags) */ - putreg32(0, KINETIS_RTC_IER); /* disable alarm interrupt */ + putreg32(0, KINETIS_RTC_TAR); /* Unset alarm (resets flags) */ + putreg32(0, KINETIS_RTC_IER); /* Disable alarm interrupt */ return 0; } #endif +/**************************************************************************** + * Name: RTC_Reset + * + * Description: + * Reset the RTC to known state + * + * Input Parameters: + * none + * + * Returned Value: + * none + * + ****************************************************************************/ + +static inline void RTC_Reset(void) +{ + putreg32(( RTC_CR_SWR | getreg32(KINETIS_RTC_CR)),KINETIS_RTC_CR); + putreg32((~RTC_CR_SWR & getreg32(KINETIS_RTC_CR)),KINETIS_RTC_CR); + + /* Set TSR register to 0x1 to avoid the timer invalid (TIF) bit being + * set in the SR register + */ + + putreg32(1,KINETIS_RTC_TSR); +} + /**************************************************************************** * Public Functions ****************************************************************************/ +/**************************************************************************** + * Name: up_rtc_irqinit + * + * Description: + * Initialize the hardware RTC irq. +* This only needs to be called once when first used. + * + * Input Parameters: + * None + * + * Returned Value: + * Zero (OK) on success; a negated errno on failure + * + ****************************************************************************/ + +#if defined(CONFIG_RTC_ALARM) +int up_rtc_irq_attach(void) +{ + uint32_t rtc_sr; + + if (!rtc_irq_state) + { + rtc_irq_state=true; + + /* Clear TAF if pending */ + + rtc_sr = getreg32( KINETIS_RTC_SR); + if (rtc_sr & RTC_SR_TAF ) + { + putreg32(0, KINETIS_RTC_TAR); + } + + /* Enable alarm interrupts. + * This will not work if part of up_rtc_initialize() + * as it is called very early in initialization BEFORE the interrupt + * system will be enabled. All interrupts will disabled later when + * the interrupt system is disabled. This must be done later when the + * alarm is first set. + * + * KINETIS_IRQ_RTCS is a separate interrupt for seconds if needed + */ + + irq_attach(KINETIS_IRQ_RTC, kinetis_rtc_interrupt); + up_enable_irq(KINETIS_IRQ_RTC); + } + + return OK; +} +#endif + /**************************************************************************** * Name: up_rtc_initialize * @@ -134,7 +304,8 @@ static int kinetis_rtc_interrupt(int irq, void *context) int up_rtc_initialize(void) { - int regval; + uint32_t regval; + bool rtc_valid = false; /* Enable RTC module */ @@ -142,16 +313,64 @@ int up_rtc_initialize(void) regval |= SIM_SCGC6_RTC; putreg32(regval, KINETIS_SIM_SCGC6); - /* Disable counters (just in case) */ + regval = getreg32(KINETIS_RTC_SR); + if (!(regval & RTC_SR_TIF)) + { +#ifdef KINETIS_RTC_GEN2 + /* Check if the one-time initialization of the RTC has already been + * performed. We can determine this by checking if the magic number + * has been writing to to back-up date register DR0. + */ - putreg32(0, KINETIS_RTC_SR); + regval = getreg32(KINETIS_RTC_MCLR); + if ((CONFIG_RTC_MAGICL == regval ) && + (CONFIG_RTC_MAGICH == getreg32(KINETIS_RTC_MCHR)) ) +#endif + { + rtc_valid = true; + } + } - /* Enable oscilator */ - /* capacitance values from teensyduino */ + if (rtc_valid) + { + rtcinfo("Do resume\n"); - putreg32(RTC_CR_SC16P | RTC_CR_SC4P | RTC_CR_OSCE, KINETIS_RTC_CR); + /* RTC already set-up, just resume normal operation */ - /* TODO: delay some time (1024 cycles? would be 30ms) */ + rtc_dumpregs("Did resume"); + } + else + { + rtcinfo("Do setup\n"); + RTC_Reset(); + +#ifdef KINETIS_RTC_GEN2 + /* Configure the RTC to be initialized */ + + putreg32(CONFIG_RTC_MAGICL, KINETIS_RTC_MCLR); + putreg32(CONFIG_RTC_MAGICH, KINETIS_RTC_MCHR); +#endif + + /* Setup the update mode and supervisor access mode */ + + putreg32((~(RTC_CR_UM|RTC_CR_SUP) & getreg32(KINETIS_RTC_CR)), + KINETIS_RTC_CR); + + /* Disable counters (just in case) */ + + putreg32(0, KINETIS_RTC_SR); + + /* Enable oscilator - must have Vbat else hard fault */ + + putreg32((BOARD_RTC_CAP | RTC_CR_OSCE ), KINETIS_RTC_CR); + + /* TODO - add capability to accurately tune RTC + * This is a per individual board customization and requires + * parameters to be configurable and stored in non-volatile eg flash. + */ + + /* TODO: delay some time (1024 cycles? would be 30ms) */ + } /* Disable interrupts */ @@ -163,17 +382,6 @@ int up_rtc_initialize(void) putreg32(getreg32(KINETIS_RTC_TSR), KINETIS_RTC_TSR); -#if defined(CONFIG_RTC_ALARM) - /* Enable alarm interrupts. REVISIT: This will not work. up_rtc_initialize() - * is called very early in initialization BEFORE the interrupt system will be - * enabled. All interrupts will disabled later when the interrupt system is - * disabled. This must be done later when the alarm is first set. - */ - - irq_attach(KINETIS_IRQ_RTC, kinetis_rtc_interrupt); - up_enable_irq(KINETIS_IRQ_RTC); -#endif - /* Enable counters */ putreg32(RTC_SR_TCE, KINETIS_RTC_SR); @@ -319,12 +527,18 @@ int kinetis_rtc_setalarm(FAR const struct timespec *tp, alarmcb_t callback) g_alarmcb = callback; + /* ensure irq is attached */ + + up_rtc_irq_attach(); + /* Enable and set RTC alarm */ putreg32(tp->tv_sec, KINETIS_RTC_TAR); /* Set alarm (also resets * flags) */ putreg32(RTC_IER_TAIE, KINETIS_RTC_IER); /* Enable alarm interrupt */ + rtc_dumpregs("set alarmtime"); + return OK; } else diff --git a/arch/arm/src/kinetis/kinetis_rtc_if.h b/arch/arm/src/kinetis/kinetis_rtc_if.h new file mode 100644 index 00000000000..78dd7774f2e --- /dev/null +++ b/arch/arm/src/kinetis/kinetis_rtc_if.h @@ -0,0 +1,150 @@ +/**************************************************************************** + * arch/arm/src/kinetis/kinetis_rtc_if.h + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * Author: Neil Hancock + * + * 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 + ****************************************************************************/ + +#ifndef __ARCH_ARM_SRC_KINETIS_KINETIS_RTC_IF_H +#define __ARCH_ARM_SRC_KINETIS_KINETIS_RTC_IF_H + +#include + +#include "chip.h" + +/* Kinetis parts all have a simple battery-backed 32bit counter for its RTC + * KINETIS_RTC_GEN2 have + * a Tamper Time seconds - 32bibt + * a MONOTONC seconds which is used is 2*32bit registers + * + */ + +#include "kinetis_alarm.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#ifndef __ASSEMBLY__ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Name: KINETIS_rtc_getdatetime_with_subseconds + * + * Description: + * Get the current date and time from the date/time RTC. This interface + * is only supported by the date/time RTC hardware implementation. + * It is used to replace the system timer. It is only used by the RTOS + * during initialization to set up the system time when CONFIG_RTC and + * CONFIG_RTC_DATETIME are selected (and CONFIG_RTC_HIRES is not). + * + * NOTE: Some date/time RTC hardware is capability of sub-second accuracy. + * Thatsub-second accuracy is returned through 'nsec'. + * + * Input Parameters: + * tp - The location to return the high resolution time value. + * nsec - The location to return the subsecond time value. + * + * Returned Value: + * Zero (OK) on success; a negated errno on failure + * + ****************************************************************************/ + +#ifdef CONFIG_KINETIS_HAVE_RTC_SUBSECONDS +int KINETIS_rtc_getdatetime_with_subseconds(FAR struct tm *tp, FAR long *nsec); +#endif + +/**************************************************************************** + * Name: KINETIS_rtc_setdatetime + * + * Description: + * Set the RTC to the provided time. RTC implementations which provide + * up_rtc_getdatetime() (CONFIG_RTC_DATETIME is selected) should provide + * this function. + * + * Input Parameters: + * tp - the time to use + * + * Returned Value: + * Zero (OK) on success; a negated errno on failure + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_DATETIME +struct tm; +int kinetis_rtc_setdatetime(FAR const struct tm *tp); +#endif + +/**************************************************************************** + * Name: KINETIS_rtc_lowerhalf + * + * Description: + * Instantiate the RTC lower half driver for the KINETIS. General usage: + * + * #include + * #include "KINETIS_rtc.h> + * + * struct rtc_lowerhalf_s *lower; + * lower = KINETIS_rtc_lowerhalf(); + * rtc_initialize(0, lower); + * + * Input Parameters: + * None + * + * Returned Value: + * On success, a non-NULL RTC lower interface is returned. NULL is + * returned on any failure. + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_DRIVER +FAR struct rtc_lowerhalf_s *kinetis_rtc_lowerhalf(void); +#endif + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_RTC_IF_H */ diff --git a/arch/arm/src/kinetis/kinetis_rtc_lowerhalf.c b/arch/arm/src/kinetis/kinetis_rtc_lowerhalf.c new file mode 100644 index 00000000000..961a212b6a8 --- /dev/null +++ b/arch/arm/src/kinetis/kinetis_rtc_lowerhalf.c @@ -0,0 +1,525 @@ +/**************************************************************************** + * arch/arm/src/kinetis/kinetis_rtc_lowerhalf.c + * + * Copyright (C) 2015-2017 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * Updates for kinetis by Neil Hancock + * + * 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. + * + ****************************************************************************/ + +/* REVISIT: This driver is *not* thread-safe! */ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include + +#include +#include + +#include "chip.h" +#include "kinetis_rtc_if.h" +#include "kinetis_alarm.h" + +#ifdef CONFIG_RTC_DRIVER + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +struct kinetis_cbinfo_s +{ + volatile rtc_alarm_callback_t cb; /* Callback when the alarm expires */ + volatile FAR void *priv; /* Private argurment to accompany callback */ +}; +#endif + +/* This is the private type for the RTC state. It must be cast compatible + * with struct rtc_lowerhalf_s. + */ + +struct kinetis_lowerhalf_s +{ + /* This is the contained reference to the read-only, lower-half + * operations vtable (which may lie in FLASH or ROM) + */ + + FAR const struct rtc_ops_s *ops; + + /* Data following is private to this driver and not visible outside of + * this file. + */ + +#ifdef CONFIG_RTC_ALARM + /* Alarm callback information */ + + struct kinetis_cbinfo_s cbinfo; +#endif +}; + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +/* Prototypes for static methods in struct rtc_ops_s */ + +static int kinetis_rdtime(FAR struct rtc_lowerhalf_s *lower, + FAR struct rtc_time *rtctime); +static int kinetis_settime(FAR struct rtc_lowerhalf_s *lower, + FAR const struct rtc_time *rtctime); + +#ifdef CONFIG_RTC_ALARM +static int kinetis_setalarm(FAR struct rtc_lowerhalf_s *lower, + FAR const struct lower_setalarm_s *alarminfo); +static int kinetis_setrelative(FAR struct rtc_lowerhalf_s *lower, + FAR const struct lower_setrelative_s *alarminfo); +static int kinetis_cancelalarm(FAR struct rtc_lowerhalf_s *lower, + int alarmid); +#endif + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/* Kinetis RTC driver operations */ + +static const struct rtc_ops_s g_rtc_ops = +{ + .rdtime = kinetis_rdtime, + .settime = kinetis_settime, +#ifdef CONFIG_RTC_ALARM + .setalarm = kinetis_setalarm, + .setrelative = kinetis_setrelative, + .cancelalarm = kinetis_cancelalarm, +#endif +#ifdef CONFIG_RTC_IOCTL + .ioctl = NULL, +#endif +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + .destroy = NULL, +#endif +}; + +/* Kinetis RTC device operations */ + +static struct kinetis_lowerhalf_s g_rtc_lowerhalf = +{ + .ops = &g_rtc_ops, +}; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: kinetis_alarm_callback + * + * Description: + * This is the function that is called from the RTC driver when the alarm + * goes off. It just invokes the upper half drivers callback. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static void kinetis_alarm_callback(void) +{ + FAR struct kinetis_cbinfo_s *cbinfo = &g_rtc_lowerhalf.cbinfo;/*[0];*/ + + /* Sample and clear the callback information to minimize the window in + * time in which race conditions can occur. + */ + + rtc_alarm_callback_t cb = (rtc_alarm_callback_t)cbinfo->cb; + FAR void *arg = (FAR void *)cbinfo->priv; + + cbinfo->cb = NULL; + cbinfo->priv = NULL; + + /* Perform the callback */ + + if (cb != NULL) + { + cb(arg, 0); + } +} +#endif /* CONFIG_RTC_ALARM */ + +/**************************************************************************** + * Name: kinetis_rdtime + * + * Description: + * Implements the rdtime() method of the RTC driver interface + * + * Input Parameters: + * lower - A reference to RTC lower half driver state structure + * rtctime - The location in which to return the current RTC time. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned + * on any failure. + * + ****************************************************************************/ + +static int kinetis_rdtime(FAR struct rtc_lowerhalf_s *lower, + FAR struct rtc_time *rtctime) +{ +#if defined(CONFIG_RTC_DATETIME) + /* This operation depends on the fact that struct rtc_time is cast + * compatible with struct tm. + */ + + return up_rtc_getdatetime((FAR struct tm *)rtctime); + +#elif defined(CONFIG_RTC_HIRES) + FAR struct timespec ts; + int ret; + + /* Get the higher resolution time */ + + ret = up_rtc_gettime(&ts); + if (ret < 0) + { + goto errout_with_errno; + } + + /* Convert the one second epoch time to a struct tm. This operation + * depends on the fact that struct rtc_time and struct tm are cast + * compatible. + */ + + if (!gmtime_r(&ts.tv_sec, (FAR struct tm *)rtctime)) + { + goto errout_with_errno; + } + + return OK; + +errout_with_errno: + ret = get_errno(); + DEBUGASSERT(ret > 0); + return -ret; + +#else + time_t timer; + + /* The resolution of time is only 1 second */ + + timer = up_rtc_time(); + + /* Convert the one second epoch time to a struct tm */ + + if (!gmtime_r(&timer, (FAR struct tm *)rtctime)) + { + int errcode = get_errno(); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + return OK; +#endif +} + +/**************************************************************************** + * Name: kinetis_settime + * + * Description: + * Implements the settime() method of the RTC driver interface + * + * Input Parameters: + * lower - A reference to RTC lower half driver state structure + * rcttime - The new time to set + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned + * on any failure. + * + ****************************************************************************/ + +static int kinetis_settime(FAR struct rtc_lowerhalf_s *lower, + FAR const struct rtc_time *rtctime) +{ + struct timespec ts; + + /* Convert the struct rtc_time to a time_t. Here we assume that struct + * rtc_time is cast compatible with struct tm. + */ + + ts.tv_sec = mktime((FAR struct tm *)rtctime); + ts.tv_nsec = 0; + + /* Set the time (to one second accuracy) */ + + return up_rtc_settime(&ts); +} + +/**************************************************************************** + * Name: kinetis_setalarm + * + * Description: + * Set a new alarm. This function implements the setalarm() method of the + * RTC driver interface + * + * Input Parameters: + * lower - A reference to RTC lower half driver state structure + * alarminfo - Provided information needed to set the alarm + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned + * on any failure. + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static int kinetis_setalarm(FAR struct rtc_lowerhalf_s *lower, + FAR const struct lower_setalarm_s *alarminfo) +{ + FAR struct kinetis_lowerhalf_s *priv; + FAR struct kinetis_cbinfo_s *cbinfo; + + struct timespec tp; + + int ret = -EINVAL; + + /* ID0-> Alarm A supported */ + + DEBUGASSERT(lower != NULL && alarminfo != NULL); + priv = (FAR struct kinetis_lowerhalf_s *)lower; + + if (alarminfo->id == RTC_ALARMA ) + { + /* Remember the callback information */ + + cbinfo = &priv->cbinfo; + cbinfo->cb = alarminfo->cb; + cbinfo->priv = alarminfo->priv; + + /* Convert from Julian calendar time to epoch time */ + + tp.tv_sec = mktime((FAR struct tm *)&alarminfo->time) ; + + /* And set the alarm */ + + ret = kinetis_rtc_setalarm(&tp, kinetis_alarm_callback); + if (ret < 0) + { + cbinfo->cb = NULL; + cbinfo->priv = NULL; + } + } + + return ret; +} +#endif + +/**************************************************************************** + * Name: kinetis_setrelative + * + * Description: + * Set a new alarm relative to the current time. This function implements + * the setrelative() method of the RTC driver interface + * + * Input Parameters: + * lower - A reference to RTC lower half driver state structure + * alarminfo - Provided information needed to set the alarm + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned + * on any failure. + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static int kinetis_setrelative(FAR struct rtc_lowerhalf_s *lower, + FAR const struct lower_setrelative_s *alarminfo) +{ + struct lower_setalarm_s setalarm; +#if defined(CONFIG_RTC_DATETIME) + struct tm time; +#endif + time_t seconds; + struct timespec ts; + int ret = -EINVAL; + + ASSERT(lower != NULL && alarminfo != NULL); + DEBUGASSERT(alarminfo->id == RTC_ALARMA); + + if ((alarminfo->id == RTC_ALARMA ) && + alarminfo->reltime > 0) + { + /* Disable pre-emption while we do this so that we don't have to worry + * about being suspended and working on an old time. + */ + + sched_lock(); + +#if defined(CONFIG_RTC_DATETIME) + /* Get the broken out time and convert to seconds */ + + ret = up_rtc_getdatetime(&time); + if (ret < 0) + { + sched_unlock(); + return ret; + } + + ts.tv_sec = mktime(&time); + ts.tv_nsec = 0; +#else + /* Get the current time in broken out format */ + + ret = up_rtc_gettime(&ts); + if (ret < 0) + { + sched_unlock(); + return ret; + } +#endif + /* Convert to seconds since the epoch */ + + seconds = ts.tv_sec; + + /* Add the seconds offset. Add one to the number of seconds + * because we are unsure of the phase of the timer. + */ + + seconds += (alarminfo->reltime + 1); + + /* And convert the time back to Julian/broken out format */ + + (void)gmtime_r(&seconds, (FAR struct tm *)&setalarm.time); + + /* The set the alarm using this absolute time */ + + setalarm.id = alarminfo->id; + setalarm.cb = alarminfo->cb; + setalarm.priv = alarminfo->priv; + + ret = kinetis_setalarm(lower, &setalarm); + + sched_unlock(); + } + + return ret; +} +#endif + +/**************************************************************************** + * Name: kinetis_cancelalarm + * + * Description: + * Cancel the current alarm. This function implements the cancelalarm() + * method of the RTC driver interface + * + * Input Parameters: + * lower - A reference to RTC lower half driver state structure + * alarminfo - Provided information needed to set the alarm + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned + * on any failure. + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static int kinetis_cancelalarm(FAR struct rtc_lowerhalf_s *lower, int alarmid) +{ + FAR struct kinetis_lowerhalf_s *priv; + FAR struct kinetis_cbinfo_s *cbinfo; + int ret = -EINVAL; + + DEBUGASSERT(lower != NULL); + DEBUGASSERT(alarmid == RTC_ALARMA); + priv = (FAR struct kinetis_lowerhalf_s *)lower; + + /* ID0-> Alarm A */ + + if (alarmid == RTC_ALARMA) + { + /* Nullify callback information to reduce window for race conditions */ + + cbinfo = &priv->cbinfo; + cbinfo->cb = NULL; + cbinfo->priv = NULL; + + /* Then cancel the alarm */ + + ret = kinetis_rtc_cancelalarm(); + + } + + return ret; +} +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: kinetis_rtc_lowerhalf + * + * Description: + * Instantiate the RTC lower half driver for the Kinetis. General usage: + * + * #include + * #include "kinetis_rtc.h> + * + * struct rtc_lowerhalf_s *lower; + * lower = kinetis_rtc_lowerhalf(); + * rtc_initialize(0, lower); + * + * Input Parameters: + * None + * + * Returned Value: + * On success, a non-NULL RTC lower interface is returned. + * NULL is returned on any failure. + * + ****************************************************************************/ + +FAR struct rtc_lowerhalf_s *kinetis_rtc_lowerhalf(void) +{ + return (FAR struct rtc_lowerhalf_s *)&g_rtc_lowerhalf; +} + +#endif /* CONFIG_RTC_DRIVER */ diff --git a/arch/arm/src/kl/Make.defs b/arch/arm/src/kl/Make.defs index 6af672fd465..e2d00462084 100644 --- a/arch/arm/src/kl/Make.defs +++ b/arch/arm/src/kl/Make.defs @@ -59,12 +59,6 @@ ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_DEBUG_FEATURES),y) CMN_CSRCS += up_dumpnvic.c endif diff --git a/arch/arm/src/lpc11xx/Make.defs b/arch/arm/src/lpc11xx/Make.defs index d9fcb5e1526..e45cd3e1a06 100644 --- a/arch/arm/src/lpc11xx/Make.defs +++ b/arch/arm/src/lpc11xx/Make.defs @@ -59,12 +59,6 @@ ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_DEBUG_FEATURES),y) CMN_CSRCS += up_dumpnvic.c endif diff --git a/arch/arm/src/lpc17xx/Make.defs b/arch/arm/src/lpc17xx/Make.defs index f1dd3cde114..115a3222a2b 100644 --- a/arch/arm/src/lpc17xx/Make.defs +++ b/arch/arm/src/lpc17xx/Make.defs @@ -70,10 +70,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_BUILD_PROTECTED),y) CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c ifneq ($(CONFIG_DISABLE_SIGNALS),y) @@ -92,12 +88,6 @@ CMN_CSRCS += up_etherstub.c endif endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) diff --git a/arch/arm/src/lpc214x/Make.defs b/arch/arm/src/lpc214x/Make.defs index ea9bc404490..d29207e9273 100644 --- a/arch/arm/src/lpc214x/Make.defs +++ b/arch/arm/src/lpc214x/Make.defs @@ -50,12 +50,6 @@ ifneq ($(CONFIG_DISABLE_SIGNALS),y) CMN_CSRCS += up_schedulesigaction.c up_sigdeliver.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif diff --git a/arch/arm/src/lpc2378/Make.defs b/arch/arm/src/lpc2378/Make.defs index a79ce91ddd9..4926d02c74c 100644 --- a/arch/arm/src/lpc2378/Make.defs +++ b/arch/arm/src/lpc2378/Make.defs @@ -54,12 +54,6 @@ ifneq ($(CONFIG_DISABLE_SIGNALS),y) CMN_CSRCS += up_schedulesigaction.c up_sigdeliver.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif diff --git a/arch/arm/src/lpc31xx/Make.defs b/arch/arm/src/lpc31xx/Make.defs index 03c6c0bef6e..0077b22a35b 100644 --- a/arch/arm/src/lpc31xx/Make.defs +++ b/arch/arm/src/lpc31xx/Make.defs @@ -51,12 +51,6 @@ ifeq ($(CONFIG_PAGING),y) CMN_CSRCS += up_pginitialize.c up_checkmapping.c up_allocpage.c up_va2pte.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif diff --git a/arch/arm/src/lpc43xx/Make.defs b/arch/arm/src/lpc43xx/Make.defs index c0d95a27998..d68a19635b3 100644 --- a/arch/arm/src/lpc43xx/Make.defs +++ b/arch/arm/src/lpc43xx/Make.defs @@ -60,10 +60,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_BUILD_PROTECTED),y) CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c ifneq ($(CONFIG_DISABLE_SIGNALS),y) @@ -76,12 +72,6 @@ ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) diff --git a/arch/arm/src/moxart/Make.defs b/arch/arm/src/moxart/Make.defs index 48b9a21fa08..f76a29cb0b7 100644 --- a/arch/arm/src/moxart/Make.defs +++ b/arch/arm/src/moxart/Make.defs @@ -48,12 +48,6 @@ CMN_CSRCS += up_releasestack.c up_reprioritizertr.c up_schedulesigaction.c CMN_CSRCS += up_sigdeliver.c up_stackframe.c up_syscall.c up_unblocktask.c CMN_CSRCS += up_undefinedinsn.c up_usestack.c up_vfork.c up_etherstub.c -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - CHIP_ASRCS = moxart_lowputc.S CHIP_CSRCS = moxart_16550.c moxart_irq.c moxart_timer.c moxart_idle.c diff --git a/arch/arm/src/nuc1xx/Make.defs b/arch/arm/src/nuc1xx/Make.defs index 7a5a00e85a2..4a2164a838b 100644 --- a/arch/arm/src/nuc1xx/Make.defs +++ b/arch/arm/src/nuc1xx/Make.defs @@ -59,12 +59,6 @@ ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_DEBUG_FEATURES),y) CMN_CSRCS += up_dumpnvic.c endif diff --git a/arch/arm/src/sam34/Kconfig b/arch/arm/src/sam34/Kconfig index 01194134c2b..5b77b3baf89 100644 --- a/arch/arm/src/sam34/Kconfig +++ b/arch/arm/src/sam34/Kconfig @@ -193,6 +193,11 @@ config ARCH_CHIP_ATSAM4S8B select ARCH_CORTEXM4 select ARCH_CHIP_SAM4S +config ARCH_CHIP_ATSAM4S4C + bool "ATSAM4S4C" + select ARCH_CORTEXM4 + select ARCH_CHIP_SAM4S + config ARCH_CHIP_ATSAM4E16E bool "ATSAM4E16E" select ARCH_CORTEXM4 diff --git a/arch/arm/src/sam34/Make.defs b/arch/arm/src/sam34/Make.defs index 9b4e75079ad..9ca94574306 100644 --- a/arch/arm/src/sam34/Make.defs +++ b/arch/arm/src/sam34/Make.defs @@ -76,10 +76,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_BUILD_PROTECTED),y) CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c ifneq ($(CONFIG_DISABLE_SIGNALS),y) @@ -88,12 +84,6 @@ CMN_UASRCS += up_signal_handler.S endif endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) diff --git a/arch/arm/src/sam34/sam4cm_cpupause.c b/arch/arm/src/sam34/sam4cm_cpupause.c index 9b9d126f252..daf6fd76b4e 100644 --- a/arch/arm/src/sam34/sam4cm_cpupause.c +++ b/arch/arm/src/sam34/sam4cm_cpupause.c @@ -47,6 +47,7 @@ #include #include +#include #include "up_arch.h" #include "sched/sched.h" @@ -145,6 +146,12 @@ int up_cpu_paused(int cpu) sched_suspend_scheduler(tcb); +#ifdef CONFIG_SCHED_INSTRUMENTATION + /* Notify that we are paused */ + + sched_note_cpu_paused(tcb); +#endif + /* Save the current context at CURRENT_REGS into the TCB at the head * of the assigned task list for this CPU. */ @@ -162,6 +169,12 @@ int up_cpu_paused(int cpu) tcb = this_task(); +#ifdef CONFIG_SCHED_INSTRUMENTATION + /* Notify that we have resumed */ + + sched_note_cpu_resumed(tcb); +#endif + /* Reset scheduler parameters */ sched_resume_scheduler(tcb); @@ -247,18 +260,24 @@ int up_cpu_pause(int cpu) DEBUGASSERT(cpu >= 0 && cpu < CONFIG_SMP_NCPUS && cpu != this_cpu()); - /* Take the both spinlocks. The g_cpu_wait spinlock will prevent the SGI2 +#ifdef CONFIG_SCHED_INSTRUMENTATION + /* Notify of the pause event */ + + sched_note_cpu_pause(this_task(), cpu); +#endif + + /* Take the both spinlocks. The g_cpu_wait spinlock will prevent the interrupt * handler from returning until up_cpu_resume() is called; g_cpu_paused * is a handshake that will prefent this function from returning until * the CPU is actually paused. */ + DEBUGASSERT(!spin_islocked(&g_cpu_wait[cpu]) && + !spin_islocked(&g_cpu_paused[cpu])); + spin_lock(&g_cpu_wait[cpu]); spin_lock(&g_cpu_paused[cpu]); - DEBUGASSERT(spin_islocked(&g_cpu_wait[cpu]) && - spin_islocked(&g_cpu_paused[cpu])); - /* Execute Pause IRQ to CPU(cpu) */ /* Set IPC Interrupt (IRQ0) (write-only) */ @@ -276,7 +295,6 @@ int up_cpu_pause(int cpu) */ spin_lock(&g_cpu_paused[cpu]); - spin_unlock(&g_cpu_paused[cpu]); /* On successful return g_cpu_wait will be locked, the other CPU will be @@ -284,7 +302,7 @@ int up_cpu_pause(int cpu) * called. g_cpu_paused will be unlocked in any case. */ - return 0; + return OK; } /**************************************************************************** @@ -312,6 +330,12 @@ int up_cpu_resume(int cpu) DEBUGASSERT(cpu >= 0 && cpu < CONFIG_SMP_NCPUS && cpu != this_cpu()); +#ifdef CONFIG_SCHED_INSTRUMENTATION + /* Notify of the resume event */ + + sched_note_cpu_resume(this_task(), cpu); +#endif + /* Release the spinlock. Releasing the spinlock will cause the SGI2 * handler on 'cpu' to continue and return from interrupt to the newly * established thread. @@ -321,8 +345,7 @@ int up_cpu_resume(int cpu) !spin_islocked(&g_cpu_paused[cpu])); spin_unlock(&g_cpu_wait[cpu]); - - return 0; + return OK; } #endif /* CONFIG_SMP */ diff --git a/arch/arm/src/sama5/Make.defs b/arch/arm/src/sama5/Make.defs index ff812107305..716f5581d25 100644 --- a/arch/arm/src/sama5/Make.defs +++ b/arch/arm/src/sama5/Make.defs @@ -61,10 +61,6 @@ CMN_ASRCS += cp15_clean_dcache.S cp15_flush_dcache.S cp15_invalidate_dcache_all. # Configuration dependent assembly language files -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += arm_memcpy.S -endif - # Common C source files CMN_CSRCS = up_initialize.c up_idle.c up_interruptcontext.c up_exit.c @@ -114,9 +110,9 @@ endif endif ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += arm_elf.c arm_coherent_dcache.c +CMN_CSRCS += arm_coherent_dcache.c else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += arm_elf.c arm_coherent_dcache.c +CMN_CSRCS += arm_coherent_dcache.c endif ifeq ($(CONFIG_ARCH_FPU),y) diff --git a/arch/arm/src/samdl/Make.defs b/arch/arm/src/samdl/Make.defs index 7ef0105780b..6d177f26511 100644 --- a/arch/arm/src/samdl/Make.defs +++ b/arch/arm/src/samdl/Make.defs @@ -59,12 +59,6 @@ ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_DEBUG_FEATURES),y) CMN_CSRCS += up_dumpnvic.c endif diff --git a/arch/arm/src/samv7/Make.defs b/arch/arm/src/samv7/Make.defs index dfe56491f96..fe5ab20b2c6 100644 --- a/arch/arm/src/samv7/Make.defs +++ b/arch/arm/src/samv7/Make.defs @@ -90,10 +90,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_ARM_MPU),y) CMN_CSRCS += up_mpu.c ifeq ($(CONFIG_BUILD_PROTECTED),y) @@ -106,9 +102,9 @@ endif endif ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c up_coherent_dcache.c +CMN_CSRCS += up_coherent_dcache.c else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c up_coherent_dcache.c +CMN_CSRCS += up_coherent_dcache.c endif ifeq ($(CONFIG_STACK_COLORATION),y) diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index b6c04586498..189b5a63998 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -2624,6 +2624,24 @@ config STM32_FREERUN bool default y +config STM32_TICKLESS_ONESHOT + int "Tickless one-shot timer channel" + default 2 + range 1 14 + depends on STM32_ONESHOT + ---help--- + If the Tickless OS feature is enabled, the one clock must be + assigned to provided the one-shot timer needed by the OS. + +config STM32_TICKLESS_FREERUN + int "Tickless free-running timer channel" + default 5 + range 1 14 + depends on STM32_FREERUN + ---help--- + If the Tickless OS feature is enabled, the one clock must be + assigned to provided the free-running timer needed by the OS. + endif # SCHED_TICKLESS if !SCHED_TICKLESS @@ -2644,23 +2662,16 @@ config STM32_FREERUN endif # !SCHED_TICKLESS -config STM32_TICKLESS_ONESHOT - int "Tickless one-shot timer channel" - default 2 - range 1 14 +config STM32_ONESHOT_MAXTIMERS + int "Maximum number of oneshot timers" + default 1 + range 1 8 depends on STM32_ONESHOT ---help--- - If the Tickless OS feature is enabled, the one clock must be - assigned to provided the one-shot timer needed by the OS. - -config STM32_TICKLESS_FREERUN - int "Tickless free-running timer channel" - default 5 - range 1 14 - depends on STM32_FREERUN - ---help--- - If the Tickless OS feature is enabled, the one clock must be - assigned to provided the free-running timer needed by the OS. + Determines the maximum number of oneshot timers that can be + supported. This setting pre-allocates some minimal support for each + of the timers and places an upper limit on the number of oneshot + timers that you can use. config STM32_TIM1_PWM bool "TIM1 PWM" diff --git a/arch/arm/src/stm32/Make.defs b/arch/arm/src/stm32/Make.defs index 8b10228a3a0..1558c8417d5 100644 --- a/arch/arm/src/stm32/Make.defs +++ b/arch/arm/src/stm32/Make.defs @@ -71,10 +71,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_BUILD_PROTECTED),y) CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c ifneq ($(CONFIG_DISABLE_SIGNALS),y) @@ -87,12 +83,6 @@ ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) diff --git a/arch/arm/src/stm32/chip/stm32f30xxx_memorymap.h b/arch/arm/src/stm32/chip/stm32f30xxx_memorymap.h index 51cca40eef5..a7cbc46117d 100644 --- a/arch/arm/src/stm32/chip/stm32f30xxx_memorymap.h +++ b/arch/arm/src/stm32/chip/stm32f30xxx_memorymap.h @@ -93,6 +93,7 @@ #define STM32_TIM6_BASE 0x40001000 /* 0x40001000-0x400013ff TIM6 */ #define STM32_TIM7_BASE 0x40001400 /* 0x40001400-0x400017ff TIM7 */ #define STM32_RTC_BASE 0x40002800 /* 0x40002800-0x40002bff RTC */ +#define STM32_BKP_BASE 0x40002850 /* 0x40002850-0x4000288c BKP */ #define STM32_WWDG_BASE 0x40002c00 /* 0x40002c00-0x40002fff WWDG */ #define STM32_IWDG_BASE 0x40003000 /* 0x40003000-0x400033ff IWDG */ #define STM32_I2S2EXT_BASE 0x40003400 /* 0x40003400-0x400037ff I2S2ext */ diff --git a/arch/arm/src/stm32/chip/stm32f37xxx_memorymap.h b/arch/arm/src/stm32/chip/stm32f37xxx_memorymap.h index 4c703be930c..49bfa2ecf2e 100644 --- a/arch/arm/src/stm32/chip/stm32f37xxx_memorymap.h +++ b/arch/arm/src/stm32/chip/stm32f37xxx_memorymap.h @@ -94,6 +94,7 @@ #define STM32_TIM13_BASE 0x40001c00 /* 0x40001c00-0x40001fff TIM13 */ #define STM32_TIM14_BASE 0x40002000 /* 0x40002000-0x400023ff TIM14 */ #define STM32_RTC_BASE 0x40002800 /* 0x40002800-0x40002bff RTC */ +#define STM32_BKP_BASE 0x40002850 /* 0x40002850-0x400028cc BKP */ #define STM32_WWDG_BASE 0x40002c00 /* 0x40002c00-0x40002fff WWDG */ #define STM32_IWDG_BASE 0x40003000 /* 0x40003000-0x400033ff IWDG */ #define STM32_SPI2_BASE 0x40003800 /* 0x40003800-0x40003bff SPI2, or */ diff --git a/arch/arm/src/stm32/stm32_oneshot.c b/arch/arm/src/stm32/stm32_oneshot.c index a47307e7212..92f57e928cc 100644 --- a/arch/arm/src/stm32/stm32_oneshot.c +++ b/arch/arm/src/stm32/stm32_oneshot.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -54,10 +55,66 @@ #ifdef CONFIG_STM32_ONESHOT /**************************************************************************** - * Private Date + * Private Function Prototypes ****************************************************************************/ -static struct stm32_oneshot_s *g_oneshot; +static int stm32_oneshot_handler(struct stm32_oneshot_s *oneshot); +static int stm32_oneshot1_handler(int irq, void *context); +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 1 +static int stm32_oneshot2_handler(int irq, void *context); +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 2 +static int stm32_oneshot3_handler(int irq, void *context); +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 3 +static int stm32_oneshot4_handler(int irq, void *context); +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 4 +static int stm32_oneshot5_handler(int irq, void *context); +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 5 +static int stm32_oneshot6_handler(int irq, void *context); +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 6 +static int stm32_oneshot7_handler(int irq, void *context); +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 7 +static int stm32_oneshot8_handler(int irq, void *context); +#endif + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static struct stm32_oneshot_s *g_oneshot[CONFIG_STM32_ONESHOT_MAXTIMERS]; + +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 1 +static const xcpt_t g_callbacks[CONFIG_STM32_ONESHOT_MAXTIMERS] = +{ + stm32_oneshot1_handler, +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 1 + stm32_oneshot2_handler, +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 2 + stm32_oneshot3_handler, +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 3 + stm32_oneshot4_handler, +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 4 + stm32_oneshot5_handler, +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 5 + stm32_oneshot6_handler, +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 6 + stm32_oneshot7_handler, +#endif +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 7 + stm32_oneshot8_handler, +#endif +}; +#endif /**************************************************************************** * Private Functions @@ -67,24 +124,20 @@ static struct stm32_oneshot_s *g_oneshot; * Name: stm32_oneshot_handler * * Description: - * Timer interrupt callback. When the oneshot timer interrupt expires, - * this function will be called. It will forward the call to the next - * level up. + * Common timer interrupt callback. When any oneshot timer interrupt + * expires, this function will be called. It will forward the call to + * the next level up. * * Input Parameters: - * tch - The handle that represents the timer state - * arg - An opaque argument provided when the interrupt was registered - * sr - The value of the timer interrupt status register at the time - * that the interrupt occurred. + * oneshot - The state associated with the expired timer * * Returned Value: - * None + * Always returns OK * ****************************************************************************/ -static int stm32_oneshot_handler(int irq, void *context) +static int stm32_oneshot_handler(struct stm32_oneshot_s *oneshot) { - struct stm32_oneshot_s *oneshot = g_oneshot; oneshot_handler_t oneshot_handler; void *oneshot_arg; @@ -115,6 +168,137 @@ static int stm32_oneshot_handler(int irq, void *context) return OK; } +/**************************************************************************** + * Name: stm32_oneshot[N]_handler + * + * Description: + * Timer interrupt callbacks. When a oneshot timer interrupt expires, + * one of these functions will be called. These functions will forward + * the call to the nextlevel up. + * + * Input Parameters: + * Standard interrupt handler arguments. + * + * Returned Value: + * Always returns OK + * + ****************************************************************************/ + +static int stm32_oneshot1_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[0] != NULL); + return stm32_oneshot_handler(g_oneshot[0]); +} + +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 1 +static int stm32_oneshot2_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[1] != NULL); + return stm32_oneshot_handler(g_oneshot[1]); +} +#endif + +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 2 +static int stm32_oneshot3_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[2] != NULL); + return stm32_oneshot_handler(g_oneshot[2]); +} +#endif + +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 3 +static int stm32_oneshot4_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[3] != NULL); + return stm32_oneshot_handler(g_oneshot[3]); +} +#endif + +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 4 +static int stm32_oneshot5_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[4] != NULL); + return stm32_oneshot_handler(g_oneshot[4]); +} +#endif + +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 5 +static int stm32_oneshot6_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[6] != NULL); + return stm32_oneshot_handler(g_oneshot[5]); +} +#endif + +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 6 +static int stm32_oneshot7_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[7] != NULL); + return stm32_oneshot_handler(g_oneshot[6]); +} +#endif + +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 7 +static int stm32_oneshot8_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[0] != NULL); + return stm32_oneshot_handler(g_oneshot[7]); +} +#endif + +/**************************************************************************** + * Name: stm32_allocate_handler + * + * Description: + * Allocate a timer callback handler for the oneshot instance. + * + * Input Parameters: + * oneshot - The state instance the new oneshot timer + * + * Returned Value: + * Returns zero (OK) on success. This can only fail if the number of + * timers exceeds CONFIG_STM32_ONESHOT_MAXTIMERS. + * + ****************************************************************************/ + +static inline int stm32_allocate_handler(struct stm32_oneshot_s *oneshot) +{ +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 1 + int ret = -EBUSY; + int i; + + /* Search for an unused handler */ + + sched_lock(); + for (i = 0; i < CONFIG_STM32_ONESHOT_MAXTIMERS; i++) + { + /* Is this handler available? */ + + if (g_oneshot[i] == NULL) + { + /* Yes... assign it to this oneshot */ + + g_oneshot[i] = oneshot; + oneshot->cbndx = i; + ret = OK; + break; + } + } + + sched_unlock(); + return ret; + +#else + if (g_oneshot[0] == NULL) + { + g_oneshot[0] = oneshot; + return OK; + } + + return -EBUSY; +#endif +} + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -139,7 +323,7 @@ static int stm32_oneshot_handler(int irq, void *context) ****************************************************************************/ int stm32_oneshot_initialize(struct stm32_oneshot_s *oneshot, int chan, - uint16_t resolution) + uint16_t resolution) { uint32_t frequency; @@ -160,17 +344,16 @@ int stm32_oneshot_initialize(struct stm32_oneshot_s *oneshot, int chan, STM32_TIM_SETCLOCK(oneshot->tch, frequency); - /* Initialize the remaining fields in the state structure and return - * success. - */ + /* Initialize the remaining fields in the state structure. */ oneshot->chan = chan; oneshot->running = false; oneshot->handler = NULL; oneshot->arg = NULL; - g_oneshot = oneshot; - return OK; + /* Assign a callback handler to the oneshot */ + + return stm32_allocate_handler(oneshot); } /**************************************************************************** @@ -259,7 +442,11 @@ int stm32_oneshot_start(struct stm32_oneshot_s *oneshot, /* Set up to receive the callback when the interrupt occurs */ - STM32_TIM_SETISR(oneshot->tch, stm32_oneshot_handler, 0); +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 1 + STM32_TIM_SETISR(oneshot->tch, g_callbacks[oneshot->cbndx], 0); +#else + STM32_TIM_SETISR(oneshot->tch, stm32_oneshot1_handler, 0); +#endif /* Set timer period */ diff --git a/arch/arm/src/stm32/stm32_oneshot.h b/arch/arm/src/stm32/stm32_oneshot.h index bff21319393..d32c924a79b 100644 --- a/arch/arm/src/stm32/stm32_oneshot.h +++ b/arch/arm/src/stm32/stm32_oneshot.h @@ -45,10 +45,28 @@ #include #include +#include + #include "stm32_tim.h" #ifdef CONFIG_STM32_ONESHOT +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#if !defined(CONFIG_STM32_ONESHOT_MAXTIMERS) || \ + CONFIG_STM32_ONESHOT_MAXTIMERS < 1 +# undef CONFIG_STM32_ONESHOT_MAXTIMERS +# define CONFIG_STM32_ONESHOT_MAXTIMERS 1 +#endif + +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 8 +# warning Additional logic required to handle more than 8 timers +# undef CONFIG_STM32_ONESHOT_MAXTIMERS +# define CONFIG_STM32_ONESHOT_MAXTIMERS 8 +#endif + /**************************************************************************** * Public Types ****************************************************************************/ @@ -70,6 +88,9 @@ typedef void (*oneshot_handler_t)(void *arg); struct stm32_oneshot_s { uint8_t chan; /* The timer/counter in use */ +#if CONFIG_STM32_ONESHOT_MAXTIMERS > 1 + uint8_t cbndx; /* Timer callback handler index */ +#endif volatile bool running; /* True: the timer is running */ FAR struct stm32_tim_dev_s *tch; /* Pointer returned by * stm32_tim_init() */ diff --git a/arch/arm/src/stm32f7/Make.defs b/arch/arm/src/stm32f7/Make.defs index 5f5344d9eb0..d25b702d67d 100644 --- a/arch/arm/src/stm32f7/Make.defs +++ b/arch/arm/src/stm32f7/Make.defs @@ -87,10 +87,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_BUILD_PROTECTED),y) CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c ifneq ($(CONFIG_DISABLE_SIGNALS),y) @@ -100,9 +96,9 @@ endif endif ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c up_coherent_dcache.c +CMN_CSRCS += up_coherent_dcache.c else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c up_coherent_dcache.c +CMN_CSRCS += up_coherent_dcache.c endif ifeq ($(CONFIG_STACK_COLORATION),y) diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index 9f8d6cbda11..a518c5cede9 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -659,6 +659,24 @@ config STM32L4_FREERUN bool default y +config STM32L4_TICKLESS_ONESHOT + int "Tickless one-shot timer channel" + default 2 + range 1 8 + depends on STM32L4_ONESHOT + ---help--- + If the Tickless OS feature is enabled, then one clock must be + assigned to provide the one-shot timer needed by the OS. + +config STM32L4_TICKLESS_FREERUN + int "Tickless free-running timer channel" + default 5 + range 1 8 + depends on STM32L4_FREERUN + ---help--- + If the Tickless OS feature is enabled, then one clock must be + assigned to provide the free-running timer needed by the OS. + endif # SCHED_TICKLESS if !SCHED_TICKLESS @@ -679,23 +697,16 @@ config STM32L4_FREERUN endif # !SCHED_TICKLESS -config STM32L4_TICKLESS_ONESHOT - int "Tickless one-shot timer channel" - default 2 +config STM32L4_ONESHOT_MAXTIMERS + int "Maximum number of oneshot timers" + default 1 range 1 8 depends on STM32L4_ONESHOT ---help--- - If the Tickless OS feature is enabled, then one clock must be - assigned to provide the one-shot timer needed by the OS. - -config STM32L4_TICKLESS_FREERUN - int "Tickless free-running timer channel" - default 5 - range 1 8 - depends on STM32L4_FREERUN - ---help--- - If the Tickless OS feature is enabled, then one clock must be - assigned to provide the free-running timer needed by the OS. + Determines the maximum number of oneshot timers that can be + supported. This setting pre-allocates some minimal support for each + of the timers and places an upper limit on the number of oneshot + timers that you can use. config STM32L4_TIM1_PWM bool "TIM1 PWM" diff --git a/arch/arm/src/stm32l4/Make.defs b/arch/arm/src/stm32l4/Make.defs index 70199cceeed..15b50d86929 100644 --- a/arch/arm/src/stm32l4/Make.defs +++ b/arch/arm/src/stm32l4/Make.defs @@ -83,10 +83,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_BUILD_PROTECTED),y) CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c ifneq ($(CONFIG_DISABLE_SIGNALS),y) @@ -99,12 +95,6 @@ ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c up_coherent_dcache.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c up_coherent_dcache.c -endif - # Required STM32L4 files CHIP_ASRCS = diff --git a/arch/arm/src/stm32l4/stm32l4_oneshot.c b/arch/arm/src/stm32l4/stm32l4_oneshot.c index 073ca62d423..7dbfcf126ca 100644 --- a/arch/arm/src/stm32l4/stm32l4_oneshot.c +++ b/arch/arm/src/stm32l4/stm32l4_oneshot.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/stm32l4/stm32l4_oneshot.c * - * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2016-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * dev@ziggurat29.com * @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -55,10 +56,66 @@ #ifdef CONFIG_STM32L4_ONESHOT /**************************************************************************** - * Private Date + * Private Function Prototypes ****************************************************************************/ -static struct stm32l4_oneshot_s *g_oneshot; +static int stm32l4_oneshot_handler(struct stm32l4_oneshot_s *oneshot); +static int stm32l4_oneshot1_handler(int irq, void *context); +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 1 +static int stm32l4_oneshot2_handler(int irq, void *context); +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 2 +static int stm32l4_oneshot3_handler(int irq, void *context); +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 3 +static int stm32l4_oneshot4_handler(int irq, void *context); +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 4 +static int stm32l4_oneshot5_handler(int irq, void *context); +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 5 +static int stm32l4_oneshot6_handler(int irq, void *context); +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 6 +static int stm32l4_oneshot7_handler(int irq, void *context); +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 7 +static int stm32l4_oneshot8_handler(int irq, void *context); +#endif + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static struct stm32l4_oneshot_s *g_oneshot[CONFIG_STM32L4_ONESHOT_MAXTIMERS]; + +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 1 +static const xcpt_t g_callbacks[CONFIG_STM32L4_ONESHOT_MAXTIMERS] = +{ + stm32l4_oneshot1_handler, +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 1 + stm32l4_oneshot2_handler, +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 2 + stm32l4_oneshot3_handler, +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 3 + stm32l4_oneshot4_handler, +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 4 + stm32l4_oneshot5_handler, +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 5 + stm32l4_oneshot6_handler, +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 6 + stm32l4_oneshot7_handler, +#endif +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 7 + stm32l4_oneshot8_handler, +#endif +}; +#endif /**************************************************************************** * Private Functions @@ -68,24 +125,20 @@ static struct stm32l4_oneshot_s *g_oneshot; * Name: stm32l4_oneshot_handler * * Description: - * Timer interrupt callback. When the oneshot timer interrupt expires, - * this function will be called. It will forward the call to the next - * level up. + * Common timer interrupt callback. When any oneshot timer interrupt + * expires, this function will be called. It will forward the call to + * the next level up. * * Input Parameters: - * tch - The handle that represents the timer state - * arg - An opaque argument provided when the interrupt was registered - * sr - The value of the timer interrupt status register at the time - * that the interrupt occurred. + * oneshot - The state associated with the expired timer * * Returned Value: - * None + * Always returns OK * ****************************************************************************/ -static int stm32l4_oneshot_handler(int irq, FAR void *context) +static int stm32l4_oneshot_handler(struct stm32l4_oneshot_s *oneshot) { - FAR struct stm32l4_oneshot_s *oneshot = g_oneshot; oneshot_handler_t oneshot_handler; FAR void *oneshot_arg; @@ -116,6 +169,137 @@ static int stm32l4_oneshot_handler(int irq, FAR void *context) return OK; } +/**************************************************************************** + * Name: stm32l4_oneshot[N]_handler + * + * Description: + * Timer interrupt callbacks. When a oneshot timer interrupt expires, + * one of these functions will be called. These functions will forward + * the call to the nextlevel up. + * + * Input Parameters: + * Standard interrupt handler arguments. + * + * Returned Value: + * Always returns OK + * + ****************************************************************************/ + +static int stm32l4_oneshot1_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[0] != NULL); + return stm32l4_oneshot_handler(g_oneshot[0]); +} + +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 1 +static int stm32l4_oneshot2_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[1] != NULL); + return stm32l4_oneshot_handler(g_oneshot[1]); +} +#endif + +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 2 +static int stm32l4_oneshot3_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[2] != NULL); + return stm32l4_oneshot_handler(g_oneshot[2]); +} +#endif + +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 3 +static int stm32l4_oneshot4_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[3] != NULL); + return stm32l4_oneshot_handler(g_oneshot[3]); +} +#endif + +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 4 +static int stm32l4_oneshot5_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[4] != NULL); + return stm32l4_oneshot_handler(g_oneshot[4]); +} +#endif + +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 5 +static int stm32l4_oneshot6_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[6] != NULL); + return stm32l4_oneshot_handler(g_oneshot[5]); +} +#endif + +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 6 +static int stm32l4_oneshot7_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[7] != NULL); + return stm32l4_oneshot_handler(g_oneshot[6]); +} +#endif + +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 7 +static int stm32l4_oneshot8_handler(int irq, void *context) +{ + DEBUGASSERT(g_oneshot[0] != NULL); + return stm32l4_oneshot_handler(g_oneshot[7]); +} +#endif + +/**************************************************************************** + * Name: stm32l4_allocate_handler + * + * Description: + * Allocate a timer callback handler for the oneshot instance. + * + * Input Parameters: + * oneshot - The state instance the new oneshot timer + * + * Returned Value: + * Returns zero (OK) on success. This can only fail if the number of + * timers exceeds CONFIG_STM32L4_ONESHOT_MAXTIMERS. + * + ****************************************************************************/ + +static inline int stm32l4_allocate_handler(struct stm32l4_oneshot_s *oneshot) +{ +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 1 + int ret = -EBUSY; + int i; + + /* Search for an unused handler */ + + sched_lock(); + for (i = 0; i < CONFIG_STM32L4_ONESHOT_MAXTIMERS; i++) + { + /* Is this handler available? */ + + if (g_oneshot[i] == NULL) + { + /* Yes... assign it to this oneshot */ + + g_oneshot[i] = oneshot; + oneshot->cbndx = i; + ret = OK; + break; + } + } + + sched_unlock(); + return ret; + +#else + if (g_oneshot[0] == NULL) + { + g_oneshot[0] = oneshot; + return OK; + } + + return -EBUSY; +#endif +} + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -139,8 +323,8 @@ static int stm32l4_oneshot_handler(int irq, FAR void *context) * ****************************************************************************/ -int stm32l4_oneshot_initialize(FAR struct stm32l4_oneshot_s *oneshot, int chan, - uint16_t resolution) +int stm32l4_oneshot_initialize(FAR struct stm32l4_oneshot_s *oneshot, + int chan, uint16_t resolution) { uint32_t frequency; @@ -161,17 +345,16 @@ int stm32l4_oneshot_initialize(FAR struct stm32l4_oneshot_s *oneshot, int chan, STM32L4_TIM_SETCLOCK(oneshot->tch, frequency); - /* Initialize the remaining fields in the state structure and return - * success. - */ + /* Initialize the remaining fields in the state structure. */ oneshot->chan = chan; oneshot->running = false; oneshot->handler = NULL; oneshot->arg = NULL; - g_oneshot = oneshot; - return OK; + /* Assign a callback handler to the oneshot */ + + return stm32l4_allocate_handler(oneshot); } /**************************************************************************** @@ -261,7 +444,11 @@ int stm32l4_oneshot_start(FAR struct stm32l4_oneshot_s *oneshot, /* Set up to receive the callback when the interrupt occurs */ - STM32L4_TIM_SETISR(oneshot->tch, stm32l4_oneshot_handler, 0); +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 1 + STM32L4_TIM_SETISR(oneshot->tch, g_callbacks[oneshot->cbndx], 0); +#else + STM32L4_TIM_SETISR(oneshot->tch, stm32l4_oneshot1_handler, 0); +#endif /* Set timer period */ diff --git a/arch/arm/src/stm32l4/stm32l4_oneshot.h b/arch/arm/src/stm32l4/stm32l4_oneshot.h index 86800f6b352..410f0930d7d 100644 --- a/arch/arm/src/stm32l4/stm32l4_oneshot.h +++ b/arch/arm/src/stm32l4/stm32l4_oneshot.h @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/stm32l4/stm32l4_oneshot.h * - * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2016-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * dev@ziggurat29.com * @@ -46,10 +46,28 @@ #include #include +#include + #include "stm32l4_tim.h" #ifdef CONFIG_STM32L4_ONESHOT +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#if !defined(CONFIG_STM32L4_ONESHOT_MAXTIMERS) || \ + CONFIG_STM32L4_ONESHOT_MAXTIMERS < 1 +# undef CONFIG_STM32L4_ONESHOT_MAXTIMERS +# define CONFIG_STM32L4_ONESHOT_MAXTIMERS 1 +#endif + +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 8 +# warning Additional logic required to handle more than 8 timers +# undef CONFIG_STM32L4_ONESHOT_MAXTIMERS +# define CONFIG_STM32L4_ONESHOT_MAXTIMERS 8 +#endif + /**************************************************************************** * Public Types ****************************************************************************/ @@ -71,6 +89,9 @@ typedef void (*oneshot_handler_t)(void *arg); struct stm32l4_oneshot_s { uint8_t chan; /* The timer/counter in use */ +#if CONFIG_STM32L4_ONESHOT_MAXTIMERS > 1 + uint8_t cbndx; /* Timer callback handler index */ +#endif volatile bool running; /* True: the timer is running */ FAR struct stm32l4_tim_dev_s *tch; /* Pointer returned by * stm32l4_tim_init() */ diff --git a/arch/arm/src/str71x/Make.defs b/arch/arm/src/str71x/Make.defs index 00db6c3b8f0..c9d9fc0869b 100644 --- a/arch/arm/src/str71x/Make.defs +++ b/arch/arm/src/str71x/Make.defs @@ -50,12 +50,6 @@ ifneq ($(CONFIG_DISABLE_SIGNALS),y) CMN_CSRCS += up_schedulesigaction.c up_sigdeliver.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif diff --git a/arch/arm/src/tiva/Make.defs b/arch/arm/src/tiva/Make.defs index 98aed8cc653..d65294d6c51 100644 --- a/arch/arm/src/tiva/Make.defs +++ b/arch/arm/src/tiva/Make.defs @@ -51,10 +51,6 @@ ifeq ($(CONFIG_ARCH_RAMVECTORS),y) CMN_CSRCS += up_ramvec_initialize.c up_ramvec_attach.c endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += up_memcpy.S -endif - ifeq ($(CONFIG_STACK_COLORATION),y) CMN_CSRCS += up_checkstack.c endif @@ -69,12 +65,6 @@ else CMN_CSRCS += up_allocateheap.c endif -ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += up_elf.c -else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += up_elf.c -endif - CHIP_ASRCS = CHIP_CSRCS = tiva_allocateheap.c tiva_start.c tiva_irq.c tiva_gpio.c CHIP_CSRCS += tiva_gpioirq.c tiva_lowputc.c tiva_serial.c tiva_ssi.c diff --git a/arch/arm/src/tms570/Make.defs b/arch/arm/src/tms570/Make.defs index aaabbe4686c..9d1d32f627b 100644 --- a/arch/arm/src/tms570/Make.defs +++ b/arch/arm/src/tms570/Make.defs @@ -53,10 +53,6 @@ ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += arm_fpuconfig.S endif -ifeq ($(CONFIG_ARCH_MEMCPY),y) -CMN_ASRCS += arm_memcpy.S -endif - # Common C source files CMN_CSRCS = up_allocateheap.c up_initialize.c up_idle.c up_interruptcontext.c @@ -85,9 +81,9 @@ CMN_CSRCS += arm_l2cc_pl310.c endif ifeq ($(CONFIG_ELF),y) -CMN_CSRCS += arm_elf.c arm_coherent_dcache.c +CMN_CSRCS += arm_coherent_dcache.c else ifeq ($(CONFIG_MODULE),y) -CMN_CSRCS += arm_elf.c arm_coherent_dcache.c +CMN_CSRCS += arm_coherent_dcache.c endif ifeq ($(CONFIG_ARCH_FPU),y) diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile index 69d8e85b1e3..540c1c6fc87 100644 --- a/arch/sim/src/Makefile +++ b/arch/sim/src/Makefile @@ -111,10 +111,6 @@ ifeq ($(CONFIG_SIM_IOEXPANDER),y) CSRCS += up_ioexpander.c endif -ifeq ($(CONFIG_ELF),y) - CSRCS += up_elf.c -endif - ifeq ($(CONFIG_FS_FAT),y) CSRCS += up_blockdevice.c up_deviceimage.c endif diff --git a/arch/xtensa/src/common/xtensa_schedsigaction.c b/arch/xtensa/src/common/xtensa_schedsigaction.c index 42d309e9b57..2dd39913351 100644 --- a/arch/xtensa/src/common/xtensa_schedsigaction.c +++ b/arch/xtensa/src/common/xtensa_schedsigaction.c @@ -332,7 +332,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver) if (cpu != me) { - up_cpu_pause(cpu); + up_cpu_resume(cpu); } } } diff --git a/binfmt/Kconfig b/binfmt/Kconfig index bd563bc0c89..61746221c98 100644 --- a/binfmt/Kconfig +++ b/binfmt/Kconfig @@ -42,6 +42,7 @@ endif config ELF bool "Enable the ELF Binary Format" default n + select LIBC_ARCH_ELF ---help--- Enable support for the ELF binary format. Default: n diff --git a/configs/amber/hello/defconfig b/configs/amber/hello/defconfig index 2dc6a34254a..4d117408be0 100644 --- a/configs/amber/hello/defconfig +++ b/configs/amber/hello/defconfig @@ -352,7 +352,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/arduino-due/nsh/defconfig b/configs/arduino-due/nsh/defconfig index bc43e12c289..f7e26ded521 100644 --- a/configs/arduino-due/nsh/defconfig +++ b/configs/arduino-due/nsh/defconfig @@ -657,7 +657,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/arduino-mega2560/hello/defconfig b/configs/arduino-mega2560/hello/defconfig index 95e74bd6c9b..59bccf8e6c7 100644 --- a/configs/arduino-mega2560/hello/defconfig +++ b/configs/arduino-mega2560/hello/defconfig @@ -450,7 +450,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # diff --git a/configs/arduino-mega2560/nsh/defconfig b/configs/arduino-mega2560/nsh/defconfig index 40cfb5458a2..11c40ba855b 100644 --- a/configs/arduino-mega2560/nsh/defconfig +++ b/configs/arduino-mega2560/nsh/defconfig @@ -459,7 +459,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # diff --git a/configs/avr32dev1/nsh/defconfig b/configs/avr32dev1/nsh/defconfig index 5e2bffbca87..23ba00f22cb 100644 --- a/configs/avr32dev1/nsh/defconfig +++ b/configs/avr32dev1/nsh/defconfig @@ -401,7 +401,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/avr32dev1/ostest/defconfig b/configs/avr32dev1/ostest/defconfig index 600c0191aa2..a4b438e02fe 100644 --- a/configs/avr32dev1/ostest/defconfig +++ b/configs/avr32dev1/ostest/defconfig @@ -389,7 +389,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/bambino-200e/nsh/defconfig b/configs/bambino-200e/nsh/defconfig index 729e7fdc658..3055cb965f6 100644 --- a/configs/bambino-200e/nsh/defconfig +++ b/configs/bambino-200e/nsh/defconfig @@ -724,7 +724,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/c5471evm/httpd/defconfig b/configs/c5471evm/httpd/defconfig index c388a368c89..c7a1f260cca 100644 --- a/configs/c5471evm/httpd/defconfig +++ b/configs/c5471evm/httpd/defconfig @@ -661,7 +661,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/c5471evm/nettest/defconfig b/configs/c5471evm/nettest/defconfig index 729f8df76ea..f8c46cb22ec 100644 --- a/configs/c5471evm/nettest/defconfig +++ b/configs/c5471evm/nettest/defconfig @@ -654,7 +654,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/c5471evm/nsh/defconfig b/configs/c5471evm/nsh/defconfig index a7d595285fa..9d5b54ca3ce 100644 --- a/configs/c5471evm/nsh/defconfig +++ b/configs/c5471evm/nsh/defconfig @@ -667,7 +667,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/cc3200-launchpad/nsh/defconfig b/configs/cc3200-launchpad/nsh/defconfig index 1de3eee3e2e..f75cd7bab82 100644 --- a/configs/cc3200-launchpad/nsh/defconfig +++ b/configs/cc3200-launchpad/nsh/defconfig @@ -636,7 +636,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/cloudctrl/nsh/defconfig b/configs/cloudctrl/nsh/defconfig index 6da8937d151..89a90334a88 100644 --- a/configs/cloudctrl/nsh/defconfig +++ b/configs/cloudctrl/nsh/defconfig @@ -1123,7 +1123,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/demo9s12ne64/ostest/defconfig b/configs/demo9s12ne64/ostest/defconfig index c5f77d58a5f..87a3ad4484c 100644 --- a/configs/demo9s12ne64/ostest/defconfig +++ b/configs/demo9s12ne64/ostest/defconfig @@ -186,7 +186,7 @@ CONFIG_USER_ENTRYPOINT="ostest_main" CONFIG_DISABLE_OS_API=y CONFIG_DISABLE_POSIX_TIMERS=y CONFIG_DISABLE_PTHREAD=y -CONFIG_DISABLE_SIGNALS=y +# CONFIG_DISABLE_SIGNALS is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_ENVIRON=y @@ -346,7 +346,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/dk-tm4c129x/ipv6/defconfig b/configs/dk-tm4c129x/ipv6/defconfig index 83644a89c47..d7444139f66 100644 --- a/configs/dk-tm4c129x/ipv6/defconfig +++ b/configs/dk-tm4c129x/ipv6/defconfig @@ -876,7 +876,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/dk-tm4c129x/nsh/defconfig b/configs/dk-tm4c129x/nsh/defconfig index c9a9edac93a..6df53feb2b2 100644 --- a/configs/dk-tm4c129x/nsh/defconfig +++ b/configs/dk-tm4c129x/nsh/defconfig @@ -880,7 +880,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/ea3131/nsh/defconfig b/configs/ea3131/nsh/defconfig index b98a0b0c962..580a9046b2b 100644 --- a/configs/ea3131/nsh/defconfig +++ b/configs/ea3131/nsh/defconfig @@ -592,7 +592,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ea3131/pgnsh/defconfig b/configs/ea3131/pgnsh/defconfig index 8bb8ce29038..908b348da08 100644 --- a/configs/ea3131/pgnsh/defconfig +++ b/configs/ea3131/pgnsh/defconfig @@ -668,7 +668,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ea3131/usbserial/defconfig b/configs/ea3131/usbserial/defconfig index cf79f1ff54d..8978ca647e5 100644 --- a/configs/ea3131/usbserial/defconfig +++ b/configs/ea3131/usbserial/defconfig @@ -630,7 +630,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ea3152/ostest/defconfig b/configs/ea3152/ostest/defconfig index 5222be557c7..fe298a2df38 100644 --- a/configs/ea3152/ostest/defconfig +++ b/configs/ea3152/ostest/defconfig @@ -569,7 +569,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/eagle100/httpd/defconfig b/configs/eagle100/httpd/defconfig index 10e1481b202..fcd8cd1bd97 100644 --- a/configs/eagle100/httpd/defconfig +++ b/configs/eagle100/httpd/defconfig @@ -793,7 +793,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/eagle100/nettest/defconfig b/configs/eagle100/nettest/defconfig index 2b2d08c871f..b782d836165 100644 --- a/configs/eagle100/nettest/defconfig +++ b/configs/eagle100/nettest/defconfig @@ -785,7 +785,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/eagle100/nsh/defconfig b/configs/eagle100/nsh/defconfig index 31736a4493b..68b819eba3b 100644 --- a/configs/eagle100/nsh/defconfig +++ b/configs/eagle100/nsh/defconfig @@ -849,7 +849,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/eagle100/nxflat/defconfig b/configs/eagle100/nxflat/defconfig index 1d55be1648a..805f9a4cd4f 100644 --- a/configs/eagle100/nxflat/defconfig +++ b/configs/eagle100/nxflat/defconfig @@ -644,7 +644,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/eagle100/thttpd/defconfig b/configs/eagle100/thttpd/defconfig index e0e7a25e9f0..2f09e6dba22 100644 --- a/configs/eagle100/thttpd/defconfig +++ b/configs/eagle100/thttpd/defconfig @@ -790,7 +790,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/efm32-g8xx-stk/nsh/defconfig b/configs/efm32-g8xx-stk/nsh/defconfig index 4c7b62ce8be..088fd252557 100644 --- a/configs/efm32-g8xx-stk/nsh/defconfig +++ b/configs/efm32-g8xx-stk/nsh/defconfig @@ -602,7 +602,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/efm32gg-stk3700/nsh/defconfig b/configs/efm32gg-stk3700/nsh/defconfig index db3dbf7aa90..99799b32989 100644 --- a/configs/efm32gg-stk3700/nsh/defconfig +++ b/configs/efm32gg-stk3700/nsh/defconfig @@ -602,7 +602,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ekk-lm3s9b96/nsh/defconfig b/configs/ekk-lm3s9b96/nsh/defconfig index cca7bc60c5b..a87e1bdd299 100644 --- a/configs/ekk-lm3s9b96/nsh/defconfig +++ b/configs/ekk-lm3s9b96/nsh/defconfig @@ -839,7 +839,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/esp32-core/nsh/defconfig b/configs/esp32-core/nsh/defconfig index 5eba1f4980e..59364e9201c 100644 --- a/configs/esp32-core/nsh/defconfig +++ b/configs/esp32-core/nsh/defconfig @@ -538,7 +538,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/esp32-core/ostest/defconfig b/configs/esp32-core/ostest/defconfig index 4dfe49cf9ed..c09559668ed 100644 --- a/configs/esp32-core/ostest/defconfig +++ b/configs/esp32-core/ostest/defconfig @@ -538,7 +538,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/esp32-core/smp/defconfig b/configs/esp32-core/smp/defconfig index 56422d52b10..211b99dd045 100644 --- a/configs/esp32-core/smp/defconfig +++ b/configs/esp32-core/smp/defconfig @@ -540,7 +540,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/ez80f910200kitg/ostest/defconfig b/configs/ez80f910200kitg/ostest/defconfig index 4a79e9765ab..ba597876aa2 100644 --- a/configs/ez80f910200kitg/ostest/defconfig +++ b/configs/ez80f910200kitg/ostest/defconfig @@ -527,7 +527,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ez80f910200zco/dhcpd/defconfig b/configs/ez80f910200zco/dhcpd/defconfig index d48a15c6f25..3e689691867 100644 --- a/configs/ez80f910200zco/dhcpd/defconfig +++ b/configs/ez80f910200zco/dhcpd/defconfig @@ -682,7 +682,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_DNSCLIENT is not set diff --git a/configs/ez80f910200zco/httpd/defconfig b/configs/ez80f910200zco/httpd/defconfig index 7ef42bdffa4..76f27ba843b 100644 --- a/configs/ez80f910200zco/httpd/defconfig +++ b/configs/ez80f910200zco/httpd/defconfig @@ -696,7 +696,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ez80f910200zco/nettest/defconfig b/configs/ez80f910200zco/nettest/defconfig index e9b3d8c54ff..9096a41faac 100644 --- a/configs/ez80f910200zco/nettest/defconfig +++ b/configs/ez80f910200zco/nettest/defconfig @@ -688,7 +688,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ez80f910200zco/nsh/defconfig b/configs/ez80f910200zco/nsh/defconfig index 72a9774dd9b..5535e7104d5 100644 --- a/configs/ez80f910200zco/nsh/defconfig +++ b/configs/ez80f910200zco/nsh/defconfig @@ -714,7 +714,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set CONFIG_LIBC_NETDB=y CONFIG_NETDB_DNSCLIENT=y diff --git a/configs/ez80f910200zco/poll/defconfig b/configs/ez80f910200zco/poll/defconfig index b806a20f748..f48526690c2 100644 --- a/configs/ez80f910200zco/poll/defconfig +++ b/configs/ez80f910200zco/poll/defconfig @@ -698,7 +698,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/fire-stm32v2/nsh/defconfig b/configs/fire-stm32v2/nsh/defconfig index 4abebec236a..e1d3062b226 100644 --- a/configs/fire-stm32v2/nsh/defconfig +++ b/configs/fire-stm32v2/nsh/defconfig @@ -1179,7 +1179,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/freedom-k64f/netnsh/defconfig b/configs/freedom-k64f/netnsh/defconfig index a16d6eae3f5..5c002315e53 100644 --- a/configs/freedom-k64f/netnsh/defconfig +++ b/configs/freedom-k64f/netnsh/defconfig @@ -863,7 +863,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/freedom-k64f/nsh/defconfig b/configs/freedom-k64f/nsh/defconfig index d32846b6427..5015fa5f77c 100644 --- a/configs/freedom-k64f/nsh/defconfig +++ b/configs/freedom-k64f/nsh/defconfig @@ -694,7 +694,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/freedom-k64f/src/freedom-k64f.h b/configs/freedom-k64f/src/freedom-k64f.h index d63492a0718..40f788d7cd2 100644 --- a/configs/freedom-k64f/src/freedom-k64f.h +++ b/configs/freedom-k64f/src/freedom-k64f.h @@ -3,6 +3,7 @@ * * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt + * Updated: Neil Hancock * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -58,6 +59,10 @@ #define HAVE_AUTOMOUNTER 1 #define HAVE_USBDEV 1 +#if defined(CONFIG_KINETIS_RTC) +#define HAVE_RTC_DRIVER 1 +#endif + /* Automount procfs */ #if !defined(CONFIG_FS_PROCFS) diff --git a/configs/freedom-k64f/src/k64_bringup.c b/configs/freedom-k64f/src/k64_bringup.c index 40590f8962b..78bba052f4c 100644 --- a/configs/freedom-k64f/src/k64_bringup.c +++ b/configs/freedom-k64f/src/k64_bringup.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/freedom-k64f/src/k64_bringup.c * - * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2016-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -45,6 +45,11 @@ #include #include +#ifdef HAVE_RTC_DRIVER +# include +# include "kinetis_alarm.h" +#endif + #include "freedom-k64f.h" #if defined(CONFIG_LIB_BOARDCTL) || defined(CONFIG_BOARD_INITIALIZE) @@ -64,6 +69,9 @@ int k64_bringup(void) { int ret; +#ifdef HAVE_RTC_DRIVER + FAR struct rtc_lowerhalf_s *lower; +#endif #ifdef HAVE_PROC /* Mount the proc filesystem */ @@ -92,7 +100,6 @@ int k64_bringup(void) #ifdef CONFIG_FRDMK64F_SDHC_MOUNT else { - /* REVISIT: A delay seems to be required here or the mount will fail. */ /* Mount the volume on HSMCI0 */ ret = mount(CONFIG_FRDMK64F_SDHC_MOUNT_BLKDEV, @@ -126,6 +133,31 @@ int k64_bringup(void) k64_automount_initialize(); #endif +#ifdef HAVE_RTC_DRIVER + /* Instantiate the KINETIS lower-half RTC driver */ + + lower = kinetis_rtc_lowerhalf(); + if (!lower) + { + syslog(LOG_ERR, + "ERROR: Failed to instantiate the RTC lower-half driver\n"); + } + else + { + /* Bind the lower half driver and register the combined RTC driver + * as /dev/rtc0 + */ + + ret = rtc_initialize(0, lower); + if (ret < 0) + { + syslog(LOG_ERR, + "ERROR: Failed to bind/register the RTC driver: %d\n", + ret); + } + } +#endif + UNUSED(ret); return OK; } diff --git a/configs/freedom-kl25z/nsh/defconfig b/configs/freedom-kl25z/nsh/defconfig index 4ce766e4e74..03f252e999a 100644 --- a/configs/freedom-kl25z/nsh/defconfig +++ b/configs/freedom-kl25z/nsh/defconfig @@ -587,7 +587,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/freedom-kl26z/nsh/defconfig b/configs/freedom-kl26z/nsh/defconfig index 34ecf777454..f76176d5a75 100644 --- a/configs/freedom-kl26z/nsh/defconfig +++ b/configs/freedom-kl26z/nsh/defconfig @@ -578,7 +578,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/hymini-stm32v/nsh/defconfig b/configs/hymini-stm32v/nsh/defconfig index 54662444e90..d131caecba2 100644 --- a/configs/hymini-stm32v/nsh/defconfig +++ b/configs/hymini-stm32v/nsh/defconfig @@ -911,7 +911,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/hymini-stm32v/nsh2/defconfig b/configs/hymini-stm32v/nsh2/defconfig index 6998b185dc0..d2ad91e2d80 100644 --- a/configs/hymini-stm32v/nsh2/defconfig +++ b/configs/hymini-stm32v/nsh2/defconfig @@ -1142,7 +1142,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/hymini-stm32v/usbmsc/defconfig b/configs/hymini-stm32v/usbmsc/defconfig index 9d5759bf6cd..5fca4219a38 100644 --- a/configs/hymini-stm32v/usbmsc/defconfig +++ b/configs/hymini-stm32v/usbmsc/defconfig @@ -965,7 +965,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/hymini-stm32v/usbnsh/defconfig b/configs/hymini-stm32v/usbnsh/defconfig index 2d2497ca471..7f8a7f44356 100644 --- a/configs/hymini-stm32v/usbnsh/defconfig +++ b/configs/hymini-stm32v/usbnsh/defconfig @@ -942,7 +942,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/hymini-stm32v/usbserial/defconfig b/configs/hymini-stm32v/usbserial/defconfig index 13be18558cd..89164499ee9 100644 --- a/configs/hymini-stm32v/usbserial/defconfig +++ b/configs/hymini-stm32v/usbserial/defconfig @@ -930,7 +930,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/kwikstik-k40/ostest/defconfig b/configs/kwikstik-k40/ostest/defconfig index 4ea31a1c0f7..48ad7836a71 100644 --- a/configs/kwikstik-k40/ostest/defconfig +++ b/configs/kwikstik-k40/ostest/defconfig @@ -618,7 +618,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/launchxl-tms57004/nsh/defconfig b/configs/launchxl-tms57004/nsh/defconfig index d59a2f60f5b..f35d86bd1d3 100644 --- a/configs/launchxl-tms57004/nsh/defconfig +++ b/configs/launchxl-tms57004/nsh/defconfig @@ -613,7 +613,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lincoln60/netnsh/defconfig b/configs/lincoln60/netnsh/defconfig index 8e9cdf53c6c..743c9818080 100644 --- a/configs/lincoln60/netnsh/defconfig +++ b/configs/lincoln60/netnsh/defconfig @@ -832,7 +832,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/lincoln60/nsh/defconfig b/configs/lincoln60/nsh/defconfig index 31e8eae34ac..5c9cec3d025 100644 --- a/configs/lincoln60/nsh/defconfig +++ b/configs/lincoln60/nsh/defconfig @@ -635,7 +635,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lincoln60/thttpd-binfs/defconfig b/configs/lincoln60/thttpd-binfs/defconfig index f1d8ab9bbfc..70bb7d34edd 100644 --- a/configs/lincoln60/thttpd-binfs/defconfig +++ b/configs/lincoln60/thttpd-binfs/defconfig @@ -799,7 +799,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lm3s6432-s2e/nsh/defconfig b/configs/lm3s6432-s2e/nsh/defconfig index 6212b42fab1..868ff6a9333 100644 --- a/configs/lm3s6432-s2e/nsh/defconfig +++ b/configs/lm3s6432-s2e/nsh/defconfig @@ -821,7 +821,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/lm3s6965-ek/discover/defconfig b/configs/lm3s6965-ek/discover/defconfig index 265299c608e..9a07e12e6f3 100644 --- a/configs/lm3s6965-ek/discover/defconfig +++ b/configs/lm3s6965-ek/discover/defconfig @@ -843,7 +843,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/lm3s6965-ek/nsh/defconfig b/configs/lm3s6965-ek/nsh/defconfig index 265299c608e..9a07e12e6f3 100644 --- a/configs/lm3s6965-ek/nsh/defconfig +++ b/configs/lm3s6965-ek/nsh/defconfig @@ -843,7 +843,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/lm3s6965-ek/nx/defconfig b/configs/lm3s6965-ek/nx/defconfig index fdc5c9c6328..8cfd5f1e60f 100644 --- a/configs/lm3s6965-ek/nx/defconfig +++ b/configs/lm3s6965-ek/nx/defconfig @@ -792,7 +792,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lm3s6965-ek/tcpecho/defconfig b/configs/lm3s6965-ek/tcpecho/defconfig index 96af39bd221..0e83e45fa30 100644 --- a/configs/lm3s6965-ek/tcpecho/defconfig +++ b/configs/lm3s6965-ek/tcpecho/defconfig @@ -815,7 +815,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/lm3s8962-ek/nsh/defconfig b/configs/lm3s8962-ek/nsh/defconfig index d834d65af4a..7a67c177333 100644 --- a/configs/lm3s8962-ek/nsh/defconfig +++ b/configs/lm3s8962-ek/nsh/defconfig @@ -853,7 +853,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/lm3s8962-ek/nx/defconfig b/configs/lm3s8962-ek/nx/defconfig index 92d68b951ce..3f69bb057f6 100644 --- a/configs/lm3s8962-ek/nx/defconfig +++ b/configs/lm3s8962-ek/nx/defconfig @@ -802,7 +802,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lm4f120-launchpad/nsh/defconfig b/configs/lm4f120-launchpad/nsh/defconfig index 759d63075b9..eca112cb724 100644 --- a/configs/lm4f120-launchpad/nsh/defconfig +++ b/configs/lm4f120-launchpad/nsh/defconfig @@ -658,7 +658,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lpc4330-xplorer/nsh/defconfig b/configs/lpc4330-xplorer/nsh/defconfig index 6d0df578a25..ac2b04482aa 100644 --- a/configs/lpc4330-xplorer/nsh/defconfig +++ b/configs/lpc4330-xplorer/nsh/defconfig @@ -655,7 +655,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lpc4337-ws/nsh/defconfig b/configs/lpc4337-ws/nsh/defconfig index a462d6a1e4a..177541f69ee 100644 --- a/configs/lpc4337-ws/nsh/defconfig +++ b/configs/lpc4337-ws/nsh/defconfig @@ -715,7 +715,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lpc4357-evb/nsh/defconfig b/configs/lpc4357-evb/nsh/defconfig index fda9ffd04cc..7c1ae0cefe3 100644 --- a/configs/lpc4357-evb/nsh/defconfig +++ b/configs/lpc4357-evb/nsh/defconfig @@ -647,7 +647,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lpc4370-link2/nsh/defconfig b/configs/lpc4370-link2/nsh/defconfig index 605c8168850..3c49637ad85 100644 --- a/configs/lpc4370-link2/nsh/defconfig +++ b/configs/lpc4370-link2/nsh/defconfig @@ -712,7 +712,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lpcxpresso-lpc1115/nsh/defconfig b/configs/lpcxpresso-lpc1115/nsh/defconfig index 8a66a48cc74..3607e86da86 100644 --- a/configs/lpcxpresso-lpc1115/nsh/defconfig +++ b/configs/lpcxpresso-lpc1115/nsh/defconfig @@ -550,7 +550,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lpcxpresso-lpc1768/dhcpd/defconfig b/configs/lpcxpresso-lpc1768/dhcpd/defconfig index 380604febfa..418286f3460 100644 --- a/configs/lpcxpresso-lpc1768/dhcpd/defconfig +++ b/configs/lpcxpresso-lpc1768/dhcpd/defconfig @@ -770,7 +770,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lpcxpresso-lpc1768/nsh/defconfig b/configs/lpcxpresso-lpc1768/nsh/defconfig index fdbc186bc74..793bee84d32 100644 --- a/configs/lpcxpresso-lpc1768/nsh/defconfig +++ b/configs/lpcxpresso-lpc1768/nsh/defconfig @@ -869,7 +869,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/lpcxpresso-lpc1768/nx/defconfig b/configs/lpcxpresso-lpc1768/nx/defconfig index bb99255c2df..7262a0dd2dc 100644 --- a/configs/lpcxpresso-lpc1768/nx/defconfig +++ b/configs/lpcxpresso-lpc1768/nx/defconfig @@ -770,7 +770,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lpcxpresso-lpc1768/thttpd/defconfig b/configs/lpcxpresso-lpc1768/thttpd/defconfig index 0020d90dbfc..65c4a318642 100644 --- a/configs/lpcxpresso-lpc1768/thttpd/defconfig +++ b/configs/lpcxpresso-lpc1768/thttpd/defconfig @@ -787,7 +787,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/lpcxpresso-lpc1768/usbmsc/defconfig b/configs/lpcxpresso-lpc1768/usbmsc/defconfig index 608efd1c81b..ec0ae1986e3 100644 --- a/configs/lpcxpresso-lpc1768/usbmsc/defconfig +++ b/configs/lpcxpresso-lpc1768/usbmsc/defconfig @@ -694,7 +694,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/maple/nsh/defconfig b/configs/maple/nsh/defconfig index 3a9c485155f..48b78658036 100644 --- a/configs/maple/nsh/defconfig +++ b/configs/maple/nsh/defconfig @@ -896,7 +896,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/maple/nx/defconfig b/configs/maple/nx/defconfig index 9936c99c3d1..d8ad83a6d93 100644 --- a/configs/maple/nx/defconfig +++ b/configs/maple/nx/defconfig @@ -1098,7 +1098,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/maple/usbnsh/defconfig b/configs/maple/usbnsh/defconfig index 1a0485d7dc2..2de69df0549 100644 --- a/configs/maple/usbnsh/defconfig +++ b/configs/maple/usbnsh/defconfig @@ -926,7 +926,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mbed/hidkbd/defconfig b/configs/mbed/hidkbd/defconfig index 749e51ef049..a59b1e6569b 100644 --- a/configs/mbed/hidkbd/defconfig +++ b/configs/mbed/hidkbd/defconfig @@ -658,7 +658,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mbed/nsh/defconfig b/configs/mbed/nsh/defconfig index e58d828f5ea..1815ca2d98d 100644 --- a/configs/mbed/nsh/defconfig +++ b/configs/mbed/nsh/defconfig @@ -687,7 +687,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mcu123-lpc214x/composite/defconfig b/configs/mcu123-lpc214x/composite/defconfig index cffe65a216a..3295b20976d 100644 --- a/configs/mcu123-lpc214x/composite/defconfig +++ b/configs/mcu123-lpc214x/composite/defconfig @@ -682,7 +682,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mcu123-lpc214x/nsh/defconfig b/configs/mcu123-lpc214x/nsh/defconfig index 16148fb70af..64829ffe2c4 100644 --- a/configs/mcu123-lpc214x/nsh/defconfig +++ b/configs/mcu123-lpc214x/nsh/defconfig @@ -610,7 +610,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mcu123-lpc214x/usbmsc/defconfig b/configs/mcu123-lpc214x/usbmsc/defconfig index 902c2e95933..a570f66828e 100644 --- a/configs/mcu123-lpc214x/usbmsc/defconfig +++ b/configs/mcu123-lpc214x/usbmsc/defconfig @@ -647,7 +647,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mcu123-lpc214x/usbserial/defconfig b/configs/mcu123-lpc214x/usbserial/defconfig index d6293bc0cc3..53d17df772b 100644 --- a/configs/mcu123-lpc214x/usbserial/defconfig +++ b/configs/mcu123-lpc214x/usbserial/defconfig @@ -616,7 +616,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/micropendous3/hello/defconfig b/configs/micropendous3/hello/defconfig index c11817790ba..6445bfec5c4 100644 --- a/configs/micropendous3/hello/defconfig +++ b/configs/micropendous3/hello/defconfig @@ -360,7 +360,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/mikroe-stm32f4/fulldemo/defconfig b/configs/mikroe-stm32f4/fulldemo/defconfig index 70a3dd4e125..359c914a705 100644 --- a/configs/mikroe-stm32f4/fulldemo/defconfig +++ b/configs/mikroe-stm32f4/fulldemo/defconfig @@ -1276,7 +1276,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/mikroe-stm32f4/kostest/defconfig b/configs/mikroe-stm32f4/kostest/defconfig index e8740c395b3..10eaf2a8239 100644 --- a/configs/mikroe-stm32f4/kostest/defconfig +++ b/configs/mikroe-stm32f4/kostest/defconfig @@ -1067,7 +1067,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mikroe-stm32f4/nsh/defconfig b/configs/mikroe-stm32f4/nsh/defconfig index bd189e13d90..3703639ae80 100644 --- a/configs/mikroe-stm32f4/nsh/defconfig +++ b/configs/mikroe-stm32f4/nsh/defconfig @@ -994,7 +994,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mikroe-stm32f4/nx/defconfig b/configs/mikroe-stm32f4/nx/defconfig index 51f178871d3..24bf18c6022 100644 --- a/configs/mikroe-stm32f4/nx/defconfig +++ b/configs/mikroe-stm32f4/nx/defconfig @@ -972,7 +972,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mikroe-stm32f4/nxlines/defconfig b/configs/mikroe-stm32f4/nxlines/defconfig index f0c6adcfea7..0c5ac94cfe0 100644 --- a/configs/mikroe-stm32f4/nxlines/defconfig +++ b/configs/mikroe-stm32f4/nxlines/defconfig @@ -955,7 +955,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mikroe-stm32f4/nxtext/defconfig b/configs/mikroe-stm32f4/nxtext/defconfig index 52933714d66..369f4e2a1f2 100644 --- a/configs/mikroe-stm32f4/nxtext/defconfig +++ b/configs/mikroe-stm32f4/nxtext/defconfig @@ -971,7 +971,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mikroe-stm32f4/usbnsh/defconfig b/configs/mikroe-stm32f4/usbnsh/defconfig index 6ebceb9c459..ff9ccbf68e4 100644 --- a/configs/mikroe-stm32f4/usbnsh/defconfig +++ b/configs/mikroe-stm32f4/usbnsh/defconfig @@ -1042,7 +1042,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mirtoo/nsh/defconfig b/configs/mirtoo/nsh/defconfig index 3630f0f2232..9886c4307f1 100644 --- a/configs/mirtoo/nsh/defconfig +++ b/configs/mirtoo/nsh/defconfig @@ -655,7 +655,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/mirtoo/nxffs/defconfig b/configs/mirtoo/nxffs/defconfig index 627d0b9e7aa..c52bf6f0f71 100644 --- a/configs/mirtoo/nxffs/defconfig +++ b/configs/mirtoo/nxffs/defconfig @@ -712,7 +712,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/misoc/hello/defconfig b/configs/misoc/hello/defconfig index a9a5dfc1384..ca3ee7ed634 100644 --- a/configs/misoc/hello/defconfig +++ b/configs/misoc/hello/defconfig @@ -680,7 +680,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set CONFIG_LIBC_NETDB=y CONFIG_NETDB_DNSCLIENT=y diff --git a/configs/misoc/nsh/defconfig b/configs/misoc/nsh/defconfig index 75cf732f679..ec5d68bb9df 100644 --- a/configs/misoc/nsh/defconfig +++ b/configs/misoc/nsh/defconfig @@ -194,7 +194,7 @@ CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y CONFIG_DISABLE_OS_API=y CONFIG_DISABLE_POSIX_TIMERS=y CONFIG_DISABLE_PTHREAD=y -CONFIG_DISABLE_SIGNALS=y +# CONFIG_DISABLE_SIGNALS is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_ENVIRON=y @@ -496,7 +496,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/moteino-mega/hello/defconfig b/configs/moteino-mega/hello/defconfig index ffadd04745b..d78adaa6b7e 100644 --- a/configs/moteino-mega/hello/defconfig +++ b/configs/moteino-mega/hello/defconfig @@ -418,7 +418,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/moteino-mega/nsh/defconfig b/configs/moteino-mega/nsh/defconfig index c3021fcbf75..3a72bd17af0 100644 --- a/configs/moteino-mega/nsh/defconfig +++ b/configs/moteino-mega/nsh/defconfig @@ -429,7 +429,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_LIBC_LOCALTIME is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Non-standard Library Support diff --git a/configs/moxa/nsh/defconfig b/configs/moxa/nsh/defconfig index fd951b047a1..64db3692ccf 100644 --- a/configs/moxa/nsh/defconfig +++ b/configs/moxa/nsh/defconfig @@ -714,7 +714,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/mx1ads/ostest/defconfig b/configs/mx1ads/ostest/defconfig index 04225dad730..94fb691ece4 100644 --- a/configs/mx1ads/ostest/defconfig +++ b/configs/mx1ads/ostest/defconfig @@ -549,7 +549,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ne64badge/ostest/defconfig b/configs/ne64badge/ostest/defconfig index 2986223f0cd..284662823aa 100644 --- a/configs/ne64badge/ostest/defconfig +++ b/configs/ne64badge/ostest/defconfig @@ -186,7 +186,7 @@ CONFIG_USER_ENTRYPOINT="ostest_main" CONFIG_DISABLE_OS_API=y CONFIG_DISABLE_POSIX_TIMERS=y CONFIG_DISABLE_PTHREAD=y -CONFIG_DISABLE_SIGNALS=y +# CONFIG_DISABLE_SIGNALS is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_ENVIRON=y @@ -346,7 +346,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/nr5m100-nexys4/nsh/defconfig b/configs/nr5m100-nexys4/nsh/defconfig index e2b6c7f66db..41f9eccb728 100644 --- a/configs/nr5m100-nexys4/nsh/defconfig +++ b/configs/nr5m100-nexys4/nsh/defconfig @@ -536,7 +536,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ntosd-dm320/nettest/defconfig b/configs/ntosd-dm320/nettest/defconfig index e1f95fe831e..8c1df72f5f3 100644 --- a/configs/ntosd-dm320/nettest/defconfig +++ b/configs/ntosd-dm320/nettest/defconfig @@ -694,7 +694,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ntosd-dm320/nsh/defconfig b/configs/ntosd-dm320/nsh/defconfig index 39868b6085d..de73c2672cd 100644 --- a/configs/ntosd-dm320/nsh/defconfig +++ b/configs/ntosd-dm320/nsh/defconfig @@ -733,7 +733,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/ntosd-dm320/poll/defconfig b/configs/ntosd-dm320/poll/defconfig index 16cd6306ee3..fee30f1413a 100644 --- a/configs/ntosd-dm320/poll/defconfig +++ b/configs/ntosd-dm320/poll/defconfig @@ -705,7 +705,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ntosd-dm320/thttpd/defconfig b/configs/ntosd-dm320/thttpd/defconfig index 5b9439f577e..adecbe37cac 100644 --- a/configs/ntosd-dm320/thttpd/defconfig +++ b/configs/ntosd-dm320/thttpd/defconfig @@ -707,7 +707,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ntosd-dm320/udp/defconfig b/configs/ntosd-dm320/udp/defconfig index 430d9c3d54f..7da96bcbc05 100644 --- a/configs/ntosd-dm320/udp/defconfig +++ b/configs/ntosd-dm320/udp/defconfig @@ -688,7 +688,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/ntosd-dm320/webserver/defconfig b/configs/ntosd-dm320/webserver/defconfig index 5b9e96f8f25..eb14c0ca7c9 100644 --- a/configs/ntosd-dm320/webserver/defconfig +++ b/configs/ntosd-dm320/webserver/defconfig @@ -701,7 +701,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-144/f746-evalos/defconfig b/configs/nucleo-144/f746-evalos/defconfig index 3372db8d005..233574042fd 100644 --- a/configs/nucleo-144/f746-evalos/defconfig +++ b/configs/nucleo-144/f746-evalos/defconfig @@ -798,7 +798,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-144/f746-nsh/defconfig b/configs/nucleo-144/f746-nsh/defconfig index d034bff8ac9..3e9b47b4f2a 100644 --- a/configs/nucleo-144/f746-nsh/defconfig +++ b/configs/nucleo-144/f746-nsh/defconfig @@ -785,7 +785,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-144/f767-evalos/defconfig b/configs/nucleo-144/f767-evalos/defconfig index bae0a8f84b9..a8983105698 100644 --- a/configs/nucleo-144/f767-evalos/defconfig +++ b/configs/nucleo-144/f767-evalos/defconfig @@ -802,7 +802,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-144/f767-nsh/defconfig b/configs/nucleo-144/f767-nsh/defconfig index 36e14b00937..12bbaa33e14 100644 --- a/configs/nucleo-144/f767-nsh/defconfig +++ b/configs/nucleo-144/f767-nsh/defconfig @@ -789,7 +789,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-f303re/adc/defconfig b/configs/nucleo-f303re/adc/defconfig index 4fb368517ac..a41ff93ab73 100644 --- a/configs/nucleo-f303re/adc/defconfig +++ b/configs/nucleo-f303re/adc/defconfig @@ -844,7 +844,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-f303re/can/defconfig b/configs/nucleo-f303re/can/defconfig index 883c9c36681..24b603e9e78 100644 --- a/configs/nucleo-f303re/can/defconfig +++ b/configs/nucleo-f303re/can/defconfig @@ -845,7 +845,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-f303re/hello/defconfig b/configs/nucleo-f303re/hello/defconfig index dffa050525e..3be4d72fb86 100644 --- a/configs/nucleo-f303re/hello/defconfig +++ b/configs/nucleo-f303re/hello/defconfig @@ -898,7 +898,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-f303re/nxlines/defconfig b/configs/nucleo-f303re/nxlines/defconfig index 84d948c1022..b71b66ebff1 100644 --- a/configs/nucleo-f303re/nxlines/defconfig +++ b/configs/nucleo-f303re/nxlines/defconfig @@ -999,7 +999,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-f303re/pwm/defconfig b/configs/nucleo-f303re/pwm/defconfig index ca70a10f724..43c1974e8c5 100644 --- a/configs/nucleo-f303re/pwm/defconfig +++ b/configs/nucleo-f303re/pwm/defconfig @@ -849,7 +849,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-f303re/serialrx/defconfig b/configs/nucleo-f303re/serialrx/defconfig index 17f8c5f5e29..f0fd022de7b 100644 --- a/configs/nucleo-f303re/serialrx/defconfig +++ b/configs/nucleo-f303re/serialrx/defconfig @@ -893,7 +893,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-f303re/uavcan/defconfig b/configs/nucleo-f303re/uavcan/defconfig index 21ffa461650..237c1b5d883 100644 --- a/configs/nucleo-f303re/uavcan/defconfig +++ b/configs/nucleo-f303re/uavcan/defconfig @@ -825,7 +825,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-f4x1re/f401-nsh/defconfig b/configs/nucleo-f4x1re/f401-nsh/defconfig index 5973a284e18..cc3832613ff 100644 --- a/configs/nucleo-f4x1re/f401-nsh/defconfig +++ b/configs/nucleo-f4x1re/f401-nsh/defconfig @@ -892,7 +892,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-f4x1re/f411-nsh/defconfig b/configs/nucleo-f4x1re/f411-nsh/defconfig index a1fafd77d52..9217ce67d2b 100644 --- a/configs/nucleo-f4x1re/f411-nsh/defconfig +++ b/configs/nucleo-f4x1re/f411-nsh/defconfig @@ -894,7 +894,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nucleo-l476rg/nsh/defconfig b/configs/nucleo-l476rg/nsh/defconfig index c8b4ec69005..f4812a5a675 100644 --- a/configs/nucleo-l476rg/nsh/defconfig +++ b/configs/nucleo-l476rg/nsh/defconfig @@ -725,7 +725,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/nutiny-nuc120/nsh/defconfig b/configs/nutiny-nuc120/nsh/defconfig index a8d566fcc0e..3b2c7b3ed38 100644 --- a/configs/nutiny-nuc120/nsh/defconfig +++ b/configs/nutiny-nuc120/nsh/defconfig @@ -595,7 +595,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-efm32g880f128-stk/nsh/defconfig b/configs/olimex-efm32g880f128-stk/nsh/defconfig index 284ccdf97a1..950b14dbc21 100644 --- a/configs/olimex-efm32g880f128-stk/nsh/defconfig +++ b/configs/olimex-efm32g880f128-stk/nsh/defconfig @@ -595,7 +595,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc-h3131/nsh/defconfig b/configs/olimex-lpc-h3131/nsh/defconfig index 589cbe3c03c..c8bd5d6ebee 100644 --- a/configs/olimex-lpc-h3131/nsh/defconfig +++ b/configs/olimex-lpc-h3131/nsh/defconfig @@ -591,7 +591,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc1766stk/ftpc/defconfig b/configs/olimex-lpc1766stk/ftpc/defconfig index fc0d118c62d..e78c4ce6750 100644 --- a/configs/olimex-lpc1766stk/ftpc/defconfig +++ b/configs/olimex-lpc1766stk/ftpc/defconfig @@ -838,7 +838,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/olimex-lpc1766stk/hidkbd/defconfig b/configs/olimex-lpc1766stk/hidkbd/defconfig index f052dbade62..c0458b31316 100644 --- a/configs/olimex-lpc1766stk/hidkbd/defconfig +++ b/configs/olimex-lpc1766stk/hidkbd/defconfig @@ -684,7 +684,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc1766stk/hidmouse/defconfig b/configs/olimex-lpc1766stk/hidmouse/defconfig index a87a47d09e0..4569bdabb17 100644 --- a/configs/olimex-lpc1766stk/hidmouse/defconfig +++ b/configs/olimex-lpc1766stk/hidmouse/defconfig @@ -829,7 +829,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/olimex-lpc1766stk/nettest/defconfig b/configs/olimex-lpc1766stk/nettest/defconfig index 187301717f9..020666d28c4 100644 --- a/configs/olimex-lpc1766stk/nettest/defconfig +++ b/configs/olimex-lpc1766stk/nettest/defconfig @@ -776,7 +776,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc1766stk/nsh/defconfig b/configs/olimex-lpc1766stk/nsh/defconfig index 061eb4cd36e..81eb193db2d 100644 --- a/configs/olimex-lpc1766stk/nsh/defconfig +++ b/configs/olimex-lpc1766stk/nsh/defconfig @@ -849,7 +849,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/olimex-lpc1766stk/nx/defconfig b/configs/olimex-lpc1766stk/nx/defconfig index 498cc7c0044..e37e5e3ee1f 100644 --- a/configs/olimex-lpc1766stk/nx/defconfig +++ b/configs/olimex-lpc1766stk/nx/defconfig @@ -780,7 +780,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc1766stk/slip-httpd/defconfig b/configs/olimex-lpc1766stk/slip-httpd/defconfig index 6ccd8a93a4a..abcfae2f653 100644 --- a/configs/olimex-lpc1766stk/slip-httpd/defconfig +++ b/configs/olimex-lpc1766stk/slip-httpd/defconfig @@ -749,7 +749,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig index ee3023b5077..9424e0308e4 100644 --- a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig @@ -796,7 +796,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig index 9a9f8690828..6c5fcdb6147 100644 --- a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig @@ -788,7 +788,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc1766stk/usbmsc/defconfig b/configs/olimex-lpc1766stk/usbmsc/defconfig index be389ce9404..7001bb00689 100644 --- a/configs/olimex-lpc1766stk/usbmsc/defconfig +++ b/configs/olimex-lpc1766stk/usbmsc/defconfig @@ -695,7 +695,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc1766stk/usbserial/defconfig b/configs/olimex-lpc1766stk/usbserial/defconfig index 3941c38d2ce..efb282c692f 100644 --- a/configs/olimex-lpc1766stk/usbserial/defconfig +++ b/configs/olimex-lpc1766stk/usbserial/defconfig @@ -667,7 +667,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-lpc1766stk/zmodem/defconfig b/configs/olimex-lpc1766stk/zmodem/defconfig index 7eca8a61a9a..c268b6c9635 100644 --- a/configs/olimex-lpc1766stk/zmodem/defconfig +++ b/configs/olimex-lpc1766stk/zmodem/defconfig @@ -856,7 +856,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/olimex-lpc2378/nsh/defconfig b/configs/olimex-lpc2378/nsh/defconfig index f5592ef7c92..12382154aa3 100644 --- a/configs/olimex-lpc2378/nsh/defconfig +++ b/configs/olimex-lpc2378/nsh/defconfig @@ -567,7 +567,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-stm32-e407/discover/defconfig b/configs/olimex-stm32-e407/discover/defconfig index d4f6b116be5..5f69b278edf 100644 --- a/configs/olimex-stm32-e407/discover/defconfig +++ b/configs/olimex-stm32-e407/discover/defconfig @@ -1103,7 +1103,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/olimex-stm32-e407/netnsh/defconfig b/configs/olimex-stm32-e407/netnsh/defconfig index 5d71e695ec7..3f0cc2edded 100644 --- a/configs/olimex-stm32-e407/netnsh/defconfig +++ b/configs/olimex-stm32-e407/netnsh/defconfig @@ -1105,7 +1105,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/olimex-stm32-e407/nsh/defconfig b/configs/olimex-stm32-e407/nsh/defconfig index e65e8838115..76c50603c3a 100644 --- a/configs/olimex-stm32-e407/nsh/defconfig +++ b/configs/olimex-stm32-e407/nsh/defconfig @@ -914,7 +914,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-stm32-e407/telnetd/defconfig b/configs/olimex-stm32-e407/telnetd/defconfig index f5410d63917..70592bfffb3 100644 --- a/configs/olimex-stm32-e407/telnetd/defconfig +++ b/configs/olimex-stm32-e407/telnetd/defconfig @@ -1105,7 +1105,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/olimex-stm32-e407/usbnsh/defconfig b/configs/olimex-stm32-e407/usbnsh/defconfig index 2f62bb28037..2d8f47e761d 100644 --- a/configs/olimex-stm32-e407/usbnsh/defconfig +++ b/configs/olimex-stm32-e407/usbnsh/defconfig @@ -971,7 +971,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-stm32-e407/webserver/defconfig b/configs/olimex-stm32-e407/webserver/defconfig index 5066117e880..ed75f866315 100644 --- a/configs/olimex-stm32-e407/webserver/defconfig +++ b/configs/olimex-stm32-e407/webserver/defconfig @@ -1103,7 +1103,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/olimex-stm32-h405/usbnsh/defconfig b/configs/olimex-stm32-h405/usbnsh/defconfig index 623dc403e6b..c92a592fba4 100644 --- a/configs/olimex-stm32-h405/usbnsh/defconfig +++ b/configs/olimex-stm32-h405/usbnsh/defconfig @@ -1002,7 +1002,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-stm32-h407/nsh/defconfig b/configs/olimex-stm32-h407/nsh/defconfig index f6134cc73c8..7e4ce50ef4a 100644 --- a/configs/olimex-stm32-h407/nsh/defconfig +++ b/configs/olimex-stm32-h407/nsh/defconfig @@ -924,7 +924,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-stm32-p107/nsh/defconfig b/configs/olimex-stm32-p107/nsh/defconfig index a35f6c8abd1..47869576563 100644 --- a/configs/olimex-stm32-p107/nsh/defconfig +++ b/configs/olimex-stm32-p107/nsh/defconfig @@ -1106,7 +1106,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/olimex-stm32-p207/nsh/defconfig b/configs/olimex-stm32-p207/nsh/defconfig index 5bb065a98b0..92b7250cde9 100644 --- a/configs/olimex-stm32-p207/nsh/defconfig +++ b/configs/olimex-stm32-p207/nsh/defconfig @@ -1147,7 +1147,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/olimex-stm32-p407/README.txt b/configs/olimex-stm32-p407/README.txt index 7ddf756213c..692687f910b 100644 --- a/configs/olimex-stm32-p407/README.txt +++ b/configs/olimex-stm32-p407/README.txt @@ -7,10 +7,10 @@ to share the same board design. Other code comes from the STM3240G board support (which has the same crystal and clocking) and from the STM32 F4 Discovery (which has the same STM32 part) -Note that CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG is enabled so -that the JTAG connection is not disconnected by the idle loop. +Peripherals +=========== -The following peripherals are enabled in this configuration. +The following peripherals are available in this configuration. - LEDs: show the sytem status @@ -31,7 +31,178 @@ The following peripherals are enabled in this configuration. - Ethernet: Ping to other station on the network works. -STATUS: +Configurations +============== + +Information Common to All Configurations +---------------------------------------- +Each Olimex STM32-P407 configuration is maintained in a sub-directory and can be +selected as follow: + + cd tools + ./configure.sh olimex-stm32-p407/ + cd - + . ./setenv.sh + +Where is one of the configuration sub-directories listed in the +following section. + +Before sourcing the setenv.sh file above, you should examine it and perform +edits as necessary so that TOOLCHAIN_BIN is the correct path to the directory +than holds your toolchain binaries. + +And then build NuttX by simply typing the following. At the conclusion of +the make, the nuttx binary will reside in an ELF file called, simply, nuttx. + + make oldconfig + make + + NOTES: + + 1. This configuration uses the mconf-based configuration tool. To + change this configurations using that tool, you should: + + a. Build and install the kconfig-mconf tool. See nuttx/README.txt + see additional README.txt files in the NuttX tools repository. + + b. Execute 'make menuconfig' in nuttx/ in order to start the + reconfiguration process. + + 2. Serial Output + + This configuraiont produces all of its test output on the serial + console. This configuration has USART3 enabled as a serial console. + This is the connector labeled RS232_2. This can easily be changed + by reconfiguring with 'make menuconfig'. + + 3. Toolchain + + By default, the host platform is set to be Linux using the NuttX + buildroot toolchain. The host and/or toolchain selection can easily + be changed with 'make menuconfig'. + + 4. Note that CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG is enabled so + that the JTAG connection is not disconnected by the idle loop. + +Configuration sub-directories +----------------------------- + +The that is provided above as an argument to the tools/configure.sh +must be is one of the following. + + knsh: + + This is identical to the nsh configuration below except that NuttX + is built as a PROTECTED mode, monolithic module and the user applications + are built separately. + + It is recommends to use a special make command; not just 'make' but make + with the following two arguments: + + make pass1 pass2 + + In the normal case (just 'make'), make will attempt to build both user- + and kernel-mode blobs more or less interleaved. That actual works! + However, for me it is very confusing so I prefer the above make command: + Make the user-space binaries first (pass1), then make the kernel-space + binaries (pass2) + + NOTES: + + 1. At the end of the build, there will be several files in the top-level + NuttX build directory: + + PASS1: + nuttx_user.elf - The pass1 user-space ELF file + nuttx_user.hex - The pass1 Intel HEX format file (selected in defconfig) + User.map - Symbols in the user-space ELF file + + PASS2: + nuttx - The pass2 kernel-space ELF file + nuttx.hex - The pass2 Intel HEX file (selected in defconfig) + System.map - Symbols in the kernel-space ELF file + + The J-Link programmer will except files in .hex, .mot, .srec, and .bin + formats. + + 2. Combining .hex files. If you plan to use the .hex files with your + debugger or FLASH utility, then you may need to combine the two hex + files into a single .hex file. Here is how you can do that. + + a. The 'tail' of the nuttx.hex file should look something like this + (with my comments added): + + $ tail nuttx.hex + # 00, data records + ... + :10 9DC0 00 01000000000800006400020100001F0004 + :10 9DD0 00 3B005A0078009700B500D400F300110151 + :08 9DE0 00 30014E016D0100008D + # 05, Start Linear Address Record + :04 0000 05 0800 0419 D2 + # 01, End Of File record + :00 0000 01 FF + + Use an editor such as vi to remove the 05 and 01 records. + + b. The 'head' of the nuttx_user.hex file should look something like + this (again with my comments added): + + $ head nuttx_user.hex + # 04, Extended Linear Address Record + :02 0000 04 0801 F1 + # 00, data records + :10 8000 00 BD89 01084C800108C8110208D01102087E + :10 8010 00 0010 00201C1000201C1000203C16002026 + :10 8020 00 4D80 01085D80010869800108ED83010829 + ... + + Nothing needs to be done here. The nuttx_user.hex file should + be fine. + + c. Combine the edited nuttx.hex and un-edited nuttx_user.hex + file to produce a single combined hex file: + + $ cat nuttx.hex nuttx_user.hex >combined.hex + + Then use the combined.hex file with the to write the FLASH image. + If you do this a lot, you will probably want to invest a little time + to develop a tool to automate these steps. + + nsh: + + This is the NuttShell (NSH) using the NSH startup logic at + apps/examples/nsh. + + NOTES: + + 1. Kernel Modules / Shared Libraries + + I used this configuration for testing NuttX kernel modules in the + FLAT build with the following configuration additions to the + configuration file: + + CONFIG_BOARDCTL_OS_SYMTAB=y + CONFIG_EXAMPLES_MODULE=y + CONFIG_EXAMPLES_MODULE_DEVMINOR=0 + CONFIG_EXAMPLES_MODULE_DEVPATH="/dev/ram0" + CONFIG_FS_ROMFS=y + CONFIG_LIBC_ARCH_ELF=y + CONFIG_MODULE=y + CONFIG_MODULE_ALIGN_LOG2=2 + CONFIG_MODULE_BUFFERINCR=32 + CONFIG_MODULE_BUFFERSIZE=128 + + Add the following for testing shared libraries in the FLAT + build: + + CONFIG_LIBC_DLLFCN=y + CONFIG_EXAMPLES_SOTEST=y + CONFIG_EXAMPLES_SOTEST_DEVMINOR=1 + CONFIG_EXAMPLES_SOTEST_DEVPATH="/dev/ram1" + +STATUS +====== 2016-12-21: This board configuration was ported from the Olimex STM32 P207 port. Note that none of the above features have been verified. USB, CAN, @@ -43,3 +214,6 @@ STATUS: CCM memory is not included in the heap (CONFIG_STM32_CCMEXCLUDE=y) because it does no suport DMA, leaving only 128KiB for program usage. + +2107-01-23: Added the the knsh configuration and support for the PROTECTED + build mode. diff --git a/configs/olimex-stm32-p407/kernel/.gitignore b/configs/olimex-stm32-p407/kernel/.gitignore new file mode 100644 index 00000000000..7bacd5aee3e --- /dev/null +++ b/configs/olimex-stm32-p407/kernel/.gitignore @@ -0,0 +1,2 @@ +/nuttx_user.elf + diff --git a/configs/olimex-stm32-p407/kernel/Makefile b/configs/olimex-stm32-p407/kernel/Makefile new file mode 100644 index 00000000000..71d159a3ce8 --- /dev/null +++ b/configs/olimex-stm32-p407/kernel/Makefile @@ -0,0 +1,122 @@ +############################################################################ +# configs/olimex-stm32-p407/kernel/Makefile +# +# Copyright (C) 2017 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 + +# This is the directory for the board-specific header files + +BOARD_INCLUDE = $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)include + +# The entry point name (if none is provided in the .config file) + +CONFIG_USER_ENTRYPOINT ?= user_start +ENTRYPT = $(patsubst "%",%,$(CONFIG_USER_ENTRYPOINT)) + +# Get the paths to the libraries and the links script path in format that +# is appropriate for the host OS + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + USER_LIBPATHS = ${shell for path in $(USERLIBS); do dir=`dirname $(TOPDIR)$(DELIM)$$path`;echo "-L\"`cygpath -w $$dir`\"";done} + USER_LDSCRIPT = -T "${shell cygpath -w $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)memory.ld}" + USER_LDSCRIPT += -T "${shell cygpath -w $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)user-space.ld}" + USER_HEXFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.hex}" + USER_SRECFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.srec}" + USER_BINFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.bin}" +else + # Linux/Cygwin-native toolchain + USER_LIBPATHS = $(addprefix -L$(TOPDIR)$(DELIM),$(dir $(USERLIBS))) + USER_LDSCRIPT = -T$(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)memory.ld + USER_LDSCRIPT += -T$(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)user-space.ld + USER_HEXFILE += "$(TOPDIR)$(DELIM)nuttx_user.hex" + USER_SRECFILE += "$(TOPDIR)$(DELIM)nuttx_user.srec" + USER_BINFILE += "$(TOPDIR)$(DELIM)nuttx_user.bin" +endif + +USER_LDFLAGS = --undefined=$(ENTRYPT) --entry=$(ENTRYPT) $(USER_LDSCRIPT) +USER_LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(USERLIBS)))) +USER_LIBGCC = "${shell "$(CC)" $(ARCHCPUFLAGS) -print-libgcc-file-name}" + +# Source files + +CSRCS = stm32_userspace.c +COBJS = $(CSRCS:.c=$(OBJEXT)) +OBJS = $(COBJS) + +# Targets: + +all: $(TOPDIR)$(DELIM)nuttx_user.elf $(TOPDIR)$(DELIM)User.map +.PHONY: nuttx_user.elf depend clean distclean + +$(COBJS): %$(OBJEXT): %.c + $(call COMPILE, $<, $@) + +# Create the nuttx_user.elf file containing all of the user-mode code + +nuttx_user.elf: $(OBJS) + $(Q) $(LD) -o $@ $(USER_LDFLAGS) $(USER_LIBPATHS) $(OBJS) --start-group $(USER_LDLIBS) --end-group $(USER_LIBGCC) + +$(TOPDIR)$(DELIM)nuttx_user.elf: nuttx_user.elf + @echo "LD: nuttx_user.elf" + $(Q) cp -a nuttx_user.elf $(TOPDIR)$(DELIM)nuttx_user.elf +ifeq ($(CONFIG_INTELHEX_BINARY),y) + @echo "CP: nuttx_user.hex" + $(Q) $(OBJCOPY) $(OBJCOPYARGS) -O ihex nuttx_user.elf $(USER_HEXFILE) +endif +ifeq ($(CONFIG_MOTOROLA_SREC),y) + @echo "CP: nuttx_user.srec" + $(Q) $(OBJCOPY) $(OBJCOPYARGS) -O srec nuttx_user.elf $(USER_SRECFILE) +endif +ifeq ($(CONFIG_RAW_BINARY),y) + @echo "CP: nuttx_user.bin" + $(Q) $(OBJCOPY) $(OBJCOPYARGS) -O binary nuttx_user.elf $(USER_BINFILE) +endif + +$(TOPDIR)$(DELIM)User.map: nuttx_user.elf + @echo "MK: User.map" + $(Q) $(NM) nuttx_user.elf >$(TOPDIR)$(DELIM)User.map + $(Q) $(CROSSDEV)size nuttx_user.elf + +.depend: + +depend: .depend + +clean: + $(call DELFILE, nuttx_user.elf) + $(call DELFILE, "$(TOPDIR)$(DELIM)nuttx_user.*") + $(call DELFILE, "$(TOPDIR)$(DELIM)User.map") + $(call CLEAN) + +distclean: clean diff --git a/configs/olimex-stm32-p407/kernel/stm32_userspace.c b/configs/olimex-stm32-p407/kernel/stm32_userspace.c new file mode 100644 index 00000000000..36306ccd660 --- /dev/null +++ b/configs/olimex-stm32-p407/kernel/stm32_userspace.c @@ -0,0 +1,133 @@ +/**************************************************************************** + * configs/olimex-stm32-p407/kernel/stm32_userspace.c + * + * Copyright (C) 2017 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 + +#include +#include +#include +#include + +#if defined(CONFIG_BUILD_PROTECTED) && !defined(__KERNEL__) + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ +/* Configuration ************************************************************/ + +#ifndef CONFIG_NUTTX_USERSPACE +# error "CONFIG_NUTTX_USERSPACE not defined" +#endif + +#if CONFIG_NUTTX_USERSPACE != 0x08020000 +# error "CONFIG_NUTTX_USERSPACE must be 0x08020000 to match memory.ld" +#endif + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +/* These 'addresses' of these values are setup by the linker script. They are + * not actual uint32_t storage locations! They are only used meaningfully in the + * following way: + * + * - The linker script defines, for example, the symbol_sdata. + * - The declaration extern uint32_t _sdata; makes C happy. C will believe + * that the value _sdata is the address of a uint32_t variable _data (it is + * not!). + * - We can recover the linker value then by simply taking the address of + * of _data. like: uint32_t *pdata = &_sdata; + */ + +extern uint32_t _stext; /* Start of .text */ +extern uint32_t _etext; /* End_1 of .text + .rodata */ +extern const uint32_t _eronly; /* End+1 of read only section (.text + .rodata) */ +extern uint32_t _sdata; /* Start of .data */ +extern uint32_t _edata; /* End+1 of .data */ +extern uint32_t _sbss; /* Start of .bss */ +extern uint32_t _ebss; /* End+1 of .bss */ + +/* This is the user space entry point */ + +int CONFIG_USER_ENTRYPOINT(int argc, char *argv[]); + +const struct userspace_s userspace __attribute__ ((section (".userspace"))) = +{ + /* General memory map */ + + .us_entrypoint = (main_t)CONFIG_USER_ENTRYPOINT, + .us_textstart = (uintptr_t)&_stext, + .us_textend = (uintptr_t)&_etext, + .us_datasource = (uintptr_t)&_eronly, + .us_datastart = (uintptr_t)&_sdata, + .us_dataend = (uintptr_t)&_edata, + .us_bssstart = (uintptr_t)&_sbss, + .us_bssend = (uintptr_t)&_ebss, + + /* Memory manager heap structure */ + + .us_heap = &g_mmheap, + + /* Task/thread startup routines */ + + .task_startup = task_startup, +#ifndef CONFIG_DISABLE_PTHREAD + .pthread_startup = pthread_startup, +#endif + + /* Signal handler trampoline */ + +#ifndef CONFIG_DISABLE_SIGNALS + .signal_handler = up_signal_handler, +#endif + + /* User-space work queue support (declared in include/nuttx/wqueue.h) */ + +#ifdef CONFIG_LIB_USRWORK + .work_usrstart = work_usrstart, +#endif +}; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#endif /* CONFIG_BUILD_PROTECTED && !__KERNEL__ */ diff --git a/configs/olimex-stm32-p407/knsh/Make.defs b/configs/olimex-stm32-p407/knsh/Make.defs new file mode 100644 index 00000000000..a6f7b42ce65 --- /dev/null +++ b/configs/olimex-stm32-p407/knsh/Make.defs @@ -0,0 +1,125 @@ +############################################################################ +# configs/olimex-stm32-p407/knsh/Make.defs +# +# Copyright (C) 2017 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}/tools/Config.mk +include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs + +LDSCRIPT1 = memory.ld +LDSCRIPT2 = kernel-space.ld + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mkwindeps.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/$(LDSCRIPT1)}" + ARCHSCRIPT += -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT2)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx + ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT1) + ARCHSCRIPT += -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT2) +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 -fcheck-new -fno-rtti +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +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-gotoff.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +# Loadable module definitions + +CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs + +LDMODULEFLAGS = -r -e module_initialize +ifeq ($(WINTOOL),y) + LDMODULEFLAGS += -T "${shell cygpath -w $(TOPDIR)/sched/module/gnu-elf.ld}" +else + LDMODULEFLAGS += -T $(TOPDIR)/sched/module/gnu-elf.ld +endif + +ASMEXT = .S +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 -Wundef -g -pipe +HOSTLDFLAGS = diff --git a/configs/olimex-stm32-p407/knsh/defconfig b/configs/olimex-stm32-p407/knsh/defconfig new file mode 100644 index 00000000000..d49b31fbd7d --- /dev/null +++ b/configs/olimex-stm32-p407/knsh/defconfig @@ -0,0 +1,1231 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +# CONFIG_EXPERIMENTAL is not set +# CONFIG_DEFAULT_SMALL is not set +CONFIG_HOST_LINUX=y +# CONFIG_HOST_OSX is not set +# CONFIG_HOST_WINDOWS is not set +# CONFIG_HOST_OTHER is not set + +# +# Build Configuration +# +# CONFIG_APPS_DIR="../apps" +# CONFIG_BUILD_FLAT is not set +CONFIG_BUILD_PROTECTED=y +CONFIG_BUILD_2PASS=y +CONFIG_PASS1_TARGET="all" +CONFIG_PASS1_BUILDIR="configs/olimex-stm32-p407/kernel" +CONFIG_PASS1_OBJECT="" +CONFIG_NUTTX_USERSPACE=0x08020000 + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +CONFIG_INTELHEX_BINARY=y +# 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 +# CONFIG_ARCH_DEBUG_H is not set + +# +# Debug Options +# +CONFIG_DEBUG_ALERT=y +# CONFIG_DEBUG_FEATURES is not set +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set +CONFIG_ARCH_HAVE_HEAPCHECK=y +# CONFIG_HEAP_COLORATION 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_MISOC is not set +# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_XTENSA 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_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 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_LPC11XX 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_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set +CONFIG_ARCH_CHIP_STM32=y +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART 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_CORTEXM23 is not set +# CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set +CONFIG_ARCH_CORTEXM4=y +# CONFIG_ARCH_CORTEXM7 is not set +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set +CONFIG_ARCH_FAMILY="armv7-m" +CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +CONFIG_ARM_TOOLCHAIN_GNU=y +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_CMNVECTOR=y +# CONFIG_ARMV7M_CMNVECTOR is not set +# CONFIG_ARMV7M_LAZYFPU is not set +CONFIG_ARCH_HAVE_FPU=y +# CONFIG_ARCH_HAVE_DPFPU is not set +CONFIG_ARCH_FPU=y +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y +CONFIG_ARM_MPU=y +CONFIG_ARM_MPU_NREGIONS=8 + +# +# ARMV7M Configuration Options +# +# CONFIG_ARMV7M_HAVE_ICACHE is not set +# CONFIG_ARMV7M_HAVE_DCACHE is not set +# CONFIG_ARMV7M_HAVE_ITCM is not set +# CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set +CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set +# CONFIG_ARMV7M_OABI_TOOLCHAIN is not set +CONFIG_ARMV7M_HAVE_STACKCHECK=y +# CONFIG_ARMV7M_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set +# CONFIG_SERIAL_TERMIOS is not set + +# +# STM32 Configuration Options +# +# CONFIG_ARCH_CHIP_STM32L151C6 is not set +# CONFIG_ARCH_CHIP_STM32L151C8 is not set +# CONFIG_ARCH_CHIP_STM32L151CB is not set +# CONFIG_ARCH_CHIP_STM32L151R6 is not set +# CONFIG_ARCH_CHIP_STM32L151R8 is not set +# CONFIG_ARCH_CHIP_STM32L151RB is not set +# CONFIG_ARCH_CHIP_STM32L151V6 is not set +# CONFIG_ARCH_CHIP_STM32L151V8 is not set +# CONFIG_ARCH_CHIP_STM32L151VB is not set +# CONFIG_ARCH_CHIP_STM32L152C6 is not set +# CONFIG_ARCH_CHIP_STM32L152C8 is not set +# CONFIG_ARCH_CHIP_STM32L152CB is not set +# CONFIG_ARCH_CHIP_STM32L152R6 is not set +# CONFIG_ARCH_CHIP_STM32L152R8 is not set +# CONFIG_ARCH_CHIP_STM32L152RB is not set +# CONFIG_ARCH_CHIP_STM32L152V6 is not set +# CONFIG_ARCH_CHIP_STM32L152V8 is not set +# CONFIG_ARCH_CHIP_STM32L152VB is not set +# CONFIG_ARCH_CHIP_STM32L162ZD is not set +# CONFIG_ARCH_CHIP_STM32L162VE is not set +# CONFIG_ARCH_CHIP_STM32F100C8 is not set +# CONFIG_ARCH_CHIP_STM32F100CB is not set +# CONFIG_ARCH_CHIP_STM32F100R8 is not set +# CONFIG_ARCH_CHIP_STM32F100RB is not set +# CONFIG_ARCH_CHIP_STM32F100RC is not set +# CONFIG_ARCH_CHIP_STM32F100RD is not set +# CONFIG_ARCH_CHIP_STM32F100RE is not set +# CONFIG_ARCH_CHIP_STM32F100V8 is not set +# CONFIG_ARCH_CHIP_STM32F100VB is not set +# CONFIG_ARCH_CHIP_STM32F100VC is not set +# CONFIG_ARCH_CHIP_STM32F100VD is not set +# CONFIG_ARCH_CHIP_STM32F100VE is not set +# CONFIG_ARCH_CHIP_STM32F102CB is not set +# CONFIG_ARCH_CHIP_STM32F103T8 is not set +# CONFIG_ARCH_CHIP_STM32F103TB is not set +# CONFIG_ARCH_CHIP_STM32F103C4 is not set +# CONFIG_ARCH_CHIP_STM32F103C8 is not set +# CONFIG_ARCH_CHIP_STM32F103CB is not set +# CONFIG_ARCH_CHIP_STM32F103R8 is not set +# CONFIG_ARCH_CHIP_STM32F103RB is not set +# CONFIG_ARCH_CHIP_STM32F103RC is not set +# CONFIG_ARCH_CHIP_STM32F103RD is not set +# CONFIG_ARCH_CHIP_STM32F103RE is not set +# CONFIG_ARCH_CHIP_STM32F103RG is not set +# CONFIG_ARCH_CHIP_STM32F103V8 is not set +# CONFIG_ARCH_CHIP_STM32F103VB is not set +# CONFIG_ARCH_CHIP_STM32F103VC is not set +# CONFIG_ARCH_CHIP_STM32F103VE is not set +# CONFIG_ARCH_CHIP_STM32F103ZE is not set +# CONFIG_ARCH_CHIP_STM32F105VB is not set +# CONFIG_ARCH_CHIP_STM32F105RB is not set +# CONFIG_ARCH_CHIP_STM32F107VC is not set +# CONFIG_ARCH_CHIP_STM32F205RG is not set +# CONFIG_ARCH_CHIP_STM32F207IG is not set +# CONFIG_ARCH_CHIP_STM32F207ZE is not set +# CONFIG_ARCH_CHIP_STM32F302K6 is not set +# CONFIG_ARCH_CHIP_STM32F302K8 is not set +# CONFIG_ARCH_CHIP_STM32F302CB is not set +# CONFIG_ARCH_CHIP_STM32F302CC is not set +# CONFIG_ARCH_CHIP_STM32F302RB is not set +# CONFIG_ARCH_CHIP_STM32F302RC is not set +# CONFIG_ARCH_CHIP_STM32F302VB is not set +# CONFIG_ARCH_CHIP_STM32F302VC is not set +# CONFIG_ARCH_CHIP_STM32F303K6 is not set +# CONFIG_ARCH_CHIP_STM32F303K8 is not set +# CONFIG_ARCH_CHIP_STM32F303C6 is not set +# CONFIG_ARCH_CHIP_STM32F303C8 is not set +# CONFIG_ARCH_CHIP_STM32F303CB is not set +# CONFIG_ARCH_CHIP_STM32F303CC is not set +# CONFIG_ARCH_CHIP_STM32F303RB is not set +# CONFIG_ARCH_CHIP_STM32F303RC is not set +# CONFIG_ARCH_CHIP_STM32F303RD is not set +# CONFIG_ARCH_CHIP_STM32F303RE is not set +# CONFIG_ARCH_CHIP_STM32F303VB is not set +# CONFIG_ARCH_CHIP_STM32F303VC is not set +# CONFIG_ARCH_CHIP_STM32F372C8 is not set +# CONFIG_ARCH_CHIP_STM32F372R8 is not set +# CONFIG_ARCH_CHIP_STM32F372V8 is not set +# CONFIG_ARCH_CHIP_STM32F372CB is not set +# CONFIG_ARCH_CHIP_STM32F372RB is not set +# CONFIG_ARCH_CHIP_STM32F372VB is not set +# CONFIG_ARCH_CHIP_STM32F372CC is not set +# CONFIG_ARCH_CHIP_STM32F372RC is not set +# CONFIG_ARCH_CHIP_STM32F372VC is not set +# CONFIG_ARCH_CHIP_STM32F373C8 is not set +# CONFIG_ARCH_CHIP_STM32F373R8 is not set +# CONFIG_ARCH_CHIP_STM32F373V8 is not set +# CONFIG_ARCH_CHIP_STM32F373CB is not set +# CONFIG_ARCH_CHIP_STM32F373RB is not set +# CONFIG_ARCH_CHIP_STM32F373VB is not set +# CONFIG_ARCH_CHIP_STM32F373CC is not set +# CONFIG_ARCH_CHIP_STM32F373RC is not set +# CONFIG_ARCH_CHIP_STM32F373VC is not set +# CONFIG_ARCH_CHIP_STM32F401RE is not set +# CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set +# CONFIG_ARCH_CHIP_STM32F405RG is not set +# CONFIG_ARCH_CHIP_STM32F405VG is not set +# CONFIG_ARCH_CHIP_STM32F405ZG is not set +# CONFIG_ARCH_CHIP_STM32F407VE is not set +# CONFIG_ARCH_CHIP_STM32F407VG is not set +# CONFIG_ARCH_CHIP_STM32F407ZE is not set +CONFIG_ARCH_CHIP_STM32F407ZG=y +# CONFIG_ARCH_CHIP_STM32F407IE is not set +# CONFIG_ARCH_CHIP_STM32F407IG is not set +# CONFIG_ARCH_CHIP_STM32F427V is not set +# CONFIG_ARCH_CHIP_STM32F427Z is not set +# CONFIG_ARCH_CHIP_STM32F427I is not set +# CONFIG_ARCH_CHIP_STM32F429V is not set +# CONFIG_ARCH_CHIP_STM32F429Z is not set +# CONFIG_ARCH_CHIP_STM32F429I is not set +# CONFIG_ARCH_CHIP_STM32F429B is not set +# CONFIG_ARCH_CHIP_STM32F429N is not set +# CONFIG_ARCH_CHIP_STM32F446M is not set +# CONFIG_ARCH_CHIP_STM32F446R is not set +# CONFIG_ARCH_CHIP_STM32F446V is not set +# CONFIG_ARCH_CHIP_STM32F446Z is not set +# CONFIG_ARCH_CHIP_STM32F469A is not set +# CONFIG_ARCH_CHIP_STM32F469I is not set +# CONFIG_ARCH_CHIP_STM32F469B is not set +# CONFIG_ARCH_CHIP_STM32F469N is not set +CONFIG_STM32_FLASH_CONFIG_DEFAULT=y +# CONFIG_STM32_FLASH_CONFIG_4 is not set +# CONFIG_STM32_FLASH_CONFIG_6 is not set +# CONFIG_STM32_FLASH_CONFIG_8 is not set +# CONFIG_STM32_FLASH_CONFIG_B is not set +# CONFIG_STM32_FLASH_CONFIG_C is not set +# CONFIG_STM32_FLASH_CONFIG_D is not set +# CONFIG_STM32_FLASH_CONFIG_E is not set +# CONFIG_STM32_FLASH_CONFIG_F is not set +# CONFIG_STM32_FLASH_CONFIG_G is not set +# CONFIG_STM32_FLASH_CONFIG_I is not set +# CONFIG_STM32_STM32L15XX is not set +# CONFIG_STM32_ENERGYLITE is not set +# CONFIG_STM32_STM32F10XX is not set +# CONFIG_STM32_VALUELINE is not set +# CONFIG_STM32_CONNECTIVITYLINE is not set +# CONFIG_STM32_PERFORMANCELINE is not set +# CONFIG_STM32_USBACCESSLINE is not set +# CONFIG_STM32_HIGHDENSITY is not set +# CONFIG_STM32_MEDIUMDENSITY is not set +# CONFIG_STM32_LOWDENSITY is not set +# CONFIG_STM32_STM32F20XX is not set +# CONFIG_STM32_STM32F205 is not set +# CONFIG_STM32_STM32F207 is not set +# CONFIG_STM32_STM32F30XX is not set +# CONFIG_STM32_STM32F302 is not set +# CONFIG_STM32_STM32F303 is not set +# CONFIG_STM32_STM32F37XX is not set +CONFIG_STM32_STM32F40XX=y +# CONFIG_STM32_STM32F401 is not set +# CONFIG_STM32_STM32F411 is not set +# CONFIG_STM32_STM32F405 is not set +CONFIG_STM32_STM32F407=y +# CONFIG_STM32_STM32F427 is not set +# CONFIG_STM32_STM32F429 is not set +# CONFIG_STM32_STM32F446 is not set +# CONFIG_STM32_STM32F469 is not set +# CONFIG_STM32_DFU is not set + +# +# STM32 Peripheral Support +# +CONFIG_STM32_HAVE_CCM=y +# CONFIG_STM32_HAVE_USBDEV is not set +CONFIG_STM32_HAVE_OTGFS=y +CONFIG_STM32_HAVE_FSMC=y +# CONFIG_STM32_HAVE_LTDC is not set +CONFIG_STM32_HAVE_USART3=y +CONFIG_STM32_HAVE_UART4=y +CONFIG_STM32_HAVE_UART5=y +CONFIG_STM32_HAVE_USART6=y +# CONFIG_STM32_HAVE_UART7 is not set +# CONFIG_STM32_HAVE_UART8 is not set +CONFIG_STM32_HAVE_TIM1=y +CONFIG_STM32_HAVE_TIM2=y +CONFIG_STM32_HAVE_TIM3=y +CONFIG_STM32_HAVE_TIM4=y +CONFIG_STM32_HAVE_TIM5=y +CONFIG_STM32_HAVE_TIM6=y +CONFIG_STM32_HAVE_TIM7=y +CONFIG_STM32_HAVE_TIM8=y +CONFIG_STM32_HAVE_TIM9=y +CONFIG_STM32_HAVE_TIM10=y +CONFIG_STM32_HAVE_TIM11=y +CONFIG_STM32_HAVE_TIM12=y +CONFIG_STM32_HAVE_TIM13=y +CONFIG_STM32_HAVE_TIM14=y +# CONFIG_STM32_HAVE_TIM15 is not set +# CONFIG_STM32_HAVE_TIM16 is not set +# CONFIG_STM32_HAVE_TIM17 is not set +CONFIG_STM32_HAVE_ADC2=y +CONFIG_STM32_HAVE_ADC3=y +# CONFIG_STM32_HAVE_ADC4 is not set +# CONFIG_STM32_HAVE_ADC1_DMA is not set +# CONFIG_STM32_HAVE_ADC2_DMA is not set +# CONFIG_STM32_HAVE_ADC3_DMA is not set +# CONFIG_STM32_HAVE_ADC4_DMA is not set +# CONFIG_STM32_HAVE_SDADC1 is not set +# CONFIG_STM32_HAVE_SDADC2 is not set +# CONFIG_STM32_HAVE_SDADC3 is not set +# CONFIG_STM32_HAVE_SDADC1_DMA is not set +# CONFIG_STM32_HAVE_SDADC2_DMA is not set +# CONFIG_STM32_HAVE_SDADC3_DMA is not set +CONFIG_STM32_HAVE_CAN1=y +CONFIG_STM32_HAVE_CAN2=y +CONFIG_STM32_HAVE_DAC1=y +CONFIG_STM32_HAVE_DAC2=y +CONFIG_STM32_HAVE_RNG=y +CONFIG_STM32_HAVE_ETHMAC=y +CONFIG_STM32_HAVE_I2C2=y +CONFIG_STM32_HAVE_I2C3=y +CONFIG_STM32_HAVE_SPI2=y +CONFIG_STM32_HAVE_SPI3=y +# CONFIG_STM32_HAVE_SPI4 is not set +# CONFIG_STM32_HAVE_SPI5 is not set +# CONFIG_STM32_HAVE_SPI6 is not set +# CONFIG_STM32_HAVE_SAIPLL is not set +# CONFIG_STM32_HAVE_I2SPLL is not set +# CONFIG_STM32_ADC1 is not set +# CONFIG_STM32_ADC2 is not set +# CONFIG_STM32_ADC3 is not set +# CONFIG_STM32_BKPSRAM is not set +# CONFIG_STM32_CAN1 is not set +# CONFIG_STM32_CAN2 is not set +# CONFIG_STM32_CCMDATARAM is not set +# CONFIG_STM32_CRC is not set +# CONFIG_STM32_CRYP is not set +# 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_DCMI is not set +# CONFIG_STM32_ETHMAC is not set +# CONFIG_STM32_FSMC is not set +# CONFIG_STM32_HASH is not set +# CONFIG_STM32_I2C1 is not set +# CONFIG_STM32_I2C2 is not set +# CONFIG_STM32_I2C3 is not set +# CONFIG_STM32_OTGFS is not set +# CONFIG_STM32_OTGHS is not set +CONFIG_STM32_PWR=y +# CONFIG_STM32_RNG is not set +# CONFIG_STM32_SDIO is not set +# CONFIG_STM32_SPI1 is not set +# CONFIG_STM32_SPI2 is not set +# CONFIG_STM32_SPI3 is not set +CONFIG_STM32_SYSCFG=y +# CONFIG_STM32_TIM1 is not set +# CONFIG_STM32_TIM2 is not set +# CONFIG_STM32_TIM3 is not set +# CONFIG_STM32_TIM4 is not set +# CONFIG_STM32_TIM5 is not set +# CONFIG_STM32_TIM6 is not set +# CONFIG_STM32_TIM7 is not set +# CONFIG_STM32_TIM8 is not set +# CONFIG_STM32_TIM9 is not set +# CONFIG_STM32_TIM10 is not set +# CONFIG_STM32_TIM11 is not set +# CONFIG_STM32_TIM12 is not set +# CONFIG_STM32_TIM13 is not set +# CONFIG_STM32_TIM14 is not set +# CONFIG_STM32_USART1 is not set +# CONFIG_STM32_USART2 is not set +CONFIG_STM32_USART3=y +# CONFIG_STM32_UART4 is not set +# CONFIG_STM32_UART5 is not set +# CONFIG_STM32_USART6 is not set +# CONFIG_STM32_IWDG is not set +# CONFIG_STM32_WWDG is not set +# CONFIG_STM32_NOEXT_VECTORS is not set + +# +# Alternate Pin Mapping +# +# CONFIG_STM32_FLASH_PREFETCH is not set +# CONFIG_STM32_JTAG_DISABLE is not set +# CONFIG_STM32_JTAG_FULL_ENABLE is not set +# CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set +CONFIG_STM32_JTAG_SW_ENABLE=y +CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y +# CONFIG_STM32_FORCEPOWER is not set +# CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set +CONFIG_STM32_CCMEXCLUDE=y + +# +# Timer Configuration +# +# CONFIG_STM32_ONESHOT is not set +# CONFIG_STM32_FREERUN is not set +# CONFIG_STM32_TIM1_CAP is not set +# CONFIG_STM32_TIM2_CAP is not set +# CONFIG_STM32_TIM3_CAP is not set +# CONFIG_STM32_TIM4_CAP is not set +# CONFIG_STM32_TIM5_CAP is not set +# CONFIG_STM32_TIM8_CAP is not set +# CONFIG_STM32_TIM9_CAP is not set +# CONFIG_STM32_TIM10_CAP is not set +# CONFIG_STM32_TIM11_CAP is not set +# CONFIG_STM32_TIM12_CAP is not set +# CONFIG_STM32_TIM13_CAP is not set +# CONFIG_STM32_TIM14_CAP is not set +CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y + +# +# U[S]ART Configuration +# + +# +# U[S]ART Device Configuration +# +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set +# CONFIG_USART3_RS485 is not set + +# +# Serial Driver Configuration +# +# CONFIG_SERIAL_DISABLE_REORDERING is not set +# CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set +# CONFIG_STM32_USART_SINGLEWIRE is not set +# CONFIG_STM32_HAVE_RTC_COUNTER is not set +# CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set + +# +# USB FS Host Configuration +# + +# +# USB HS Host Configuration +# + +# +# USB Host Debug Configuration +# + +# +# USB Device Configuration +# + +# +# 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_MULTICPU is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +CONFIG_ARCH_HAVE_RESET=y +CONFIG_ARCH_USE_MPU=y +# 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=16717 +# 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=131072 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +# CONFIG_ARCH_BOARD_OLIMEX_STM32H407 is not set +# CONFIG_ARCH_BOARD_OLIMEX_STM32E407 is not set +CONFIG_ARCH_BOARD_OLIMEX_STM32P407=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="olimex-stm32-p407" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_LEDS=y +CONFIG_ARCH_LEDS=y +CONFIG_ARCH_HAVE_BUTTONS=y +CONFIG_ARCH_BUTTONS=y +CONFIG_ARCH_HAVE_IRQBUTTONS=y +CONFIG_ARCH_IRQBUTTONS=y + +# +# Board-Specific Options +# +# CONFIG_BOARD_CRASHDUMP is not set +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set + +# +# 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 is not set + +# +# Clocks and Timers +# +CONFIG_ARCH_HAVE_TICKLESS=y +# CONFIG_SCHED_TICKLESS is not set +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +CONFIG_ARCH_HAVE_TIMEKEEPING=y +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2013 +CONFIG_START_MONTH=1 +CONFIG_START_DAY=1 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=8 +CONFIG_WDOG_INTRESERVE=1 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_SPINLOCK is not set +# 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_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=0 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 +# CONFIG_PTHREAD_CLEANUP is not set +# CONFIG_CANCELLATION_POINTS is not set + +# +# 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=y +# CONFIG_BOARD_INITTHREAD 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 +CONFIG_SIG_SIGWORK=17 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=192 +CONFIG_SCHED_HPWORKPERIOD=50000 +CONFIG_SCHED_HPWORKSTACKSIZE=2048 +# 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=y +CONFIG_SYS_RESERVED=8 +CONFIG_SYS_NNEST=2 + +# +# Device Drivers +# +CONFIG_DISABLE_POLL=y +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_DEV_URANDOM is not set +# CONFIG_DEV_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_ARCH_HAVE_PWM_MULTICHAN is not set +# CONFIG_PWM is not set +CONFIG_ARCH_HAVE_I2CRESET=y +# CONFIG_I2C is not set +# CONFIG_SPI is not set +# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set +# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set +CONFIG_ARCH_HAVE_SPI_BITORDER=y +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set +# CONFIG_ONESHOT is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG 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 + +# +# IO Expander/GPIO Support +# +# CONFIG_IOEXPANDER is not set +# CONFIG_DEV_GPIO is not set + +# +# LCD Driver Support +# +# CONFIG_LCD is not set +# CONFIG_SLCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set +# CONFIG_NCP5623C is not set +# CONFIG_MMCSD is not set +# CONFIG_MODEM is not set +# CONFIG_MTD is not set +# CONFIG_EEPROM is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_SERIAL_REMOVABLE is not set +CONFIG_SERIAL_CONSOLE=y +# CONFIG_16550_UART is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y +CONFIG_USART3_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# USART3 Configuration +# +CONFIG_USART3_RXBUFSIZE=256 +CONFIG_USART3_TXBUFSIZE=256 +CONFIG_USART3_BAUD=115200 +CONFIG_USART3_BITS=8 +CONFIG_USART3_PARITY=0 +CONFIG_USART3_2STOP=0 +# CONFIG_USART3_IFLOWCONTROL is not set +# CONFIG_USART3_OFLOWCONTROL is not set +# CONFIG_USART3_DMA is not set +# CONFIG_PSEUDOTERM is not set +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_HAVE_USBTRACE is not set +# CONFIG_DRIVERS_WIRELESS is not set +# CONFIG_DRIVERS_CONTACTLESS is not set + +# +# System Logging +# +# CONFIG_ARCH_SYSLOG is not set +# CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_INTBUFFER is not set +# CONFIG_SYSLOG_TIMESTAMP is not set +CONFIG_SYSLOG_SERIAL_CONSOLE=y +# CONFIG_SYSLOG_CHAR is not set +CONFIG_SYSLOG_CONSOLE=y +# CONFIG_SYSLOG_NONE is not set +# CONFIG_SYSLOG_FILE is not set +# CONFIG_SYSLOG_CHARDEV 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 is not set +# CONFIG_FS_AUTOMOUNTER is not set +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +CONFIG_FS_READABLE=y +# 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_FAT is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set +# CONFIG_FS_SMARTFS is not set +CONFIG_FS_PROCFS=y +# CONFIG_FS_PROCFS_REGISTER is not set + +# +# Exclude individual procfs entries +# +# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set +# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set +# CONFIG_FS_PROCFS_EXCLUDE_KMM is not set +# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set +# CONFIG_FS_UNIONFS is not set + +# +# Graphics Support +# +# CONFIG_NX is not set + +# +# Memory Management +# +CONFIG_MM_KERNEL_HEAP=y +CONFIG_MM_KERNEL_HEAPSIZE=8192 +# 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 + +# +# Wireless Support +# + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF 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_LIB_HOMEDIR="/" +# CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +# CONFIG_LIBC_ARCH_ELF is not set +# CONFIG_ARMV7M_MEMCPY is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set +# CONFIG_LIBC_IOCTL_VARIADIC is not set +# CONFIG_LIBC_WCHAR is not set +# CONFIG_LIBC_LOCALE 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_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_IPv4_ADDRCONV is not set +# CONFIG_LIBC_IPv6_ADDRCONV is not set +# CONFIG_LIBC_NETDB is not set +# CONFIG_NETDB_HOSTFILE is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_CRC64_FAST is not set +# CONFIG_LIB_USRWORK is not set +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set +# CONFIG_LIB_HEX2BIN is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +CONFIG_HAVE_CXX=y +CONFIG_HAVE_CXXINITIALIZE=y +# CONFIG_CXX_NEWLONG is not set + +# +# uClibc++ Standard C++ Library +# +# CONFIG_UCLIBCXX is not set + +# +# Application Configuration +# + +# +# CAN Utilities +# + +# +# Examples +# +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CCTYPE is not set +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CXXTEST 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_IGMP is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_MEDIA 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_NSH_CXXINITIALIZE=y +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_PPPD is not set +# CONFIG_EXAMPLES_RFID_READUID is not set +# CONFIG_EXAMPLES_RGBLED 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_SMP 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_USBSERIAL is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set +# CONFIG_EXAMPLES_WEBSERVER is not set + +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_BAS is not set +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set +# CONFIG_INTERPRETERS_MINIBASIC is not set +# CONFIG_INTERPRETERS_PCODE is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set + +# +# Command Line Configuration +# +CONFIG_NSH_READLINE=y +# CONFIG_NSH_CLE is not set +CONFIG_NSH_LINELEN=64 +# CONFIG_NSH_DISABLE_SEMICOLON is not set +CONFIG_NSH_CMDPARMS=y +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_BASENAME 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_DATE=y +CONFIG_NSH_DISABLE_DD=y +# CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_DELROUTE is not set +# CONFIG_NSH_DISABLE_DIRNAME 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=y +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +CONFIG_NSH_DISABLE_IFUPDOWN=y +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LOSETUP is not set +CONFIG_NSH_DISABLE_LOSMART=y +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +CONFIG_NSH_DISABLE_MKRD=y +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_MW is not set +CONFIG_NSH_DISABLE_PRINTF=y +# CONFIG_NSH_DISABLE_PS is not set +CONFIG_NSH_DISABLE_PUT=y +# 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_TIME is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNAME is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +CONFIG_NSH_DISABLE_WGET=y +# CONFIG_NSH_DISABLE_XD is not set +CONFIG_NSH_MMCSDMINOR=0 + +# +# Configure Command Options +# +# CONFIG_NSH_CMDOPT_DF_H is not set +CONFIG_NSH_CODECS_BUFSIZE=128 +CONFIG_NSH_CMDOPT_HEXDUMP=y +CONFIG_NSH_PROC_MOUNTPOINT="/proc" +CONFIG_NSH_FILEIOSIZE=512 + +# +# 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 +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set + +# +# NxWidgets/NxWM +# + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_FREE is not set +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_RAMTEST is not set +CONFIG_READLINE_HAVE_EXTMATCH=y +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y +# CONFIG_READLINE_TABCOMPLETION is not set +# CONFIG_READLINE_CMD_HISTORY is not set +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_SYSTEM is not set +# CONFIG_SYSTEM_TEE is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/olimex-stm32-p407/knsh/setenv.sh b/configs/olimex-stm32-p407/knsh/setenv.sh new file mode 100644 index 00000000000..dec893b8206 --- /dev/null +++ b/configs/olimex-stm32-p407/knsh/setenv.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# configs/olimex-stm32-p407/knsh/setenv.sh +# +# Copyright (C) 2017 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/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors" +# You can this free toolchain here https://launchpad.net/gcc-arm-embedded +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" + +# This is the path to the location where I installed the devkitARM toolchain +# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/ +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin" + +# These are the Cygwin paths to the locations where I installed the Atollic +# toolchain under windows. You will also have to edit this if you install +# the Atollic toolchain in any other location. /usr/bin is added before +# the Atollic bin path because there is are binaries named gcc.exe and g++.exe +# at those locations as well. +#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for ARM Pro 2.3.0/ARMTools/bin" +#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for STMicroelectronics STM32 Lite 2.3.0/ARMTools/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +# export TOOLCHAIN_BIN="${WD}/../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-stm32-p407/nsh/Make.defs b/configs/olimex-stm32-p407/nsh/Make.defs index d27844c30b2..a676dee3006 100644 --- a/configs/olimex-stm32-p407/nsh/Make.defs +++ b/configs/olimex-stm32-p407/nsh/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/olimex-stm32-p407/nsh/Make.defs # -# Copyright (C) 2009, 2012 Gregory Nutt. All rights reserved. +# Copyright (C) 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -37,7 +37,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs -LDSCRIPT = ld.script +LDSCRIPT = flash.ld ifeq ($(WINTOOL),y) # Windows-native toolchains @@ -93,6 +93,17 @@ NXFLATLDFLAGS1 = -r -d -warn-common NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-gotoff.ld -no-check-sections LDNXFLATFLAGS = -e main -s 2048 +# Loadable module definitions + +CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs + +LDMODULEFLAGS = -r -e module_initialize +ifeq ($(WINTOOL),y) + LDMODULEFLAGS += -T "${shell cygpath -w $(TOPDIR)/sched/module/gnu-elf.ld}" +else + LDMODULEFLAGS += -T $(TOPDIR)/sched/module/gnu-elf.ld +endif + ASMEXT = .S OBJEXT = .o LIBEXT = .a diff --git a/configs/olimex-stm32-p407/nsh/defconfig b/configs/olimex-stm32-p407/nsh/defconfig index 21dacf69cea..1d81763bc97 100644 --- a/configs/olimex-stm32-p407/nsh/defconfig +++ b/configs/olimex-stm32-p407/nsh/defconfig @@ -106,7 +106,9 @@ CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM23 is not set # CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXA5 is not set @@ -857,7 +859,7 @@ CONFIG_SYSLOG_CONSOLE=y # CONFIG_DISABLE_MOUNTPOINT is not set # CONFIG_FS_AUTOMOUNTER is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set -# CONFIG_FS_READABLE is not set +CONFIG_FS_READABLE=y # CONFIG_FS_WRITABLE is not set # CONFIG_FS_NAMED_SEMAPHORES is not set CONFIG_FS_MQUEUE_MPATH="/var/mqueue" @@ -868,7 +870,15 @@ CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # CONFIG_FS_TMPFS is not set # CONFIG_FS_SMARTFS is not set # CONFIG_FS_BINFS is not set -# CONFIG_FS_PROCFS is not set +CONFIG_FS_PROCFS=y +# CONFIG_FS_PROCFS_REGISTER is not set + +# +# Exclude individual procfs entries +# +# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set +# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set +# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set # CONFIG_FS_UNIONFS is not set # @@ -915,10 +925,25 @@ CONFIG_STDIO_BUFFER_SIZE=64 CONFIG_STDIO_LINEBUFFER=y CONFIG_NUNGET_CHARS=2 CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBC_DLLFCN is not set # CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +# CONFIG_LIBC_ARCH_ELF is not set +# CONFIG_ARMV7M_MEMCPY is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set # CONFIG_LIBC_WCHAR is not set # CONFIG_LIBC_LOCALE is not set @@ -937,12 +962,14 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_NETDB is not set +# CONFIG_NETDB_HOSTFILE is not set # # Non-standard Library Support @@ -1038,6 +1065,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # File System Utilities # # CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set # # GPS Utilities @@ -1053,6 +1081,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # # Interpreters # +# CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set # CONFIG_INTERPRETERS_MINIBASIC is not set @@ -1152,6 +1181,7 @@ CONFIG_NSH_MMCSDMINOR=0 # CONFIG_NSH_CMDOPT_DD_STATS is not set CONFIG_NSH_CODECS_BUFSIZE=128 CONFIG_NSH_CMDOPT_HEXDUMP=y +CONFIG_NSH_PROC_MOUNTPOINT="/proc" CONFIG_NSH_FILEIOSIZE=512 # diff --git a/configs/olimex-stm32-p407/nsh/setenv.sh b/configs/olimex-stm32-p407/nsh/setenv.sh index 196f907e5e7..6d260da852f 100644 --- a/configs/olimex-stm32-p407/nsh/setenv.sh +++ b/configs/olimex-stm32-p407/nsh/setenv.sh @@ -1,7 +1,7 @@ #!/bin/bash # configs/olimex-stm32-p407/nsh/setenv.sh # -# Copyright (C) 2009 Gregory Nutt. All rights reserved. +# Copyright (C) 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without diff --git a/configs/olimex-stm32-p407/scripts/ld.script b/configs/olimex-stm32-p407/scripts/flash.ld similarity index 98% rename from configs/olimex-stm32-p407/scripts/ld.script rename to configs/olimex-stm32-p407/scripts/flash.ld index 5132280a203..e819be42da7 100644 --- a/configs/olimex-stm32-p407/scripts/ld.script +++ b/configs/olimex-stm32-p407/scripts/flash.ld @@ -1,5 +1,5 @@ /**************************************************************************** - * configs/olimex-stm32-p407/scripts/ld.script + * configs/olimex-stm32-p407/scripts/flash.ld * * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt diff --git a/configs/olimex-stm32-p407/scripts/kernel-space.ld b/configs/olimex-stm32-p407/scripts/kernel-space.ld new file mode 100644 index 00000000000..6fc5232b912 --- /dev/null +++ b/configs/olimex-stm32-p407/scripts/kernel-space.ld @@ -0,0 +1,111 @@ +/**************************************************************************** + * configs/olimex-stm32-p407/scripts/kernel-space.ld + * + * Copyright (C) 2017 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. + * + ****************************************************************************/ + +/* NOTE: This depends on the memory.ld script having been included prior to + * this script. + */ + +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(.); + } > kflash + + .init_section : { + _sinit = ABSOLUTE(.); + *(.init_array .init_array.*) + _einit = ABSOLUTE(.); + } > kflash + + .ARM.extab : { + *(.ARM.extab*) + } > kflash + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : { + *(.ARM.exidx*) + } > kflash + + __exidx_end = ABSOLUTE(.); + + _eronly = ABSOLUTE(.); + + .data : { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + _edata = ABSOLUTE(.); + } > ksram AT > kflash + + .bss : { + _sbss = ABSOLUTE(.); + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + _ebss = ABSOLUTE(.); + } > ksram + + /* 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-stm32-p407/scripts/memory.ld b/configs/olimex-stm32-p407/scripts/memory.ld new file mode 100644 index 00000000000..3a118668b73 --- /dev/null +++ b/configs/olimex-stm32-p407/scripts/memory.ld @@ -0,0 +1,100 @@ +/**************************************************************************** + * configs/olimex-stm32-p407/scripts/memory.ld + * + * Copyright (C) 2017 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. + * + ****************************************************************************/ + +/* The STM32F407VG has 1024Kb of FLASH beginning at address 0x0800:0000 and + * 192Kb of SRAM. SRAM is split up into three blocks: + * + * 1) 112KB of SRAM beginning at address 0x2000:0000 + * 2) 16KB of SRAM beginning at address 0x2001:c000 + * 3) 64KB of CCM SRAM beginning at address 0x1000:0000 + * + * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000 + * where the code expects to begin execution by jumping to the entry point in + * the 0x0800:0000 address range. + * + * For MPU support, the kernel-mode NuttX section is assumed to be 128Kb of + * FLASH and 4Kb of SRAM. That is an excessive amount for the kernel which + * should fit into 64KB and, of course, can be optimized as needed (See + * also configs/stm32f4discovery/scripts/kernel-space.ld). Allowing the + * additional does permit addition debug instrumentation to be added to the + * kernel space without overflowing the partition. + * + * Alignment of the user space FLASH partition is also a critical factor: + * The user space FLASH partition will be spanned with a single region of + * size 2**n bytes. The alignment of the user-space region must be the same. + * As a consequence, as the user-space increases in size, the alignmment + * requirement also increases. + * + * This alignment requirement means that the largest user space FLASH region + * you can have will be 512KB at it would have to be positioned at + * 0x08800000. If you change this address, don't forget to change the + * CONFIG_NUTTX_USERSPACE configuration setting to match and to modify + * the check in kernel/userspace.c. + * + * For the same reasons, the maximum size of the SRAM mapping is limited to + * 4KB. Both of these alignment limitations could be reduced by using + * multiple regions to map the FLASH/SDRAM range or perhaps with some + * clever use of subregions. + * + * A detailed memory map for the 112KB SRAM region is as follows: + * + * 0x20000 0000: Kernel .data region. Typical size: 0.1KB + * ------- ---- Kernel .bss region. Typical size: 1.8KB + * 0x20000 0800: Kernel IDLE thread stack (approximate). Size is + * determined by CONFIG_IDLETHREAD_STACKSIZE and + * adjustments for alignment. Typical is 1KB. + * ------- ---- Padded to 4KB + * 0x20000 1000: User .data region. Size is variable. + * ------- ---- User .bss region Size is variable. + * 0x20000 2000: Beginning of kernel heap. Size determined by + * CONFIG_MM_KERNEL_HEAPSIZE. + * ------- ---- Beginning of user heap. Can vary with other settings. + * 0x20001 c000: End+1 of CPU RAM + */ + +MEMORY +{ + /* 1024Kb FLASH */ + + kflash (rx) : ORIGIN = 0x08000000, LENGTH = 128K + uflash (rx) : ORIGIN = 0x08020000, LENGTH = 128K + xflash (rx) : ORIGIN = 0x08040000, LENGTH = 768K + + /* 112Kb of contiguous SRAM */ + + ksram (rwx) : ORIGIN = 0x20000000, LENGTH = 4K + usram (rwx) : ORIGIN = 0x20001000, LENGTH = 4K + xsram (rwx) : ORIGIN = 0x20002000, LENGTH = 104K +} diff --git a/configs/olimex-stm32-p407/scripts/user-space.ld b/configs/olimex-stm32-p407/scripts/user-space.ld new file mode 100644 index 00000000000..351d825aad4 --- /dev/null +++ b/configs/olimex-stm32-p407/scripts/user-space.ld @@ -0,0 +1,126 @@ +/**************************************************************************** + * configs/olimex-stm32-p407/scripts/user-space.ld + * + * Copyright (C) 2017 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. + * + ****************************************************************************/ + +/* NOTE: This depends on the memory.ld script having been included prior to + * this script. + */ + +/* Make sure that the critical memory management functions are in user-space. + * the user heap memory manager will reside in user-space but be usable both + * by kernel- and user-space code + */ + +EXTERN(umm_initialize) +EXTERN(umm_addregion) +EXTERN(umm_trysemaphore) +EXTERN(umm_givesemaphore) + +EXTERN(malloc) +EXTERN(realloc) +EXTERN(zalloc) +EXTERN(free) + +OUTPUT_ARCH(arm) +SECTIONS +{ + .userspace : { + *(.userspace) + } > uflash + + .text : { + _stext = ABSOLUTE(.); + *(.text .text.*) + *(.fixup) + *(.gnu.warning) + *(.rodata .rodata.*) + *(.gnu.linkonce.t.*) + *(.glue_7) + *(.glue_7t) + *(.got) + *(.gcc_except_table) + *(.gnu.linkonce.r.*) + _etext = ABSOLUTE(.); + } > uflash + + .init_section : { + _sinit = ABSOLUTE(.); + *(.init_array .init_array.*) + _einit = ABSOLUTE(.); + } > uflash + + .ARM.extab : { + *(.ARM.extab*) + } > uflash + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : { + *(.ARM.exidx*) + } > uflash + + __exidx_end = ABSOLUTE(.); + + _eronly = ABSOLUTE(.); + + .data : { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + _edata = ABSOLUTE(.); + } > usram AT > uflash + + .bss : { + _sbss = ABSOLUTE(.); + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + _ebss = ABSOLUTE(.); + } > usram + + /* 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-strp711/nettest/defconfig b/configs/olimex-strp711/nettest/defconfig index 838239291fd..364999eb4a8 100644 --- a/configs/olimex-strp711/nettest/defconfig +++ b/configs/olimex-strp711/nettest/defconfig @@ -736,7 +736,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimex-strp711/nsh/defconfig b/configs/olimex-strp711/nsh/defconfig index d889a22c2e7..355e5e98f0d 100644 --- a/configs/olimex-strp711/nsh/defconfig +++ b/configs/olimex-strp711/nsh/defconfig @@ -619,7 +619,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimexino-stm32/can/defconfig b/configs/olimexino-stm32/can/defconfig index 93c56baffeb..0d74678b350 100644 --- a/configs/olimexino-stm32/can/defconfig +++ b/configs/olimexino-stm32/can/defconfig @@ -962,7 +962,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimexino-stm32/composite/defconfig b/configs/olimexino-stm32/composite/defconfig index 8bf9ffffa71..09f9f3cc5ff 100644 --- a/configs/olimexino-stm32/composite/defconfig +++ b/configs/olimexino-stm32/composite/defconfig @@ -1060,7 +1060,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimexino-stm32/nsh/defconfig b/configs/olimexino-stm32/nsh/defconfig index 10da4dcdbde..230e9dd57e0 100644 --- a/configs/olimexino-stm32/nsh/defconfig +++ b/configs/olimexino-stm32/nsh/defconfig @@ -989,7 +989,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimexino-stm32/smallnsh/defconfig b/configs/olimexino-stm32/smallnsh/defconfig index fd206bba455..982f53c5ec3 100644 --- a/configs/olimexino-stm32/smallnsh/defconfig +++ b/configs/olimexino-stm32/smallnsh/defconfig @@ -930,7 +930,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/olimexino-stm32/tiny/defconfig b/configs/olimexino-stm32/tiny/defconfig index 5940eb260cc..9dce94029a1 100644 --- a/configs/olimexino-stm32/tiny/defconfig +++ b/configs/olimexino-stm32/tiny/defconfig @@ -928,7 +928,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/open1788/knsh/defconfig b/configs/open1788/knsh/defconfig index c304ff04641..edd0db574cd 100644 --- a/configs/open1788/knsh/defconfig +++ b/configs/open1788/knsh/defconfig @@ -669,7 +669,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/open1788/nsh/defconfig b/configs/open1788/nsh/defconfig index 2f155a49d00..9635a2a23c5 100644 --- a/configs/open1788/nsh/defconfig +++ b/configs/open1788/nsh/defconfig @@ -666,7 +666,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/open1788/nxlines/defconfig b/configs/open1788/nxlines/defconfig index 5abe3e6aa0e..2219e666807 100644 --- a/configs/open1788/nxlines/defconfig +++ b/configs/open1788/nxlines/defconfig @@ -784,7 +784,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/p112/ostest/defconfig b/configs/p112/ostest/defconfig index 56ea350bf42..455f6a52a60 100644 --- a/configs/p112/ostest/defconfig +++ b/configs/p112/ostest/defconfig @@ -219,7 +219,7 @@ CONFIG_USER_ENTRYPOINT="ostest_main" CONFIG_DISABLE_OS_API=y CONFIG_DISABLE_POSIX_TIMERS=y CONFIG_DISABLE_PTHREAD=y -CONFIG_DISABLE_SIGNALS=y +# CONFIG_DISABLE_SIGNALS is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_ENVIRON=y @@ -350,7 +350,6 @@ CONFIG_EOL_IS_EITHER_CRLF=y CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Basic CXX Support diff --git a/configs/pcblogic-pic32mx/nsh/defconfig b/configs/pcblogic-pic32mx/nsh/defconfig index 8b93eb5cc44..9c374f4cb6e 100644 --- a/configs/pcblogic-pic32mx/nsh/defconfig +++ b/configs/pcblogic-pic32mx/nsh/defconfig @@ -661,7 +661,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/pcduino-a10/nsh/defconfig b/configs/pcduino-a10/nsh/defconfig index db630aab6d5..c78724ff366 100644 --- a/configs/pcduino-a10/nsh/defconfig +++ b/configs/pcduino-a10/nsh/defconfig @@ -647,7 +647,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/pic32mx-starterkit/nsh/defconfig b/configs/pic32mx-starterkit/nsh/defconfig index 780f2150916..49ef4c9d9db 100644 --- a/configs/pic32mx-starterkit/nsh/defconfig +++ b/configs/pic32mx-starterkit/nsh/defconfig @@ -714,7 +714,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/pic32mx-starterkit/nsh2/defconfig b/configs/pic32mx-starterkit/nsh2/defconfig index 1de34877704..b009089d092 100644 --- a/configs/pic32mx-starterkit/nsh2/defconfig +++ b/configs/pic32mx-starterkit/nsh2/defconfig @@ -882,7 +882,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/pic32mx7mmb/nsh/defconfig b/configs/pic32mx7mmb/nsh/defconfig index 7b0660e9862..0cf2a65b1a7 100644 --- a/configs/pic32mx7mmb/nsh/defconfig +++ b/configs/pic32mx7mmb/nsh/defconfig @@ -945,7 +945,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/pic32mz-starterkit/nsh/defconfig b/configs/pic32mz-starterkit/nsh/defconfig index b64f33c2627..629793dab4a 100644 --- a/configs/pic32mz-starterkit/nsh/defconfig +++ b/configs/pic32mz-starterkit/nsh/defconfig @@ -641,7 +641,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/qemu-i486/nsh/defconfig b/configs/qemu-i486/nsh/defconfig index dc240aa19a3..96a55698ed8 100644 --- a/configs/qemu-i486/nsh/defconfig +++ b/configs/qemu-i486/nsh/defconfig @@ -395,7 +395,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/qemu-i486/ostest/defconfig b/configs/qemu-i486/ostest/defconfig index b205650b6c4..4c7e9a3a957 100644 --- a/configs/qemu-i486/ostest/defconfig +++ b/configs/qemu-i486/ostest/defconfig @@ -372,7 +372,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/sabre-6quad/nsh/defconfig b/configs/sabre-6quad/nsh/defconfig index 41a976f7143..f6f07a50161 100644 --- a/configs/sabre-6quad/nsh/defconfig +++ b/configs/sabre-6quad/nsh/defconfig @@ -637,7 +637,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sabre-6quad/smp/defconfig b/configs/sabre-6quad/smp/defconfig index d470592436e..3d00dd17b37 100644 --- a/configs/sabre-6quad/smp/defconfig +++ b/configs/sabre-6quad/smp/defconfig @@ -646,7 +646,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/sam3u-ek/knsh/defconfig b/configs/sam3u-ek/knsh/defconfig index 23349ef9a84..c1ce03487cd 100644 --- a/configs/sam3u-ek/knsh/defconfig +++ b/configs/sam3u-ek/knsh/defconfig @@ -685,7 +685,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sam3u-ek/nsh/defconfig b/configs/sam3u-ek/nsh/defconfig index 0de76352604..abc9a2e8815 100644 --- a/configs/sam3u-ek/nsh/defconfig +++ b/configs/sam3u-ek/nsh/defconfig @@ -670,7 +670,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sam3u-ek/nx/defconfig b/configs/sam3u-ek/nx/defconfig index 87b7722e880..746d34e58c3 100644 --- a/configs/sam3u-ek/nx/defconfig +++ b/configs/sam3u-ek/nx/defconfig @@ -784,7 +784,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sam3u-ek/nxwm/defconfig b/configs/sam3u-ek/nxwm/defconfig index 6a703bbd951..64dc6b1b1f6 100644 --- a/configs/sam3u-ek/nxwm/defconfig +++ b/configs/sam3u-ek/nxwm/defconfig @@ -865,7 +865,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/sam4cmp-db/nsh/defconfig b/configs/sam4cmp-db/nsh/defconfig index 118b123cef1..ed784b3fc0e 100644 --- a/configs/sam4cmp-db/nsh/defconfig +++ b/configs/sam4cmp-db/nsh/defconfig @@ -701,7 +701,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/sam4e-ek/nsh/defconfig b/configs/sam4e-ek/nsh/defconfig index fa0dcfdf169..0432c2d40a8 100644 --- a/configs/sam4e-ek/nsh/defconfig +++ b/configs/sam4e-ek/nsh/defconfig @@ -947,7 +947,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/sam4e-ek/nxwm/defconfig b/configs/sam4e-ek/nxwm/defconfig index f322abe329b..60cff8e38cd 100644 --- a/configs/sam4e-ek/nxwm/defconfig +++ b/configs/sam4e-ek/nxwm/defconfig @@ -1118,7 +1118,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/sam4e-ek/usbnsh/defconfig b/configs/sam4e-ek/usbnsh/defconfig index 4a65eb790bc..8b93c2661ac 100644 --- a/configs/sam4e-ek/usbnsh/defconfig +++ b/configs/sam4e-ek/usbnsh/defconfig @@ -989,7 +989,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/sam4l-xplained/nsh/defconfig b/configs/sam4l-xplained/nsh/defconfig index a4d744bbf5d..0e3c2c2e564 100644 --- a/configs/sam4l-xplained/nsh/defconfig +++ b/configs/sam4l-xplained/nsh/defconfig @@ -677,7 +677,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sam4s-xplained-pro/nsh/defconfig b/configs/sam4s-xplained-pro/nsh/defconfig index bd98575c00c..aba86e5a94a 100644 --- a/configs/sam4s-xplained-pro/nsh/defconfig +++ b/configs/sam4s-xplained-pro/nsh/defconfig @@ -835,7 +835,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sam4s-xplained/nsh/defconfig b/configs/sam4s-xplained/nsh/defconfig index 5120854680e..c0d9104bac1 100644 --- a/configs/sam4s-xplained/nsh/defconfig +++ b/configs/sam4s-xplained/nsh/defconfig @@ -651,7 +651,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d2-xult/nsh/defconfig b/configs/sama5d2-xult/nsh/defconfig index bfd5cf964a2..dfdd09b96d3 100644 --- a/configs/sama5d2-xult/nsh/defconfig +++ b/configs/sama5d2-xult/nsh/defconfig @@ -819,7 +819,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d3-xplained/bridge/defconfig b/configs/sama5d3-xplained/bridge/defconfig index ca9a6b5b224..ba5809da7b1 100644 --- a/configs/sama5d3-xplained/bridge/defconfig +++ b/configs/sama5d3-xplained/bridge/defconfig @@ -898,7 +898,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d3-xplained/nsh/defconfig b/configs/sama5d3-xplained/nsh/defconfig index 8646ca8b032..257a9374bc1 100644 --- a/configs/sama5d3-xplained/nsh/defconfig +++ b/configs/sama5d3-xplained/nsh/defconfig @@ -699,7 +699,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d3x-ek/demo/defconfig b/configs/sama5d3x-ek/demo/defconfig index b0e5384d27d..b2c780cec3e 100644 --- a/configs/sama5d3x-ek/demo/defconfig +++ b/configs/sama5d3x-ek/demo/defconfig @@ -892,7 +892,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d3x-ek/hello/defconfig b/configs/sama5d3x-ek/hello/defconfig index d4ab5620205..0283dd63c65 100644 --- a/configs/sama5d3x-ek/hello/defconfig +++ b/configs/sama5d3x-ek/hello/defconfig @@ -669,7 +669,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d3x-ek/norboot/defconfig b/configs/sama5d3x-ek/norboot/defconfig index 11eedfe99aa..9874b75963b 100644 --- a/configs/sama5d3x-ek/norboot/defconfig +++ b/configs/sama5d3x-ek/norboot/defconfig @@ -683,7 +683,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d3x-ek/nsh/defconfig b/configs/sama5d3x-ek/nsh/defconfig index b3140774afe..d8ac8672a63 100644 --- a/configs/sama5d3x-ek/nsh/defconfig +++ b/configs/sama5d3x-ek/nsh/defconfig @@ -712,7 +712,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d3x-ek/nx/defconfig b/configs/sama5d3x-ek/nx/defconfig index b67a145dfcf..feca63cb898 100644 --- a/configs/sama5d3x-ek/nx/defconfig +++ b/configs/sama5d3x-ek/nx/defconfig @@ -843,7 +843,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d3x-ek/nxplayer/defconfig b/configs/sama5d3x-ek/nxplayer/defconfig index 00b2d5479dd..a7b85b1c979 100644 --- a/configs/sama5d3x-ek/nxplayer/defconfig +++ b/configs/sama5d3x-ek/nxplayer/defconfig @@ -842,7 +842,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d3x-ek/nxwm/defconfig b/configs/sama5d3x-ek/nxwm/defconfig index a3048551bdf..349a86025e6 100644 --- a/configs/sama5d3x-ek/nxwm/defconfig +++ b/configs/sama5d3x-ek/nxwm/defconfig @@ -940,7 +940,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/sama5d3x-ek/ov2640/defconfig b/configs/sama5d3x-ek/ov2640/defconfig index c0d64cc771a..88077e5f0fc 100644 --- a/configs/sama5d3x-ek/ov2640/defconfig +++ b/configs/sama5d3x-ek/ov2640/defconfig @@ -754,7 +754,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d4-ek/at25boot/defconfig b/configs/sama5d4-ek/at25boot/defconfig index 57b32544cd3..13a83968ac0 100644 --- a/configs/sama5d4-ek/at25boot/defconfig +++ b/configs/sama5d4-ek/at25boot/defconfig @@ -770,7 +770,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d4-ek/bridge/defconfig b/configs/sama5d4-ek/bridge/defconfig index d723f241508..19743cf14f6 100644 --- a/configs/sama5d4-ek/bridge/defconfig +++ b/configs/sama5d4-ek/bridge/defconfig @@ -930,7 +930,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d4-ek/dramboot/defconfig b/configs/sama5d4-ek/dramboot/defconfig index 8ca250d5d3f..221310fd161 100644 --- a/configs/sama5d4-ek/dramboot/defconfig +++ b/configs/sama5d4-ek/dramboot/defconfig @@ -722,7 +722,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sama5d4-ek/elf/defconfig b/configs/sama5d4-ek/elf/defconfig index 73827504120..f655be3561e 100644 --- a/configs/sama5d4-ek/elf/defconfig +++ b/configs/sama5d4-ek/elf/defconfig @@ -12,8 +12,10 @@ CONFIG_EXPERIMENTAL=y # CONFIG_HOST_OSX is not set CONFIG_HOST_WINDOWS=y # CONFIG_HOST_OTHER is not set +CONFIG_TOOLCHAIN_WINDOWS=y # CONFIG_WINDOWS_NATIVE is not set CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_UBUNTU is not set # CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_OTHER is not set @@ -65,9 +67,12 @@ CONFIG_ARCH_ARM=y # CONFIG_ARCH_AVR is not set # CONFIG_ARCH_HC is not set # CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_MISOC is not set # CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_RISCV is not set # CONFIG_ARCH_SIM is not set # CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_XTENSA is not set # CONFIG_ARCH_Z16 is not set # CONFIG_ARCH_Z80 is not set CONFIG_ARCH="arm" @@ -107,7 +112,9 @@ CONFIG_ARCH_CHIP_SAMA5=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM23 is not set # CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set # CONFIG_ARCH_CORTEXM4 is not set # CONFIG_ARCH_CORTEXM7 is not set CONFIG_ARCH_CORTEXA5=y @@ -122,7 +129,7 @@ CONFIG_ARCH_CORTEXA5=y CONFIG_ARCH_FAMILY="armv7-a" CONFIG_ARCH_CHIP="sama5" # CONFIG_ARM_TOOLCHAIN_IAR is not set -# CONFIG_ARM_TOOLCHAIN_GNU is not set +CONFIG_ARM_TOOLCHAIN_GNU=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set CONFIG_ARCH_FPU=y @@ -396,6 +403,7 @@ CONFIG_SAMA5D4EK_528MHZ=y CONFIG_SAMA5D4EK_DRAM_BOOT=y # CONFIG_SAMA5D4EK_ROMFS_MOUNT is not set # CONFIG_SAMA5D4EK_SLOWCLOCK is not set +# CONFIG_BOARD_CRASHDUMP is not set # CONFIG_LIB_BOARDCTL is not set # @@ -416,6 +424,7 @@ CONFIG_ARCH_HAVE_TICKLESS=y CONFIG_USEC_PER_TICK=10000 # CONFIG_SYSTEM_TIME64 is not set # CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_ARCH_HAVE_TIMEKEEPING is not set # CONFIG_JULIAN_TIME is not set CONFIG_MAX_WDOGPARMS=2 CONFIG_PREALLOC_WDOGS=32 @@ -442,6 +451,8 @@ CONFIG_SCHED_WAITPID=y # # CONFIG_MUTEX_TYPES is not set CONFIG_NPTHREAD_KEYS=4 +# CONFIG_PTHREAD_CLEANUP is not set +# CONFIG_CANCELLATION_POINTS is not set # # Performance Monitoring @@ -515,6 +526,7 @@ CONFIG_DEV_NULL=y CONFIG_DEV_ZERO=y CONFIG_ARCH_HAVE_RNG=y CONFIG_DEV_RANDOM=y +# CONFIG_DEV_URANDOM is not set # CONFIG_DEV_LOOP is not set # @@ -535,12 +547,16 @@ CONFIG_I2C_RESET=y # CONFIG_I2C_TRACE is not set # CONFIG_I2C_DRIVER is not set # CONFIG_SPI is not set +# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set +# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set +# CONFIG_ARCH_HAVE_SPI_BITORDER is not set # CONFIG_I2S is not set # # Timer Driver Support # # CONFIG_TIMER is not set +# CONFIG_ONESHOT is not set CONFIG_RTC=y CONFIG_RTC_DATETIME=y # CONFIG_RTC_ALARM is not set @@ -553,7 +569,12 @@ CONFIG_AUDIO_DEVICES=y # CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set + +# +# IO Expander/GPIO Support +# # CONFIG_IOEXPANDER is not set +# CONFIG_DEV_GPIO is not set # # LCD Driver Support @@ -640,9 +661,12 @@ CONFIG_USART4_2STOP=0 # CONFIG_USART4_IFLOWCONTROL is not set # CONFIG_USART4_OFLOWCONTROL is not set # CONFIG_USART4_DMA is not set +# CONFIG_PSEUDOTERM is not set # CONFIG_USBDEV is not set # CONFIG_USBHOST is not set +# CONFIG_HAVE_USBTRACE is not set # CONFIG_DRIVERS_WIRELESS is not set +# CONFIG_DRIVERS_CONTACTLESS is not set # # System Logging @@ -656,6 +680,7 @@ CONFIG_SYSLOG_SERIAL_CONSOLE=y CONFIG_SYSLOG_CONSOLE=y # CONFIG_SYSLOG_NONE is not set # CONFIG_SYSLOG_FILE is not set +# CONFIG_SYSLOG_CHARDEV is not set # # Networking Support @@ -747,10 +772,26 @@ CONFIG_STDIO_LINEBUFFER=y CONFIG_NUNGET_CHARS=2 CONFIG_LIB_HOMEDIR="/" # CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +CONFIG_LIBC_ARCH_ELF=y +# CONFIG_ARMV7A_MEMCPY is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set +# CONFIG_LIBC_WCHAR is not set +# CONFIG_LIBC_LOCALE is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -765,9 +806,12 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set +# CONFIG_LIBC_IPv4_ADDRCONV is not set +# CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -777,6 +821,7 @@ CONFIG_ARCH_HAVE_TLS=y # CONFIG_LIB_CRC64_FAST is not set # CONFIG_LIB_KBDCODEC is not set # CONFIG_LIB_SLCDCODEC is not set +# CONFIG_LIB_HEX2BIN is not set # # Basic CXX Support @@ -808,9 +853,9 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # Examples # # CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CCTYPE is not set # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set -# CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_CXXTEST is not set # CONFIG_EXAMPLES_DHCPD is not set CONFIG_EXAMPLES_ELF=y @@ -843,11 +888,10 @@ CONFIG_EXAMPLES_ELF_CXXINITIALIZE=y # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set # CONFIG_EXAMPLES_PCA9635 is not set -# CONFIG_EXAMPLES_PIPE is not set -# CONFIG_EXAMPLES_POLL is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set # CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_RANDOM is not set +# CONFIG_EXAMPLES_RFID_READUID is not set # CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_ROMFS is not set # CONFIG_EXAMPLES_SENDMAIL is not set @@ -890,6 +934,7 @@ CONFIG_EXAMPLES_ELF_CXXINITIALIZE=y # CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set +# CONFIG_INTERPRETERS_MINIBASIC is not set # CONFIG_INTERPRETERS_PCODE is not set # @@ -927,7 +972,7 @@ CONFIG_EXAMPLES_ELF_CXXINITIALIZE=y # CONFIG_SYSTEM_CLE is not set # CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_FREE is not set -# CONFIG_LIB_HEX2BIN is not set +# CONFIG_SYSTEM_HEX2BIN is not set # CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_I2CTOOL is not set # CONFIG_SYSTEM_INSTALL is not set @@ -938,6 +983,7 @@ CONFIG_READLINE_ECHO=y # CONFIG_READLINE_TABCOMPLETION is not set # CONFIG_READLINE_CMD_HISTORY is not set # CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_TEE is not set # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/sama5d4-ek/ipv6/defconfig b/configs/sama5d4-ek/ipv6/defconfig index 434147e3696..67f1ab92be3 100644 --- a/configs/sama5d4-ek/ipv6/defconfig +++ b/configs/sama5d4-ek/ipv6/defconfig @@ -1246,7 +1246,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/sama5d4-ek/knsh/defconfig b/configs/sama5d4-ek/knsh/defconfig index feeeb88157a..ac0cde34761 100644 --- a/configs/sama5d4-ek/knsh/defconfig +++ b/configs/sama5d4-ek/knsh/defconfig @@ -12,8 +12,10 @@ CONFIG_EXPERIMENTAL=y # CONFIG_HOST_OSX is not set CONFIG_HOST_WINDOWS=y # CONFIG_HOST_OTHER is not set +CONFIG_TOOLCHAIN_WINDOWS=y # CONFIG_WINDOWS_NATIVE is not set CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_UBUNTU is not set # CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_OTHER is not set @@ -64,9 +66,12 @@ CONFIG_ARCH_ARM=y # CONFIG_ARCH_AVR is not set # CONFIG_ARCH_HC is not set # CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_MISOC is not set # CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_RISCV is not set # CONFIG_ARCH_SIM is not set # CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_XTENSA is not set # CONFIG_ARCH_Z16 is not set # CONFIG_ARCH_Z80 is not set CONFIG_ARCH="arm" @@ -106,7 +111,9 @@ CONFIG_ARCH_CHIP_SAMA5=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM23 is not set # CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set # CONFIG_ARCH_CORTEXM4 is not set # CONFIG_ARCH_CORTEXM7 is not set CONFIG_ARCH_CORTEXA5=y @@ -121,7 +128,7 @@ CONFIG_ARCH_CORTEXA5=y CONFIG_ARCH_FAMILY="armv7-a" CONFIG_ARCH_CHIP="sama5" # CONFIG_ARM_TOOLCHAIN_IAR is not set -# CONFIG_ARM_TOOLCHAIN_GNU is not set +CONFIG_ARM_TOOLCHAIN_GNU=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set CONFIG_ARCH_FPU=y @@ -398,8 +405,6 @@ CONFIG_ARCH_HAVE_BUTTONS=y CONFIG_ARCH_BUTTONS=y CONFIG_ARCH_HAVE_IRQBUTTONS=y CONFIG_ARCH_IRQBUTTONS=y -CONFIG_NSH_MMCSDMINOR=0 -CONFIG_NSH_MMCSDSLOTNO=0 # # Board-Specific Options @@ -416,6 +421,7 @@ CONFIG_SAMA5D4EK_HSMCI0_MOUNT_BLKDEV="/dev/mmcsd0" CONFIG_SAMA5D4EK_HSMCI0_MOUNT_MOUNTPOINT="/bin" # CONFIG_SAMA5D4EK_ROMFS_MOUNT is not set # CONFIG_SAMA5D4EK_SLOWCLOCK is not set +# CONFIG_BOARD_CRASHDUMP is not set # CONFIG_LIB_BOARDCTL is not set # @@ -436,6 +442,7 @@ CONFIG_ARCH_HAVE_TICKLESS=y CONFIG_USEC_PER_TICK=10000 # CONFIG_SYSTEM_TIME64 is not set # CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_ARCH_HAVE_TIMEKEEPING is not set # CONFIG_JULIAN_TIME is not set CONFIG_MAX_WDOGPARMS=2 CONFIG_PREALLOC_WDOGS=32 @@ -462,6 +469,8 @@ CONFIG_SCHED_WAITPID=y # # CONFIG_MUTEX_TYPES is not set CONFIG_NPTHREAD_KEYS=4 +# CONFIG_PTHREAD_CLEANUP is not set +# CONFIG_CANCELLATION_POINTS is not set # # Performance Monitoring @@ -539,6 +548,7 @@ CONFIG_DEV_NULL=y CONFIG_DEV_ZERO=y CONFIG_ARCH_HAVE_RNG=y CONFIG_DEV_RANDOM=y +# CONFIG_DEV_URANDOM is not set # CONFIG_DEV_LOOP is not set # @@ -554,12 +564,16 @@ CONFIG_DEV_RANDOM=y CONFIG_ARCH_HAVE_I2CRESET=y # CONFIG_I2C is not set # CONFIG_SPI is not set +# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set +# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set +# CONFIG_ARCH_HAVE_SPI_BITORDER is not set # CONFIG_I2S is not set # # Timer Driver Support # # CONFIG_TIMER is not set +# CONFIG_ONESHOT is not set CONFIG_RTC=y CONFIG_RTC_DATETIME=y # CONFIG_RTC_ALARM is not set @@ -571,7 +585,12 @@ CONFIG_RTC_DATETIME=y # CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set + +# +# IO Expander/GPIO Support +# # CONFIG_IOEXPANDER is not set +# CONFIG_DEV_GPIO is not set # # LCD Driver Support @@ -669,9 +688,12 @@ CONFIG_USART4_2STOP=0 # CONFIG_USART4_IFLOWCONTROL is not set # CONFIG_USART4_OFLOWCONTROL is not set # CONFIG_USART4_DMA is not set +# CONFIG_PSEUDOTERM is not set # CONFIG_USBDEV is not set # CONFIG_USBHOST is not set +# CONFIG_HAVE_USBTRACE is not set # CONFIG_DRIVERS_WIRELESS is not set +# CONFIG_DRIVERS_CONTACTLESS is not set # # System Logging @@ -685,6 +707,7 @@ CONFIG_SYSLOG_SERIAL_CONSOLE=y CONFIG_SYSLOG_CONSOLE=y # CONFIG_SYSLOG_NONE is not set # CONFIG_SYSLOG_FILE is not set +# CONFIG_SYSLOG_CHARDEV is not set # # Networking Support @@ -795,10 +818,26 @@ CONFIG_STDIO_LINEBUFFER=y CONFIG_NUNGET_CHARS=2 CONFIG_LIB_HOMEDIR="/" # CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +CONFIG_LIBC_ARCH_ELF=y +# CONFIG_ARMV7A_MEMCPY is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set +# CONFIG_LIBC_WCHAR is not set +# CONFIG_LIBC_LOCALE is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -816,9 +855,12 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set +# CONFIG_LIBC_IPv4_ADDRCONV is not set +# CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -829,6 +871,7 @@ CONFIG_ARCH_HAVE_TLS=y # CONFIG_LIB_USRWORK is not set # CONFIG_LIB_KBDCODEC is not set # CONFIG_LIB_SLCDCODEC is not set +# CONFIG_LIB_HEX2BIN is not set # # Basic CXX Support @@ -859,9 +902,10 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # # Examples # +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CCTYPE is not set # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set -# CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_CXXTEST is not set # CONFIG_EXAMPLES_DHCPD is not set # CONFIG_EXAMPLES_ELF is not set @@ -894,11 +938,10 @@ CONFIG_EXAMPLES_NSH_PROGNAME="init" # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set # CONFIG_EXAMPLES_PCA9635 is not set -# CONFIG_EXAMPLES_PIPE is not set -# CONFIG_EXAMPLES_POLL is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set # CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_RANDOM is not set +# CONFIG_EXAMPLES_RFID_READUID is not set # CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_SENDMAIL is not set # CONFIG_EXAMPLES_SERIALBLASTER is not set @@ -938,6 +981,7 @@ CONFIG_EXAMPLES_NSH_PROGNAME="init" # CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set +# CONFIG_INTERPRETERS_MINIBASIC is not set # CONFIG_INTERPRETERS_PCODE is not set # @@ -1006,12 +1050,12 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_DISABLE_MB is not set # CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS 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_MV is not set # CONFIG_NSH_DISABLE_MW is not set +CONFIG_NSH_DISABLE_PRINTF=y # CONFIG_NSH_DISABLE_PS is not set # CONFIG_NSH_DISABLE_PUT is not set # CONFIG_NSH_DISABLE_PWD is not set @@ -1028,11 +1072,14 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_NSH_DISABLE_WGET is not set # CONFIG_NSH_DISABLE_XD is not set +CONFIG_NSH_MMCSDMINOR=0 +CONFIG_NSH_MMCSDSLOTNO=0 # # Configure Command Options # CONFIG_NSH_CMDOPT_DF_H=y +# CONFIG_NSH_CMDOPT_DD_STATS is not set CONFIG_NSH_CODECS_BUFSIZE=128 CONFIG_NSH_CMDOPT_HEXDUMP=y CONFIG_NSH_PROC_MOUNTPOINT="/proc" @@ -1070,7 +1117,7 @@ CONFIG_NSH_CONSOLE=y # CONFIG_SYSTEM_CLE is not set # CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_FREE is not set -# CONFIG_LIB_HEX2BIN is not set +# CONFIG_SYSTEM_HEX2BIN is not set # CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_INSTALL is not set # CONFIG_SYSTEM_RAMTEST is not set @@ -1080,6 +1127,8 @@ CONFIG_READLINE_ECHO=y # CONFIG_READLINE_TABCOMPLETION is not set # CONFIG_READLINE_CMD_HISTORY is not set # CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_SYSTEM is not set +# CONFIG_SYSTEM_TEE is not set # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/sama5d4-ek/knsh/defconfig.ROMFS b/configs/sama5d4-ek/knsh/defconfig.ROMFS index 047303d132b..b90a20bf6a0 100644 --- a/configs/sama5d4-ek/knsh/defconfig.ROMFS +++ b/configs/sama5d4-ek/knsh/defconfig.ROMFS @@ -662,7 +662,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_LIBC_LOCALTIME is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Non-standard Library Support diff --git a/configs/sama5d4-ek/nsh/defconfig b/configs/sama5d4-ek/nsh/defconfig index a169aa669cd..46147399c04 100644 --- a/configs/sama5d4-ek/nsh/defconfig +++ b/configs/sama5d4-ek/nsh/defconfig @@ -1250,7 +1250,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/sama5d4-ek/nxwm/defconfig b/configs/sama5d4-ek/nxwm/defconfig index 2c59ec0fa6a..27fba273fbd 100644 --- a/configs/sama5d4-ek/nxwm/defconfig +++ b/configs/sama5d4-ek/nxwm/defconfig @@ -1247,7 +1247,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/sama5d4-ek/ramtest/defconfig b/configs/sama5d4-ek/ramtest/defconfig index e76da62faa1..16e74a0ac5a 100644 --- a/configs/sama5d4-ek/ramtest/defconfig +++ b/configs/sama5d4-ek/ramtest/defconfig @@ -730,7 +730,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/samd20-xplained/nsh/defconfig b/configs/samd20-xplained/nsh/defconfig index a91d464767f..98b3e302ad2 100644 --- a/configs/samd20-xplained/nsh/defconfig +++ b/configs/samd20-xplained/nsh/defconfig @@ -653,7 +653,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/samd21-xplained/nsh/defconfig b/configs/samd21-xplained/nsh/defconfig index 3181a18cfe6..a85155de6b9 100644 --- a/configs/samd21-xplained/nsh/defconfig +++ b/configs/samd21-xplained/nsh/defconfig @@ -651,7 +651,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/same70-xplained/netnsh/defconfig b/configs/same70-xplained/netnsh/defconfig index c2d2a2401b3..ef45a012bc6 100644 --- a/configs/same70-xplained/netnsh/defconfig +++ b/configs/same70-xplained/netnsh/defconfig @@ -989,7 +989,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/same70-xplained/nsh/defconfig b/configs/same70-xplained/nsh/defconfig index c8dc02ad826..0f2c375b0ff 100644 --- a/configs/same70-xplained/nsh/defconfig +++ b/configs/same70-xplained/nsh/defconfig @@ -821,7 +821,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/saml21-xplained/nsh/defconfig b/configs/saml21-xplained/nsh/defconfig index 9d487c68b00..17d2f1d50fd 100644 --- a/configs/saml21-xplained/nsh/defconfig +++ b/configs/saml21-xplained/nsh/defconfig @@ -639,7 +639,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 2452746a0ed..85db8cdeb71 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -1652,7 +1652,7 @@ Configuration sub-directories knsh: This is identical to the nsh configuration below except that NuttX - is built as a kernel-mode, monolithic module and the user applications + is built as a protected mode, monolithic module and the user applications are built separately. There are four very similar NSH configurations: - knsh. This is a somewhat simplified version of the nsh configuration diff --git a/configs/samv71-xult/knsh/defconfig b/configs/samv71-xult/knsh/defconfig index 2c7189db7cb..7d9351facc9 100644 --- a/configs/samv71-xult/knsh/defconfig +++ b/configs/samv71-xult/knsh/defconfig @@ -12,8 +12,10 @@ # CONFIG_HOST_OSX is not set CONFIG_HOST_WINDOWS=y # CONFIG_HOST_OTHER is not set +CONFIG_TOOLCHAIN_WINDOWS=y # CONFIG_WINDOWS_NATIVE is not set CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_UBUNTU is not set # CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_OTHER is not set @@ -69,9 +71,12 @@ CONFIG_ARCH_ARM=y # CONFIG_ARCH_AVR is not set # CONFIG_ARCH_HC is not set # CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_MISOC is not set # CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_RISCV is not set # CONFIG_ARCH_SIM is not set # CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_XTENSA is not set # CONFIG_ARCH_Z16 is not set # CONFIG_ARCH_Z80 is not set CONFIG_ARCH="arm" @@ -111,7 +116,9 @@ CONFIG_ARCH_CHIP_SAMV7=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM23 is not set # CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set # CONFIG_ARCH_CORTEXM4 is not set CONFIG_ARCH_CORTEXM7=y # CONFIG_ARCH_CORTEXA5 is not set @@ -199,6 +206,7 @@ CONFIG_ARCH_CHIP_SAMV71Q=y # CONFIG_ARCH_CHIP_SAMV71J is not set # CONFIG_SAMV7_MCAN is not set CONFIG_SAMV7_HAVE_MCAN1=y +# CONFIG_SAMV7_DAC is not set CONFIG_SAMV7_HAVE_DAC1=y CONFIG_SAMV7_HAVE_EBI=y # CONFIG_SAMV7_EMAC is not set @@ -421,6 +429,7 @@ CONFIG_PREALLOC_TIMERS=4 # # Tasks and Scheduling # +# CONFIG_SPINLOCK is not set # CONFIG_INIT_NONE is not set CONFIG_INIT_ENTRYPOINT=y # CONFIG_INIT_FILEPATH is not set @@ -437,6 +446,8 @@ CONFIG_SCHED_WAITPID=y # # CONFIG_MUTEX_TYPES is not set CONFIG_NPTHREAD_KEYS=4 +# CONFIG_PTHREAD_CLEANUP is not set +# CONFIG_CANCELLATION_POINTS is not set # # Performance Monitoring @@ -528,15 +539,15 @@ CONFIG_I2C=y # CONFIG_I2C_TRACE is not set CONFIG_I2C_DRIVER=y CONFIG_SPI=y +# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set +CONFIG_ARCH_HAVE_SPI_CS_CONTROL=y +# CONFIG_ARCH_HAVE_SPI_BITORDER is not set # CONFIG_SPI_SLAVE is not set CONFIG_SPI_EXCHANGE=y # CONFIG_SPI_CMDDATA is not set # CONFIG_SPI_CALLBACK is not set # CONFIG_SPI_HWFEATURES is not set -# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set -CONFIG_ARCH_HAVE_SPI_CS_CONTROL=y # CONFIG_SPI_CS_CONTROL is not set -# CONFIG_ARCH_HAVE_SPI_BITORDER is not set # CONFIG_SPI_CS_DELAY_CONTROL is not set # CONFIG_SPI_DRIVER is not set # CONFIG_SPI_BITBANG is not set @@ -546,6 +557,7 @@ CONFIG_ARCH_HAVE_SPI_CS_CONTROL=y # Timer Driver Support # # CONFIG_TIMER is not set +# CONFIG_ONESHOT is not set # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set # CONFIG_TIMERS_CS2100CP is not set @@ -620,6 +632,7 @@ CONFIG_AT25_SPIFREQUENCY=20000000 # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_IS25XP is not set # CONFIG_MTD_M25P is not set +# CONFIG_MTD_MX25L is not set # CONFIG_MTD_S25FL1 is not set # CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set @@ -688,6 +701,7 @@ CONFIG_UART3_2STOP=0 # CONFIG_USBHOST is not set # CONFIG_HAVE_USBTRACE is not set # CONFIG_DRIVERS_WIRELESS is not set +# CONFIG_DRIVERS_CONTACTLESS is not set # # System Logging @@ -801,10 +815,26 @@ CONFIG_STDIO_LINEBUFFER=y CONFIG_NUNGET_CHARS=2 CONFIG_LIB_HOMEDIR="/" # CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +# CONFIG_LIBC_ARCH_ELF is not set +# CONFIG_ARMV7M_MEMCPY is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set +# CONFIG_LIBC_WCHAR is not set +# CONFIG_LIBC_LOCALE is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -822,9 +852,12 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set +# CONFIG_LIBC_IPv4_ADDRCONV is not set +# CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -854,6 +887,8 @@ CONFIG_ARCH_HAVE_TLS=y # # Examples # +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CCTYPE is not set # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_DHCPD is not set @@ -925,6 +960,7 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set +# CONFIG_INTERPRETERS_MINIBASIC is not set # CONFIG_INTERPRETERS_PCODE is not set # @@ -995,6 +1031,7 @@ CONFIG_NSH_DISABLE_MKRD=y # CONFIG_NSH_DISABLE_MOUNT is not set # CONFIG_NSH_DISABLE_MV is not set # CONFIG_NSH_DISABLE_MW is not set +CONFIG_NSH_DISABLE_PRINTF=y # CONFIG_NSH_DISABLE_PS is not set # CONFIG_NSH_DISABLE_PUT is not set # CONFIG_NSH_DISABLE_PWD is not set @@ -1071,6 +1108,8 @@ CONFIG_READLINE_ECHO=y # CONFIG_READLINE_TABCOMPLETION is not set # CONFIG_READLINE_CMD_HISTORY is not set # CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_SYSTEM is not set +# CONFIG_SYSTEM_TEE is not set # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/samv71-xult/module/defconfig b/configs/samv71-xult/module/defconfig index f4e7afb959e..fc9a08896f5 100644 --- a/configs/samv71-xult/module/defconfig +++ b/configs/samv71-xult/module/defconfig @@ -12,8 +12,10 @@ CONFIG_EXPERIMENTAL=y # CONFIG_HOST_OSX is not set CONFIG_HOST_WINDOWS=y # CONFIG_HOST_OTHER is not set +CONFIG_TOOLCHAIN_WINDOWS=y # CONFIG_WINDOWS_NATIVE is not set CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_UBUNTU is not set # CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_OTHER is not set @@ -64,9 +66,12 @@ CONFIG_ARCH_ARM=y # CONFIG_ARCH_AVR is not set # CONFIG_ARCH_HC is not set # CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_MISOC is not set # CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_RISCV is not set # CONFIG_ARCH_SIM is not set # CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_XTENSA is not set # CONFIG_ARCH_Z16 is not set # CONFIG_ARCH_Z80 is not set CONFIG_ARCH="arm" @@ -106,7 +111,9 @@ CONFIG_ARCH_CHIP_SAMV7=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM23 is not set # CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set # CONFIG_ARCH_CORTEXM4 is not set CONFIG_ARCH_CORTEXM7=y # CONFIG_ARCH_CORTEXA5 is not set @@ -191,6 +198,7 @@ CONFIG_ARCH_CHIP_SAMV71Q=y # CONFIG_ARCH_CHIP_SAMV71J is not set # CONFIG_SAMV7_MCAN is not set CONFIG_SAMV7_HAVE_MCAN1=y +# CONFIG_SAMV7_DAC is not set CONFIG_SAMV7_HAVE_DAC1=y CONFIG_SAMV7_HAVE_EBI=y # CONFIG_SAMV7_EMAC is not set @@ -412,6 +420,8 @@ CONFIG_SCHED_WAITPID=y # # CONFIG_MUTEX_TYPES is not set CONFIG_NPTHREAD_KEYS=4 +# CONFIG_PTHREAD_CLEANUP is not set +# CONFIG_CANCELLATION_POINTS is not set # # Performance Monitoring @@ -500,13 +510,16 @@ CONFIG_DEV_NULL=y CONFIG_ARCH_HAVE_I2CRESET=y # CONFIG_I2C is not set # CONFIG_SPI is not set +# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set CONFIG_ARCH_HAVE_SPI_CS_CONTROL=y +# CONFIG_ARCH_HAVE_SPI_BITORDER is not set # CONFIG_I2S is not set # # Timer Driver Support # # CONFIG_TIMER is not set +# CONFIG_ONESHOT is not set # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set # CONFIG_ANALOG is not set @@ -596,6 +609,7 @@ CONFIG_UART3_2STOP=0 # CONFIG_USBHOST is not set # CONFIG_HAVE_USBTRACE is not set # CONFIG_DRIVERS_WIRELESS is not set +# CONFIG_DRIVERS_CONTACTLESS is not set # # System Logging @@ -709,10 +723,26 @@ CONFIG_STDIO_LINEBUFFER=y CONFIG_NUNGET_CHARS=2 CONFIG_LIB_HOMEDIR="/" # CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +CONFIG_LIBC_ARCH_ELF=y +# CONFIG_ARMV7M_MEMCPY is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set +# CONFIG_LIBC_WCHAR is not set +# CONFIG_LIBC_LOCALE is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -730,9 +760,12 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set +# CONFIG_LIBC_IPv4_ADDRCONV is not set +# CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -767,6 +800,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # Examples # # CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CCTYPE is not set # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_DHCPD is not set @@ -847,6 +881,7 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set +# CONFIG_INTERPRETERS_MINIBASIC is not set # CONFIG_INTERPRETERS_PCODE is not set # @@ -919,6 +954,7 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_DISABLE_MOUNT is not set # CONFIG_NSH_DISABLE_MV is not set # CONFIG_NSH_DISABLE_MW is not set +CONFIG_NSH_DISABLE_PRINTF=y # CONFIG_NSH_DISABLE_PS is not set # CONFIG_NSH_DISABLE_PUT is not set # CONFIG_NSH_DISABLE_PWD is not set @@ -941,6 +977,7 @@ CONFIG_NSH_MMCSDMINOR=0 # Configure Command Options # # CONFIG_NSH_CMDOPT_DF_H is not set +# CONFIG_NSH_CMDOPT_DD_STATS is not set CONFIG_NSH_CODECS_BUFSIZE=128 CONFIG_NSH_CMDOPT_HEXDUMP=y CONFIG_NSH_PROC_MOUNTPOINT="/proc" @@ -988,6 +1025,8 @@ CONFIG_READLINE_ECHO=y # CONFIG_READLINE_TABCOMPLETION is not set # CONFIG_READLINE_CMD_HISTORY is not set # CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_SYSTEM is not set +# CONFIG_SYSTEM_TEE is not set # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/samv71-xult/mxtxplnd/defconfig b/configs/samv71-xult/mxtxplnd/defconfig index 49cbf5f29ff..29ca44ce9ee 100644 --- a/configs/samv71-xult/mxtxplnd/defconfig +++ b/configs/samv71-xult/mxtxplnd/defconfig @@ -951,7 +951,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/samv71-xult/netnsh/defconfig b/configs/samv71-xult/netnsh/defconfig index 37be93f688e..93e4194042c 100644 --- a/configs/samv71-xult/netnsh/defconfig +++ b/configs/samv71-xult/netnsh/defconfig @@ -992,7 +992,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/samv71-xult/nsh/defconfig b/configs/samv71-xult/nsh/defconfig index e10517c26cf..24bfadc35e9 100644 --- a/configs/samv71-xult/nsh/defconfig +++ b/configs/samv71-xult/nsh/defconfig @@ -12,8 +12,10 @@ # CONFIG_HOST_OSX is not set CONFIG_HOST_WINDOWS=y # CONFIG_HOST_OTHER is not set +CONFIG_TOOLCHAIN_WINDOWS=y # CONFIG_WINDOWS_NATIVE is not set CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_UBUNTU is not set # CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_OTHER is not set @@ -109,7 +111,9 @@ CONFIG_ARCH_CHIP_SAMV7=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM23 is not set # CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set # CONFIG_ARCH_CORTEXM4 is not set CONFIG_ARCH_CORTEXM7=y # CONFIG_ARCH_CORTEXA5 is not set @@ -420,6 +424,7 @@ CONFIG_PREALLOC_TIMERS=4 # # Tasks and Scheduling # +# CONFIG_SPINLOCK is not set # CONFIG_INIT_NONE is not set CONFIG_INIT_ENTRYPOINT=y # CONFIG_INIT_FILEPATH is not set @@ -436,6 +441,8 @@ CONFIG_SCHED_WAITPID=y # # CONFIG_MUTEX_TYPES is not set CONFIG_NPTHREAD_KEYS=4 +# CONFIG_PTHREAD_CLEANUP is not set +# CONFIG_CANCELLATION_POINTS is not set # # Performance Monitoring @@ -800,10 +807,25 @@ CONFIG_STDIO_BUFFER_SIZE=64 CONFIG_STDIO_LINEBUFFER=y CONFIG_NUNGET_CHARS=2 CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBC_DLLFCN is not set # CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +# CONFIG_LIBC_ARCH_ELF is not set +# CONFIG_ARMV7M_MEMCPY is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set # CONFIG_LIBC_WCHAR is not set # CONFIG_LIBC_LOCALE is not set @@ -824,9 +846,12 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set +# CONFIG_LIBC_IPv4_ADDRCONV is not set +# CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1031,6 +1056,7 @@ CONFIG_NSH_MMCSDSLOTNO=0 # Configure Command Options # # CONFIG_NSH_CMDOPT_DF_H is not set +# CONFIG_NSH_CMDOPT_DD_STATS is not set CONFIG_NSH_CODECS_BUFSIZE=128 CONFIG_NSH_CMDOPT_HEXDUMP=y CONFIG_NSH_PROC_MOUNTPOINT="/proc" diff --git a/configs/samv71-xult/nxwm/defconfig b/configs/samv71-xult/nxwm/defconfig index ee918e39355..b877d6d64e2 100644 --- a/configs/samv71-xult/nxwm/defconfig +++ b/configs/samv71-xult/nxwm/defconfig @@ -975,7 +975,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index d01ad46b86e..d99bba683a5 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -1093,7 +1093,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/samv71-xult/vnxwm/defconfig b/configs/samv71-xult/vnxwm/defconfig index be62fb374d2..e4de0d406bf 100644 --- a/configs/samv71-xult/vnxwm/defconfig +++ b/configs/samv71-xult/vnxwm/defconfig @@ -1125,7 +1125,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/shenzhou/nsh/defconfig b/configs/shenzhou/nsh/defconfig index aa0359c9dbc..33f4685ec50 100644 --- a/configs/shenzhou/nsh/defconfig +++ b/configs/shenzhou/nsh/defconfig @@ -1113,7 +1113,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/shenzhou/nxwm/defconfig b/configs/shenzhou/nxwm/defconfig index 497b396529b..f0358bdd6ca 100644 --- a/configs/shenzhou/nxwm/defconfig +++ b/configs/shenzhou/nxwm/defconfig @@ -1284,7 +1284,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/shenzhou/thttpd/defconfig b/configs/shenzhou/thttpd/defconfig index fcd1ac40744..1423d64a99f 100644 --- a/configs/shenzhou/thttpd/defconfig +++ b/configs/shenzhou/thttpd/defconfig @@ -1143,7 +1143,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/sim/bas/defconfig b/configs/sim/bas/defconfig index 71c6bf66593..62b7410c676 100644 --- a/configs/sim/bas/defconfig +++ b/configs/sim/bas/defconfig @@ -467,7 +467,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/sim/configdata/defconfig b/configs/sim/configdata/defconfig index c46b145c614..31022c6878b 100644 --- a/configs/sim/configdata/defconfig +++ b/configs/sim/configdata/defconfig @@ -492,7 +492,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/cxxtest/defconfig b/configs/sim/cxxtest/defconfig index de26a571acf..6aeace8f0b6 100644 --- a/configs/sim/cxxtest/defconfig +++ b/configs/sim/cxxtest/defconfig @@ -467,7 +467,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/minibasic/defconfig b/configs/sim/minibasic/defconfig index edeba61d18f..486a38de9ce 100644 --- a/configs/sim/minibasic/defconfig +++ b/configs/sim/minibasic/defconfig @@ -527,7 +527,6 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_TIME_EXTENDED=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/mount/defconfig b/configs/sim/mount/defconfig index 9af8bfff48c..4bbbb89a355 100644 --- a/configs/sim/mount/defconfig +++ b/configs/sim/mount/defconfig @@ -474,7 +474,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/mtdpart/defconfig b/configs/sim/mtdpart/defconfig index b5944473332..5277679f1e8 100644 --- a/configs/sim/mtdpart/defconfig +++ b/configs/sim/mtdpart/defconfig @@ -484,7 +484,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/mtdrwb/defconfig b/configs/sim/mtdrwb/defconfig index 3716ffcb22b..42e14e05ab0 100644 --- a/configs/sim/mtdrwb/defconfig +++ b/configs/sim/mtdrwb/defconfig @@ -516,7 +516,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/nettest/defconfig b/configs/sim/nettest/defconfig index 09df2684d63..585b3023c75 100644 --- a/configs/sim/nettest/defconfig +++ b/configs/sim/nettest/defconfig @@ -592,7 +592,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/nsh/defconfig b/configs/sim/nsh/defconfig index 26c5503422a..22869f29d2e 100644 --- a/configs/sim/nsh/defconfig +++ b/configs/sim/nsh/defconfig @@ -512,7 +512,6 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_TIME_EXTENDED=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/nsh2/defconfig b/configs/sim/nsh2/defconfig index 3101ea4785d..fd57c96af83 100644 --- a/configs/sim/nsh2/defconfig +++ b/configs/sim/nsh2/defconfig @@ -602,7 +602,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/nx/defconfig b/configs/sim/nx/defconfig index c596a93fa57..ee688058703 100644 --- a/configs/sim/nx/defconfig +++ b/configs/sim/nx/defconfig @@ -560,7 +560,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/nx11/defconfig b/configs/sim/nx11/defconfig index f6c56ac9ae9..0cae4ffb465 100644 --- a/configs/sim/nx11/defconfig +++ b/configs/sim/nx11/defconfig @@ -562,7 +562,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/nxffs/defconfig b/configs/sim/nxffs/defconfig index fb70a4df9b8..24fc7bd1e5d 100644 --- a/configs/sim/nxffs/defconfig +++ b/configs/sim/nxffs/defconfig @@ -458,7 +458,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/sim/nxlines/defconfig b/configs/sim/nxlines/defconfig index c80c0efaa91..28cea7b90bc 100644 --- a/configs/sim/nxlines/defconfig +++ b/configs/sim/nxlines/defconfig @@ -557,7 +557,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/sim/nxwm/defconfig b/configs/sim/nxwm/defconfig index f632f4d7477..d75348dbcca 100644 --- a/configs/sim/nxwm/defconfig +++ b/configs/sim/nxwm/defconfig @@ -629,7 +629,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/sim/ostest/defconfig b/configs/sim/ostest/defconfig index e3570e04813..9c0b061a907 100644 --- a/configs/sim/ostest/defconfig +++ b/configs/sim/ostest/defconfig @@ -484,7 +484,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/pashello/defconfig b/configs/sim/pashello/defconfig index b64438c27ed..ef091ed9e07 100644 --- a/configs/sim/pashello/defconfig +++ b/configs/sim/pashello/defconfig @@ -444,7 +444,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/sim/touchscreen/defconfig b/configs/sim/touchscreen/defconfig index 66e90503f56..75a5698c201 100644 --- a/configs/sim/touchscreen/defconfig +++ b/configs/sim/touchscreen/defconfig @@ -566,7 +566,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/traveler/defconfig b/configs/sim/traveler/defconfig index 3a6a75c03c9..db4e2bfdc4c 100644 --- a/configs/sim/traveler/defconfig +++ b/configs/sim/traveler/defconfig @@ -498,7 +498,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sim/udgram/defconfig b/configs/sim/udgram/defconfig index 856d330290a..8cf1036c1a0 100644 --- a/configs/sim/udgram/defconfig +++ b/configs/sim/udgram/defconfig @@ -595,7 +595,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/sim/unionfs/defconfig b/configs/sim/unionfs/defconfig index 0fea09b8d34..95aa4bea1ac 100644 --- a/configs/sim/unionfs/defconfig +++ b/configs/sim/unionfs/defconfig @@ -467,7 +467,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/sim/ustream/defconfig b/configs/sim/ustream/defconfig index e356f4bbac7..39ae060bc80 100644 --- a/configs/sim/ustream/defconfig +++ b/configs/sim/ustream/defconfig @@ -595,7 +595,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/skp16c26/ostest/defconfig b/configs/skp16c26/ostest/defconfig index 61814e3a1c0..bd73c06fffa 100644 --- a/configs/skp16c26/ostest/defconfig +++ b/configs/skp16c26/ostest/defconfig @@ -357,7 +357,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/spark/composite/defconfig b/configs/spark/composite/defconfig index d192166cefb..3b55a300c27 100644 --- a/configs/spark/composite/defconfig +++ b/configs/spark/composite/defconfig @@ -1043,7 +1043,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/spark/nsh/defconfig b/configs/spark/nsh/defconfig index 5f8d3daac62..6f43b59ca41 100644 --- a/configs/spark/nsh/defconfig +++ b/configs/spark/nsh/defconfig @@ -1043,7 +1043,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/spark/usbmsc/defconfig b/configs/spark/usbmsc/defconfig index dfd2fda6597..66df842d96a 100644 --- a/configs/spark/usbmsc/defconfig +++ b/configs/spark/usbmsc/defconfig @@ -1008,7 +1008,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/spark/usbnsh/defconfig b/configs/spark/usbnsh/defconfig index 9af591a0f59..d13857bfd92 100644 --- a/configs/spark/usbnsh/defconfig +++ b/configs/spark/usbnsh/defconfig @@ -992,7 +992,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/spark/usbserial/defconfig b/configs/spark/usbserial/defconfig index 2bbed930a3b..dd4d595afa1 100644 --- a/configs/spark/usbserial/defconfig +++ b/configs/spark/usbserial/defconfig @@ -1018,7 +1018,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm3210e-eval/composite/defconfig b/configs/stm3210e-eval/composite/defconfig index 751ffdc37ac..f05c251cc55 100644 --- a/configs/stm3210e-eval/composite/defconfig +++ b/configs/stm3210e-eval/composite/defconfig @@ -1063,7 +1063,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm3210e-eval/nsh/defconfig b/configs/stm3210e-eval/nsh/defconfig index f75f2d47650..7354fbee6b6 100644 --- a/configs/stm3210e-eval/nsh/defconfig +++ b/configs/stm3210e-eval/nsh/defconfig @@ -1020,7 +1020,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm3210e-eval/nsh2/defconfig b/configs/stm3210e-eval/nsh2/defconfig index 8b04d185687..466ca43309a 100644 --- a/configs/stm3210e-eval/nsh2/defconfig +++ b/configs/stm3210e-eval/nsh2/defconfig @@ -1180,7 +1180,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm3210e-eval/nx/defconfig b/configs/stm3210e-eval/nx/defconfig index fbb33c5d03e..928a13da078 100644 --- a/configs/stm3210e-eval/nx/defconfig +++ b/configs/stm3210e-eval/nx/defconfig @@ -1083,7 +1083,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm3210e-eval/nxterm/defconfig b/configs/stm3210e-eval/nxterm/defconfig index db426d6de6b..25dccb496de 100644 --- a/configs/stm3210e-eval/nxterm/defconfig +++ b/configs/stm3210e-eval/nxterm/defconfig @@ -1091,7 +1091,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm3210e-eval/pm/defconfig b/configs/stm3210e-eval/pm/defconfig index 345e5fe6ddf..c7f0d9ed598 100644 --- a/configs/stm3210e-eval/pm/defconfig +++ b/configs/stm3210e-eval/pm/defconfig @@ -1109,7 +1109,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm3210e-eval/usbmsc/defconfig b/configs/stm3210e-eval/usbmsc/defconfig index cf41ae7d520..1200c7ded24 100644 --- a/configs/stm3210e-eval/usbmsc/defconfig +++ b/configs/stm3210e-eval/usbmsc/defconfig @@ -988,7 +988,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm3210e-eval/usbserial/defconfig b/configs/stm3210e-eval/usbserial/defconfig index be949fc73f3..4dde9d14193 100644 --- a/configs/stm3210e-eval/usbserial/defconfig +++ b/configs/stm3210e-eval/usbserial/defconfig @@ -954,7 +954,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm3220g-eval/dhcpd/defconfig b/configs/stm3220g-eval/dhcpd/defconfig index 79a0512054e..48243187528 100644 --- a/configs/stm3220g-eval/dhcpd/defconfig +++ b/configs/stm3220g-eval/dhcpd/defconfig @@ -1056,7 +1056,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm3220g-eval/nettest/defconfig b/configs/stm3220g-eval/nettest/defconfig index 41df74c7591..4bf75d6522d 100644 --- a/configs/stm3220g-eval/nettest/defconfig +++ b/configs/stm3220g-eval/nettest/defconfig @@ -1061,7 +1061,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm3220g-eval/nsh/defconfig b/configs/stm3220g-eval/nsh/defconfig index 29cbdf4d714..6d006d350e6 100644 --- a/configs/stm3220g-eval/nsh/defconfig +++ b/configs/stm3220g-eval/nsh/defconfig @@ -1154,7 +1154,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm3220g-eval/nsh2/defconfig b/configs/stm3220g-eval/nsh2/defconfig index 277d815547e..c0e93f5797d 100644 --- a/configs/stm3220g-eval/nsh2/defconfig +++ b/configs/stm3220g-eval/nsh2/defconfig @@ -1148,7 +1148,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm3220g-eval/nxwm/defconfig b/configs/stm3220g-eval/nxwm/defconfig index c8a491bb6ee..11b63db793d 100644 --- a/configs/stm3220g-eval/nxwm/defconfig +++ b/configs/stm3220g-eval/nxwm/defconfig @@ -1314,7 +1314,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/stm3220g-eval/telnetd/defconfig b/configs/stm3220g-eval/telnetd/defconfig index c096d97f0ea..3c966b124b3 100644 --- a/configs/stm3220g-eval/telnetd/defconfig +++ b/configs/stm3220g-eval/telnetd/defconfig @@ -1063,7 +1063,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm3240g-eval/dhcpd/defconfig b/configs/stm3240g-eval/dhcpd/defconfig index 9144444845b..5138c8bed06 100644 --- a/configs/stm3240g-eval/dhcpd/defconfig +++ b/configs/stm3240g-eval/dhcpd/defconfig @@ -1060,7 +1060,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm3240g-eval/discover/defconfig b/configs/stm3240g-eval/discover/defconfig index f51ac02cc14..b151ca1010c 100644 --- a/configs/stm3240g-eval/discover/defconfig +++ b/configs/stm3240g-eval/discover/defconfig @@ -1113,7 +1113,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm3240g-eval/knxwm/defconfig b/configs/stm3240g-eval/knxwm/defconfig index f3db5debcde..14dc0b5cc29 100644 --- a/configs/stm3240g-eval/knxwm/defconfig +++ b/configs/stm3240g-eval/knxwm/defconfig @@ -1140,7 +1140,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm3240g-eval/nettest/defconfig b/configs/stm3240g-eval/nettest/defconfig index 6ada3514750..22173822ada 100644 --- a/configs/stm3240g-eval/nettest/defconfig +++ b/configs/stm3240g-eval/nettest/defconfig @@ -1065,7 +1065,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm3240g-eval/nsh/defconfig b/configs/stm3240g-eval/nsh/defconfig index 52a2e2b6ae6..97a703b843b 100644 --- a/configs/stm3240g-eval/nsh/defconfig +++ b/configs/stm3240g-eval/nsh/defconfig @@ -1132,7 +1132,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm3240g-eval/nsh2/defconfig b/configs/stm3240g-eval/nsh2/defconfig index e9d10d9490e..ed8994fa6b0 100644 --- a/configs/stm3240g-eval/nsh2/defconfig +++ b/configs/stm3240g-eval/nsh2/defconfig @@ -1152,7 +1152,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm3240g-eval/nxterm/defconfig b/configs/stm3240g-eval/nxterm/defconfig index 83acbfb10d5..1010b569420 100644 --- a/configs/stm3240g-eval/nxterm/defconfig +++ b/configs/stm3240g-eval/nxterm/defconfig @@ -1283,7 +1283,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/stm3240g-eval/nxwm/defconfig b/configs/stm3240g-eval/nxwm/defconfig index fe9544fa15e..8dc6030f813 100644 --- a/configs/stm3240g-eval/nxwm/defconfig +++ b/configs/stm3240g-eval/nxwm/defconfig @@ -1311,7 +1311,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set diff --git a/configs/stm3240g-eval/telnetd/defconfig b/configs/stm3240g-eval/telnetd/defconfig index 23d37a39706..b1a9ec005b6 100644 --- a/configs/stm3240g-eval/telnetd/defconfig +++ b/configs/stm3240g-eval/telnetd/defconfig @@ -1067,7 +1067,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm3240g-eval/webserver/defconfig b/configs/stm3240g-eval/webserver/defconfig index 98c8514cafa..1e7d068c89c 100644 --- a/configs/stm3240g-eval/webserver/defconfig +++ b/configs/stm3240g-eval/webserver/defconfig @@ -1152,7 +1152,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm3240g-eval/xmlrpc/defconfig b/configs/stm3240g-eval/xmlrpc/defconfig index c305c0cc189..7de2eeb60bf 100644 --- a/configs/stm3240g-eval/xmlrpc/defconfig +++ b/configs/stm3240g-eval/xmlrpc/defconfig @@ -1109,7 +1109,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm32_tiny/nsh/defconfig b/configs/stm32_tiny/nsh/defconfig index 4c75ba7ed63..6c7c600d0fd 100644 --- a/configs/stm32_tiny/nsh/defconfig +++ b/configs/stm32_tiny/nsh/defconfig @@ -907,7 +907,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32_tiny/usbnsh/defconfig b/configs/stm32_tiny/usbnsh/defconfig index ddc34f64d22..f3f2025f036 100644 --- a/configs/stm32_tiny/usbnsh/defconfig +++ b/configs/stm32_tiny/usbnsh/defconfig @@ -916,7 +916,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32butterfly2/nsh/defconfig b/configs/stm32butterfly2/nsh/defconfig index ed2275d4a79..0bcc423bd76 100644 --- a/configs/stm32butterfly2/nsh/defconfig +++ b/configs/stm32butterfly2/nsh/defconfig @@ -987,7 +987,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32butterfly2/nshnet/defconfig b/configs/stm32butterfly2/nshnet/defconfig index 43d0054ecdb..7f09b713617 100644 --- a/configs/stm32butterfly2/nshnet/defconfig +++ b/configs/stm32butterfly2/nshnet/defconfig @@ -1163,7 +1163,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm32butterfly2/nshusbdev/defconfig b/configs/stm32butterfly2/nshusbdev/defconfig index 602e0633755..f302c878fd5 100644 --- a/configs/stm32butterfly2/nshusbdev/defconfig +++ b/configs/stm32butterfly2/nshusbdev/defconfig @@ -996,7 +996,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32butterfly2/nshusbhost/defconfig b/configs/stm32butterfly2/nshusbhost/defconfig index ed2275d4a79..0bcc423bd76 100644 --- a/configs/stm32butterfly2/nshusbhost/defconfig +++ b/configs/stm32butterfly2/nshusbhost/defconfig @@ -987,7 +987,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/audio_tone/defconfig b/configs/stm32f103-minimum/audio_tone/defconfig index 993a61286b6..39ecdbffaf5 100644 --- a/configs/stm32f103-minimum/audio_tone/defconfig +++ b/configs/stm32f103-minimum/audio_tone/defconfig @@ -932,7 +932,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/buttons/defconfig b/configs/stm32f103-minimum/buttons/defconfig index a37eab30f76..dbdd40f7ba9 100644 --- a/configs/stm32f103-minimum/buttons/defconfig +++ b/configs/stm32f103-minimum/buttons/defconfig @@ -897,7 +897,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/jlx12864g/defconfig b/configs/stm32f103-minimum/jlx12864g/defconfig index b9ff3e625f8..88c999987d9 100644 --- a/configs/stm32f103-minimum/jlx12864g/defconfig +++ b/configs/stm32f103-minimum/jlx12864g/defconfig @@ -1075,7 +1075,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/nrf24/defconfig b/configs/stm32f103-minimum/nrf24/defconfig index ebc3352b862..7b16b504c9c 100644 --- a/configs/stm32f103-minimum/nrf24/defconfig +++ b/configs/stm32f103-minimum/nrf24/defconfig @@ -957,7 +957,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm32f103-minimum/nsh/defconfig b/configs/stm32f103-minimum/nsh/defconfig index f7f96edde21..4c1c4522fea 100644 --- a/configs/stm32f103-minimum/nsh/defconfig +++ b/configs/stm32f103-minimum/nsh/defconfig @@ -879,7 +879,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/pwm/defconfig b/configs/stm32f103-minimum/pwm/defconfig index 5c851766afc..dbfd2287598 100644 --- a/configs/stm32f103-minimum/pwm/defconfig +++ b/configs/stm32f103-minimum/pwm/defconfig @@ -896,7 +896,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/rfid-rc522/defconfig b/configs/stm32f103-minimum/rfid-rc522/defconfig index 13b50d89fc0..a13ac493921 100644 --- a/configs/stm32f103-minimum/rfid-rc522/defconfig +++ b/configs/stm32f103-minimum/rfid-rc522/defconfig @@ -904,7 +904,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/rgbled/defconfig b/configs/stm32f103-minimum/rgbled/defconfig index 19ef7948efc..b9050368e44 100644 --- a/configs/stm32f103-minimum/rgbled/defconfig +++ b/configs/stm32f103-minimum/rgbled/defconfig @@ -923,7 +923,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/usbnsh/defconfig b/configs/stm32f103-minimum/usbnsh/defconfig index 5425732ae14..3335a533e5f 100644 --- a/configs/stm32f103-minimum/usbnsh/defconfig +++ b/configs/stm32f103-minimum/usbnsh/defconfig @@ -916,7 +916,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/userled/defconfig b/configs/stm32f103-minimum/userled/defconfig index ba69602cc63..718e1bd1a82 100644 --- a/configs/stm32f103-minimum/userled/defconfig +++ b/configs/stm32f103-minimum/userled/defconfig @@ -883,7 +883,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f103-minimum/veml6070/defconfig b/configs/stm32f103-minimum/veml6070/defconfig index 2c73508f80f..325c8344756 100644 --- a/configs/stm32f103-minimum/veml6070/defconfig +++ b/configs/stm32f103-minimum/veml6070/defconfig @@ -942,7 +942,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f3discovery/nsh/defconfig b/configs/stm32f3discovery/nsh/defconfig index 0a4c3b350dd..4a91033d6f8 100644 --- a/configs/stm32f3discovery/nsh/defconfig +++ b/configs/stm32f3discovery/nsh/defconfig @@ -936,7 +936,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f3discovery/usbnsh/defconfig b/configs/stm32f3discovery/usbnsh/defconfig index 265bb26eeb1..f33978f277c 100644 --- a/configs/stm32f3discovery/usbnsh/defconfig +++ b/configs/stm32f3discovery/usbnsh/defconfig @@ -954,7 +954,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig index 16b329ad850..5c0590cef0f 100644 --- a/configs/stm32f411e-disco/nsh/defconfig +++ b/configs/stm32f411e-disco/nsh/defconfig @@ -877,7 +877,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f429i-disco/extflash/defconfig b/configs/stm32f429i-disco/extflash/defconfig index 5d05d322271..2ddf05da81d 100644 --- a/configs/stm32f429i-disco/extflash/defconfig +++ b/configs/stm32f429i-disco/extflash/defconfig @@ -1014,7 +1014,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f429i-disco/lcd/defconfig b/configs/stm32f429i-disco/lcd/defconfig index 93365891f46..55de6873c51 100644 --- a/configs/stm32f429i-disco/lcd/defconfig +++ b/configs/stm32f429i-disco/lcd/defconfig @@ -1077,7 +1077,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm32f429i-disco/ltdc/defconfig b/configs/stm32f429i-disco/ltdc/defconfig index 087b0b89cad..3d0f59f8d90 100644 --- a/configs/stm32f429i-disco/ltdc/defconfig +++ b/configs/stm32f429i-disco/ltdc/defconfig @@ -1091,7 +1091,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f429i-disco/nsh/defconfig b/configs/stm32f429i-disco/nsh/defconfig index 90fa62e4f73..b9bdb8738d7 100644 --- a/configs/stm32f429i-disco/nsh/defconfig +++ b/configs/stm32f429i-disco/nsh/defconfig @@ -926,7 +926,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f429i-disco/nxwm/defconfig b/configs/stm32f429i-disco/nxwm/defconfig index 03750fdf1a2..6a435e74889 100644 --- a/configs/stm32f429i-disco/nxwm/defconfig +++ b/configs/stm32f429i-disco/nxwm/defconfig @@ -1150,7 +1150,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set diff --git a/configs/stm32f429i-disco/usbmsc/defconfig b/configs/stm32f429i-disco/usbmsc/defconfig index 8f1fbb55835..85214d8c044 100644 --- a/configs/stm32f429i-disco/usbmsc/defconfig +++ b/configs/stm32f429i-disco/usbmsc/defconfig @@ -963,7 +963,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f429i-disco/usbnsh/defconfig b/configs/stm32f429i-disco/usbnsh/defconfig index 99cfa1b9851..302782ffb49 100644 --- a/configs/stm32f429i-disco/usbnsh/defconfig +++ b/configs/stm32f429i-disco/usbnsh/defconfig @@ -979,7 +979,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/canard/defconfig b/configs/stm32f4discovery/canard/defconfig index 606f95268c0..a8154cec686 100644 --- a/configs/stm32f4discovery/canard/defconfig +++ b/configs/stm32f4discovery/canard/defconfig @@ -955,7 +955,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/cxxtest/defconfig b/configs/stm32f4discovery/cxxtest/defconfig index 47aa9ad4712..71704220b61 100644 --- a/configs/stm32f4discovery/cxxtest/defconfig +++ b/configs/stm32f4discovery/cxxtest/defconfig @@ -905,7 +905,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/elf/defconfig b/configs/stm32f4discovery/elf/defconfig index a7acd953157..c2b11282d53 100644 --- a/configs/stm32f4discovery/elf/defconfig +++ b/configs/stm32f4discovery/elf/defconfig @@ -12,8 +12,10 @@ # CONFIG_HOST_OSX is not set CONFIG_HOST_WINDOWS=y # CONFIG_HOST_OTHER is not set +CONFIG_TOOLCHAIN_WINDOWS=y # CONFIG_WINDOWS_NATIVE is not set CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_UBUNTU is not set # CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_OTHER is not set @@ -65,9 +67,12 @@ CONFIG_ARCH_ARM=y # CONFIG_ARCH_AVR is not set # CONFIG_ARCH_HC is not set # CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_MISOC is not set # CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_RISCV is not set # CONFIG_ARCH_SIM is not set # CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_XTENSA is not set # CONFIG_ARCH_Z16 is not set # CONFIG_ARCH_Z80 is not set CONFIG_ARCH="arm" @@ -107,7 +112,9 @@ CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM23 is not set # CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXA5 is not set @@ -357,6 +364,12 @@ CONFIG_STM32_HAVE_ADC3=y # CONFIG_STM32_HAVE_ADC2_DMA is not set # CONFIG_STM32_HAVE_ADC3_DMA is not set # CONFIG_STM32_HAVE_ADC4_DMA is not set +# CONFIG_STM32_HAVE_SDADC1 is not set +# CONFIG_STM32_HAVE_SDADC2 is not set +# CONFIG_STM32_HAVE_SDADC3 is not set +# CONFIG_STM32_HAVE_SDADC1_DMA is not set +# CONFIG_STM32_HAVE_SDADC2_DMA is not set +# CONFIG_STM32_HAVE_SDADC3_DMA is not set CONFIG_STM32_HAVE_CAN1=y CONFIG_STM32_HAVE_CAN2=y CONFIG_STM32_HAVE_DAC1=y @@ -608,6 +621,7 @@ CONFIG_PREALLOC_TIMERS=4 # # Tasks and Scheduling # +# CONFIG_SPINLOCK is not set # CONFIG_INIT_NONE is not set CONFIG_INIT_ENTRYPOINT=y # CONFIG_INIT_FILEPATH is not set @@ -624,6 +638,8 @@ CONFIG_MAX_TASKS=16 # # CONFIG_MUTEX_TYPES is not set CONFIG_NPTHREAD_KEYS=4 +# CONFIG_PTHREAD_CLEANUP is not set +# CONFIG_CANCELLATION_POINTS is not set # # Performance Monitoring @@ -704,6 +720,8 @@ CONFIG_DEV_NULL=y CONFIG_ARCH_HAVE_I2CRESET=y # CONFIG_I2C is not set # CONFIG_SPI is not set +# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set +# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set CONFIG_ARCH_HAVE_SPI_BITORDER=y # CONFIG_I2S is not set @@ -711,6 +729,7 @@ CONFIG_ARCH_HAVE_SPI_BITORDER=y # Timer Driver Support # # CONFIG_TIMER is not set +# CONFIG_ONESHOT is not set # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set # CONFIG_ANALOG is not set @@ -799,6 +818,7 @@ CONFIG_USART2_2STOP=0 # CONFIG_USBHOST is not set # CONFIG_HAVE_USBTRACE is not set # CONFIG_DRIVERS_WIRELESS is not set +# CONFIG_DRIVERS_CONTACTLESS is not set # # System Logging @@ -900,10 +920,26 @@ CONFIG_STDIO_LINEBUFFER=y CONFIG_NUNGET_CHARS=2 CONFIG_LIB_HOMEDIR="/" # CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +CONFIG_LIBC_ARCH_ELF=y +# CONFIG_ARMV7M_MEMCPY is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set +# CONFIG_LIBC_WCHAR is not set +# CONFIG_LIBC_LOCALE is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -919,9 +955,12 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set +# CONFIG_LIBC_IPv4_ADDRCONV is not set +# CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -957,6 +996,8 @@ CONFIG_HAVE_CXX=y # # Examples # +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CCTYPE is not set # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CXXTEST is not set @@ -1034,6 +1075,7 @@ CONFIG_EXAMPLES_ELF_DEVPATH="/dev/ram0" # CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set +# CONFIG_INTERPRETERS_MINIBASIC is not set # CONFIG_INTERPRETERS_PCODE is not set # @@ -1078,6 +1120,7 @@ CONFIG_EXAMPLES_ELF_DEVPATH="/dev/ram0" # CONFIG_READLINE_HAVE_EXTMATCH is not set # CONFIG_SYSTEM_READLINE is not set # CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_TEE is not set # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/stm32f4discovery/ipv6/defconfig b/configs/stm32f4discovery/ipv6/defconfig index 964ec83c841..86f04eba83c 100644 --- a/configs/stm32f4discovery/ipv6/defconfig +++ b/configs/stm32f4discovery/ipv6/defconfig @@ -1164,7 +1164,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm32f4discovery/kostest/defconfig b/configs/stm32f4discovery/kostest/defconfig index e48549911fc..25da39fdf86 100644 --- a/configs/stm32f4discovery/kostest/defconfig +++ b/configs/stm32f4discovery/kostest/defconfig @@ -913,7 +913,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/netnsh/defconfig b/configs/stm32f4discovery/netnsh/defconfig index 7798def2d6d..d76145194fb 100644 --- a/configs/stm32f4discovery/netnsh/defconfig +++ b/configs/stm32f4discovery/netnsh/defconfig @@ -1168,7 +1168,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/stm32f4discovery/nsh/defconfig b/configs/stm32f4discovery/nsh/defconfig index ad989a03844..48d50e75921 100644 --- a/configs/stm32f4discovery/nsh/defconfig +++ b/configs/stm32f4discovery/nsh/defconfig @@ -12,8 +12,10 @@ # CONFIG_HOST_OSX is not set CONFIG_HOST_WINDOWS=y # CONFIG_HOST_OTHER is not set +CONFIG_TOOLCHAIN_WINDOWS=y # CONFIG_WINDOWS_NATIVE is not set CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_UBUNTU is not set # CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_OTHER is not set @@ -65,9 +67,12 @@ CONFIG_ARCH_ARM=y # CONFIG_ARCH_AVR is not set # CONFIG_ARCH_HC is not set # CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_MISOC is not set # CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_RISCV is not set # CONFIG_ARCH_SIM is not set # CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_XTENSA is not set # CONFIG_ARCH_Z16 is not set # CONFIG_ARCH_Z80 is not set CONFIG_ARCH="arm" @@ -107,7 +112,9 @@ CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM23 is not set # CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXA5 is not set @@ -356,6 +363,12 @@ CONFIG_STM32_HAVE_ADC3=y # CONFIG_STM32_HAVE_ADC2_DMA is not set # CONFIG_STM32_HAVE_ADC3_DMA is not set # CONFIG_STM32_HAVE_ADC4_DMA is not set +# CONFIG_STM32_HAVE_SDADC1 is not set +# CONFIG_STM32_HAVE_SDADC2 is not set +# CONFIG_STM32_HAVE_SDADC3 is not set +# CONFIG_STM32_HAVE_SDADC1_DMA is not set +# CONFIG_STM32_HAVE_SDADC2_DMA is not set +# CONFIG_STM32_HAVE_SDADC3_DMA is not set CONFIG_STM32_HAVE_CAN1=y CONFIG_STM32_HAVE_CAN2=y CONFIG_STM32_HAVE_DAC1=y @@ -615,6 +628,7 @@ CONFIG_PREALLOC_TIMERS=4 # # Tasks and Scheduling # +# CONFIG_SPINLOCK is not set # CONFIG_INIT_NONE is not set CONFIG_INIT_ENTRYPOINT=y # CONFIG_INIT_FILEPATH is not set @@ -631,6 +645,8 @@ CONFIG_SCHED_WAITPID=y # # CONFIG_MUTEX_TYPES is not set CONFIG_NPTHREAD_KEYS=4 +# CONFIG_PTHREAD_CLEANUP is not set +# CONFIG_CANCELLATION_POINTS is not set # # Performance Monitoring @@ -711,14 +727,14 @@ CONFIG_DEV_NULL=y CONFIG_ARCH_HAVE_I2CRESET=y # CONFIG_I2C is not set CONFIG_SPI=y +# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set +# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set +CONFIG_ARCH_HAVE_SPI_BITORDER=y # CONFIG_SPI_SLAVE is not set CONFIG_SPI_EXCHANGE=y # CONFIG_SPI_CMDDATA is not set # CONFIG_SPI_CALLBACK is not set # CONFIG_SPI_HWFEATURES is not set -# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set -# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set -CONFIG_ARCH_HAVE_SPI_BITORDER=y # CONFIG_SPI_BITORDER is not set # CONFIG_SPI_CS_DELAY_CONTROL is not set # CONFIG_SPI_DRIVER is not set @@ -729,6 +745,7 @@ CONFIG_ARCH_HAVE_SPI_BITORDER=y # Timer Driver Support # # CONFIG_TIMER is not set +# CONFIG_ONESHOT is not set # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set # CONFIG_ANALOG is not set @@ -818,6 +835,7 @@ CONFIG_USART2_2STOP=0 # CONFIG_USBHOST is not set # CONFIG_HAVE_USBTRACE is not set # CONFIG_DRIVERS_WIRELESS is not set +# CONFIG_DRIVERS_CONTACTLESS is not set # # System Logging @@ -921,11 +939,28 @@ CONFIG_STDIO_BUFFER_SIZE=64 CONFIG_STDIO_LINEBUFFER=y CONFIG_NUNGET_CHARS=2 CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBC_DLLFCN is not set # CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +# CONFIG_LIBC_ARCH_ELF is not set +# CONFIG_ARMV7M_MEMCPY is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set +# CONFIG_LIBC_WCHAR is not set +# CONFIG_LIBC_LOCALE is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -941,9 +976,12 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set +# CONFIG_LIBC_IPv4_ADDRCONV is not set +# CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -985,6 +1023,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # Examples # # CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CCTYPE is not set # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CXXTEST is not set @@ -1058,6 +1097,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set +# CONFIG_INTERPRETERS_MINIBASIC is not set # CONFIG_INTERPRETERS_PCODE is not set # @@ -1128,6 +1168,7 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_DISABLE_MOUNT is not set # CONFIG_NSH_DISABLE_MV is not set # CONFIG_NSH_DISABLE_MW is not set +CONFIG_NSH_DISABLE_PRINTF=y # CONFIG_NSH_DISABLE_PS is not set # CONFIG_NSH_DISABLE_PUT is not set # CONFIG_NSH_DISABLE_PWD is not set @@ -1150,6 +1191,7 @@ CONFIG_NSH_MMCSDMINOR=0 # Configure Command Options # # CONFIG_NSH_CMDOPT_DF_H is not set +# CONFIG_NSH_CMDOPT_DD_STATS is not set CONFIG_NSH_CODECS_BUFSIZE=128 # CONFIG_NSH_CMDOPT_HEXDUMP is not set CONFIG_NSH_PROC_MOUNTPOINT="/proc" @@ -1196,6 +1238,8 @@ CONFIG_READLINE_ECHO=y # CONFIG_READLINE_TABCOMPLETION is not set # CONFIG_READLINE_CMD_HISTORY is not set # CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_SYSTEM is not set +# CONFIG_SYSTEM_TEE is not set # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/stm32f4discovery/nxlines/defconfig b/configs/stm32f4discovery/nxlines/defconfig index 3ea55af740d..cd78fa5b573 100644 --- a/configs/stm32f4discovery/nxlines/defconfig +++ b/configs/stm32f4discovery/nxlines/defconfig @@ -1064,7 +1064,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/pm/defconfig b/configs/stm32f4discovery/pm/defconfig index 9d31f4d16c8..f908632cdca 100644 --- a/configs/stm32f4discovery/pm/defconfig +++ b/configs/stm32f4discovery/pm/defconfig @@ -962,7 +962,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/posix_spawn/defconfig b/configs/stm32f4discovery/posix_spawn/defconfig index 6244ecf5de1..e278e58698a 100644 --- a/configs/stm32f4discovery/posix_spawn/defconfig +++ b/configs/stm32f4discovery/posix_spawn/defconfig @@ -12,8 +12,10 @@ # CONFIG_HOST_OSX is not set CONFIG_HOST_WINDOWS=y # CONFIG_HOST_OTHER is not set +CONFIG_TOOLCHAIN_WINDOWS=y # CONFIG_WINDOWS_NATIVE is not set CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_UBUNTU is not set # CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_OTHER is not set @@ -65,9 +67,12 @@ CONFIG_ARCH_ARM=y # CONFIG_ARCH_AVR is not set # CONFIG_ARCH_HC is not set # CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_MISOC is not set # CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_RISCV is not set # CONFIG_ARCH_SIM is not set # CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_XTENSA is not set # CONFIG_ARCH_Z16 is not set # CONFIG_ARCH_Z80 is not set CONFIG_ARCH="arm" @@ -107,7 +112,9 @@ CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM23 is not set # CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM33 is not set CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXA5 is not set @@ -357,6 +364,12 @@ CONFIG_STM32_HAVE_ADC3=y # CONFIG_STM32_HAVE_ADC2_DMA is not set # CONFIG_STM32_HAVE_ADC3_DMA is not set # CONFIG_STM32_HAVE_ADC4_DMA is not set +# CONFIG_STM32_HAVE_SDADC1 is not set +# CONFIG_STM32_HAVE_SDADC2 is not set +# CONFIG_STM32_HAVE_SDADC3 is not set +# CONFIG_STM32_HAVE_SDADC1_DMA is not set +# CONFIG_STM32_HAVE_SDADC2_DMA is not set +# CONFIG_STM32_HAVE_SDADC3_DMA is not set CONFIG_STM32_HAVE_CAN1=y CONFIG_STM32_HAVE_CAN2=y CONFIG_STM32_HAVE_DAC1=y @@ -608,6 +621,7 @@ CONFIG_PREALLOC_TIMERS=4 # # Tasks and Scheduling # +# CONFIG_SPINLOCK is not set # CONFIG_INIT_NONE is not set CONFIG_INIT_ENTRYPOINT=y # CONFIG_INIT_FILEPATH is not set @@ -624,6 +638,8 @@ CONFIG_MAX_TASKS=16 # # CONFIG_MUTEX_TYPES is not set CONFIG_NPTHREAD_KEYS=4 +# CONFIG_PTHREAD_CLEANUP is not set +# CONFIG_CANCELLATION_POINTS is not set # # Performance Monitoring @@ -704,6 +720,8 @@ CONFIG_DEV_NULL=y CONFIG_ARCH_HAVE_I2CRESET=y # CONFIG_I2C is not set # CONFIG_SPI is not set +# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set +# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set CONFIG_ARCH_HAVE_SPI_BITORDER=y # CONFIG_I2S is not set @@ -711,6 +729,7 @@ CONFIG_ARCH_HAVE_SPI_BITORDER=y # Timer Driver Support # # CONFIG_TIMER is not set +# CONFIG_ONESHOT is not set # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set # CONFIG_ANALOG is not set @@ -799,6 +818,7 @@ CONFIG_USART2_2STOP=0 # CONFIG_USBHOST is not set # CONFIG_HAVE_USBTRACE is not set # CONFIG_DRIVERS_WIRELESS is not set +# CONFIG_DRIVERS_CONTACTLESS is not set # # System Logging @@ -900,10 +920,26 @@ CONFIG_STDIO_LINEBUFFER=y CONFIG_NUNGET_CHARS=2 CONFIG_LIB_HOMEDIR="/" # CONFIG_LIBM is not set +# CONFIG_LIBC_ARCH_MEMCPY is not set +# CONFIG_LIBC_ARCH_MEMCMP is not set +# CONFIG_LIBC_ARCH_MEMMOVE is not set +# CONFIG_LIBC_ARCH_MEMSET is not set +# CONFIG_LIBC_ARCH_STRCHR is not set +# CONFIG_LIBC_ARCH_STRCMP is not set +# CONFIG_LIBC_ARCH_STRCPY is not set +# CONFIG_LIBC_ARCH_STRNCPY is not set +# CONFIG_LIBC_ARCH_STRLEN is not set +# CONFIG_LIBC_ARCH_STRNLEN is not set +# CONFIG_LIBC_ARCH_BZERO is not set +CONFIG_LIBC_ARCH_ELF=y +# CONFIG_ARMV7M_MEMCPY is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_SCANSET is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set +# CONFIG_LIBC_WCHAR is not set +# CONFIG_LIBC_LOCALE is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -922,9 +958,12 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_MEMCPY_VIK is not set +# CONFIG_MEMSET_OPTSPEED is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set +# CONFIG_LIBC_IPv4_ADDRCONV is not set +# CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -960,6 +999,8 @@ CONFIG_HAVE_CXX=y # # Examples # +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CCTYPE is not set # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CXXTEST is not set @@ -1036,6 +1077,7 @@ CONFIG_EXAMPLES_POSIXSPAWN_DEVPATH="/dev/ram0" # CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set +# CONFIG_INTERPRETERS_MINIBASIC is not set # CONFIG_INTERPRETERS_PCODE is not set # @@ -1080,6 +1122,7 @@ CONFIG_EXAMPLES_POSIXSPAWN_DEVPATH="/dev/ram0" # CONFIG_READLINE_HAVE_EXTMATCH is not set # CONFIG_SYSTEM_READLINE is not set # CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_TEE is not set # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/stm32f4discovery/pseudoterm/defconfig b/configs/stm32f4discovery/pseudoterm/defconfig index 2e888aa40d1..143132c10d9 100644 --- a/configs/stm32f4discovery/pseudoterm/defconfig +++ b/configs/stm32f4discovery/pseudoterm/defconfig @@ -961,7 +961,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/rgbled/defconfig b/configs/stm32f4discovery/rgbled/defconfig index 60d084552e1..954b36f1588 100644 --- a/configs/stm32f4discovery/rgbled/defconfig +++ b/configs/stm32f4discovery/rgbled/defconfig @@ -948,7 +948,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/uavcan/defconfig b/configs/stm32f4discovery/uavcan/defconfig index c80096bf724..4bb7e6f1552 100644 --- a/configs/stm32f4discovery/uavcan/defconfig +++ b/configs/stm32f4discovery/uavcan/defconfig @@ -839,7 +839,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/usbnsh/defconfig b/configs/stm32f4discovery/usbnsh/defconfig index b6661f5d88c..15f26591788 100644 --- a/configs/stm32f4discovery/usbnsh/defconfig +++ b/configs/stm32f4discovery/usbnsh/defconfig @@ -987,7 +987,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f4discovery/winbuild/defconfig b/configs/stm32f4discovery/winbuild/defconfig index a5740592a55..9d78555ec03 100644 --- a/configs/stm32f4discovery/winbuild/defconfig +++ b/configs/stm32f4discovery/winbuild/defconfig @@ -805,7 +805,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # diff --git a/configs/stm32f4discovery/xen1210/defconfig b/configs/stm32f4discovery/xen1210/defconfig index 076a4e5a03e..ae56617e194 100644 --- a/configs/stm32f4discovery/xen1210/defconfig +++ b/configs/stm32f4discovery/xen1210/defconfig @@ -979,7 +979,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f746-ws/nsh/defconfig b/configs/stm32f746-ws/nsh/defconfig index 46aed046354..7ed9d1ffb36 100644 --- a/configs/stm32f746-ws/nsh/defconfig +++ b/configs/stm32f746-ws/nsh/defconfig @@ -917,7 +917,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32f746g-disco/nsh/defconfig b/configs/stm32f746g-disco/nsh/defconfig index 80155b308a2..e26a16f8abb 100644 --- a/configs/stm32f746g-disco/nsh/defconfig +++ b/configs/stm32f746g-disco/nsh/defconfig @@ -787,7 +787,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32l476-mdk/nsh/defconfig b/configs/stm32l476-mdk/nsh/defconfig index 57b5c9fd477..7882b95b172 100644 --- a/configs/stm32l476-mdk/nsh/defconfig +++ b/configs/stm32l476-mdk/nsh/defconfig @@ -746,7 +746,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index a62de0776c4..a55374381b5 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -803,7 +803,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32ldiscovery/nsh/defconfig b/configs/stm32ldiscovery/nsh/defconfig index af6dda6e9a0..07c527576e7 100644 --- a/configs/stm32ldiscovery/nsh/defconfig +++ b/configs/stm32ldiscovery/nsh/defconfig @@ -860,7 +860,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/stm32vldiscovery/nsh/defconfig b/configs/stm32vldiscovery/nsh/defconfig index c7ca2ef2c5e..728804b5a15 100644 --- a/configs/stm32vldiscovery/nsh/defconfig +++ b/configs/stm32vldiscovery/nsh/defconfig @@ -902,7 +902,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sure-pic32mx/nsh/defconfig b/configs/sure-pic32mx/nsh/defconfig index 7cf509a7bf3..3d742cac901 100644 --- a/configs/sure-pic32mx/nsh/defconfig +++ b/configs/sure-pic32mx/nsh/defconfig @@ -672,7 +672,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/sure-pic32mx/usbnsh/defconfig b/configs/sure-pic32mx/usbnsh/defconfig index 0a5838887ee..005c5cbaf4b 100644 --- a/configs/sure-pic32mx/usbnsh/defconfig +++ b/configs/sure-pic32mx/usbnsh/defconfig @@ -714,7 +714,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/teensy-2.0/hello/defconfig b/configs/teensy-2.0/hello/defconfig index cf6bd2ee38e..7252b924f56 100644 --- a/configs/teensy-2.0/hello/defconfig +++ b/configs/teensy-2.0/hello/defconfig @@ -454,7 +454,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # diff --git a/configs/teensy-2.0/nsh/defconfig b/configs/teensy-2.0/nsh/defconfig index a947d314ee4..a1e307241e5 100644 --- a/configs/teensy-2.0/nsh/defconfig +++ b/configs/teensy-2.0/nsh/defconfig @@ -469,7 +469,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # diff --git a/configs/teensy-2.0/usbmsc/defconfig b/configs/teensy-2.0/usbmsc/defconfig index ed35a4ece2e..8ae953d22e5 100644 --- a/configs/teensy-2.0/usbmsc/defconfig +++ b/configs/teensy-2.0/usbmsc/defconfig @@ -530,7 +530,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/teensy-3.x/nsh/defconfig b/configs/teensy-3.x/nsh/defconfig index 4712175377d..d765fefd8b7 100644 --- a/configs/teensy-3.x/nsh/defconfig +++ b/configs/teensy-3.x/nsh/defconfig @@ -644,7 +644,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/teensy-3.x/usbnsh/defconfig b/configs/teensy-3.x/usbnsh/defconfig index 8b71905cfff..b460645fff7 100644 --- a/configs/teensy-3.x/usbnsh/defconfig +++ b/configs/teensy-3.x/usbnsh/defconfig @@ -688,7 +688,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/teensy-lc/nsh/defconfig b/configs/teensy-lc/nsh/defconfig index e3e77e208ae..26a3e8aed9e 100644 --- a/configs/teensy-lc/nsh/defconfig +++ b/configs/teensy-lc/nsh/defconfig @@ -599,7 +599,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/tm4c123g-launchpad/nsh/defconfig b/configs/tm4c123g-launchpad/nsh/defconfig index 12288ccbfcd..5eeaac57eec 100644 --- a/configs/tm4c123g-launchpad/nsh/defconfig +++ b/configs/tm4c123g-launchpad/nsh/defconfig @@ -665,7 +665,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/tm4c1294-launchpad/ipv6/defconfig b/configs/tm4c1294-launchpad/ipv6/defconfig index f016e962aaa..d42abef3b3f 100644 --- a/configs/tm4c1294-launchpad/ipv6/defconfig +++ b/configs/tm4c1294-launchpad/ipv6/defconfig @@ -838,7 +838,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/tm4c1294-launchpad/nsh/defconfig b/configs/tm4c1294-launchpad/nsh/defconfig index 3c4bcce6eb9..5dddd2cc5d6 100644 --- a/configs/tm4c1294-launchpad/nsh/defconfig +++ b/configs/tm4c1294-launchpad/nsh/defconfig @@ -844,7 +844,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/twr-k60n512/nsh/defconfig b/configs/twr-k60n512/nsh/defconfig index ddafbe24e9d..c56aa24933e 100644 --- a/configs/twr-k60n512/nsh/defconfig +++ b/configs/twr-k60n512/nsh/defconfig @@ -638,7 +638,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/u-blox-c027/nsh/defconfig b/configs/u-blox-c027/nsh/defconfig index b1ca48a213c..2acb55848fa 100644 --- a/configs/u-blox-c027/nsh/defconfig +++ b/configs/u-blox-c027/nsh/defconfig @@ -901,7 +901,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/ubw32/nsh/defconfig b/configs/ubw32/nsh/defconfig index 91b77cebc88..4cb1e3f3273 100644 --- a/configs/ubw32/nsh/defconfig +++ b/configs/ubw32/nsh/defconfig @@ -687,7 +687,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set diff --git a/configs/us7032evb1/nsh/defconfig b/configs/us7032evb1/nsh/defconfig index e64dc02107e..fbc84921425 100644 --- a/configs/us7032evb1/nsh/defconfig +++ b/configs/us7032evb1/nsh/defconfig @@ -378,7 +378,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/us7032evb1/ostest/defconfig b/configs/us7032evb1/ostest/defconfig index 0c196b33de5..278a0eeff41 100644 --- a/configs/us7032evb1/ostest/defconfig +++ b/configs/us7032evb1/ostest/defconfig @@ -181,7 +181,7 @@ CONFIG_USER_ENTRYPOINT="ostest_main" CONFIG_DISABLE_OS_API=y CONFIG_DISABLE_POSIX_TIMERS=y CONFIG_DISABLE_PTHREAD=y -CONFIG_DISABLE_SIGNALS=y +# CONFIG_DISABLE_SIGNALS is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_ENVIRON=y @@ -374,7 +374,6 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 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 diff --git a/configs/viewtool-stm32f107/highpri/defconfig b/configs/viewtool-stm32f107/highpri/defconfig index 23206b58e0e..62cfe0076ed 100644 --- a/configs/viewtool-stm32f107/highpri/defconfig +++ b/configs/viewtool-stm32f107/highpri/defconfig @@ -909,7 +909,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/viewtool-stm32f107/netnsh/defconfig b/configs/viewtool-stm32f107/netnsh/defconfig index 4c9058eef1f..1c5bd509b69 100644 --- a/configs/viewtool-stm32f107/netnsh/defconfig +++ b/configs/viewtool-stm32f107/netnsh/defconfig @@ -1078,7 +1078,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/viewtool-stm32f107/nsh/defconfig b/configs/viewtool-stm32f107/nsh/defconfig index 5da2fdda702..ba1eeabe110 100644 --- a/configs/viewtool-stm32f107/nsh/defconfig +++ b/configs/viewtool-stm32f107/nsh/defconfig @@ -907,7 +907,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/xtrs/nsh/defconfig b/configs/xtrs/nsh/defconfig index 18cd15188b6..bfcbaf84fa3 100644 --- a/configs/xtrs/nsh/defconfig +++ b/configs/xtrs/nsh/defconfig @@ -283,7 +283,6 @@ CONFIG_EOL_IS_EITHER_CRLF=y CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Basic CXX Support diff --git a/configs/xtrs/ostest/defconfig b/configs/xtrs/ostest/defconfig index b03cffef6fb..328ce577c77 100644 --- a/configs/xtrs/ostest/defconfig +++ b/configs/xtrs/ostest/defconfig @@ -139,7 +139,7 @@ CONFIG_USER_ENTRYPOINT="ostest_main" CONFIG_DISABLE_OS_API=y CONFIG_DISABLE_POSIX_TIMERS=y CONFIG_DISABLE_PTHREAD=y -CONFIG_DISABLE_SIGNALS=y +# CONFIG_DISABLE_SIGNALS is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_ENVIRON=y @@ -282,7 +282,6 @@ CONFIG_EOL_IS_EITHER_CRLF=y CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Basic CXX Support diff --git a/configs/xtrs/pashello/defconfig b/configs/xtrs/pashello/defconfig index b38652e6c05..b7a54c78449 100644 --- a/configs/xtrs/pashello/defconfig +++ b/configs/xtrs/pashello/defconfig @@ -283,7 +283,6 @@ CONFIG_EOL_IS_EITHER_CRLF=y CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Basic CXX Support diff --git a/configs/z16f2800100zcog/nsh/defconfig b/configs/z16f2800100zcog/nsh/defconfig index 781652bd58f..17d6a8dfdfc 100644 --- a/configs/z16f2800100zcog/nsh/defconfig +++ b/configs/z16f2800100zcog/nsh/defconfig @@ -515,7 +515,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/z16f2800100zcog/ostest/defconfig b/configs/z16f2800100zcog/ostest/defconfig index dec05b3b6c6..456e988fb85 100644 --- a/configs/z16f2800100zcog/ostest/defconfig +++ b/configs/z16f2800100zcog/ostest/defconfig @@ -513,7 +513,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/z16f2800100zcog/pashello/defconfig b/configs/z16f2800100zcog/pashello/defconfig index 04d067caa42..2667e2c6da5 100644 --- a/configs/z16f2800100zcog/pashello/defconfig +++ b/configs/z16f2800100zcog/pashello/defconfig @@ -322,7 +322,6 @@ CONFIG_EOL_IS_EITHER_CRLF=y CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Basic CXX Support diff --git a/configs/z80sim/nsh/defconfig b/configs/z80sim/nsh/defconfig index 7034fccbf92..549fdf66e8a 100644 --- a/configs/z80sim/nsh/defconfig +++ b/configs/z80sim/nsh/defconfig @@ -283,7 +283,6 @@ CONFIG_EOL_IS_EITHER_CRLF=y CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Basic CXX Support diff --git a/configs/z80sim/ostest/defconfig b/configs/z80sim/ostest/defconfig index f7eb3afd2c3..279e54df2b2 100644 --- a/configs/z80sim/ostest/defconfig +++ b/configs/z80sim/ostest/defconfig @@ -139,7 +139,7 @@ CONFIG_USER_ENTRYPOINT="ostest_main" CONFIG_DISABLE_OS_API=y CONFIG_DISABLE_POSIX_TIMERS=y CONFIG_DISABLE_PTHREAD=y -CONFIG_DISABLE_SIGNALS=y +# CONFIG_DISABLE_SIGNALS is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_ENVIRON=y @@ -282,7 +282,6 @@ CONFIG_EOL_IS_EITHER_CRLF=y CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Basic CXX Support diff --git a/configs/z80sim/pashello/defconfig b/configs/z80sim/pashello/defconfig index 6945b3c5477..05658ccc6f6 100644 --- a/configs/z80sim/pashello/defconfig +++ b/configs/z80sim/pashello/defconfig @@ -282,7 +282,6 @@ CONFIG_EOL_IS_EITHER_CRLF=y CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # # Basic CXX Support diff --git a/configs/z8encore000zco/ostest/defconfig b/configs/z8encore000zco/ostest/defconfig index 7b8c2d79c80..c63228ea73f 100644 --- a/configs/z8encore000zco/ostest/defconfig +++ b/configs/z8encore000zco/ostest/defconfig @@ -210,7 +210,7 @@ CONFIG_ARCH_HAVE_LEDS=y CONFIG_DISABLE_OS_API=y CONFIG_DISABLE_POSIX_TIMERS=y CONFIG_DISABLE_PTHREAD=y -CONFIG_DISABLE_SIGNALS=y +# CONFIG_DISABLE_SIGNALS is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_ENVIRON=y @@ -517,7 +517,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/z8f64200100kit/ostest/defconfig b/configs/z8f64200100kit/ostest/defconfig index 31c730fc47d..a5e518b5bbb 100644 --- a/configs/z8f64200100kit/ostest/defconfig +++ b/configs/z8f64200100kit/ostest/defconfig @@ -210,7 +210,7 @@ CONFIG_ARCH_HAVE_LEDS=y CONFIG_DISABLE_OS_API=y CONFIG_DISABLE_POSIX_TIMERS=y CONFIG_DISABLE_PTHREAD=y -CONFIG_DISABLE_SIGNALS=y +# CONFIG_DISABLE_SIGNALS is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_ENVIRON=y @@ -518,7 +518,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set # CONFIG_ARCH_HAVE_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/zkit-arm-1769/hello/defconfig b/configs/zkit-arm-1769/hello/defconfig index f3a86fcb981..57c0eb7c5e4 100644 --- a/configs/zkit-arm-1769/hello/defconfig +++ b/configs/zkit-arm-1769/hello/defconfig @@ -785,7 +785,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/zkit-arm-1769/nsh/defconfig b/configs/zkit-arm-1769/nsh/defconfig index 8a675b6180b..812afbc929b 100644 --- a/configs/zkit-arm-1769/nsh/defconfig +++ b/configs/zkit-arm-1769/nsh/defconfig @@ -840,7 +840,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/zkit-arm-1769/nxhello/defconfig b/configs/zkit-arm-1769/nxhello/defconfig index 4c7dfae49f3..8534d9b0628 100644 --- a/configs/zkit-arm-1769/nxhello/defconfig +++ b/configs/zkit-arm-1769/nxhello/defconfig @@ -958,7 +958,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set CONFIG_LIBC_NETDB=y diff --git a/configs/zkit-arm-1769/thttpd/defconfig b/configs/zkit-arm-1769/thttpd/defconfig index 0438660456d..79095b575d2 100644 --- a/configs/zkit-arm-1769/thttpd/defconfig +++ b/configs/zkit-arm-1769/thttpd/defconfig @@ -788,7 +788,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/zp214xpa/nsh/defconfig b/configs/zp214xpa/nsh/defconfig index 547c51e58c2..70e723a1ea6 100644 --- a/configs/zp214xpa/nsh/defconfig +++ b/configs/zp214xpa/nsh/defconfig @@ -572,7 +572,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/configs/zp214xpa/nxlines/defconfig b/configs/zp214xpa/nxlines/defconfig index 06f8adea17a..ab4edf274bf 100644 --- a/configs/zp214xpa/nxlines/defconfig +++ b/configs/zp214xpa/nxlines/defconfig @@ -706,7 +706,6 @@ CONFIG_ARCH_LOWPUTC=y # CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set diff --git a/drivers/bch/bchdev_driver.c b/drivers/bch/bchdev_driver.c index 556709e8b83..e74ef3f7f7b 100644 --- a/drivers/bch/bchdev_driver.c +++ b/drivers/bch/bchdev_driver.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/drivers/mtd/ramtron.c b/drivers/mtd/ramtron.c index ad448c8c7eb..236084fb79d 100644 --- a/drivers/mtd/ramtron.c +++ b/drivers/mtd/ramtron.c @@ -539,7 +539,7 @@ static inline int ramtron_pagewrite(struct ramtron_dev_s *priv, FAR const uint8_ finfo("page: %08lx offset: %08lx\n", (long)page, (long)offset); -#ifndef RAMTRON_WRITEWAIT +#ifndef CONFIG_RAMTRON_WRITEWAIT /* Wait for any preceding write to complete. We could simplify things by * perform this wait at the end of each write operation (rather than at * the beginning of ALL operations), but have the wait first will slightly @@ -574,7 +574,7 @@ static inline int ramtron_pagewrite(struct ramtron_dev_s *priv, FAR const uint8_ SPI_SELECT(priv->dev, SPIDEV_FLASH, false); finfo("Written\n"); -#ifdef RAMTRON_WRITEWAIT +#ifdef CONFIG_RAMTRON_WRITEWAIT /* Wait for write completion now so we can report any errors to the caller. Thus * the caller will know whether or not if the data is on stable storage */ @@ -657,13 +657,13 @@ static ssize_t ramtron_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbyt FAR uint8_t *buffer) { FAR struct ramtron_dev_s *priv = (FAR struct ramtron_dev_s *)dev; -#ifdef RAMTRON_WRITEWAIT +#ifdef CONFIG_RAMTRON_WRITEWAIT uint8_t status; #endif finfo("offset: %08lx nbytes: %d\n", (long)offset, (int)nbytes); -#ifndef RAMTRON_WRITEWAIT +#ifndef CONFIG_RAMTRON_WRITEWAIT /* Wait for any preceding write to complete. We could simplify things by * perform this wait at the end of each write operation (rather than at * the beginning of ALL operations), but have the wait first will slightly @@ -690,7 +690,7 @@ static ssize_t ramtron_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbyt SPI_RECVBLOCK(priv->dev, buffer, nbytes); -#ifdef RAMTRON_WRITEWAIT +#ifdef CONFIG_RAMTRON_WRITEWAIT /* Read the status register. This isn't strictly needed, but it gives us a * chance to detect if SPI transactions are operating correctly, which * allows us to catch complete device failures in the read path. We expect diff --git a/drivers/pipes/pipe.c b/drivers/pipes/pipe.c index b54f051cf56..eb898bfec73 100644 --- a/drivers/pipes/pipe.c +++ b/drivers/pipes/pipe.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/drivers/pwm.c b/drivers/pwm.c index 03958b6778f..78b60751c04 100644 --- a/drivers/pwm.c +++ b/drivers/pwm.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/drivers/sensors/qencoder.c b/drivers/sensors/qencoder.c index eba9337a011..7f6edd09788 100644 --- a/drivers/sensors/qencoder.c +++ b/drivers/sensors/qencoder.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/include/dllfcn.h b/include/dllfcn.h new file mode 100644 index 00000000000..cbf1d445ed0 --- /dev/null +++ b/include/dllfcn.h @@ -0,0 +1,332 @@ +/**************************************************************************** + * include/dllfcn.h + * + * Copyright (C) 2017 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 __INCLUDE_DLLFCN_H +#define __INCLUDE_DLLFCN_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include +#include + +/**************************************************************************** + * Pre-processor Definitons + ****************************************************************************/ + +/* The dlfcn.h header defines at least the following macros for use in the + * construction of a dlopen() mode argument: + * + * RTLD_LAZY - Relocations are performed at an implementation-dependent + * time, ranging from the time of the dlopen() call until + * the first reference to a given symbol occurs. Specifying + * RTLD_LAZY should improve performance on implementations + * supporting dynamic symbol binding as a process may not + * reference all of the functions in any given object. And, + * for systems supporting dynamic symbol resolution for + * normal process execution, this behaviour mimics the + * normal handling of process execution. + * RTLD_NOW - All necessary relocations are performed when the object + * is first loaded. This may waste some processing if + * relocations are performed for functions that are never + * referenced. This behaviour may be useful for + * applications that need to know as soon as an object is + * loaded that all symbols referenced during execution will + * be available. + * + * Any object loaded by dlopen() that requires relocations against global + * symbols can reference the symbols in the original process image file, + * any objects loaded at program startup, from the object itself as well as + * any other object included in the same dlopen() invocation, and any + * objects that were loaded in any dlopen() invocation and which specified + * the RTLD_GLOBAL flag. To determine the scope of visibility for the + * symbols loaded with a dlopen() invocation, the mode parameter should be + * bitwise or'ed with one of the following values: + * + * RTLD_GLOBAL - The object's symbols are made available for the + * relocation processing of any other object. In addition, + * symbol lookup using dlopen(0, mode) and an associated + * dlsym() allows objects loaded with this mode to be + * searched. + * RTLD_LOCAL - All symbols are not made available for relocation + * processing by other modules. + * + * Reference: OpenGroup.org + */ + +#define RTLD_LAZY (0 << 0) +#define RTLD_NOW (1 << 0) +#define RTLD_GLOBAL (1 << 1) +#define RTLD_LOCAL (1 << 2) + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Name: dlsymtab + * + * Description: + * dlsymtab() is a non-standard shared library interface. It selects the + * symbol table to use when binding a shared libary to the base firmware + * which may be in FLASH memory. + * + * Input Parameters: + * symtab - The new symbol table. + * nsymbols - The number of symbols in the symbol table. + * + * Returned Value: + * Always returns OK. + * + ****************************************************************************/ + +struct symtab_s; +int dlsymtab(FAR const struct symtab_s *symtab, int nsymbols); + +/**************************************************************************** + * Name: dlopen + * + * Description: + * dlopen() makes an executable object file specified by file available to + * the calling program. The class of files eligible for this operation and + * the manner of their construction are specified by the implementation, + * though typically such files are executable objects such as shared + * libraries, relocatable files or programs. Note that some implementations + * permit the construction of dependencies between such objects that are + * embedded within files. In such cases, a dlopen() operation will load + * such dependencies in addition to the object referenced by file. + * Implementations may also impose specific constraints on the construction + * of programs that can employ dlopen() and its related services. + * + * If a file is specified in multiple dlopen() invocations, mode is + * interpreted at each invocation. Note, however, that once RTLD_NOW has + * been specified all relocations will have been completed rendering + * further RTLD_NOW operations redundant and any further RTLD_LAZY + * operations irrelevant. Similarly note that once RTLD_GLOBAL has been + * specified the object will maintain the RTLD_GLOBAL status regardless + * of any previous or future specification of RTLD_LOCAL, so long as the + * object remains in the address space (see dlclose()). + * + * Symbols introduced into a program through calls to dlopen() may be + * used in relocation activities. Symbols so introduced may duplicate + * symbols already defined by the program or previous dlopen() + * operations. To resolve the ambiguities such a situation might + * present, the resolution of a symbol reference to symbol definition is + * based on a symbol resolution order. Two such resolution orders are + * defined: load or dependency ordering. Load order establishes an + * ordering among symbol definitions, such that the definition first + * loaded (including definitions from the image file and any dependent + * objects loaded with it) has priority over objects added later (via + * dlopen()). Load ordering is used in relocation processing. Dependency + * ordering uses a breadth-first order starting with a given object, + * then all of its dependencies, then any dependents of those, iterating + * until all dependencies are satisfied. With the exception of the global + * symbol object obtained via a dlopen() operation on a file of 0, + * dependency ordering is used by the dlsym() function. Load ordering is + * used in dlsym() operations upon the global symbol object. + * + * When an object is first made accessible via dlopen() it and its + * dependent objects are added in dependency order. Once all the objects + * are added, relocations are performed using load order. Note that if an + * object or its dependencies had been previously loaded, the load and + * dependency orders may yield different resolutions. + * + * The symbols introduced by dlopen() operations, and available through + * dlsym() are at a minimum those which are exported as symbols of global + * scope by the object. Typically such symbols will be those that were + * specified in (for example) C source code as having extern linkage. The + * precise manner in which an implementation constructs the set of + * exported symbols for a dlopen() object is specified by that + * implementation. + * + * Input Parameters: + * file - Used to construct a pathname to the object file. If file + * contains a slash character, the file argument is used as the + * pathname for the file. Otherwise, file is used in an + * implementation-dependent manner to yield a pathname. + * + * If the value of file is 0, dlopen() provides a handle on a + * global symbol object. This object provides access to the symbols + * from an ordered set of objects consisting of the original + * program image file, together with any objects loaded at program + * startup as specified by that process image file (for example, + * shared libraries), and the set of objects loaded using a + * dlopen() operation together with the RTLD_GLOBAL flag. As the + * latter set of objects can change during execution, the set + * identified by handle can also change dynamically. + * + * Only a single copy of an object file is brought into the address + * space, even if dlopen() is invoked multiple times in reference + * to the file, and even if different pathnames are used to + * reference the file. + * mode - Describes how dlopen() will operate upon file with respect to + * the processing of relocations and the scope of visibility of the + * symbols provided within file. When an object is brought into the + * address space of a process, it may contain references to symbols + * whose addresses are not known until the object is loaded. These + * references must be relocated before the symbols can be accessed. + * The mode parameter governs when these relocations take place. + * See definitions above for values of the mode parameter:. + * + * Returned Value: + * A successful dlopen() returns a handle which the caller may use on + * subsequent calls to dlsym() and dlclose(). The value of this handle + * should not be interpreted in any way by the caller. + * + * If file cannot be found, cannot be opened for reading, is not of an + * appropriate object format for processing by dlopen(), or if an error + * occurs during the process of loading file or relocating its symbolic + * references, dlopen() will return NULL. More detailed diagnostic + * information will be available through dlerror(). + * + * Reference: OpenGroup.org + * + * ****************************************************************************/ + +FAR void *dlopen(FAR const char *file, int mode); + +/**************************************************************************** + * Name: dlsym + * + * Description: + * dlsym() allows a process to obtain the address of a symbol defined + * within an object made accessible through a dlopen() call. handle is the + * value returned from a call to dlopen() (and which has not since been + * released via a call to dlclose()), name is the symbol's name as a + * character string. + * + * dlsym() will search for the named symbol in all objects loaded + * automatically as a result of loading the object referenced by handle + * (see dlopen()). Load ordering is used in dlsym() operations upon the + * global symbol object. The symbol resolution algorithm used will be + * dependency order as described in dlopen(). + * + * Input Parameters: + * handle - The opaque, non-NULL value returned by a previous successful + * call to dlopen(). + * name - A pointer to the symbol name string. + * + * Returned Value: + * If handle does not refer to a valid object opened by dlopen(), or if + * the named symbol cannot be found within any of the objects associated + * with handle, dlsym() will return NULL. More detailed diagnostic + * information will be available through dlerror(). + * + * Reference: OpenGroup.org + * + ****************************************************************************/ + +FAR void *dlsym(FAR void *handle, FAR const char *name); + +/**************************************************************************** + * Name: dlclose + * + * Description: + * dlclose() is used to inform the system that the object referenced by a + * handle returned from a previous dlopen() invocation is no longer needed + * by the application. + * + * The use of dlclose() reflects a statement of intent on the part of the + * process, but does not create any requirement upon the implementation, + * such as removal of the code or symbols referenced by handle. Once an + * object has been closed using dlclose() an application should assume + * that its symbols are no longer available to dlsym(). All objects loaded + * automatically as a result of invoking dlopen() on the referenced object + * are also closed. + * + * Although a dlclose() operation is not required to remove structures + * from an address space, neither is an implementation prohibited from + * doing so. The only restriction on such a removal is that no object will + * be removed to which references have been relocated, until or unless all + * such references are removed. For instance, an object that had been + * loaded with a dlopen() operation specifying the RTLD_GLOBAL flag might + * provide a target for dynamic relocations performed in the processing of + * other objects - in such environments, an application may assume that no + * relocation, once made, will be undone or remade unless the object + * requiring the relocation has itself been removed. + * + * Input Parameters: + * handle - The opaque, non-NULL value returned by a previous successful + * call to dlopen(). + * + * Returned Value: + * If the referenced object was successfully closed, dlclose() returns 0. + * If the object could not be closed, or if handle does not refer to an + * open object, dlclose() returns a non-zero value. More detailed + * diagnostic information will be available through dlerror(). + * + * Reference: OpenGroup.org + * ****************************************************************************/ + +int dlclose(FAR void *handle); + +/**************************************************************************** + * Name: dlerror + * + * Description: + * dlerror() returns a null-terminated character string (with no trailing + * newline) that describes the last error that occurred during dynamic + * linking processing. If no dynamic linking errors have occurred since + * the last invocation of dlerror(), dlerror() returns NULL. Thus, + * invoking dlerror() a second time, immediately following a prior + * invocation, will result in NULL being returned. + * + * Input Parameters: + * If successful, dlerror() returns a null-terminated character string. + * Otherwise, NULL is returned. + * + * Returned Value: + * + * Reference: OpenGroup.org + * + ****************************************************************************/ + +FAR char *dlerror(void); + +#undef EXTERN +#ifdef __cplusplus +} +#endif + +#endif /* __INCLUDE_DLLFCN_H */ diff --git a/include/libgen.h b/include/libgen.h index 295cd9b936f..e7e28808528 100644 --- a/include/libgen.h +++ b/include/libgen.h @@ -40,9 +40,7 @@ * Included Files ****************************************************************************/ -/**************************************************************************** - * Type Definitions - ****************************************************************************/ +#include /**************************************************************************** * Public Function Prototypes diff --git a/include/nuttx/arch.h b/include/nuttx/arch.h index 22b5ebb337f..b2da611d1b1 100644 --- a/include/nuttx/arch.h +++ b/include/nuttx/arch.h @@ -1821,6 +1821,10 @@ int up_cpu_start(int cpu); * Returned Value: * Zero on success; a negated errno value on failure. * + * Assumptions: + * Called from within a critical section; up_cpu_resume() must be called + * later while still within the same critical section. + * ****************************************************************************/ #ifdef CONFIG_SMP @@ -1894,6 +1898,10 @@ int up_cpu_paused(int cpu); * Returned Value: * Zero on success; a negated errno value on failure. * + * Assumptions: + * Called from within a critical section; up_cpu_pause() must have + * previously been called within the same critical section. + * ****************************************************************************/ #ifdef CONFIG_SMP diff --git a/include/nuttx/module.h b/include/nuttx/module.h index 7ce8b804472..83b04c5de7f 100644 --- a/include/nuttx/module.h +++ b/include/nuttx/module.h @@ -1,7 +1,7 @@ /**************************************************************************** * include/nuttx/module.h * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -94,26 +94,41 @@ typedef CODE int (*mod_uninitializer_t)(FAR void *arg); +/* The contect of this structure is returned by module_initialize(). + * + * uninitializer - The pointer to the uninitialization function. NULL may + * be returned if no uninitialization is needed (i.e, the + * the module memory can be deallocated at any time). + * arg - An argument that will be passed to the uninitialization + function. + * exports - A symbol table exported by the module + * nexports - The number of symbols in the exported symbol table. + */ + +struct mod_info_s +{ + mod_uninitializer_t uninitializer; /* Module uninitializer */ + FAR void *arg; /* Uninitializer argument */ + FAR const struct symtab_s *exports; /* Symbols exported by module */ + unsigned int nexports; /* Number of symobols in exports list */ +}; + /* A NuttX module is expected to export a function called module_initialize() * that has the following function prototype. This function should appear as - * the entry point in the ELF module file and will be called bythe binfmt + * the entry point in the ELF module file and will be called by the binfmt * logic after the module has been loaded into kernel memory. * * Input Parameters: - * uninitializer - The pointer to the uninitialization function. NULL may - * be returned if no uninitialization is needed (i.e, the the module - * memory can be deallocated at any time). - * arg - An argument that will be passed to the uninitialization function. + * modinfo - Module information returned by mod_initialize(). * * Returned Value: * Zero (OK) on success; a negated errno value on any failure to * initialize the module. */ -typedef CODE int (*mod_initializer_t)(mod_uninitializer_t *uninitializer, - FAR void **arg); +typedef CODE int (*mod_initializer_t)(FAR struct mod_info_s *modinfo); -#ifdef __KERNEL__ +#if defined(__KERNEL__) || defined(CONFIG_BUILD_FLAT) /* This is the type of the callback function used by mod_registry_foreach() */ struct module_s; @@ -148,7 +163,7 @@ extern "C" * ****************************************************************************/ -#ifdef __KERNEL__ +#if defined(__KERNEL__) || defined(CONFIG_BUILD_FLAT) void mod_getsymtab(FAR const struct symtab_s **symtab, FAR int *nsymbols); #endif @@ -167,7 +182,7 @@ void mod_getsymtab(FAR const struct symtab_s **symtab, FAR int *nsymbols); * ****************************************************************************/ -#ifdef __KERNEL__ +#if defined(__KERNEL__) || defined(CONFIG_BUILD_FLAT) void mod_setsymtab(FAR const struct symtab_s *symtab, int nsymbols); #endif @@ -190,12 +205,14 @@ void mod_setsymtab(FAR const struct symtab_s *symtab, int nsymbols); * it has been loaded. * * Returned Value: - * Zero (OK) on success. On any failure, -1 (ERROR) is returned the - * errno value is set appropriately. + * A non-NULL module handle that can be used on subsequent calls to other + * module interfaces is returned on success. If insmod() was unable to + * load the module insmod() will return a NULL handle and the errno + * variable will be set appropriately. * ****************************************************************************/ -int insmod(FAR const char *filename, FAR const char *modulename); +FAR void *insmod(FAR const char *filename, FAR const char *modulename); /**************************************************************************** * Name: rmmod @@ -204,9 +221,7 @@ int insmod(FAR const char *filename, FAR const char *modulename); * Remove a previously installed module from memory. * * Input Parameters: - * - * modulename - The module name. This is the name module name that was - * provided to insmod when the module was loaded. + * handle - The module handler previously returned by insmod(). * * Returned Value: * Zero (OK) on success. On any failure, -1 (ERROR) is returned the @@ -214,7 +229,55 @@ int insmod(FAR const char *filename, FAR const char *modulename); * ****************************************************************************/ -int rmmod(FAR const char *modulename); +int rmmod(FAR void *handle); + +/**************************************************************************** + * Name: modsym + * + * Description: + * modsym() returns the address of a symbol defined within the object that + * was previously made accessible through a insmod() call. handle is the + * value returned from a call to insmod() (and which has not since been + * released via a call to rmmod()), name is the symbol's name as a + * character string. + * + * The returned symbol address will remain valid until rmmod() is called. + * + * Input Parameters: + * handle - The opaque, non-NULL value returned by a previous successful + * call to insmod(). + * name - A pointer to the symbol name string. + * + * Returned Value: + * The address associated with the symbol is returned on success. + * If handle does not refer to a valid module opened by insmod(), or if + * the named symbol cannot be found within any of the objects associated + * with handle, modsym() will return NULL and the errno variable will be + * set appropriately. + * + ****************************************************************************/ + +FAR const void *modsym(FAR void *handle, FAR const char *name); + +/**************************************************************************** + * Name: modhandle + * + * Description: + * modhandle() returns the module handle for the installed module with the + * provided name. A secondary use of this function is to determin if a + * module has been loaded or not. + * + * Input Parameters: + * name - A pointer to the module name string. + * + * Returned Value: + * The non-NULL module handle previously returned by insmod() is returned + * on success. If no module with that name is installed, modhandle() will + * return a NULL handle and the errno variable will be set appropriately. + * + ****************************************************************************/ + +FAR void *modhandle(FAR const char *name); /**************************************************************************** * Name: mod_registry_foreach @@ -238,7 +301,7 @@ int rmmod(FAR const char *modulename); * ****************************************************************************/ -#ifdef __KERNEL__ +#if defined(__KERNEL__) || defined(CONFIG_BUILD_FLAT) int mod_registry_foreach(mod_callback_t callback, FAR void *arg); #endif diff --git a/include/string.h b/include/string.h index 351a9da0e73..295a7e8af37 100644 --- a/include/string.h +++ b/include/string.h @@ -49,7 +49,7 @@ ****************************************************************************/ /* Compatibility definitions */ -#ifndef CONFIG_ARCH_BZERO +#ifndef CONFIG_LIBC_ARCH_BZERO # define bzero(s,n) (void)memset(s,0,n) #endif diff --git a/include/sys/syscall.h b/include/sys/syscall.h index 8da2d8f968a..1286bcbec9a 100644 --- a/include/sys/syscall.h +++ b/include/sys/syscall.h @@ -182,7 +182,9 @@ #ifdef CONFIG_MODULE # define SYS_insmod __SYS_insmod # define SYS_rmmod (__SYS_insmod+1) -# define __SYS_posix_spawn (__SYS_insmod+2) +# define SYS_modsym (__SYS_insmod+2) +# define SYS_modhandle (__SYS_insmod+3) +# define __SYS_posix_spawn (__SYS_insmod+4) #else # define __SYS_posix_spawn __SYS_insmod #endif diff --git a/libc/Kconfig b/libc/Kconfig index a8d40fed543..e533c6a4604 100644 --- a/libc/Kconfig +++ b/libc/Kconfig @@ -32,7 +32,9 @@ config LIB_HOMEDIR ---help--- The home directory to use with operations like such as 'cd ~' +source libc/dllfcn/Kconfig source libc/math/Kconfig +source libc/machine/Kconfig config NOPRINTF_FIELDWIDTH bool "Disable sprintf support fieldwidth" @@ -400,27 +402,10 @@ config ARCH_ROMGETC particular needs of your environment. There is no "one-size-fits-all" solution for this problem. -config ARCH_OPTIMIZED_FUNCTIONS - bool "Enable arch optimized functions" - default n - ---help--- - Allow for architecture optimized implementations of certain library - functions. Architecture-specific implementations can improve overall - system performance. - -if ARCH_OPTIMIZED_FUNCTIONS - -config ARCH_MEMCPY - bool "memcpy()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of memcpy(). - config MEMCPY_VIK bool "Vik memcpy()" default n - depends on !ARCH_MEMCPY + depends on !LIBC_ARCH_MEMCPY ---help--- Select this option to use the optimized memcpy() function by Daniel Vik. Select this option for improved performance at the expense of increased @@ -450,31 +435,10 @@ config MEMCPY_64BIT endif # MEMCPY_VIK -config ARCH_MEMCMP - bool "memcmp()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of memcmp(). - -config ARCH_MEMMOVE - bool "memmove()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of memmove(). - -config ARCH_MEMSET - bool "memset()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of memset(). - config MEMSET_OPTSPEED bool "Optimize memset() for speed" default n - depends on !ARCH_MEMSET + depends on !LIBC_ARCH_MEMSET ---help--- Select this option to use a version of memcpy() optimized for speed. Default: memcpy() is optimized for size. @@ -487,57 +451,6 @@ config MEMSET_64BIT Compiles memset() for architectures that suppport 64-bit operations efficiently. -config ARCH_STRCHR - bool "strchr()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strchr(). - -config ARCH_STRCMP - bool "strcmp()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strcmp(). - -config ARCH_STRCPY - bool "strcpy()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strcpy(). - -config ARCH_STRNCPY - bool "strncpy()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strncpy(). - -config ARCH_STRLEN - bool "strlen" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strlen(). - -config ARCH_STRNLEN - bool "strlen()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strnlen(). - -config ARCH_BZERO - bool "bzero()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of bzero(). - -endif # ARCH_OPTIMIZED_FUNCTIONS - config ARCH_HAVE_TLS bool default n diff --git a/libc/Makefile b/libc/Makefile index 81a1994007b..3944c7a9a0b 100644 --- a/libc/Makefile +++ b/libc/Makefile @@ -1,7 +1,7 @@ ############################################################################ # libc/Makefile # -# Copyright (C) 2007-2014, 2016 Gregory Nutt. All rights reserved. +# Copyright (C) 2007-2014, 2016-2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -64,10 +64,12 @@ VPATH := . include aio/Make.defs include audio/Make.defs include dirent/Make.defs +include dllfcn/Make.defs include fixedmath/Make.defs include hex2bin/Make.defs include libgen/Make.defs include locale/Make.defs +include machine/Make.defs include math/Make.defs include misc/Make.defs include net/Make.defs diff --git a/libc/README.txt b/libc/README.txt index dd8a94020d4..313c71e7e50 100644 --- a/libc/README.txt +++ b/libc/README.txt @@ -29,10 +29,12 @@ in the include/ directory provides the prototype for library functions. So we have: audio - This part of he audio system: nuttx/audio/audio.h + dllfcn - dllfcn.h hex2bin - hex2bin.h libgen - libgen.h locale - locale.h fixedmath - fixedmath.h + machine - Various architecture-specifica implementations. math - math.h net - Various network-related header files: netinet/ether.h, arpa/inet.h pthread - pthread.h diff --git a/libc/dllfcn/Kconfig b/libc/dllfcn/Kconfig new file mode 100644 index 00000000000..e83d6d0616b --- /dev/null +++ b/libc/dllfcn/Kconfig @@ -0,0 +1,15 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +config LIBC_DLLFCN + bool "Shared library support" + default n + select LIBC_ARCH_ELF + select MODULE if BUILD_FLAT + depends on EXPERIMENTAL || BUILD_FLAT + ---help--- + Enabled support for user-space shared libraries. + + A work in progress, hence, marked EXPERIMENTAL diff --git a/libc/dllfcn/Make.defs b/libc/dllfcn/Make.defs new file mode 100644 index 00000000000..aa92ba52290 --- /dev/null +++ b/libc/dllfcn/Make.defs @@ -0,0 +1,47 @@ +############################################################################ +# libc/dllfcn/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_LIBC_DLLFCN),y) + +# Add the dllfcn.h files to the build + +CSRCS += lib_dlopen.c lib_dlclose.c lib_dlsym.c lib_dlerror.c lib_dlsymtab.c + +# Add the dllfcn.h directory to the build + +DEPPATH += --dep-path dllfcn +VPATH += :dllfcn + +endif diff --git a/libc/dllfcn/lib_dlclose.c b/libc/dllfcn/lib_dlclose.c new file mode 100644 index 00000000000..32e46fc73ad --- /dev/null +++ b/libc/dllfcn/lib_dlclose.c @@ -0,0 +1,126 @@ +/**************************************************************************** + * libc/dllfcn/lib_dlclose.c + * + * Copyright (C) 2017 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 + +#include + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: dlclose + * + * Description: + * dlclose() is used to inform the system that the object referenced by a + * handle returned from a previous dlopen() invocation is no longer needed + * by the application. + * + * The use of dlclose() reflects a statement of intent on the part of the + * process, but does not create any requirement upon the implementation, + * such as removal of the code or symbols referenced by handle. Once an + * object has been closed using dlclose() an application should assume + * that its symbols are no longer available to dlsym(). All objects loaded + * automatically as a result of invoking dlopen() on the referenced object + * are also closed. + * + * Although a dlclose() operation is not required to remove structures + * from an address space, neither is an implementation prohibited from + * doing so. The only restriction on such a removal is that no object will + * be removed to which references have been relocated, until or unless all + * such references are removed. For instance, an object that had been + * loaded with a dlopen() operation specifying the RTLD_GLOBAL flag might + * provide a target for dynamic relocations performed in the processing of + * other objects - in such environments, an application may assume that no + * relocation, once made, will be undone or remade unless the object + * requiring the relocation has itself been removed. + * + * Input Parameters: + * handle - The opaque, non-NULL value returned by a previous successful + * call to dlopen(). + * + * Returned Value: + * If the referenced object was successfully closed, dlclose() returns 0. + * If the object could not be closed, or if handle does not refer to an + * open object, dlclose() returns a non-zero value. More detailed + * diagnostic information will be available through dlerror(). + * + * Reference: OpenGroup.org + * + ****************************************************************************/ + +int dlclose(FAR void *handle) +{ +#if defined(CONFIG_BUILD_FLAT) + /* In the FLAT build, a shared library is essentially the same as a kernel + * module. + */ + + return rmmod(handle); + +#elif defined(CONFIG_BUILD_PROTECTED) + /* The PROTECTED build is equivalent to the FLAT build EXCEPT that there + * must be two copies of the the module logic: One residing in kernel + * space and using the kernel symbol table and one residing in user space + * using the user space symbol table. + * + * The brute force way to accomplish this is by just copying the kernel + * module code into libc/module. + */ + +#warning Missing logic + return -ENOSYS; + +#else /* if defined(CONFIG_BUILD_KERNEL) */ + /* The KERNEL build is considerably more complex: In order to be shared, + * the .text portion of the module must be (1) build for PIC/PID operation + * and (2) must like in a shared memory region accessible from all + * processes. The .data/.bss portion of the module must be allocated in + * the user space of each process, but must lie at the same virtual address + * so that it can be referenced from the one copy of the text in the shared + * memory region. + */ + +#warning Missing logic + return -ENOSYS; +#endif +} \ No newline at end of file diff --git a/libc/dllfcn/lib_dlerror.c b/libc/dllfcn/lib_dlerror.c new file mode 100644 index 00000000000..21b61367d65 --- /dev/null +++ b/libc/dllfcn/lib_dlerror.c @@ -0,0 +1,73 @@ +/**************************************************************************** + * libc/dllfcn/lib_dlerror.c + * + * Copyright (C) 2017 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: dlerror + * + * Description: + * dlerror() returns a null-terminated character string (with no trailing + * newline) that describes the last error that occurred during dynamic + * linking processing. If no dynamic linking errors have occurred since + * the last invocation of dlerror(), dlerror() returns NULL. Thus, + * invoking dlerror() a second time, immediately following a prior + * invocation, will result in NULL being returned. + * + * Input Parameters: + * If successful, dlerror() returns a null-terminated character string. + * Otherwise, NULL is returned. + * + * Returned Value: + * + * Reference: OpenGroup.org + * + ****************************************************************************/ + +FAR char *dlerror(void) +{ +#warning Missing logic + return NULL; +} \ No newline at end of file diff --git a/libc/dllfcn/lib_dlopen.c b/libc/dllfcn/lib_dlopen.c new file mode 100644 index 00000000000..28df22d13d8 --- /dev/null +++ b/libc/dllfcn/lib_dlopen.c @@ -0,0 +1,215 @@ +/**************************************************************************** + * libc/dllfcn/lib_dlopen.c + * + * Copyright (C) 2017 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 +#include +#include +#include +#include + +#include + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: dlopen + * + * Description: + * dlopen() makes an executable object file specified by file available to + * the calling program. The class of files eligible for this operation and + * the manner of their construction are specified by the implementation, + * though typically such files are executable objects such as shared + * libraries, relocatable files or programs. Note that some implementations + * permit the construction of dependencies between such objects that are + * embedded within files. In such cases, a dlopen() operation will load + * such dependencies in addition to the object referenced by file. + * Implementations may also impose specific constraints on the construction + * of programs that can employ dlopen() and its related services. + * + * If a file is specified in multiple dlopen() invocations, mode is + * interpreted at each invocation. Note, however, that once RTLD_NOW has + * been specified all relocations will have been completed rendering + * further RTLD_NOW operations redundant and any further RTLD_LAZY + * operations irrelevant. Similarly note that once RTLD_GLOBAL has been + * specified the object will maintain the RTLD_GLOBAL status regardless + * of any previous or future specification of RTLD_LOCAL, so long as the + * object remains in the address space (see dlclose()). + * + * Symbols introduced into a program through calls to dlopen() may be + * used in relocation activities. Symbols so introduced may duplicate + * symbols already defined by the program or previous dlopen() + * operations. To resolve the ambiguities such a situation might + * present, the resolution of a symbol reference to symbol definition is + * based on a symbol resolution order. Two such resolution orders are + * defined: load or dependency ordering. Load order establishes an + * ordering among symbol definitions, such that the definition first + * loaded (including definitions from the image file and any dependent + * objects loaded with it) has priority over objects added later (via + * dlopen()). Load ordering is used in relocation processing. Dependency + * ordering uses a breadth-first order starting with a given object, + * then all of its dependencies, then any dependents of those, iterating + * until all dependencies are satisfied. With the exception of the global + * symbol object obtained via a dlopen() operation on a file of 0, + * dependency ordering is used by the dlsym() function. Load ordering is + * used in dlsym() operations upon the global symbol object. + * + * When an object is first made accessible via dlopen() it and its + * dependent objects are added in dependency order. Once all the objects + * are added, relocations are performed using load order. Note that if an + * object or its dependencies had been previously loaded, the load and + * dependency orders may yield different resolutions. + * + * The symbols introduced by dlopen() operations, and available through + * dlsym() are at a minimum those which are exported as symbols of global + * scope by the object. Typically such symbols will be those that were + * specified in (for example) C source code as having extern linkage. The + * precise manner in which an implementation constructs the set of + * exported symbols for a dlopen() object is specified by that + * implementation. + * + * Input Parameters: + * file - Used to construct a pathname to the object file. If file + * contains a slash character, the file argument is used as the + * pathname for the file. Otherwise, file is used in an + * implementation-dependent manner to yield a pathname. + * + * If the value of file is 0, dlopen() provides a handle on a + * global symbol object. This object provides access to the symbols + * from an ordered set of objects consisting of the original + * program image file, together with any objects loaded at program + * startup as specified by that process image file (for example, + * shared libraries), and the set of objects loaded using a + * dlopen() operation together with the RTLD_GLOBAL flag. As the + * latter set of objects can change during execution, the set + * identified by handle can also change dynamically. + * + * Only a single copy of an object file is brought into the address + * space, even if dlopen() is invoked multiple times in reference + * to the file, and even if different pathnames are used to + * reference the file. + * mode - Describes how dlopen() will operate upon file with respect to + * the processing of relocations and the scope of visibility of the + * symbols provided within file. When an object is brought into the + * address space of a process, it may contain references to symbols + * whose addresses are not known until the object is loaded. These + * references must be relocated before the symbols can be accessed. + * The mode parameter governs when these relocations take place. + * See definitions above for values of the mode parameter:. + * + * Returned Value: + * A successful dlopen() returns a handle which the caller may use on + * subsequent calls to dlsym() and dlclose(). The value of this handle + * should not be interpreted in any way by the caller. + * + * If file cannot be found, cannot be opened for reading, is not of an + * appropriate object format for processing by dlopen(), or if an error + * occurs during the process of loading file or relocating its symbolic + * references, dlopen() will return NULL. More detailed diagnostic + * information will be available through dlerror(). + * + * Reference: OpenGroup.org + * + ****************************************************************************/ + +FAR void *dlopen(FAR const char *file, int mode) +{ +#if defined(CONFIG_BUILD_FLAT) + FAR void *handle; + FAR char *name; + + DEBUGASSERT(file != NULL); + + /* In the FLAT build, a shared library is essentially the same as a kernel + * module. + * + * REVIST: Missing functionality: + * - No automatic binding of symbols + * - No dependencies + * - mode is ignored. + */ + + /* Use the basename of the file as the module name. + * REVISIT: This places an non-standard restriction. We cannot install + * two modules of the same name event though they lie in different + * directories. + */ + + name = strdup(file); + if (name == NULL) + { + return NULL; + } + + /* Then install the file using the basename of the file as the module name. */ + + handle = insmod(file, basename(name)); + free(name); + return handle; + +#elif defined(CONFIG_BUILD_PROTECTED) + /* The PROTECTED build is equivalent to the FLAT build EXCEPT that there + * must be two copies of the the module logic: One residing in kernel + * space and using the kernel symbol table and one residing in user space + * using the user space symbol table. + * + * The brute force way to accomplish this is by just copying the kernel + * module code into libc/module. + */ + +#warning Missing logic + return NULL; + +#else /* if defined(CONFIG_BUILD_KERNEL) */ + /* The KERNEL build is considerably more complex: In order to be shared, + * the .text portion of the module must be (1) build for PIC/PID operation + * and (2) must like in a shared memory region accessible from all + * processes. The .data/.bss portion of the module must be allocated in + * the user space of each process, but must lie at the same virtual address + * so that it can be referenced from the one copy of the text in the shared + * memory region. + */ + +#warning Missing logic + return NULL; +#endif +} diff --git a/libc/dllfcn/lib_dlsym.c b/libc/dllfcn/lib_dlsym.c new file mode 100644 index 00000000000..85ed5225652 --- /dev/null +++ b/libc/dllfcn/lib_dlsym.c @@ -0,0 +1,116 @@ +/**************************************************************************** + * libc/dllfcn/lib_dlsym.c + * + * Copyright (C) 2017 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 + +#include + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: dlsym + * + * Description: + * dlsym() allows a process to obtain the address of a symbol defined + * within an object made accessible through a dlopen() call. handle is the + * value returned from a call to dlopen() (and which has not since been + * released via a call to dlclose()), name is the symbol's name as a + * character string. + * + * dlsym() will search for the named symbol in all objects loaded + * automatically as a result of loading the object referenced by handle + * (see dlopen()). Load ordering is used in dlsym() operations upon the + * global symbol object. The symbol resolution algorithm used will be + * dependency order as described in dlopen(). + * + * Input Parameters: + * handle - The opaque, non-NULL value returned by a previous successful + * call to dlopen(). + * name - A pointer to the symbol name string. + * + * Returned Value: + * If handle does not refer to a valid object opened by dlopen(), or if + * the named symbol cannot be found within any of the objects associated + * with handle, dlsym() will return NULL. More detailed diagnostic + * information will be available through dlerror(). + * + * Reference: OpenGroup.org + * + ****************************************************************************/ + +FAR void *dlsym(FAR void *handle, FAR const char *name) +{ +#if defined(CONFIG_BUILD_FLAT) + /* In the FLAT build, a shared library is essentially the same as a kernel + * module. + */ + + return (FAR void *)modsym(handle, name); + +#elif defined(CONFIG_BUILD_PROTECTED) + /* The PROTECTED build is equivalent to the FLAT build EXCEPT that there + * must be two copies of the the module logic: One residing in kernel + * space and using the kernel symbol table and one residing in user space + * using the user space symbol table. + * + * The brute force way to accomplish this is by just copying the kernel + * module code into libc/module. + */ + +#warning Missing logic + return NULL; + +#else /* if defined(CONFIG_BUILD_KERNEL) */ + /* The KERNEL build is considerably more complex: In order to be shared, + * the .text portion of the module must be (1) build for PIC/PID operation + * and (2) must like in a shared memory region accessible from all + * processes. The .data/.bss portion of the module must be allocated in + * the user space of each process, but must lie at the same virtual address + * so that it can be referenced from the one copy of the text in the shared + * memory region. + */ + +#warning Missing logic + return NULL; +#endif +} \ No newline at end of file diff --git a/libc/dllfcn/lib_dlsymtab.c b/libc/dllfcn/lib_dlsymtab.c new file mode 100644 index 00000000000..1b192024fbe --- /dev/null +++ b/libc/dllfcn/lib_dlsymtab.c @@ -0,0 +1,103 @@ +/**************************************************************************** + * libc/dllfcn/lib_symtab.c + * + * Copyright (C) 2017 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 + +#include + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: dlsymtab + * + * Description: + * dlsymtab() is a non-standard shared library interface. It selects the + * symbol table to use when binding a shared libary to the base firmware + * which may be in FLASH memory. + * + * Input Parameters: + * symtab - The new symbol table. + * nsymbols - The number of symbols in the symbol table. + * + * Returned Value: + * Always returns OK. + * + ****************************************************************************/ + +int dlsymtab(FAR const struct symtab_s *symtab, int nsymbols) +{ +#if defined(CONFIG_BUILD_FLAT) + /* In the FLAT build, a shared library is essentially the same as a kernel + * module. + */ + + mod_setsymtab(symtab, nsymbols); + return OK; + +#elif defined(CONFIG_BUILD_PROTECTED) + /* The PROTECTED build is equivalent to the FLAT build EXCEPT that there + * must be two copies of the the module logic: One residing in kernel + * space and using the kernel symbol table and one residing in user space + * using the user space symbol table. + * + * The brute force way to accomplish this is by just copying the kernel + * module code into libc/module. + */ + +#warning Missing logic + return NULL; + +#else /* if defined(CONFIG_BUILD_KERNEL) */ + /* The KERNEL build is considerably more complex: In order to be shared, + * the .text portion of the module must be (1) build for PIC/PID operation + * and (2) must like in a shared memory region accessible from all + * processes. The .data/.bss portion of the module must be allocated in + * the user space of each process, but must lie at the same virtual address + * so that it can be referenced from the one copy of the text in the shared + * memory region. + */ + +#warning Missing logic + return NULL; +#endif +} \ No newline at end of file diff --git a/libc/machine/Kconfig b/libc/machine/Kconfig new file mode 100644 index 00000000000..7620774c44c --- /dev/null +++ b/libc/machine/Kconfig @@ -0,0 +1,128 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +# These are library functions that may be overriden by architecture- +# specific implementations. Not all architectures support implementations +# for every library function. + +config LIBC_ARCH_MEMCPY + bool + default n + +config LIBC_ARCH_MEMCMP + bool + default n + +config LIBC_ARCH_MEMMOVE + bool + default n + +config LIBC_ARCH_MEMSET + bool + default n + +config LIBC_ARCH_STRCHR + bool + default n + +config LIBC_ARCH_STRCMP + bool + default n + +config LIBC_ARCH_STRCPY + bool + default n + +config LIBC_ARCH_STRNCPY + bool + default n + +config LIBC_ARCH_STRLEN + bool + default n + +config LIBC_ARCH_STRNLEN + bool + default n + +config LIBC_ARCH_BZERO + bool + default n + +config LIBC_ARCH_ELF + bool + default n + +config LIBM_ARCH_CEIL + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_FLOOR + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_NEARBYINT + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_RINT + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_ROUND + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_TRUNC + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_CEILF + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_FLOORF + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_NEARBYINTF + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_RINTF + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_ROUNDF + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +config LIBM_ARCH_TRUNCF + bool + default n + depends on LIBM && ARCH_CORTEXM33 + +# One or more the of above may be selected by architecture specific logic + +if ARCH_ARM +source libc/machine/arm/Kconfig +endif +if ARCH_SIM +source libc/machine/sim/Kconfig +endif +if ARCH_X86 +source libc/machine/x86/Kconfig +endif diff --git a/libc/machine/Make.defs b/libc/machine/Make.defs new file mode 100644 index 00000000000..dee7518e5b4 --- /dev/null +++ b/libc/machine/Make.defs @@ -0,0 +1,44 @@ +############################################################################ +# libc/machine/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_ARCH_ARM),y) +include ${TOPDIR}/libc/machine/arm/Make.defs +endif +ifeq ($(CONFIG_ARCH_SIM),y) +include ${TOPDIR}/libc/machine/sim/Make.defs +endif +ifeq ($(CONFIG_ARCH_X86),y) +include ${TOPDIR}/libc/machine/x86/Make.defs +endif diff --git a/libc/machine/arm/Kconfig b/libc/machine/arm/Kconfig new file mode 100644 index 00000000000..a4314ed8d64 --- /dev/null +++ b/libc/machine/arm/Kconfig @@ -0,0 +1,28 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +if ARCH_ARM7TDMI || ARCH_ARM920T || ARCH_ARM926EJS +source libc/machine/arm/arm/Kconfig +endif + +if ARCH_CORTEXA5 || ARCH_CORTEXA8 || ARCH_CORTEXA9 +source libc/machine/arm/armv7-a/Kconfig +endif + +if ARCH_CORTEXR4 || ARCH_CORTEXR4F || ARCH_CORTEXR5 || ARCH_CORTEXR5F || ARCH_CORTEXR7 || ARCH_CORTEXR7F +source libc/machine/arm/armv7-r/Kconfig +endif + +if ARCH_CORTEXM0 +source libc/machine/arm/armv6-m/Kconfig +endif + +if ARCH_CORTEXM3 || ARCH_CORTEXM4 || ARCH_CORTEXM7 +source libc/machine/arm/armv7-m/Kconfig +endif + +if ARCH_CORTEXM33 +source libc/machine/arm/armv8/Kconfig +endif diff --git a/libc/machine/arm/Make.defs b/libc/machine/arm/Make.defs new file mode 100644 index 00000000000..9bcd5b06ea7 --- /dev/null +++ b/libc/machine/arm/Make.defs @@ -0,0 +1,70 @@ +############################################################################ +# libc/machine/arm/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_ARCH_ARM7TDMI),y) # ARM7TDMI is ARMv4T +include ${TOPDIR}/libc/machine/arm/arm/Make.defs +else ifeq ($(CONFIG_ARCH_ARM920T),y) # ARM920T is ARMv4T +include ${TOPDIR}/libc/machine/arm/arm/Make.defs +else ifeq ($(CONFIG_ARCH_ARM926EJS),y) # ARM926EJS is ARMv5TE +include ${TOPDIR}/libc/machine/arm/arm/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXA5),y) # Cortex-A5 is ARMv7-A +include ${TOPDIR}/libc/machine/arm/armv7-a/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXA8),y) # Cortex-A8 is ARMv7-A +include ${TOPDIR}/libc/machine/arm/armv7-a/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXA9),y) # Cortex-A9 is ARMv7-A +include ${TOPDIR}/libc/machine/arm/armv7-a/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXR4),y) # Cortex-R4 is ARMv7-R +include ${TOPDIR}/libc/machine/arm/armv7-r/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXR4F),y) # Cortex-R4F is ARMv7-R +include ${TOPDIR}/libc/machine/arm/armv7-r/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXR5),y) # Cortex-R5 is ARMv7-R +include ${TOPDIR}/libc/machine/arm/armv7-r/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXR5F),y) # Cortex-R5F is ARMv7-R +include ${TOPDIR}/libc/machine/arm/armv7-r/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXR7),y) # Cortex-R7 is ARMv7-R +include ${TOPDIR}/libc/machine/arm/armv7-r/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXR7F),y) # Cortex-R7F is ARMv7-R +include ${TOPDIR}/libc/machine/arm/armv7-r/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXM0),y) # Cortex-M0 is ARMv6-M +include ${TOPDIR}/libc/machine/arm/armv6-m/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXM3),y) # Cortex-M3 is ARMv7-M +include ${TOPDIR}/libc/machine/arm/armv7-m/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXM33),y) # Cortex-M33 is ARMv8-M +include ${TOPDIR}/libc/machine/arm/armv8/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXM4),y) # Cortex-M4 is ARMv7E-M +include ${TOPDIR}/libc/machine/arm/armv7-m/Make.defs +else ifeq ($(CONFIG_ARCH_CORTEXM7),y) # Cortex-M4 is ARMv7E-M +include ${TOPDIR}/libc/machine/arm/armv7-m/Make.defs +endif diff --git a/libc/machine/arm/arm/Kconfig b/libc/machine/arm/arm/Kconfig new file mode 100644 index 00000000000..f72f3c094ce --- /dev/null +++ b/libc/machine/arm/arm/Kconfig @@ -0,0 +1,4 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# diff --git a/libc/machine/arm/arm/Make.defs b/libc/machine/arm/arm/Make.defs new file mode 100644 index 00000000000..d5632227c7a --- /dev/null +++ b/libc/machine/arm/arm/Make.defs @@ -0,0 +1,43 @@ +############################################################################ +# libc/machine/arm/arm/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_LIBC_ARCH_ELF),y) + +CSRCS += arch_elf.c + +DEPPATH += --dep-path machine/arm/arm +VPATH += :machine/arm/arm + +endif diff --git a/arch/arm/src/arm/up_elf.c b/libc/machine/arm/arm/arch_elf.c similarity index 98% rename from arch/arm/src/arm/up_elf.c rename to libc/machine/arm/arm/arch_elf.c index c6d88bdc325..6e1e3cfcb6b 100644 --- a/arch/arm/src/arm/up_elf.c +++ b/libc/machine/arm/arm/arch_elf.c @@ -1,7 +1,7 @@ /**************************************************************************** - * arch/arm/src/arm/up_elf.c + * libc/machine/arm/arm/arch_elf.c * - * Copyright (C) 2012, 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2014, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -115,7 +115,7 @@ bool up_checkarch(FAR const Elf32_Ehdr *ehdr) if ((ehdr->e_entry & 3) != 0) { berr("ERROR: Entry point is not properly aligned: %08x\n", ehdr->e_entry); - return -ENOEXEC + return -ENOEXEC; } /* TODO: Check ABI here. */ diff --git a/libc/machine/arm/armv6-m/Kconfig b/libc/machine/arm/armv6-m/Kconfig new file mode 100644 index 00000000000..f72f3c094ce --- /dev/null +++ b/libc/machine/arm/armv6-m/Kconfig @@ -0,0 +1,4 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# diff --git a/libc/machine/arm/armv6-m/Make.defs b/libc/machine/arm/armv6-m/Make.defs new file mode 100644 index 00000000000..36addcd441a --- /dev/null +++ b/libc/machine/arm/armv6-m/Make.defs @@ -0,0 +1,43 @@ +############################################################################ +# libc/machine/arm/armv6-m/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_LIBC_ARCH_ELF),y) + +CSRCS += arch_elf.c + +DEPPATH += --dep-path machine/arm/armv6-m +VPATH += :machine/arm/armv6-m + +endif diff --git a/arch/arm/src/armv6-m/up_elf.c b/libc/machine/arm/armv6-m/arch_elf.c similarity index 99% rename from arch/arm/src/armv6-m/up_elf.c rename to libc/machine/arm/armv6-m/arch_elf.c index 7bde5d01106..3f957b6fdfb 100644 --- a/arch/arm/src/armv6-m/up_elf.c +++ b/libc/machine/arm/armv6-m/arch_elf.c @@ -1,7 +1,7 @@ /**************************************************************************** - * arch/arm/src/armv6-m/up_elf.c + * libc/machine/arm/armv6-m/arch_elf.c * - * Copyright (C) 2013-2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2013-2014, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without diff --git a/libc/machine/arm/armv7-a/Kconfig b/libc/machine/arm/armv7-a/Kconfig new file mode 100644 index 00000000000..7a216e711cb --- /dev/null +++ b/libc/machine/arm/armv7-a/Kconfig @@ -0,0 +1,11 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +config ARMV7A_MEMCPY + bool "Enable optimized memcpy() for ARMv7-A" + select LIBC_ARCH_MEMCPY + depends on ARM_TOOLCHAIN_GNU + ---help--- + Enable optimized ARMv7-A specific memcpy() library function diff --git a/libc/machine/arm/armv7-a/Make.defs b/libc/machine/arm/armv7-a/Make.defs new file mode 100644 index 00000000000..14bd255a990 --- /dev/null +++ b/libc/machine/arm/armv7-a/Make.defs @@ -0,0 +1,52 @@ +############################################################################ +# libc/machine/arm/armv7-a/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_ARMV7A_MEMCPY),y) + +ASRCS += arch_memcpy.S + +DEPPATH += --dep-path machine/arm/armv7-a/gnu +VPATH += :machine/arm/armv7-a/gnu + +endif + +ifeq ($(CONFIG_LIBC_ARCH_ELF),y) + +CSRCS += arch_elf.c + +DEPPATH += --dep-path machine/arm/armv7-a +VPATH += :machine/arm/armv7-a + +endif diff --git a/arch/arm/src/armv7-a/arm_elf.c b/libc/machine/arm/armv7-a/arch_elf.c similarity index 98% rename from arch/arm/src/armv7-a/arm_elf.c rename to libc/machine/arm/armv7-a/arch_elf.c index 8b9528159ce..be4801af891 100644 --- a/arch/arm/src/armv7-a/arm_elf.c +++ b/libc/machine/arm/armv7-a/arch_elf.c @@ -1,7 +1,7 @@ /**************************************************************************** - * arch/arm/src/armv-7a/arm_elf.c + * libc/machine/arm/armv-7a/arm_elf.c * - * Copyright (C) 2013-2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2013-2014, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without diff --git a/arch/arm/src/armv7-r/arm_memcpy.S b/libc/machine/arm/armv7-a/gnu/arch_memcpy.S similarity index 71% rename from arch/arm/src/armv7-r/arm_memcpy.S rename to libc/machine/arm/armv7-a/gnu/arch_memcpy.S index b88a0e08691..a2082d648f2 100644 --- a/arch/arm/src/armv7-r/arm_memcpy.S +++ b/libc/machine/arm/armv7-a/gnu/arch_memcpy.S @@ -1,9 +1,14 @@ /************************************************************************************ - * nuttx/arch/arm/src/armv7-r/arm_memcpy.S + * libc/machine/arm/armv7-a/arm_memcpy.S + * ARMv7-A optimized memcpy. * - * ARMv7-R optimised memcpy, based on the ARMv7-M version contributed by Mike Smith. - * Apparently in the public domain and is re-released here under the modified BSD - * license: + * Adapted for use with ARMv7-A and NuttX by: + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Based on the ARMv7-M version contributed by Mike Smith. Apparently in the public + * domain and is re-released here under the modified BSD license: * * Obtained via a posting on the Stellaris forum: * http://e2e.ti.com/support/microcontrollers/\ @@ -58,14 +63,8 @@ ************************************************************************************/ .global memcpy - -#ifdef CONFIG_ARCH_FPU - .cpu cortex-r4 -#else - .cpu cortex-r4f -#endif .syntax unified - .file "arm_memcpy.S" + .file "arch_memcpy.S" /************************************************************************************ * .text @@ -101,38 +100,36 @@ */ MEM_DataCopyTable: - .byte (MEM_DataCopy0 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy1 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy2 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy3 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy4 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy5 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy6 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy7 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy8 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy9 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy10 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy11 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy12 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy13 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy14 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy15 - MEM_DataCopyJump) >> 1 + .byte (MEM_DataCopy0 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy1 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy2 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy3 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy4 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy5 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy6 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy7 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy8 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy9 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy10 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy11 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy12 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy13 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy14 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy15 - MEM_DataCopyJump) >> 2 .align 2 MEM_LongCopyTable: - .byte (MEM_LongCopyEnd - MEM_LongCopyJump) >> 1 /* 0 bytes left */ - .byte 0 /* 4 bytes left */ - .byte (1 * 10) >> 1 /* 8 bytes left */ - .byte (2 * 10) >> 1 /* 12 bytes left */ - .byte (3 * 10) >> 1 /* 16 bytes left */ - .byte (4 * 10) >> 1 /* 20 bytes left */ - .byte (5 * 10) >> 1 /* 24 bytes left */ - .byte (6 * 10) >> 1 /* 28 bytes left */ - .byte (7 * 10) >> 1 /* 32 bytes left */ - .byte (8 * 10) >> 1 /* 36 bytes left */ - - .align 2 + .byte (MEM_LongCopyEnd - MEM_LongCopyJump) >> 2 /* 0 bytes left */ + .byte (MEM_LongCopyJump0 - MEM_LongCopyJump) >> 2 /* 4 bytes left */ + .byte (MEM_LongCopyJump1 - MEM_LongCopyJump) >> 2 /* 8 bytes left */ + .byte (MEM_LongCopyJump2 - MEM_LongCopyJump) >> 2 /* 12 bytes left */ + .byte (MEM_LongCopyJump3 - MEM_LongCopyJump) >> 2 /* 16 bytes left */ + .byte (MEM_LongCopyJump4 - MEM_LongCopyJump) >> 2 /* 20 bytes left */ + .byte (MEM_LongCopyJump5 - MEM_LongCopyJump) >> 2 /* 24 bytes left */ + .byte (MEM_LongCopyJump6 - MEM_LongCopyJump) >> 2 /* 28 bytes left */ + .byte (MEM_LongCopyJump7 - MEM_LongCopyJump) >> 2 /* 32 bytes left */ + .byte (MEM_LongCopyJump8 - MEM_LongCopyJump) >> 2 /* 36 bytes left */ /************************************************************************************ * Public Functions @@ -141,7 +138,7 @@ MEM_LongCopyTable: * Name: memcpy * * Description: - * Optimised "general" copy routine + * Optimized "general" copy routine * * Input Parameters: * r0 = destination, r1 = source, r2 = length @@ -164,20 +161,27 @@ memcpy: _do_memcpy: push {r14} + push {r4} /* This allows the inner workings to "assume" a minimum amount of bytes */ /* Quickly check for very short copies */ cmp r2, #4 - blt.n MEM_DataCopyBytes + blt MEM_DataCopyBytes and r14, r0, #3 /* Get destination alignment bits */ bfi r14, r1, #2, #2 /* Get source alignment bits */ - ldr r3, =MEM_DataCopyTable /* Jump table base */ - tbb [r3, r14] /* Perform jump on src/dst alignment bits */ -MEM_DataCopyJump: + + ldr r3, =MEM_DataCopyTable /* Jump table base address */ + ldrb r4, [r3, r14] /* DWord offset for this alignment combination */ + ldr r3, =MEM_DataCopyJump /* Base of branch table anchor */ + add r3, r3, r4, lsl #2 /* Absolute address of logic */ + bx r3 + + /* data copy branch table anchor */ .align 4 +MEM_DataCopyJump: /* Bits: Src=01, Dst=01 - Byte before half word to byte before half word - Same alignment * 3 bytes to read for long word aligning @@ -211,12 +215,12 @@ MEM_DataCopy15: MEM_DataCopy0: /* Save regs that may be used by memcpy */ - push {r4-r12} + push {r5-r12} /* Check for short word-aligned copy */ cmp r2, #0x28 - blt.n MEM_DataCopy0_2 + blt MEM_DataCopy0_2 /* Bulk copy loop */ @@ -225,49 +229,69 @@ MEM_DataCopy0_1: stmia r0!, {r3-r12} sub r2, r2, #0x28 cmp r2, #0x28 - bge.n MEM_DataCopy0_1 + bge MEM_DataCopy0_1 /* Copy remaining long words */ MEM_DataCopy0_2: - /* Copy remaining long words */ - - ldr r14, =MEM_LongCopyTable - lsr r11, r2, #0x02 - tbb [r14, r11] + ldr r14, =MEM_LongCopyTable /* Jump table base address */ + lsr r11, r2, 2 /* Convert byte count to word count */ + add r14, r14, r11 /* Jump table offset address */ + ldrb r3, [r14] /* DWord offset from branch table anchor */ + ldr r11, =MEM_LongCopyJump /* Address of branch table anchor */ + add r11, r11, r3, lsl #2 /* Absolute address into branch table */ + bx r11 /* Go there */ /* longword copy branch table anchor */ MEM_LongCopyJump: - ldr.w r3, [r1], #0x04 /* 4 bytes remain */ - str.w r3, [r0], #0x04 - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r4} /* 8 bytes remain */ - stmia.w r0!, {r3-r4} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r5} /* 12 bytes remain */ - stmia.w r0!, {r3-r5} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r6} /* 16 bytes remain */ - stmia.w r0!, {r3-r6} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r7} /* 20 bytes remain */ - stmia.w r0!, {r3-r7} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r8} /* 24 bytes remain */ - stmia.w r0!, {r3-r8} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r9} /* 28 bytes remain */ - stmia.w r0!, {r3-r9} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r10} /* 32 bytes remain */ - stmia.w r0!, {r3-r10} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r11} /* 36 bytes remain */ - stmia.w r0!, {r3-r11} + +MEM_LongCopyJump0: + ldr r3, [r1], #0x04 /* 4 bytes remain */ + str r3, [r0], #0x04 + b MEM_LongCopyEnd + +MEM_LongCopyJump1: + ldmia r1!, {r3-r4} /* 8 bytes remain */ + stmia r0!, {r3-r4} + b MEM_LongCopyEnd + +MEM_LongCopyJump2: + ldmia r1!, {r3-r5} /* 12 bytes remain */ + stmia r0!, {r3-r5} + b MEM_LongCopyEnd + +MEM_LongCopyJump3: + ldmia r1!, {r3-r6} /* 16 bytes remain */ + stmia r0!, {r3-r6} + b MEM_LongCopyEnd + +MEM_LongCopyJump4: + ldmia r1!, {r3-r7} /* 20 bytes remain */ + stmia r0!, {r3-r7} + b MEM_LongCopyEnd + +MEM_LongCopyJump5: + ldmia r1!, {r3-r8} /* 24 bytes remain */ + stmia r0!, {r3-r8} + b MEM_LongCopyEnd + +MEM_LongCopyJump6: + ldmia r1!, {r3-r9} /* 28 bytes remain */ + stmia r0!, {r3-r9} + b MEM_LongCopyEnd + +MEM_LongCopyJump7: + ldmia r1!, {r3-r10} /* 32 bytes remain */ + stmia r0!, {r3-r10} + b MEM_LongCopyEnd + +MEM_LongCopyJump8: + ldmia r1!, {r3-r11} /* 36 bytes remain */ + stmia r0!, {r3-r11} MEM_LongCopyEnd: - pop {r4-r12} + pop {r5-r12} and r2, r2, #0x03 /* All the longs have been copied */ /* Deal with up to 3 remaining bytes */ @@ -275,19 +299,23 @@ MEM_LongCopyEnd: MEM_DataCopyBytes: /* Deal with up to 3 remaining bytes */ + pop {r4} cmp r2, #0x00 it eq popeq {pc} + ldrb r3, [r1], #0x01 strb r3, [r0], #0x01 subs r2, r2, #0x01 it eq popeq {pc} + ldrb r3, [r1], #0x01 strb r3, [r0], #0x01 subs r2, r2, #0x01 it eq popeq {pc} + ldrb r3, [r1], #0x01 strb r3, [r0], #0x01 pop {pc} @@ -325,11 +353,11 @@ MEM_DataCopy13: MEM_DataCopy2: cmp r2, #0x28 - blt.n MEM_DataCopy2_1 + blt MEM_DataCopy2_1 /* Save regs */ - push {r4-r12} + push {r5-r12} /* Bulk copy loop */ @@ -362,18 +390,18 @@ MEM_DataCopy2_2: sub r2, r2, #0x28 cmp r2, #0x28 - bge.n MEM_DataCopy2_2 - pop {r4-r12} + bge MEM_DataCopy2_2 + pop {r5-r12} MEM_DataCopy2_1: /* Read longs and write 2 x half words */ cmp r2, #4 - blt.n MEM_DataCopyBytes + blt MEM_DataCopyBytes ldr r3, [r1], #0x04 strh r3, [r0], #0x02 lsr r3, r3, #0x10 strh r3, [r0], #0x02 sub r2, r2, #0x04 - b.n MEM_DataCopy2 + b MEM_DataCopy2 /* Bits: Src=01, Dst=00 - Byte before half word to long * Bits: Src=01, Dst=10 - Byte before half word to half word @@ -427,7 +455,7 @@ MEM_DataCopy3: lsr r3, r3, #0x10 strb r3, [r0], #0x01 sub r2, r2, #0x04 - b.n MEM_DataCopy3 + b MEM_DataCopy3 .size memcpy, .-memcpy .end diff --git a/libc/machine/arm/armv7-m/Kconfig b/libc/machine/arm/armv7-m/Kconfig new file mode 100644 index 00000000000..7148c25c4b7 --- /dev/null +++ b/libc/machine/arm/armv7-m/Kconfig @@ -0,0 +1,11 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +config ARMV7M_MEMCPY + bool "Enable optimized memcpy() for ARMv7-M" + select LIBC_ARCH_MEMCPY + depends on ARM_TOOLCHAIN_GNU + ---help--- + Enable optimized ARMv7-M specific memcpy() library function diff --git a/libc/machine/arm/armv7-m/Make.defs b/libc/machine/arm/armv7-m/Make.defs new file mode 100644 index 00000000000..a9985a70b89 --- /dev/null +++ b/libc/machine/arm/armv7-m/Make.defs @@ -0,0 +1,53 @@ +############################################################################ +# libc/machine/arm/armv7-m/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_ARMV7M_MEMCPY),y) + +ASRCS += arch_memcpy.S + +DEPPATH += --dep-path machine/arm/armv7-m/gnu +VPATH += :machine/arm/armv7-m/gnu + +endif + +ifeq ($(CONFIG_LIBC_ARCH_ELF),y) + +CSRCS += arch_elf.c + +DEPPATH += --dep-path machine/arm/armv7-m +VPATH += :machine/arm/armv7-m + +endif + diff --git a/arch/arm/src/armv7-m/up_elf.c b/libc/machine/arm/armv7-m/arch_elf.c similarity index 99% rename from arch/arm/src/armv7-m/up_elf.c rename to libc/machine/arm/armv7-m/arch_elf.c index f2e0cdd9792..7e4238e0c9f 100644 --- a/arch/arm/src/armv7-m/up_elf.c +++ b/libc/machine/arm/armv7-m/arch_elf.c @@ -1,7 +1,7 @@ /**************************************************************************** - * arch/arm/src/armv7-m/up_elf.c + * libc/machine/arm/armv7-m/arch_elf.c * - * Copyright (C) 2012, 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2014, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without diff --git a/arch/arm/src/armv7-m/gnu/up_memcpy.S b/libc/machine/arm/armv7-m/gnu/arch_memcpy.S similarity index 98% rename from arch/arm/src/armv7-m/gnu/up_memcpy.S rename to libc/machine/arm/armv7-m/gnu/arch_memcpy.S index cf34648d012..584aaaf9c1e 100644 --- a/arch/arm/src/armv7-m/gnu/up_memcpy.S +++ b/libc/machine/arm/armv7-m/gnu/arch_memcpy.S @@ -1,7 +1,7 @@ /************************************************************************************ - * nuttx/arch/arm/src/armv7-m/gnu/up_memcpy.S + * libc/machine/arm/armv7-m/gnu/up_memcpy.S * - * armv7m-optimised memcpy, contributed by Mike Smith. Apparently in the public + * armv7m-optimized memcpy, contributed by Mike Smith. Apparently in the public * domain and is re-released here under the modified BSD license: * * Obtained via a posting on the Stellaris forum: @@ -57,11 +57,9 @@ ************************************************************************************/ .global memcpy - .syntax unified .thumb - .cpu cortex-m3 - .file "up_memcpy.S" + .file "arch_memcpy.S" /************************************************************************************ * .text @@ -137,7 +135,7 @@ MEM_LongCopyTable: * Name: memcpy * * Description: - * Optimised "general" copy routine + * Optimized "general" copy routine * * Input Parameters: * r0 = destination, r1 = source, r2 = length diff --git a/libc/machine/arm/armv7-r/Kconfig b/libc/machine/arm/armv7-r/Kconfig new file mode 100644 index 00000000000..e772a2942d5 --- /dev/null +++ b/libc/machine/arm/armv7-r/Kconfig @@ -0,0 +1,11 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +config ARMV7R_MEMCPY + bool "Enable optimized memcpy() for ARMv7-R" + select LIBC_ARCH_MEMCPY + depends on ARM_TOOLCHAIN_GNU + ---help--- + Enable optimized ARMv7-R specific memcpy() library function diff --git a/libc/machine/arm/armv7-r/Make.defs b/libc/machine/arm/armv7-r/Make.defs new file mode 100644 index 00000000000..3f21e0a7e7c --- /dev/null +++ b/libc/machine/arm/armv7-r/Make.defs @@ -0,0 +1,52 @@ +############################################################################ +# libc/machine/arm/armv7-r/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_ARMV7R_MEMCPY),y) + +ASRCS += arch_memcpy.S + +DEPPATH += --dep-path machine/arm/armv7-r/gnu +VPATH += :machine/arm/armv7-r/gnu + +endif + +ifeq ($(CONFIG_LIBC_ARCH_ELF),y) + +CSRCS += arch_elf.c + +DEPPATH += --dep-path machine/arm/armv7-r +VPATH += :machine/arm/armv7-r + +endif diff --git a/arch/arm/src/armv7-r/arm_elf.c b/libc/machine/arm/armv7-r/arch_elf.c similarity index 98% rename from arch/arm/src/armv7-r/arm_elf.c rename to libc/machine/arm/armv7-r/arch_elf.c index 4ab4713b62e..36f65fae1f9 100644 --- a/arch/arm/src/armv7-r/arm_elf.c +++ b/libc/machine/arm/armv7-r/arch_elf.c @@ -1,7 +1,7 @@ /**************************************************************************** - * arch/arm/src/armv7-r/arm_elf.c + * libc/machine/arm/armv7-r/arm_elf.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without diff --git a/arch/arm/src/armv7-a/arm_memcpy.S b/libc/machine/arm/armv7-r/gnu/arch_memcpy.S similarity index 70% rename from arch/arm/src/armv7-a/arm_memcpy.S rename to libc/machine/arm/armv7-r/gnu/arch_memcpy.S index 48e1294986b..d8d3d2202ef 100644 --- a/arch/arm/src/armv7-a/arm_memcpy.S +++ b/libc/machine/arm/armv7-r/gnu/arch_memcpy.S @@ -1,9 +1,14 @@ /************************************************************************************ - * nuttx/arch/arm/src/armv7-a/arm_memcpy.S + * libc/marchine/arm/armv7-r/arm_memcpy.S + * ARMv7-R optimized memcpy. * - * ARMv7-A optimised memcpy, based on the ARMv7-M version contributed by Mike Smith. - * Apparently in the public domain and is re-released here under the modified BSD - * license: + * Adapted for use with ARMv7-R and NuttX by: + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Based on the ARMv7-M version contributed by Mike Smith. Apparently in the public + * domain and is re-released here under the modified BSD license: * * Obtained via a posting on the Stellaris forum: * http://e2e.ti.com/support/microcontrollers/\ @@ -57,11 +62,9 @@ * Public Symbols ************************************************************************************/ - .global memcpy - - .syntax unified - - .file "arm_memcpy.S" + .global memcpy + .syntax unified + .file "arch_memcpy.S" /************************************************************************************ * .text @@ -97,38 +100,36 @@ */ MEM_DataCopyTable: - .byte (MEM_DataCopy0 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy1 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy2 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy3 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy4 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy5 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy6 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy7 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy8 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy9 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy10 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy11 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy12 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy13 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy14 - MEM_DataCopyJump) >> 1 - .byte (MEM_DataCopy15 - MEM_DataCopyJump) >> 1 + .byte (MEM_DataCopy0 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy1 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy2 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy3 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy4 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy5 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy6 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy7 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy8 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy9 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy10 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy11 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy12 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy13 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy14 - MEM_DataCopyJump) >> 2 + .byte (MEM_DataCopy15 - MEM_DataCopyJump) >> 2 .align 2 MEM_LongCopyTable: - .byte (MEM_LongCopyEnd - MEM_LongCopyJump) >> 1 /* 0 bytes left */ - .byte 0 /* 4 bytes left */ - .byte (1 * 10) >> 1 /* 8 bytes left */ - .byte (2 * 10) >> 1 /* 12 bytes left */ - .byte (3 * 10) >> 1 /* 16 bytes left */ - .byte (4 * 10) >> 1 /* 20 bytes left */ - .byte (5 * 10) >> 1 /* 24 bytes left */ - .byte (6 * 10) >> 1 /* 28 bytes left */ - .byte (7 * 10) >> 1 /* 32 bytes left */ - .byte (8 * 10) >> 1 /* 36 bytes left */ - - .align 2 + .byte (MEM_LongCopyEnd - MEM_LongCopyJump) >> 2 /* 0 bytes left */ + .byte (MEM_LongCopyJump0 - MEM_LongCopyJump) >> 2 /* 4 bytes left */ + .byte (MEM_LongCopyJump1 - MEM_LongCopyJump) >> 2 /* 8 bytes left */ + .byte (MEM_LongCopyJump2 - MEM_LongCopyJump) >> 2 /* 12 bytes left */ + .byte (MEM_LongCopyJump3 - MEM_LongCopyJump) >> 2 /* 16 bytes left */ + .byte (MEM_LongCopyJump4 - MEM_LongCopyJump) >> 2 /* 20 bytes left */ + .byte (MEM_LongCopyJump5 - MEM_LongCopyJump) >> 2 /* 24 bytes left */ + .byte (MEM_LongCopyJump6 - MEM_LongCopyJump) >> 2 /* 28 bytes left */ + .byte (MEM_LongCopyJump7 - MEM_LongCopyJump) >> 2 /* 32 bytes left */ + .byte (MEM_LongCopyJump8 - MEM_LongCopyJump) >> 2 /* 36 bytes left */ /************************************************************************************ * Public Functions @@ -137,7 +138,7 @@ MEM_LongCopyTable: * Name: memcpy * * Description: - * Optimised "general" copy routine + * Optimized "general" copy routine * * Input Parameters: * r0 = destination, r1 = source, r2 = length @@ -160,20 +161,27 @@ memcpy: _do_memcpy: push {r14} + push {r4} /* This allows the inner workings to "assume" a minimum amount of bytes */ /* Quickly check for very short copies */ cmp r2, #4 - blt.n MEM_DataCopyBytes + blt MEM_DataCopyBytes and r14, r0, #3 /* Get destination alignment bits */ bfi r14, r1, #2, #2 /* Get source alignment bits */ - ldr r3, =MEM_DataCopyTable /* Jump table base */ - tbb [r3, r14] /* Perform jump on src/dst alignment bits */ -MEM_DataCopyJump: + + ldr r3, =MEM_DataCopyTable /* Jump table base address */ + ldrb r4, [r3, r14] /* DWord offset for this alignment combination */ + ldr r3, =MEM_DataCopyJump /* Base of branch table anchor */ + add r3, r3, r4, lsl #2 /* Absolute address of logic */ + bx r3 + + /* data copy branch table anchor */ .align 4 +MEM_DataCopyJump: /* Bits: Src=01, Dst=01 - Byte before half word to byte before half word - Same alignment * 3 bytes to read for long word aligning @@ -207,12 +215,12 @@ MEM_DataCopy15: MEM_DataCopy0: /* Save regs that may be used by memcpy */ - push {r4-r12} + push {r5-r12} /* Check for short word-aligned copy */ cmp r2, #0x28 - blt.n MEM_DataCopy0_2 + blt MEM_DataCopy0_2 /* Bulk copy loop */ @@ -221,49 +229,69 @@ MEM_DataCopy0_1: stmia r0!, {r3-r12} sub r2, r2, #0x28 cmp r2, #0x28 - bge.n MEM_DataCopy0_1 + bge MEM_DataCopy0_1 /* Copy remaining long words */ MEM_DataCopy0_2: - /* Copy remaining long words */ - - ldr r14, =MEM_LongCopyTable - lsr r11, r2, #0x02 - tbb [r14, r11] + ldr r14, =MEM_LongCopyTable /* Jump table base address */ + lsr r11, r2, 2 /* Convert byte count to word count */ + add r14, r14, r11 /* Jump table offset address */ + ldrb r3, [r14] /* DWord offset from branch table anchor */ + ldr r11, =MEM_LongCopyJump /* Address of branch table anchor */ + add r11, r11, r3, lsl #2 /* Absolute address into branch table */ + bx r11 /* Go there */ /* longword copy branch table anchor */ MEM_LongCopyJump: - ldr.w r3, [r1], #0x04 /* 4 bytes remain */ - str.w r3, [r0], #0x04 - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r4} /* 8 bytes remain */ - stmia.w r0!, {r3-r4} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r5} /* 12 bytes remain */ - stmia.w r0!, {r3-r5} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r6} /* 16 bytes remain */ - stmia.w r0!, {r3-r6} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r7} /* 20 bytes remain */ - stmia.w r0!, {r3-r7} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r8} /* 24 bytes remain */ - stmia.w r0!, {r3-r8} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r9} /* 28 bytes remain */ - stmia.w r0!, {r3-r9} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r10} /* 32 bytes remain */ - stmia.w r0!, {r3-r10} - b.n MEM_LongCopyEnd - ldmia.w r1!, {r3-r11} /* 36 bytes remain */ - stmia.w r0!, {r3-r11} + +MEM_LongCopyJump0: + ldr r3, [r1], #0x04 /* 4 bytes remain */ + str r3, [r0], #0x04 + b MEM_LongCopyEnd + +MEM_LongCopyJump1: + ldmia r1!, {r3-r4} /* 8 bytes remain */ + stmia r0!, {r3-r4} + b MEM_LongCopyEnd + +MEM_LongCopyJump2: + ldmia r1!, {r3-r5} /* 12 bytes remain */ + stmia r0!, {r3-r5} + b MEM_LongCopyEnd + +MEM_LongCopyJump3: + ldmia r1!, {r3-r6} /* 16 bytes remain */ + stmia r0!, {r3-r6} + b MEM_LongCopyEnd + +MEM_LongCopyJump4: + ldmia r1!, {r3-r7} /* 20 bytes remain */ + stmia r0!, {r3-r7} + b MEM_LongCopyEnd + +MEM_LongCopyJump5: + ldmia r1!, {r3-r8} /* 24 bytes remain */ + stmia r0!, {r3-r8} + b MEM_LongCopyEnd + +MEM_LongCopyJump6: + ldmia r1!, {r3-r9} /* 28 bytes remain */ + stmia r0!, {r3-r9} + b MEM_LongCopyEnd + +MEM_LongCopyJump7: + ldmia r1!, {r3-r10} /* 32 bytes remain */ + stmia r0!, {r3-r10} + b MEM_LongCopyEnd + +MEM_LongCopyJump8: + ldmia r1!, {r3-r11} /* 36 bytes remain */ + stmia r0!, {r3-r11} MEM_LongCopyEnd: - pop {r4-r12} + pop {r5-r12} and r2, r2, #0x03 /* All the longs have been copied */ /* Deal with up to 3 remaining bytes */ @@ -271,19 +299,23 @@ MEM_LongCopyEnd: MEM_DataCopyBytes: /* Deal with up to 3 remaining bytes */ + pop {r4} cmp r2, #0x00 it eq popeq {pc} + ldrb r3, [r1], #0x01 strb r3, [r0], #0x01 subs r2, r2, #0x01 it eq popeq {pc} + ldrb r3, [r1], #0x01 strb r3, [r0], #0x01 subs r2, r2, #0x01 it eq popeq {pc} + ldrb r3, [r1], #0x01 strb r3, [r0], #0x01 pop {pc} @@ -321,11 +353,11 @@ MEM_DataCopy13: MEM_DataCopy2: cmp r2, #0x28 - blt.n MEM_DataCopy2_1 + blt MEM_DataCopy2_1 /* Save regs */ - push {r4-r12} + push {r5-r12} /* Bulk copy loop */ @@ -358,18 +390,18 @@ MEM_DataCopy2_2: sub r2, r2, #0x28 cmp r2, #0x28 - bge.n MEM_DataCopy2_2 - pop {r4-r12} + bge MEM_DataCopy2_2 + pop {r5-r12} MEM_DataCopy2_1: /* Read longs and write 2 x half words */ cmp r2, #4 - blt.n MEM_DataCopyBytes + blt MEM_DataCopyBytes ldr r3, [r1], #0x04 strh r3, [r0], #0x02 lsr r3, r3, #0x10 strh r3, [r0], #0x02 sub r2, r2, #0x04 - b.n MEM_DataCopy2 + b MEM_DataCopy2 /* Bits: Src=01, Dst=00 - Byte before half word to long * Bits: Src=01, Dst=10 - Byte before half word to half word @@ -423,7 +455,7 @@ MEM_DataCopy3: lsr r3, r3, #0x10 strb r3, [r0], #0x01 sub r2, r2, #0x04 - b.n MEM_DataCopy3 + b MEM_DataCopy3 .size memcpy, .-memcpy .end diff --git a/libc/machine/arm/armv8/Kconfig b/libc/machine/arm/armv8/Kconfig new file mode 100644 index 00000000000..002c44d1f9f --- /dev/null +++ b/libc/machine/arm/armv8/Kconfig @@ -0,0 +1,27 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +if ARCH_CORTEXM33 + +config ARMV8_LIBM + bool "Architecture specific optimizations" + default n + select LIBM_ARCH_CEIL if CONFIG_ARCH_DPFPU + select LIBM_ARCH_FLOOR if CONFIG_ARCH_DPFPU + select LIBM_ARCH_NEARBYINT if CONFIG_ARCH_DPFPU + select LIBM_ARCH_RINT if CONFIG_ARCH_DPFPU + select LIBM_ARCH_ROUND if CONFIG_ARCH_DPFPU + select LIBM_ARCH_TRUNC if CONFIG_ARCH_DPFPU + select LIBM_ARCH_CEILF if CONFIG_ARCH_FPU + select LIBM_ARCH_FLOORF if CONFIG_ARCH_FPU + select LIBM_ARCH_NEARBYINTF if CONFIG_ARCH_FPU + select LIBM_ARCH_RINTF if CONFIG_ARCH_FPU + select LIBM_ARCH_ROUNDF if CONFIG_ARCH_FPU + select LIBM_ARCH_TRUNCF if CONFIG_ARCH_FPU + depends on LIBM + ---help--- + Enable ARMv8 specific floating point optimizations. + +endif diff --git a/libc/machine/arm/armv8/Make.defs b/libc/machine/arm/armv8/Make.defs new file mode 100644 index 00000000000..4339d241bcd --- /dev/null +++ b/libc/machine/arm/armv8/Make.defs @@ -0,0 +1,89 @@ +############################################################################ +# libc/machine/arm/armv8/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_ARMV8_LIBM),y) + +ifeq ($(LIBM_ARCH_CEIL),y) +CSRCS += arch_ceil.c +endif + +ifeq ($(LIBM_ARCH_CEILF),y) +CSRCS += arch_ceilf.c +endif + +ifeq ($(LIBM_ARCH_FLOOR),y) +CSRCS += arch_floor.c +endif + +ifeq ($(LIBM_ARCH_FLOORF),y) +CSRCS += arch_floorf.c +endif + +ifeq ($(LIBM_ARCH_NEARBYINT),y) +CSRCS += arch_nearbyint.c +endif + +ifeq ($(LIBM_ARCH_NEARBYINTF),y) +CSRCS += arch_nearbyintf.c +endif + +ifeq ($(LIBM_ARCH_RINTF),y) +CSRCS += arch_rintf.c +endif + +ifeq ($(LIBM_ARCH_ROUNDF),y) +CSRCS += arch_roundf.c +endif + +ifeq ($(LIBM_ARCH_TRUNCF),y) +CSRCS += arch_truncf.c +endif + +ifeq ($(LIBM_ARCH_RINT),y) +CSRCS += arch_rint.c +endif + +ifeq ($(LIBM_ARCH_ROUND),y) +CSRCS += arch_round.c +endif + +ifeq ($(LIBM_ARCH_TRUNC),y) +CSRCS += arch_trunc.c +endif + +DEPPATH += --dep-path machine/arm/armv8 +VPATH += :machine/arm/armv8 + +endif # CONFIG_ARMV8_LIBM diff --git a/libc/machine/arm/armv8/arch_ceil.c b/libc/machine/arm/armv8/arch_ceil.c new file mode 100644 index 00000000000..ab951545b90 --- /dev/null +++ b/libc/machine/arm/armv8/arch_ceil.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_ceil.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x8) && !defined (__SOFTFP__) + +double ceil(double x) +{ + double result; + asm volatile ( "vrintp.f64\t%P0, %P1" : "=w" (result) : "w" (x) ); + return result; +} + +#else +# warning ceil() not built +#endif diff --git a/libc/machine/arm/armv8/arch_ceilf.c b/libc/machine/arm/armv8/arch_ceilf.c new file mode 100644 index 00000000000..8763e7104b6 --- /dev/null +++ b/libc/machine/arm/armv8/arch_ceilf.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_ceilf.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && !defined (__SOFTFP__) + +float ceilf(float x) +{ + float result; + asm volatile ( "vrintp.f32\t%0, %1" : "=t" (result) : "t" (x) ); + return result; +} + +#else +# warning ceilf() not built +#endif diff --git a/libc/machine/arm/armv8/arch_floor.c b/libc/machine/arm/armv8/arch_floor.c new file mode 100644 index 00000000000..ac3afdd4941 --- /dev/null +++ b/libc/machine/arm/armv8/arch_floor.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_floor.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x8) && !defined (__SOFTFP__) + +double floor(double x) +{ + double result; + asm volatile ("vrintm.f64\t%P0, %P1" : "=w" (result) : "w" (x)); + return result; +} + +#else +# warning floor() not built +#endif diff --git a/libc/machine/arm/armv8/arch_floorf.c b/libc/machine/arm/armv8/arch_floorf.c new file mode 100644 index 00000000000..0172bffee8e --- /dev/null +++ b/libc/machine/arm/armv8/arch_floorf.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_floorf.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && !defined (__SOFTFP__) + +float floorf(float x) +{ + float result; + asm volatile ( "vrintm.f32\t%0, %1" : "=t" (result) : "t" (x) ); + return result; +} + +#else +# warning floorf() not built +#endif diff --git a/libc/machine/arm/armv8/arch_nearbyint.c b/libc/machine/arm/armv8/arch_nearbyint.c new file mode 100644 index 00000000000..8345d7de1e8 --- /dev/null +++ b/libc/machine/arm/armv8/arch_nearbyint.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_nearbyint.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x8) && !defined (__SOFTFP__) + +double nearbyint(double x) +{ + double result; + asm volatile ("vrintr.f64\t%P0, %P1" : "=w" (result) : "w" (x)); + return result; +} + +#else +# warning nearbyint() not built +#endif diff --git a/libc/machine/arm/armv8/arch_nearbyintf.c b/libc/machine/arm/armv8/arch_nearbyintf.c new file mode 100644 index 00000000000..a2a1d2d77f3 --- /dev/null +++ b/libc/machine/arm/armv8/arch_nearbyintf.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_nearbyintf.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && !defined (__SOFTFP__) + +float nearbyintf(float x) +{ + float result; + asm volatile ("vrintr.f32\t%0, %1" : "=t" (result) : "t" (x)); + return result; +} + +#else +# warning nearbyintf() not built +#endif diff --git a/libc/machine/arm/armv8/arch_rint.c b/libc/machine/arm/armv8/arch_rint.c new file mode 100644 index 00000000000..6b1223e6c08 --- /dev/null +++ b/libc/machine/arm/armv8/arch_rint.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_rint.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x8) && !defined (__SOFTFP__) + +double rint(double x) +{ + double result; + asm volatile ("vrintx.f64\t%P0, %P1" : "=w" (result) : "w" (x)); + return result; +} + +#else +# warning rint() not built +#endif diff --git a/libc/machine/arm/armv8/arch_rintf.c b/libc/machine/arm/armv8/arch_rintf.c new file mode 100644 index 00000000000..e6d73a2185c --- /dev/null +++ b/libc/machine/arm/armv8/arch_rintf.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_rintf.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && !defined (__SOFTFP__) + +float rintf(float x) +{ + float result; + asm volatile ("vrintx.f32\t%0, %1" : "=t" (result) : "t" (x)); + return result; +} + +#else +# warning rintf() not built +#endif diff --git a/libc/machine/arm/armv8/arch_round.c b/libc/machine/arm/armv8/arch_round.c new file mode 100644 index 00000000000..e4efa0a27bc --- /dev/null +++ b/libc/machine/arm/armv8/arch_round.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_round.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x8) && !defined (__SOFTFP__) + +double round(double x) +{ + double result; + asm volatile ("vrinta.f64\t%P0, %P1" : "=w" (result) : "w" (x)); + return result; +} + +#else +# warning round() not built +#endif diff --git a/libc/machine/arm/armv8/arch_roundf.c b/libc/machine/arm/armv8/arch_roundf.c new file mode 100644 index 00000000000..53b7571c581 --- /dev/null +++ b/libc/machine/arm/armv8/arch_roundf.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_roundf.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && !defined (__SOFTFP__) + +float roundf(float x) +{ + float result; + asm volatile ("vrinta.f32\t%0, %1" : "=t" (result) : "t" (x)); + return result; +} + +#else +# warning roundf() not built +#endif diff --git a/libc/machine/arm/armv8/arch_trunc.c b/libc/machine/arm/armv8/arch_trunc.c new file mode 100644 index 00000000000..e8a16d4c6f5 --- /dev/null +++ b/libc/machine/arm/armv8/arch_trunc.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_trunc.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x8) && !defined (__SOFTFP__) + +double trunc(double x) +{ + double result; + asm volatile ("vrintz.f64\t%P0, %P1" : "=w" (result) : "w" (x)); + return result; +} + +#else +# warning trunc() not built +#endif diff --git a/libc/machine/arm/armv8/arch_truncf.c b/libc/machine/arm/armv8/arch_truncf.c new file mode 100644 index 00000000000..02f3d581d2b --- /dev/null +++ b/libc/machine/arm/armv8/arch_truncf.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * libc/machine/arm/armv8/arch_truncf.c + * + * Copyright (C) 2017 Gregory Nutt. All rights reserved. + * + * Adapted for NuttX from BSD licensed code provided by ARM: + * + * Copyright (c) 2011, 2012 ARM Ltd. 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. The name of the company may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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 + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if __ARM_ARCH >= 8 && !defined (__SOFTFP__) + +float truncf(float x) +{ + float result; + asm volatile ("vrintz.f32\t%0, %1" : "=t" (result) : "t" (x)); + return result; +} + +#else +# warning truncf() not built +#endif diff --git a/libc/machine/sim/Kconfig b/libc/machine/sim/Kconfig new file mode 100644 index 00000000000..f72f3c094ce --- /dev/null +++ b/libc/machine/sim/Kconfig @@ -0,0 +1,4 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# diff --git a/libc/machine/sim/Make.defs b/libc/machine/sim/Make.defs new file mode 100644 index 00000000000..85a9ccda315 --- /dev/null +++ b/libc/machine/sim/Make.defs @@ -0,0 +1,43 @@ +############################################################################ +# libc/machine/sim/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_LIBC_ARCH_ELF),y) + +CSRCS += arch_elf.c + +DEPPATH += --dep-path machine/sim +VPATH += :machine/sim + +endif diff --git a/arch/sim/src/up_elf.c b/libc/machine/sim/arch_elf.c similarity index 96% rename from arch/sim/src/up_elf.c rename to libc/machine/sim/arch_elf.c index bba6010ac9a..30bcd53788c 100644 --- a/arch/sim/src/up_elf.c +++ b/libc/machine/sim/arch_elf.c @@ -1,7 +1,7 @@ /**************************************************************************** - * arch/sim/src/up_elf.c + * machine/sim/arm_elf.c * - * Copyright (C) 2012, 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2014, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -125,7 +125,7 @@ int up_relocate(FAR const Elf32_Rel *rel, FAR const Elf32_Sym *sym, break; case R_386_PC32: - *ptr += sym->st_value - (uint32_t)ptr; + *ptr += sym->st_value - (uint32_t)((uintptr_t)ptr); break; default: diff --git a/libc/machine/x86/Kconfig b/libc/machine/x86/Kconfig new file mode 100644 index 00000000000..f72f3c094ce --- /dev/null +++ b/libc/machine/x86/Kconfig @@ -0,0 +1,4 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# diff --git a/libc/machine/x86/Make.defs b/libc/machine/x86/Make.defs new file mode 100644 index 00000000000..282d7d450b4 --- /dev/null +++ b/libc/machine/x86/Make.defs @@ -0,0 +1,43 @@ +############################################################################ +# libc/machine/x86/Make.defs +# +# Copyright (C) 2017 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. +# +############################################################################ + +ifeq ($(CONFIG_LIBC_ARCH_ELF),y) + +CSRCS += arch_elf.c + +DEPPATH += --dep-path machine/x86 +VPATH += :machine/x86 + +endif diff --git a/arch/x86/src/common/up_elf.c b/libc/machine/x86/arch_elf.c similarity index 98% rename from arch/x86/src/common/up_elf.c rename to libc/machine/x86/arch_elf.c index 7f169dee739..ca815451fd4 100644 --- a/arch/x86/src/common/up_elf.c +++ b/libc/machine/x86/arch_elf.c @@ -1,7 +1,7 @@ /**************************************************************************** - * arch/x86/src/up_elf.c + * machine/x86/src/up_elf.c * - * Copyright (C) 2012, 2014, 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2014, 2016-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without diff --git a/libc/math/Make.defs b/libc/math/Make.defs index a2acc7a93a0..7ead14882a3 100644 --- a/libc/math/Make.defs +++ b/libc/math/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # libc/math/Make.defs # -# Copyright (C) 2012 Gregory Nutt. All rights reserved. +# Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -37,30 +37,74 @@ ifeq ($(CONFIG_LIBM),y) # Add the floating point math C files to the build -CSRCS += lib_acosf.c lib_asinf.c lib_atan2f.c lib_atanf.c lib_ceilf.c lib_cosf.c -CSRCS += lib_coshf.c lib_expf.c lib_fabsf.c lib_floorf.c lib_fmodf.c lib_frexpf.c -CSRCS += lib_ldexpf.c lib_logf.c lib_log10f.c lib_log2f.c lib_modff.c lib_powf.c -CSRCS += lib_rintf.c lib_roundf.c lib_sinf.c lib_sinhf.c lib_sqrtf.c lib_tanf.c -CSRCS += lib_tanhf.c lib_asinhf.c lib_acoshf.c lib_atanhf.c lib_erff.c lib_copysignf.c -CSRCS += lib_truncf.c +CSRCS += lib_acosf.c lib_asinf.c lib_atan2f.c lib_atanf.c lib_cosf.c +CSRCS += lib_coshf.c lib_expf.c lib_fabsf.c lib_fmodf.c lib_frexpf.c +CSRCS += lib_ldexpf.c lib_logf.c lib_log10f.c lib_log2f.c lib_modff.c +CSRCS += lib_powf.c lib_sinf.c lib_sinhf.c lib_sqrtf.c lib_tanf.c +CSRCS += lib_tanhf.c lib_asinhf.c lib_acoshf.c lib_atanhf.c lib_erff.c +CSRCS += lib_copysignf.c -CSRCS += lib_acos.c lib_asin.c lib_atan.c lib_atan2.c lib_ceil.c lib_cos.c -CSRCS += lib_cosh.c lib_exp.c lib_fabs.c lib_floor.c lib_fmod.c lib_frexp.c -CSRCS += lib_ldexp.c lib_log.c lib_log10.c lib_log2.c lib_modf.c lib_pow.c -CSRCS += lib_rint.c lib_round.c lib_sin.c lib_sinh.c lib_sqrt.c lib_tan.c -CSRCS += lib_tanh.c lib_asinh.c lib_acosh.c lib_atanh.c lib_erf.c lib_copysign.c -CSRCS += lib_trunc.c +CSRCS += lib_acos.c lib_asin.c lib_atan.c lib_atan2.c lib_cos.c +CSRCS += lib_cosh.c lib_exp.c lib_fabs.c lib_fmod.c lib_frexp.c +CSRCS += lib_ldexp.c lib_log.c lib_log10.c lib_log2.c lib_modf.c +CSRCS += lib_pow.c lib_sin.c lib_sinh.c lib_sqrt.c lib_tan.c +CSRCS += lib_tanh.c lib_asinh.c lib_acosh.c lib_atanh.c lib_erf.c +CSRCS += lib_copysign.c -CSRCS += lib_acosl.c lib_asinl.c lib_atan2l.c lib_atanl.c lib_ceill.c lib_cosl.c -CSRCS += lib_coshl.c lib_expl.c lib_fabsl.c lib_floorl.c lib_fmodl.c lib_frexpl.c -CSRCS += lib_ldexpl.c lib_logl.c lib_log10l.c lib_log2l.c lib_modfl.c lib_powl.c -CSRCS += lib_rintl.c lib_roundl.c lib_sinl.c lib_sinhl.c lib_sqrtl.c lib_tanl.c -CSRCS += lib_tanhl.c lib_asinhl.c lib_acoshl.c lib_atanhl.c lib_erfl.c lib_copysignl.c +CSRCS += lib_acosl.c lib_asinl.c lib_atan2l.c lib_atanl.c lib_ceill.c +CSRCS += lib_cosl.c lib_coshl.c lib_expl.c lib_fabsl.c lib_floorl.c +CSRCS += lib_fmodl.c lib_frexpl.c lib_ldexpl.c lib_logl.c lib_log10l.c +CSRCS += lib_log2l.c lib_modfl.c lib_powl.c lib_rintl.c lib_roundl.c +CSRCS += lib_sinl.c lib_sinhl.c lib_sqrtl.c lib_tanl.c lib_tanhl.c +CSRCS += lib_asinhl.c lib_acoshl.c lib_atanhl.c lib_erfl.c lib_copysignl.c CSRCS += lib_truncl.c CSRCS += lib_libexpi.c lib_libsqrtapprox.c CSRCS += lib_libexpif.c +# Use the C versions of some functions only if architecture specific +# optimized versions are not provided. + +ifneq ($(LIBM_ARCH_CEIL),y) +CSRCS += lib_ceil.c +endif + +ifneq ($(LIBM_ARCH_FLOOR),y) +CSRCS += lib_floor.c +endif + +ifneq ($(LIBM_ARCH_RINT),y) +CSRCS += lib_rint.c +endif + +ifneq ($(LIBM_ARCH_ROUND),y) +CSRCS += lib_round.c +endif + +ifneq ($(LIBM_ARCH_TRUNC),y) +CSRCS += lib_trunc.c +endif + +ifneq ($(LIBM_ARCH_CEILF),y) +CSRCS += lib_ceilf.c +endif + +ifneq ($(LIBM_ARCH_FLOORF),y) +CSRCS += lib_floorf.c +endif + +ifneq ($(LIBM_ARCH_RINTF),y) +CSRCS += lib_rintf.c +endif + +ifneq ($(LIBM_ARCH_ROUNDF),y) +CSRCS += lib_roundf.c +endif + +ifneq ($(LIBM_ARCH_TRUNCF),y) +CSRCS += lib_truncf.c +endif + # Add the floating point math directory to the build DEPPATH += --dep-path math diff --git a/libc/math/lib_acos.c b/libc/math/lib_acos.c index 4903af43bc6..aedc155e3d9 100644 --- a/libc/math/lib_acos.c +++ b/libc/math/lib_acos.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_acosf.c b/libc/math/lib_acosf.c index 12fe68da677..58b90f37145 100644 --- a/libc/math/lib_acosf.c +++ b/libc/math/lib_acosf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_acosl.c b/libc/math/lib_acosl.c index f13cb00a04f..c2ae58c3a42 100644 --- a/libc/math/lib_acosl.c +++ b/libc/math/lib_acosl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_asin.c b/libc/math/lib_asin.c index 15bce7913a1..688b108c891 100644 --- a/libc/math/lib_asin.c +++ b/libc/math/lib_asin.c @@ -6,7 +6,7 @@ * Copyright (C) 2012, 2015-2016 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_asinf.c b/libc/math/lib_asinf.c index e60f439f6e7..5d223fe5512 100644 --- a/libc/math/lib_asinf.c +++ b/libc/math/lib_asinf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_asinl.c b/libc/math/lib_asinl.c index 088257a1e5f..5fc3896a7eb 100644 --- a/libc/math/lib_asinl.c +++ b/libc/math/lib_asinl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_atan.c b/libc/math/lib_atan.c index 91930bf03e2..3384348040e 100644 --- a/libc/math/lib_atan.c +++ b/libc/math/lib_atan.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_atan2.c b/libc/math/lib_atan2.c index 5b0f7e2989d..bbc953e5cae 100644 --- a/libc/math/lib_atan2.c +++ b/libc/math/lib_atan2.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_atan2f.c b/libc/math/lib_atan2f.c index c600161408f..5dafe974ebf 100644 --- a/libc/math/lib_atan2f.c +++ b/libc/math/lib_atan2f.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_atan2l.c b/libc/math/lib_atan2l.c index 4c384e80892..7ee8a251c80 100644 --- a/libc/math/lib_atan2l.c +++ b/libc/math/lib_atan2l.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_atanf.c b/libc/math/lib_atanf.c index aef149ed9e8..702819d6d8c 100644 --- a/libc/math/lib_atanf.c +++ b/libc/math/lib_atanf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_atanl.c b/libc/math/lib_atanl.c index 50376c26a00..53f4b9700c0 100644 --- a/libc/math/lib_atanl.c +++ b/libc/math/lib_atanl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_ceil.c b/libc/math/lib_ceil.c index 6d367a51c76..329e20b24ff 100644 --- a/libc/math/lib_ceil.c +++ b/libc/math/lib_ceil.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_ceilf.c b/libc/math/lib_ceilf.c index 830f2a4769c..d9394bd8a17 100644 --- a/libc/math/lib_ceilf.c +++ b/libc/math/lib_ceilf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_ceill.c b/libc/math/lib_ceill.c index ac54c2c3db3..2e16ab73add 100644 --- a/libc/math/lib_ceill.c +++ b/libc/math/lib_ceill.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_cos.c b/libc/math/lib_cos.c index 34d90716af2..689882c581b 100644 --- a/libc/math/lib_cos.c +++ b/libc/math/lib_cos.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_cosf.c b/libc/math/lib_cosf.c index 5532894b028..ba45d7e32bd 100644 --- a/libc/math/lib_cosf.c +++ b/libc/math/lib_cosf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_cosh.c b/libc/math/lib_cosh.c index 73283589b5d..0d1f71fc762 100644 --- a/libc/math/lib_cosh.c +++ b/libc/math/lib_cosh.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_coshf.c b/libc/math/lib_coshf.c index 37b4bf8e0f1..bf234377bfc 100644 --- a/libc/math/lib_coshf.c +++ b/libc/math/lib_coshf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_coshl.c b/libc/math/lib_coshl.c index 445629c24ec..3bce6ac7c0c 100644 --- a/libc/math/lib_coshl.c +++ b/libc/math/lib_coshl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_cosl.c b/libc/math/lib_cosl.c index 89109db77d9..8fbf5a9df92 100644 --- a/libc/math/lib_cosl.c +++ b/libc/math/lib_cosl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_exp.c b/libc/math/lib_exp.c index 211b23bf952..414f0c29f10 100644 --- a/libc/math/lib_exp.c +++ b/libc/math/lib_exp.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_expf.c b/libc/math/lib_expf.c index 3e3cb02ed93..4426fc9847b 100644 --- a/libc/math/lib_expf.c +++ b/libc/math/lib_expf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_expl.c b/libc/math/lib_expl.c index 1021017ca32..7c69e2d086d 100644 --- a/libc/math/lib_expl.c +++ b/libc/math/lib_expl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_fabs.c b/libc/math/lib_fabs.c index 35f98e6818f..fbf4286e0c3 100644 --- a/libc/math/lib_fabs.c +++ b/libc/math/lib_fabs.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_fabsf.c b/libc/math/lib_fabsf.c index 2bee12097df..e2b5639638b 100644 --- a/libc/math/lib_fabsf.c +++ b/libc/math/lib_fabsf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_fabsl.c b/libc/math/lib_fabsl.c index 1762f914168..72be15a9fd8 100644 --- a/libc/math/lib_fabsl.c +++ b/libc/math/lib_fabsl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_floor.c b/libc/math/lib_floor.c index 7a8cc7a1109..a31c2f521a2 100644 --- a/libc/math/lib_floor.c +++ b/libc/math/lib_floor.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_floorf.c b/libc/math/lib_floorf.c index deefcf9407f..4e5ed950fdd 100644 --- a/libc/math/lib_floorf.c +++ b/libc/math/lib_floorf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_floorl.c b/libc/math/lib_floorl.c index f1328e9a72b..9ffc7fd0e96 100644 --- a/libc/math/lib_floorl.c +++ b/libc/math/lib_floorl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_fmod.c b/libc/math/lib_fmod.c index e096d629888..010cacefff6 100644 --- a/libc/math/lib_fmod.c +++ b/libc/math/lib_fmod.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_fmodf.c b/libc/math/lib_fmodf.c index ba2d375b8e6..0e02f857376 100644 --- a/libc/math/lib_fmodf.c +++ b/libc/math/lib_fmodf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_fmodl.c b/libc/math/lib_fmodl.c index f72f2de4d74..c04715ceebd 100644 --- a/libc/math/lib_fmodl.c +++ b/libc/math/lib_fmodl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_frexp.c b/libc/math/lib_frexp.c index 12eccadbe74..dd632e46900 100644 --- a/libc/math/lib_frexp.c +++ b/libc/math/lib_frexp.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_frexpf.c b/libc/math/lib_frexpf.c index 2f0421ccb92..e63f42587a6 100644 --- a/libc/math/lib_frexpf.c +++ b/libc/math/lib_frexpf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_frexpl.c b/libc/math/lib_frexpl.c index ae2ec4eb73d..dcdc54e3246 100644 --- a/libc/math/lib_frexpl.c +++ b/libc/math/lib_frexpl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_ldexp.c b/libc/math/lib_ldexp.c index ac4d23dccbc..5a154ef1d28 100644 --- a/libc/math/lib_ldexp.c +++ b/libc/math/lib_ldexp.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_ldexpf.c b/libc/math/lib_ldexpf.c index d24d1384e7d..fe8c994459b 100644 --- a/libc/math/lib_ldexpf.c +++ b/libc/math/lib_ldexpf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_ldexpl.c b/libc/math/lib_ldexpl.c index da02bf7e606..b707f342b05 100644 --- a/libc/math/lib_ldexpl.c +++ b/libc/math/lib_ldexpl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_libexpi.c b/libc/math/lib_libexpi.c index 3cd5f8f6d75..33b31d27170 100644 --- a/libc/math/lib_libexpi.c +++ b/libc/math/lib_libexpi.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_libexpif.c b/libc/math/lib_libexpif.c index 22c60f48d13..d2b8a980666 100644 --- a/libc/math/lib_libexpif.c +++ b/libc/math/lib_libexpif.c @@ -6,7 +6,7 @@ * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong/Gregory Nutt * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_libsqrtapprox.c b/libc/math/lib_libsqrtapprox.c index 60db0770ad5..dc78a70e274 100644 --- a/libc/math/lib_libsqrtapprox.c +++ b/libc/math/lib_libsqrtapprox.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_log.c b/libc/math/lib_log.c index 8bcfe75bff6..21c776e6a9a 100644 --- a/libc/math/lib_log.c +++ b/libc/math/lib_log.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_log10.c b/libc/math/lib_log10.c index 0830bd7e668..86e8cfb186e 100644 --- a/libc/math/lib_log10.c +++ b/libc/math/lib_log10.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_log10f.c b/libc/math/lib_log10f.c index aa810a0127f..956516eab36 100644 --- a/libc/math/lib_log10f.c +++ b/libc/math/lib_log10f.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_log10l.c b/libc/math/lib_log10l.c index 69e3e7e9784..f6d81b424d8 100644 --- a/libc/math/lib_log10l.c +++ b/libc/math/lib_log10l.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_log2.c b/libc/math/lib_log2.c index 2e2007796b3..76a114a2f95 100644 --- a/libc/math/lib_log2.c +++ b/libc/math/lib_log2.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_log2f.c b/libc/math/lib_log2f.c index 025b5de3b14..12c2ec9289a 100644 --- a/libc/math/lib_log2f.c +++ b/libc/math/lib_log2f.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_log2l.c b/libc/math/lib_log2l.c index 0b4450a8090..d23619136cf 100644 --- a/libc/math/lib_log2l.c +++ b/libc/math/lib_log2l.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_logf.c b/libc/math/lib_logf.c index 9abc5eff986..c2e1fe2fc4f 100644 --- a/libc/math/lib_logf.c +++ b/libc/math/lib_logf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_logl.c b/libc/math/lib_logl.c index c8babc17a86..32657c477fd 100644 --- a/libc/math/lib_logl.c +++ b/libc/math/lib_logl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_modf.c b/libc/math/lib_modf.c index 5c0921997cf..5782ebf010b 100644 --- a/libc/math/lib_modf.c +++ b/libc/math/lib_modf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_modff.c b/libc/math/lib_modff.c index 5934782b7b2..5c88ff83f28 100644 --- a/libc/math/lib_modff.c +++ b/libc/math/lib_modff.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_modfl.c b/libc/math/lib_modfl.c index 45f5f4f8fed..67399845279 100644 --- a/libc/math/lib_modfl.c +++ b/libc/math/lib_modfl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_pow.c b/libc/math/lib_pow.c index 47eb8d12489..90c8d9348d8 100644 --- a/libc/math/lib_pow.c +++ b/libc/math/lib_pow.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_powf.c b/libc/math/lib_powf.c index b1614a25009..b8024c21416 100644 --- a/libc/math/lib_powf.c +++ b/libc/math/lib_powf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_powl.c b/libc/math/lib_powl.c index 2efb8480153..3b7e9070c72 100644 --- a/libc/math/lib_powl.c +++ b/libc/math/lib_powl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_rint.c b/libc/math/lib_rint.c index 2e6af43a877..3ff1cd02f99 100644 --- a/libc/math/lib_rint.c +++ b/libc/math/lib_rint.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/math/lib_rintf.c b/libc/math/lib_rintf.c index 9a3c06df280..17148b3d29d 100644 --- a/libc/math/lib_rintf.c +++ b/libc/math/lib_rintf.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/math/lib_rintl.c b/libc/math/lib_rintl.c index 03d5de04426..d5f24dc8c66 100644 --- a/libc/math/lib_rintl.c +++ b/libc/math/lib_rintl.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/math/lib_sin.c b/libc/math/lib_sin.c index 7ff716b059c..6089c76bac3 100644 --- a/libc/math/lib_sin.c +++ b/libc/math/lib_sin.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_sinf.c b/libc/math/lib_sinf.c index b7be087b909..e5e7230cdec 100644 --- a/libc/math/lib_sinf.c +++ b/libc/math/lib_sinf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_sinh.c b/libc/math/lib_sinh.c index 81e84807b9b..20d6d88f00f 100644 --- a/libc/math/lib_sinh.c +++ b/libc/math/lib_sinh.c @@ -6,7 +6,7 @@ * Copyright (C) 2012, 2015 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_sinhf.c b/libc/math/lib_sinhf.c index baf353f34dc..c41b77ee222 100644 --- a/libc/math/lib_sinhf.c +++ b/libc/math/lib_sinhf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_sinhl.c b/libc/math/lib_sinhl.c index ff3aaedb7de..79668350fd9 100644 --- a/libc/math/lib_sinhl.c +++ b/libc/math/lib_sinhl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_sinl.c b/libc/math/lib_sinl.c index dc3df8a4bac..d41ccea1641 100644 --- a/libc/math/lib_sinl.c +++ b/libc/math/lib_sinl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_sqrt.c b/libc/math/lib_sqrt.c index 8540744d21d..b42b0a1f5df 100644 --- a/libc/math/lib_sqrt.c +++ b/libc/math/lib_sqrt.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_sqrtf.c b/libc/math/lib_sqrtf.c index 918c1c9568d..4b30a1dcc50 100644 --- a/libc/math/lib_sqrtf.c +++ b/libc/math/lib_sqrtf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_sqrtl.c b/libc/math/lib_sqrtl.c index 03a564f72d9..d87f06938a3 100644 --- a/libc/math/lib_sqrtl.c +++ b/libc/math/lib_sqrtl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009-2011 Nick Johnson diff --git a/libc/math/lib_tan.c b/libc/math/lib_tan.c index 31cde4cddef..b48f02714e5 100644 --- a/libc/math/lib_tan.c +++ b/libc/math/lib_tan.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_tanf.c b/libc/math/lib_tanf.c index 97ffae017d3..1ca3591b45c 100644 --- a/libc/math/lib_tanf.c +++ b/libc/math/lib_tanf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_tanh.c b/libc/math/lib_tanh.c index e68fcd528c9..3242590ca6d 100644 --- a/libc/math/lib_tanh.c +++ b/libc/math/lib_tanh.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_tanhf.c b/libc/math/lib_tanhf.c index ef56b133dc4..02ebd55c10d 100644 --- a/libc/math/lib_tanhf.c +++ b/libc/math/lib_tanhf.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_tanhl.c b/libc/math/lib_tanhl.c index ef2250941c1..8a1e75e6181 100644 --- a/libc/math/lib_tanhl.c +++ b/libc/math/lib_tanhl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/math/lib_tanl.c b/libc/math/lib_tanl.c index 16ebce8a7a9..e4866fa11cd 100644 --- a/libc/math/lib_tanl.c +++ b/libc/math/lib_tanl.c @@ -6,7 +6,7 @@ * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * - * It derives from the Rhombs OS math library by Nick Johnson which has + * It derives from the Rhombus OS math library by Nick Johnson which has * a compatibile, MIT-style license: * * Copyright (C) 2009, 2010 Nick Johnson diff --git a/libc/net/lib_addroute.c b/libc/net/lib_addroute.c index 33a8dd0aadf..8c7012abe8c 100644 --- a/libc/net/lib_addroute.c +++ b/libc/net/lib_addroute.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/net/lib_delroute.c b/libc/net/lib_delroute.c index 862e8ebcbf7..5110659c48c 100644 --- a/libc/net/lib_delroute.c +++ b/libc/net/lib_delroute.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/net/lib_htons.c b/libc/net/lib_htons.c index ce33b879ea3..d68d000b589 100644 --- a/libc/net/lib_htons.c +++ b/libc/net/lib_htons.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/queue/dq_addafter.c b/libc/queue/dq_addafter.c index e4965c802c1..85d76edeb6e 100644 --- a/libc/queue/dq_addafter.c +++ b/libc/queue/dq_addafter.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_fgetc.c b/libc/stdio/lib_fgetc.c index c4b32d69b99..e71d91a2d6d 100644 --- a/libc/stdio/lib_fgetc.c +++ b/libc/stdio/lib_fgetc.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_fgetpos.c b/libc/stdio/lib_fgetpos.c index deca7e44550..9787ff4cf4a 100644 --- a/libc/stdio/lib_fgetpos.c +++ b/libc/stdio/lib_fgetpos.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_fputc.c b/libc/stdio/lib_fputc.c index 57e784759a3..7dcffbfc3f3 100644 --- a/libc/stdio/lib_fputc.c +++ b/libc/stdio/lib_fputc.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_fputs.c b/libc/stdio/lib_fputs.c index 1d66c269d35..a41dd521c23 100644 --- a/libc/stdio/lib_fputs.c +++ b/libc/stdio/lib_fputs.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_fseek.c b/libc/stdio/lib_fseek.c index bafe4488e43..db8604d305b 100644 --- a/libc/stdio/lib_fseek.c +++ b/libc/stdio/lib_fseek.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_fsetpos.c b/libc/stdio/lib_fsetpos.c index faa7324cde1..9c1f98fedaf 100644 --- a/libc/stdio/lib_fsetpos.c +++ b/libc/stdio/lib_fsetpos.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_ftell.c b/libc/stdio/lib_ftell.c index 8707c9b2645..c0aaf1f5d53 100644 --- a/libc/stdio/lib_ftell.c +++ b/libc/stdio/lib_ftell.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_puts.c b/libc/stdio/lib_puts.c index 957e7426b98..5c04245e316 100644 --- a/libc/stdio/lib_puts.c +++ b/libc/stdio/lib_puts.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_rdflush.c b/libc/stdio/lib_rdflush.c index cb928fb820c..7e96ee4c2c5 100644 --- a/libc/stdio/lib_rdflush.c +++ b/libc/stdio/lib_rdflush.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_ungetc.c b/libc/stdio/lib_ungetc.c index 89220751b39..234c17ac5c5 100644 --- a/libc/stdio/lib_ungetc.c +++ b/libc/stdio/lib_ungetc.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/stdio/lib_vprintf.c b/libc/stdio/lib_vprintf.c index 5f7a0844539..bc411e6d131 100644 --- a/libc/stdio/lib_vprintf.c +++ b/libc/stdio/lib_vprintf.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/string/Make.defs b/libc/string/Make.defs index beac5ac4de0..9f9ba2a107d 100644 --- a/libc/string/Make.defs +++ b/libc/string/Make.defs @@ -43,7 +43,7 @@ CSRCS += lib_strnlen.c lib_strncasecmp.c lib_strncat.c lib_strncmp.c CSRCS += lib_strncpy.c lib_strndup.c lib_strcasestr.c lib_strpbrk.c CSRCS += lib_strrchr.c lib_strspn.c lib_strstr.c lib_strtok.c lib_strtokr.c -ifneq ($(CONFIG_ARCH_MEMCPY),y) +ifneq ($(CONFIG_LIBC_ARCH_MEMCPY),y) ifeq ($(CONFIG_MEMCPY_VIK),y) CSRCS += lib_vikmemcpy.c else diff --git a/libc/string/lib_memccpy.c b/libc/string/lib_memccpy.c index 2201870911e..95fe7dacbd3 100644 --- a/libc/string/lib_memccpy.c +++ b/libc/string/lib_memccpy.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/string/lib_memcmp.c b/libc/string/lib_memcmp.c index a4f5004bfd6..9ae4ad1e734 100644 --- a/libc/string/lib_memcmp.c +++ b/libc/string/lib_memcmp.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ @@ -49,7 +45,7 @@ * Public Functions ****************************************************************************/ -#ifndef CONFIG_ARCH_MEMCMP +#ifndef CONFIG_LIBC_ARCH_MEMCMP int memcmp(FAR const void *s1, FAR const void *s2, size_t n) { unsigned char *p1 = (unsigned char *)s1; diff --git a/libc/string/lib_memcpy.c b/libc/string/lib_memcpy.c index 6a4b2bbe34c..4132b815e50 100644 --- a/libc/string/lib_memcpy.c +++ b/libc/string/lib_memcpy.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ @@ -53,7 +49,7 @@ * Name: memcpy ****************************************************************************/ -#ifndef CONFIG_ARCH_MEMCPY +#ifndef CONFIG_LIBC_ARCH_MEMCPY FAR void *memcpy(FAR void *dest, FAR const void *src, size_t n) { FAR unsigned char *pout = (FAR unsigned char *)dest; diff --git a/libc/string/lib_memmove.c b/libc/string/lib_memmove.c index fb672f54eb7..dcef645a600 100644 --- a/libc/string/lib_memmove.c +++ b/libc/string/lib_memmove.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ @@ -49,7 +45,7 @@ * Public Functions ****************************************************************************/ -#ifndef CONFIG_ARCH_MEMMOVE +#ifndef CONFIG_LIBC_ARCH_MEMMOVE FAR void *memmove(FAR void *dest, FAR const void *src, size_t count) { FAR char *tmp; diff --git a/libc/string/lib_memset.c b/libc/string/lib_memset.c index fc2f83b30bc..c1feb50b74f 100644 --- a/libc/string/lib_memset.c +++ b/libc/string/lib_memset.c @@ -63,7 +63,7 @@ * Public Functions ****************************************************************************/ -#ifndef CONFIG_ARCH_MEMSET +#ifndef CONFIG_LIBC_ARCH_MEMSET FAR void *memset(FAR void *s, int c, size_t n) { #ifdef CONFIG_MEMSET_OPTSPEED diff --git a/libc/string/lib_strchr.c b/libc/string/lib_strchr.c index 371c8492b03..2f21f237cac 100644 --- a/libc/string/lib_strchr.c +++ b/libc/string/lib_strchr.c @@ -59,7 +59,7 @@ * ****************************************************************************/ -#ifndef CONFIG_ARCH_STRCHR +#ifndef CONFIG_LIBC_ARCH_STRCHR FAR char *strchr(FAR const char *s, int c) { if (s) diff --git a/libc/string/lib_strcmp.c b/libc/string/lib_strcmp.c index 9839c4ee99d..79bfecceaef 100644 --- a/libc/string/lib_strcmp.c +++ b/libc/string/lib_strcmp.c @@ -45,7 +45,7 @@ * Public Functions ****************************************************************************/ -#ifndef CONFIG_ARCH_STRCMP +#ifndef CONFIG_LIBC_ARCH_STRCMP int strcmp(FAR const char *cs, FAR const char *ct) { register signed char result; diff --git a/libc/string/lib_strcpy.c b/libc/string/lib_strcpy.c index f5413688f52..a329dc2925f 100644 --- a/libc/string/lib_strcpy.c +++ b/libc/string/lib_strcpy.c @@ -57,7 +57,7 @@ * ****************************************************************************/ -#ifndef CONFIG_ARCH_STRCPY +#ifndef CONFIG_LIBC_ARCH_STRCPY FAR char *strcpy(FAR char *dest, FAR const char *src) { char *tmp = dest; diff --git a/libc/string/lib_strcspn.c b/libc/string/lib_strcspn.c index dd4a6928750..9291d96d6c2 100644 --- a/libc/string/lib_strcspn.c +++ b/libc/string/lib_strcspn.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/string/lib_strlen.c b/libc/string/lib_strlen.c index e897354e54a..583cbbc70f3 100644 --- a/libc/string/lib_strlen.c +++ b/libc/string/lib_strlen.c @@ -45,7 +45,7 @@ * Public Functions ****************************************************************************/ -#ifndef CONFIG_ARCH_STRLEN +#ifndef CONFIG_LIBC_ARCH_STRLEN size_t strlen(const char *s) { const char *sc; diff --git a/libc/string/lib_strncasecmp.c b/libc/string/lib_strncasecmp.c index 05d795b0a2c..1019833a50f 100644 --- a/libc/string/lib_strncasecmp.c +++ b/libc/string/lib_strncasecmp.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/string/lib_strncmp.c b/libc/string/lib_strncmp.c index 92df02a20bc..544c5efe2d4 100644 --- a/libc/string/lib_strncmp.c +++ b/libc/string/lib_strncmp.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/libc/string/lib_strncpy.c b/libc/string/lib_strncpy.c index dbafc1c3a17..ddcb1ad8a52 100644 --- a/libc/string/lib_strncpy.c +++ b/libc/string/lib_strncpy.c @@ -49,7 +49,7 @@ * Name: strncpy ****************************************************************************/ -#ifndef CONFIG_ARCH_STRNCPY +#ifndef CONFIG_LIBC_ARCH_STRNCPY char *strncpy(FAR char *dest, FAR const char *src, size_t n) { char *ret = dest; /* Value to be returned */ diff --git a/libc/string/lib_strnlen.c b/libc/string/lib_strnlen.c index 863a310caad..20ab152597e 100644 --- a/libc/string/lib_strnlen.c +++ b/libc/string/lib_strnlen.c @@ -52,7 +52,7 @@ * Public Functions ****************************************************************************/ -#ifndef CONFIG_ARCH_STRNLEN +#ifndef CONFIG_LIBC_ARCH_STRNLEN size_t strnlen(const char *s, size_t maxlen) { const char *sc; diff --git a/libc/string/lib_strspn.c b/libc/string/lib_strspn.c index 47ab34d8b20..dfd68f1214d 100644 --- a/libc/string/lib_strspn.c +++ b/libc/string/lib_strspn.c @@ -33,10 +33,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/net/devif/ipv6_input.c b/net/devif/ipv6_input.c index d51d7aa8050..08166306798 100644 --- a/net/devif/ipv6_input.c +++ b/net/devif/ipv6_input.c @@ -2,7 +2,7 @@ * net/devif/ipv6_input.c * Device driver IPv6 packet receipt interface * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Adapted for NuttX from logic in uIP which also has a BSD-like license: @@ -173,13 +173,13 @@ int ipv6_input(FAR struct net_driver_s *dev) * we set d_len to the correct value. * * The length reported in the IPv6 header is the length of the payload - * that follows the header. The device interface uses the d_len variable for - * holding the size of the entire packet, including the IP header and link - * layer header. + * that follows the header. The device interface uses the d_len variable + * for holding the size of the entire packet, including the IP header but + * without the link layer header. */ pktlen = ((uint16_t)ipv6->len[0] << 8) + (uint16_t)ipv6->len[1] + - IPv6_HDRLEN + netdev_ipv6_hdrlen(dev); + IPv6_HDRLEN; if (pktlen <= dev->d_len) { diff --git a/net/tcp/tcp_devpoll.c b/net/tcp/tcp_devpoll.c index 6fce807934a..6a7f16c513b 100644 --- a/net/tcp/tcp_devpoll.c +++ b/net/tcp/tcp_devpoll.c @@ -2,7 +2,7 @@ * net/tcp/tcp_devpoll.c * Driver poll for the availability of TCP TX data * - * Copyright (C) 2007-2009, 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2009, 2016-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Adapted for NuttX from logic in uIP which also has a BSD-like license: @@ -105,8 +105,19 @@ void tcp_poll(FAR struct net_driver_s *dev, FAR struct tcp_conn_s *conn) * setup may not actually be used. */ -#if defined(CONFIG_NET_IPv4) +#if defined(CONFIG_NET_IPv6) && defined(CONFIG_NET_IPv4) + if (conn->domain == PF_INET) + { + tcp_ipv4_select(dev); + } + else + { + tcp_ipv6_select(dev); + } + +#elif defined(CONFIG_NET_IPv4) tcp_ipv4_select(dev); + #else /* if defined(CONFIG_NET_IPv6) */ tcp_ipv6_select(dev); #endif diff --git a/net/tcp/tcp_send_buffered.c b/net/tcp/tcp_send_buffered.c index dbb2f28087e..e3c12aed7e6 100644 --- a/net/tcp/tcp_send_buffered.c +++ b/net/tcp/tcp_send_buffered.c @@ -1,7 +1,7 @@ /**************************************************************************** * net/tcp/tcp_send_buffered.c * - * Copyright (C) 2007-2014, 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2014, 2016-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * Jason Jiang * @@ -228,21 +228,21 @@ static inline void psock_lost_connection(FAR struct socket *psock, #ifdef NEED_IPDOMAIN_SUPPORT static inline void send_ipselect(FAR struct net_driver_s *dev, - FAR struct socket *psock) + FAR struct tcp_conn_s *conn) { /* Which domain the the socket support */ - if (psock->s_domain == PF_INET) + if (conn->domain == PF_INET) { /* Select the IPv4 domain */ tcp_ipv4_select(dev); } - else /* if (psock->s_domain == PF_INET6) */ + else /* if (conn->domain == PF_INET6) */ { /* Select the IPv6 domain */ - DEBUGASSERT(psock->s_domain == PF_INET6); + DEBUGASSERT(conn->domain == PF_INET6); tcp_ipv4_select(dev); } } @@ -754,7 +754,7 @@ static uint16_t psock_send_interrupt(FAR struct net_driver_s *dev, * place and we need do nothing. */ - send_ipselect(dev, psock); + send_ipselect(dev, conn); #endif /* Then set-up to send that amount of data with the offset * corresponding to the amount of data already sent. (this diff --git a/net/tcp/tcp_send_unbuffered.c b/net/tcp/tcp_send_unbuffered.c index 385c385a29a..d6422437c8c 100644 --- a/net/tcp/tcp_send_unbuffered.c +++ b/net/tcp/tcp_send_unbuffered.c @@ -1,7 +1,7 @@ /**************************************************************************** * net/tcp/tcp_send_unbuffered.c * - * Copyright (C) 2007-2014, 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2014, 2016-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -179,24 +179,21 @@ static inline int send_timeout(FAR struct send_s *pstate) #ifdef NEED_IPDOMAIN_SUPPORT static inline void tcpsend_ipselect(FAR struct net_driver_s *dev, - FAR struct send_s *pstate) + FAR struct tcp_conn_s *conn) { - FAR struct socket *psock = pstate->snd_sock; - DEBUGASSERT(psock); - /* Which domain the the socket support */ - if (psock->s_domain == PF_INET) + if (conn->domain == PF_INET) { /* Select the IPv4 domain */ tcp_ipv4_select(dev); } - else /* if (psock->s_domain == PF_INET6) */ + else /* if (conn->domain == PF_INET6) */ { /* Select the IPv6 domain */ - DEBUGASSERT(psock->s_domain == PF_INET6); + DEBUGASSERT(conn->domain == PF_INET6); tcp_ipv4_select(dev); } } @@ -538,7 +535,7 @@ static uint16_t tcpsend_interrupt(FAR struct net_driver_s *dev, * place and we need do nothing. */ - tcpsend_ipselect(dev, pstate); + tcpsend_ipselect(dev, conn); #endif /* Then set-up to send that amount of data. (this won't actually * happen until the polling cycle completes). diff --git a/net/tcp/tcp_seqno.c b/net/tcp/tcp_seqno.c index d2c5600107a..e3c6a75c054 100644 --- a/net/tcp/tcp_seqno.c +++ b/net/tcp/tcp_seqno.c @@ -36,10 +36,6 @@ * ****************************************************************************/ -/**************************************************************************** - * Compilation Switches - ****************************************************************************/ - /**************************************************************************** * Included Files ****************************************************************************/ diff --git a/sched/Kconfig b/sched/Kconfig index 7b8dbaaa766..9810d3ba62e 100644 --- a/sched/Kconfig +++ b/sched/Kconfig @@ -624,10 +624,10 @@ config SCHED_CPULOAD_TICKSPERSEC ---help--- If an external clock is used to drive the sampling for the CPU load calculations, then this value must be provided. This value provides - the rate of the external clock in units of ticks per second. The - default value of 100 corresponds to 100Hz clock. NOTE: that 100Hz - is the default frequency of the system time and, hence, the worst - possible choice in most cases. + the rate of the external clock interrupts in units of ticks per + second. The default value of 100 corresponds to a 100Hz clock. NOTE: + that 100Hz is the default frequency of the system time and, hence, + the worst possible choice in most cases. config CPULOAD_ONESHOT bool "Use Oneshot timer" @@ -641,6 +641,13 @@ config CPULOAD_ONESHOT To start the CPU load measurement. See include/nuttx/clock.h + NOTE that in this configuration, CONFIG_SCHED_CPULOAD_TICKSPERSEC is + the sample rate that will be accomplished by programming the oneshot + time repeatedly. If CPULOAD_ONESHOT_ENTROPY is also selected, then + the underly frequency driving the oneshote timer must be + significantly faster than CONFIG_SCHED_CPULOAD_TICKSPERSE to permit + precise modulation the sample periods. + config CPULOAD_ONESHOT_ENTROPY int "Bits of entropy" default 6 @@ -654,8 +661,8 @@ config CPULOAD_ONESHOT_ENTROPY Where - CPULOAD_ONESHOT_NOMINAL is CONFIG_SCHED_CPULOAD_TICKSPERSEC in - units of microseconds. + CPULOAD_ONESHOT_NOMINAL is the nominal sample internval implied + by CONFIG_SCHED_CPULOAD_TICKSPERSEC in units of microseconds. CPULOAD_ONESHOT_ENTROPY is (1 << CONFIG_CPULOAD_ONESHOT_ENTROPY), and 'error' is an error value that is retained from interval to @@ -1115,6 +1122,7 @@ endmenu # POSIX Message Queue Options menuconfig MODULE bool "Enable loadable OS modules" default n + select LIBC_ARCH_ELF ---help--- Enable support for loadable OS modules. Default: n diff --git a/sched/module/Make.defs b/sched/module/Make.defs index 00f84675606..9aaa1a7e165 100644 --- a/sched/module/Make.defs +++ b/sched/module/Make.defs @@ -41,9 +41,9 @@ CSRCS += mod_insmod.c mod_rmmod.c # loadable module library -CSRCS += mod_bind.c mod_init.c mod_iobuffer.c mod_load.c mod_read.c -CSRCS += mod_registry.c mod_sections.c mod_symbols.c mod_symtab.c -CSRCS += mod_uninit.c mod_unload.c mod_verify.c +CSRCS += mod_bind.c mod_init.c mod_iobuffer.c mod_load.c mod_modhandle.c +CSRCS += mod_modsym.c mod_read.c mod_registry.c mod_sections.c mod_symbols.c +CSRCS += mod_symtab.c mod_uninit.c mod_unload.c mod_verify.c # procfs support diff --git a/sched/module/mod_insmod.c b/sched/module/mod_insmod.c index 3b4b5b3ceb0..9fe5e71e28f 100644 --- a/sched/module/mod_insmod.c +++ b/sched/module/mod_insmod.c @@ -1,7 +1,7 @@ /**************************************************************************** * sched/module/mod_insmod.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -43,8 +43,9 @@ #include #include #include -#include +#include #include +#include #include #include @@ -178,12 +179,14 @@ static void mod_dumpinitializer(mod_initializer_t initializer, * it has been loaded. * * Returned Value: - * Zero (OK) on success. On any failure, -1 (ERROR) is returned the - * errno value is set appropriately. + * A non-NULL module handle that can be used on subsequent calls to other + * module interfaces is returned on success. If insmod() was unable to + * load the module insmod() will return a NULL handle and the errno + * variable will be set appropriately. * ****************************************************************************/ -int insmod(FAR const char *filename, FAR const char *modulename) +FAR void *insmod(FAR const char *filename, FAR const char *modulename) { struct mod_loadinfo_s loadinfo; FAR struct module_s *modp; @@ -248,7 +251,7 @@ int insmod(FAR const char *filename, FAR const char *modulename) goto errout_with_load; } - /* Return the load information */ + /* Save the load information */ modp->alloc = (FAR void *)loadinfo.textalloc; #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MODULE) @@ -266,7 +269,7 @@ int insmod(FAR const char *filename, FAR const char *modulename) /* Call the module initializer */ - ret = initializer(&modp->uninitializer, &modp->arg); + ret = initializer(&modp->modinfo); if (ret < 0) { sinfo("Failed to initialize the module: %d\n", ret); @@ -279,7 +282,7 @@ int insmod(FAR const char *filename, FAR const char *modulename) mod_uninitialize(&loadinfo); mod_registry_unlock(); - return OK; + return (FAR void *)modp; errout_with_load: mod_unload(&loadinfo); @@ -290,7 +293,7 @@ errout_with_loadinfo: errout_with_lock: mod_registry_unlock(); set_errno(-ret); - return ERROR; + return NULL; } #endif /* CONFIG_MODULE */ diff --git a/sched/module/mod_modhandle.c b/sched/module/mod_modhandle.c new file mode 100644 index 00000000000..0fc27ea4b9a --- /dev/null +++ b/sched/module/mod_modhandle.c @@ -0,0 +1,97 @@ +/**************************************************************************** + * sched/module/mod_modhandle.c + * + * Copyright (C) 2017 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 +#include +#include + +#include + +#include "module/module.h" + +#ifdef CONFIG_MODULE + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: modhandle + * + * Description: + * modhandle() returns the module handle for the installed module with the + * provided name. A secondary use of this function is to determin if a + * module has been loaded or not. + * + * Input Parameters: + * name - A pointer to the module name string. + * + * Returned Value: + * The non-NULL module handle previously returned by insmod() is returned + * on success. If no module with that name is installed, modhandle() will + * return a NULL handle and the errno variable will be set appropriately. + * + ****************************************************************************/ + +FAR void *modhandle(FAR const char *name) +{ + FAR struct module_s *modp; + + DEBUGASSERT(name != NULL); + + /* Get exclusive access to the module registry */ + + mod_registry_lock(); + + /* Find the module entry for this name in the registry */ + + modp = mod_registry_find(name); + if (modp == NULL) + { + serr("ERROR: Failed to find module %s: %d\n", name, ret); + set_errno(ENOENT); + } + + mod_registry_unlock(); + return (FAR void *)modp; +} + +#endif /* CONFIG_MODULE */ diff --git a/sched/module/mod_modsym.c b/sched/module/mod_modsym.c new file mode 100644 index 00000000000..fa27e21692c --- /dev/null +++ b/sched/module/mod_modsym.c @@ -0,0 +1,130 @@ +/**************************************************************************** + * sched/module/mod_modsym.c + * + * Copyright (C) 2017 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 +#include +#include + +#include + +#include "module.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: modsym + * + * Description: + * modsym() returns the address of a symbol defined within the object that + * was previously made accessible through a insmod() call. handle is the + * value returned from a call to insmod() (and which has not since been + * released via a call to rmmod()), name is the symbol's name as a + * character string. + * + * The returned symbol address will remain valid until rmmod() is called. + * + * Input Parameters: + * handle - The opaque, non-NULL value returned by a previous successful + * call to insmod(). + * name - A pointer to the symbol name string. + * + * Returned Value: + * The address associated with the symbol is returned on success. + * If handle does not refer to a valid module opened by insmod(), or if + * the named symbol cannot be found within any of the objects associated + * with handle, modsym() will return NULL and the errno variable will be + * set appropriately. + * + * NOTE: This means that the address zero can never be a valid return + * value. + * + ****************************************************************************/ + +FAR const void *modsym(FAR void *handle, FAR const char *name) +{ + FAR struct module_s *modp = (FAR struct module_s *)handle; + FAR const struct symtab_s *symbol; + int err; + int ret; + + /* Verify that the module is in the registry */ + + ret = mod_registry_verify(modp); + if (ret < 0) + { + serr("ERROR: Failed to verify module: %d\n", ret); + err = -ret; + goto errout_with_lock; + } + + /* Does the module have a symbol table? */ + + if (modp->modinfo.exports == NULL || modp->modinfo.nexports == 0) + { + serr("ERROR: Module has no symbol table\n"); + err = ENOENT; + goto errout_with_lock; + } + + /* Search the symbol table for the matching symbol */ + + symbol = symtab_findbyname(modp->modinfo.exports, name, + modp->modinfo.nexports); + if (symbol == NULL) + { + serr("ERROR: Failed to find symbol in symbol \"$s\" in table\n", name); + err = ENOENT; + goto errout_with_lock; + } + + /* Return the address within the module assoicated with the symbol */ + + mod_registry_unlock(); + DEBUGASSERT(symbol->sym_value != NULL); + return symbol->sym_value; + +errout_with_lock: + mod_registry_unlock(); + set_errno(err); + return NULL; +} diff --git a/sched/module/mod_procfs.c b/sched/module/mod_procfs.c index 50388d0d72a..8d42f8cad22 100644 --- a/sched/module/mod_procfs.c +++ b/sched/module/mod_procfs.c @@ -1,7 +1,7 @@ /**************************************************************************** * sched/module/mod_procfs.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -147,10 +147,11 @@ static int modprocfs_callback(FAR struct module_s *modp, FAR void *arg) DEBUGASSERT(modp != NULL && arg != NULL); priv = (FAR struct modprocfs_file_s *)arg; - linesize = snprintf(priv->line, MOD_LINELEN, "%s,%p,%p,%p,%p,%lu,%p,%lu\n", + linesize = snprintf(priv->line, MOD_LINELEN, "%s,%p,%p,%p,%u,%p,%lu,%p,%lu\n", modp->modulename, modp->initializer, - modp->uninitializer, modp->arg, - modp->alloc, (unsigned long)modp->textsize, + modp->modinfo.uninitializer, modp->modinfo.arg, + modp->modinfo.nexports, modp->alloc, + (unsigned long)modp->textsize, (FAR uint8_t *)modp->alloc + modp->textsize, (unsigned long)modp->datasize); copysize = procfs_memcpy(priv->line, linesize, priv->buffer, diff --git a/sched/module/mod_registry.c b/sched/module/mod_registry.c index 93a022e8bd0..961addcca7e 100644 --- a/sched/module/mod_registry.c +++ b/sched/module/mod_registry.c @@ -1,7 +1,7 @@ /**************************************************************************** * sched/module/mod_registry.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -199,6 +199,40 @@ FAR struct module_s *mod_registry_find(FAR const char *modulename) return modp; } +/**************************************************************************** + * Name: mod_registry_verify + * + * Description: + * Verify that a module handle is valid by traversing the module list and + * assuring that the module still resides in the list. If it does not, + * the handle is probably a stale pointer. + * + * Input Parameters: + * modp - The registry entry to be verified. + * + * Returned Value: + * Returns OK is the module is valid; -ENOENT otherwise. + * + * Assumptions: + * The caller holds the lock on the module registry. + * + ****************************************************************************/ + +int mod_registry_verify(FAR struct module_s *modp) +{ + FAR struct module_s *node; + + for (node = g_mod_registry; node != NULL; node = node->flink) + { + if (node == modp) + { + return OK; + } + } + + return -ENOENT; +} + /**************************************************************************** * Name: mod_registry_foreach * diff --git a/sched/module/mod_rmmod.c b/sched/module/mod_rmmod.c index 59f7d2f15d3..561e9c82f96 100644 --- a/sched/module/mod_rmmod.c +++ b/sched/module/mod_rmmod.c @@ -1,7 +1,7 @@ /**************************************************************************** - * sched/module/module.c + * sched/module/mod_rmmod.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -40,8 +40,7 @@ #include #include -#include -#include +#include #include #include @@ -62,9 +61,7 @@ * Remove a previously installed module from memory. * * Input Parameters: - * - * modulename - The module name. This is the name module name that was - * provided to insmod when the module was loaded. + * handle - The module handler previously returned by insmod(). * * Returned Value: * Zero (OK) on success. On any failure, -1 (ERROR) is returned the @@ -72,34 +69,33 @@ * ****************************************************************************/ -int rmmod(FAR const char *modulename) +int rmmod(FAR void *handle) { - FAR struct module_s *modp; - int ret = OK; + FAR struct module_s *modp = (FAR struct module_s *)handle; + int ret; - DEBUGASSERT(modulename != NULL); + DEBUGASSERT(modp != NULL); /* Get exclusive access to the module registry */ mod_registry_lock(); - /* Find the module entry for this modulename in the registry */ + /* Verify that the module is in the registry */ - modp = mod_registry_find(modulename); - if (modp == NULL) + ret = mod_registry_verify(modp); + if (ret < 0) { - serr("ERROR: Failed to find module %s: %d\n", modulename, ret); - ret = -ENOENT; + serr("ERROR: Failed to verify module: %d\n", ret); goto errout_with_lock; } /* Is there an uninitializer? */ - if (modp->uninitializer != NULL) + if (modp->modinfo.uninitializer != NULL) { - /* Try to uninitializer the module */ + /* Try to uninitialize the module */ - ret = modp->uninitializer(modp->arg); + ret = modp->modinfo.uninitializer(modp->modinfo.arg); /* Did the module sucessfully uninitialize? */ @@ -111,11 +107,13 @@ int rmmod(FAR const char *modulename) /* Nullify so that the uninitializer cannot be called again */ + modp->modinfo.uninitializer = NULL; #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MODULE) - modp->initializer = NULL; + modp->initializer = NULL; + modp->modinfo.arg = NULL; + modp->modinfo.exports = NULL; + modp->modinfo.nexports = 0; #endif - modp->uninitializer = NULL; - modp->arg = NULL; } /* Release resources held by the module */ diff --git a/sched/module/module.h b/sched/module/module.h index 9bccc0c6e1d..344acbf43ef 100644 --- a/sched/module/module.h +++ b/sched/module/module.h @@ -1,7 +1,7 @@ /**************************************************************************** * sched/module/module.h * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -62,8 +62,7 @@ struct module_s #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MODULE) mod_initializer_t initializer; /* Module initializer function */ #endif - mod_uninitializer_t uninitializer; /* Module uninitializer function */ - FAR void *arg; /* Uninitializer argument */ + struct mod_info_s modinfo; /* Module information */ FAR void *alloc; /* Allocated kernel memory */ #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MODULE) size_t textsize; /* Size of the kernel .text memory allocation */ @@ -444,4 +443,25 @@ int mod_registry_del(FAR struct module_s *modp); FAR struct module_s *mod_registry_find(FAR const char *modulename); +/**************************************************************************** + * Name: mod_registry_verify + * + * Description: + * Verify that a module handle is valid by traversing the module list and + * assuring that the module still resides in the list. If it does not, + * the handle is probably a stale pointer. + * + * Input Parameters: + * modp - The registry entry to be verified. + * + * Returned Value: + * Returns OK is the module is valid; -ENOENT otherwise. + * + * Assumptions: + * The caller holds the lock on the module registry. + * + ****************************************************************************/ + +int mod_registry_verify(FAR struct module_s *modp); + #endif /* __SCHED_MODULE_MODULE_H */ diff --git a/sched/sched/sched_cpuload.c b/sched/sched/sched_cpuload.c index e78ccf2f087..af8f90c72a9 100644 --- a/sched/sched/sched_cpuload.c +++ b/sched/sched/sched_cpuload.c @@ -65,16 +65,87 @@ # define CPULOAD_TICKSPERSEC CLOCKS_PER_SEC #endif +/* When g_cpuload_total exceeds the following time constant, the load and + * the counds will be scaled back by two. In the CONFIG_SMP, g_cpuload_total + * will be incremented multiple times per tick. + */ + +#ifdef CONFIG_SMP +# define CPULOAD_TIMECONSTANT \ + (CONFIG_SMP_NCPUS * \ + CONFIG_SCHED_CPULOAD_TIMECONSTANT * \ + CPULOAD_TICKSPERSEC) +#else +# define CPULOAD_TIMECONSTANT \ + (CONFIG_SCHED_CPULOAD_TIMECONSTANT * \ + CPULOAD_TICKSPERSEC) +#endif + /**************************************************************************** * Private Data ****************************************************************************/ /* This is the total number of clock tick counts. Essentially the * 'denominator' for all CPU load calculations. + * + * For a single CPU, this value is increment once per sample interval. So, + * for example, if nothing is running but the IDLE thread, that IDLE thread + * will get 100% of the load. + * + * But for the case of multiple CPUs (with CONFIG_SMP=y), this value is + * incremented for each CPU on each sample interval. So, as an example, if + * there are four CPUs and is nothing is running but the IDLE threads, then + * each would have a load of 25% of the total. */ volatile uint32_t g_cpuload_total; +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: sched_cpu_process_cpuload + * + * Description: + * Collect data that can be used for CPU load measurements. + * + * Inputs: + * cpu - The CPU that we are performing the load operations on. + * + * Return Value: + * None + * + * Assumptions/Limitations: + * This function is called from a timer interrupt handler with all + * interrupts disabled. + * + ****************************************************************************/ + +static inline void sched_cpu_process_cpuload(int cpu) +{ + FAR struct tcb_s *rtcb = current_task(cpu); + int hash_index; + + /* Increment the count on the currently executing thread + * + * NOTE also that CPU load measurement data is retained in the g_pidhash + * table vs. in the TCB which would seem to be the more logic place. It + * is place in the hash table, instead, to facilitate CPU load adjustments + * on all threads during timer interrupt handling. sched_foreach() could + * do this too, but this would require a little more overhead. + */ + + hash_index = PIDHASH(rtcb->pid); + g_pidhash[hash_index].ticks++; + + /* Increment tick count. NOTE that the count is increment once for each + * CPU on each sample interval. + */ + + g_cpuload_total++; +} + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -99,27 +170,31 @@ volatile uint32_t g_cpuload_total; void weak_function sched_process_cpuload(void) { - FAR struct tcb_s *rtcb = this_task(); - int hash_index; int i; - /* Increment the count on the currently executing thread - * - * NOTE also that CPU load measurement data is retained in the g_pidhash - * table vs. in the TCB which would seem to be the more logic place. It - * is place in the hash table, instead, to facilitate CPU load adjustments - * on all threads during timer interrupt handling. sched_foreach() could - * do this too, but this would require a little more overhead. +#ifdef CONFIG_SMP + irqstate_t flags; + + /* Perform scheduler operations on all CPUs. */ + + flags = enter_critical_section(); + for (i = 0; i < CONFIG_SMP_NCPUS; i++) + { + sched_cpu_process_cpuload(i); + } + +#else + /* Perform scheduler operations on the single CPU. */ + + sched_cpu_process_cpuload(0); + +#endif + + /* If the accumulated tick value exceed a time constant, then shift the + * accumulators and recalculate the total. */ - hash_index = PIDHASH(rtcb->pid); - g_pidhash[hash_index].ticks++; - - /* Increment tick count. If the accumulated tick value exceed a time - * constant, then shift the accumulators. - */ - - if (++g_cpuload_total > (CONFIG_SCHED_CPULOAD_TIMECONSTANT * CPULOAD_TICKSPERSEC)) + if (g_cpuload_total > CPULOAD_TIMECONSTANT) { uint32_t total = 0; @@ -137,6 +212,10 @@ void weak_function sched_process_cpuload(void) g_cpuload_total = total; } + +#ifdef CONFIG_SMP + leave_critical_section(flags); +#endif } /**************************************************************************** diff --git a/sched/sched/sched_cpuload_oneshot.c b/sched/sched/sched_cpuload_oneshot.c index fba9e43f33a..e3076bbfb69 100644 --- a/sched/sched/sched_cpuload_oneshot.c +++ b/sched/sched/sched_cpuload_oneshot.c @@ -1,7 +1,7 @@ /**************************************************************************** * sched/sched/sched_cpuload_oneshot.c * - * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2016-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -56,25 +56,43 @@ * Pre-processor Definitions ****************************************************************************/ +/* Configuration ************************************************************/ + #if !defined(CONFIG_SCHED_CPULOAD) || !defined(CONFIG_SCHED_CPULOAD_EXTCLK) # error CONFIG_SCHED_CPULOAD and CONFIG_SCHED_CPULOAD_EXTCLK must be defined #endif +/* CONFIG_SCHED_CPULOAD_TICKSPERSEC is the frequency of the external clock + * source. + */ + #ifndef CONFIG_SCHED_CPULOAD_TICKSPERSEC # error CONFIG_SCHED_CPULOAD_TICKSPERSEC not defined #endif -#define CPULOAD_ONESHOT_NOMINAL (CONFIG_SCHED_CPULOAD_TICKSPERSEC * 1000) - -#if CPULOAD_ONESHOT_NOMINAL < 1 || CPULOAD_ONESHOT_NOMINAL > 0x7fffffff -# error CPULOAD_ONESHOT_NOMINAL is out of range -#endif +/* CONFIG_CPULOAD_ONESHOT_ENTROPY determines that amount of random "jitter" + * that will be added to the nominal sample interval. Specified as a number + * bits. + */ #ifndef CONFIG_CPULOAD_ONESHOT_ENTROPY # warning CONFIG_CPULOAD_ONESHOT_ENTROPY not defined # define CONFIG_CPULOAD_ONESHOT_ENTROPY 0 #endif +/* Calculate the nomimal sample interval in microseconds: + * + * nominal = (1,000,000 usec/sec) / Frequency cycles/sec) = Period usec/cycle + */ + +#define CPULOAD_ONESHOT_NOMINAL (1000000 / CONFIG_SCHED_CPULOAD_TICKSPERSEC) + +#if CPULOAD_ONESHOT_NOMINAL < 1 || CPULOAD_ONESHOT_NOMINAL > 0x7fffffff +# error CPULOAD_ONESHOT_NOMINAL is out of range +#endif + +/* Convert the entropy from number of bits to a numeric value */ + #define CPULOAD_ONESHOT_ENTROPY (1 << CONFIG_CPULOAD_ONESHOT_ENTROPY) #if CPULOAD_ONESHOT_NOMINAL < CPULOAD_ONESHOT_ENTROPY @@ -133,11 +151,11 @@ static struct sched_oneshot_s g_sched_oneshot; static void sched_oneshot_start(void) { -#if CONFIG_CPULOAD_ONESHOT_ENTROPY > 0 struct timespec ts; +#if CONFIG_CPULOAD_ONESHOT_ENTROPY > 0 uint32_t entropy; - int32_t secs; #endif + int32_t secs; int32_t usecs; /* Get the next delay */ diff --git a/sched/sched/sched_processtimer.c b/sched/sched/sched_processtimer.c index 62dce45b02f..d8bcc3e1110 100644 --- a/sched/sched/sched_processtimer.c +++ b/sched/sched/sched_processtimer.c @@ -1,7 +1,7 @@ /**************************************************************************** * sched/sched/sched_processtimer.c * - * Copyright (C) 2007, 2009, 2014-2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2007, 2009, 2014-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -55,14 +55,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: sched_process_scheduler + * Name: sched_cpu_scheduler * * Description: * Check for operations specific to scheduling policy of the currently - * active task. + * active task on one CPU. * * Input Parameters: - * None + * cpu - The CPU that we are performing the scheduler operations on. * * Returned Value: * None @@ -70,9 +70,9 @@ ****************************************************************************/ #if CONFIG_RR_INTERVAL > 0 || defined(CONFIG_SCHED_SPORADIC) -static inline void sched_process_scheduler(void) +static inline void sched_cpu_scheduler(int cpu) { - FAR struct tcb_s *rtcb = this_task(); + FAR struct tcb_s *rtcb = current_task(cpu); #if CONFIG_RR_INTERVAL > 0 /* Check if the currently executing task uses round robin scheduling. */ @@ -100,6 +100,46 @@ static inline void sched_process_scheduler(void) } #endif } +#endif + +/**************************************************************************** + * Name: sched_process_scheduler + * + * Description: + * Check for operations specific to scheduling policy of the currently + * active task on all configured CPUs. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +#if CONFIG_RR_INTERVAL > 0 || defined(CONFIG_SCHED_SPORADIC) +static inline void sched_process_scheduler(void) +{ +#ifdef CONFIG_SMP + irqstate_t flags; + int i; + + /* Perform scheduler operations on all CPUs */ + + flags = enter_critical_section(); + for (i = 0; i < CONFIG_SMP_NCPUS; i++) + { + sched_cpu_scheduler(i); + } + + leave_critical_section(flags); + +#else + /* Perform scheduler operations on the single CPUs */ + + sched_cpu_scheduler(0); +#endif +} #else # define sched_process_scheduler() #endif diff --git a/sched/sched/sched_timerexpiration.c b/sched/sched/sched_timerexpiration.c index 309b1a705d1..e5410fce42e 100644 --- a/sched/sched/sched_timerexpiration.c +++ b/sched/sched/sched_timerexpiration.c @@ -142,13 +142,14 @@ static struct timespec g_stop_time; ****************************************************************************/ /**************************************************************************** - * Name: sched_process_scheduler + * Name: sched_cpu_scheduler * * Description: * Check for operations specific to scheduling policy of the currently - * active task. + * active task on a single CPU. * * Inputs: + * cpu - The CPU that we are performing the scheduler operations on. * ticks - The number of ticks that have elapsed on the interval timer. * noswitches - True: Can't do context switches now. * @@ -166,10 +167,10 @@ static struct timespec g_stop_time; ****************************************************************************/ #if CONFIG_RR_INTERVAL > 0 || defined(CONFIG_SCHED_SPORADIC) -static inline uint32_t sched_process_scheduler(uint32_t ticks, bool noswitches) +static inline uint32_t sched_cpu_scheduler(int cpu, uint32_t ticks, bool noswitches) { - FAR struct tcb_s *rtcb = this_task(); - FAR struct tcb_s *ntcb = this_task(); + FAR struct tcb_s *rtcb = current_task(cpu); + FAR struct tcb_s *ntcb = current_task(cpu); uint32_t ret = 0; #if CONFIG_RR_INTERVAL > 0 @@ -216,7 +217,7 @@ static inline uint32_t sched_process_scheduler(uint32_t ticks, bool noswitches) * the new task at the head of the ready to run list. */ - ntcb = this_task(); + ntcb = current_task(cpu); /* Check if the new task at the head of the ready-to-run has changed. */ @@ -240,6 +241,63 @@ static inline uint32_t sched_process_scheduler(uint32_t ticks, bool noswitches) return ret; } +#endif + +/**************************************************************************** + * Name: sched_process_scheduler + * + * Description: + * Check for operations specific to scheduling policy of the currently + * active task on a single CPU. + * + * Inputs: + * ticks - The number of ticks that have elapsed on the interval timer. + * noswitches - True: Can't do context switches now. + * + * Return Value: + * The number if ticks remaining until the next time slice expires. + * Zero is returned if there is no time slicing (i.e., the task at the + * head of the ready-to-run list does not support round robin + * scheduling). + * + * The value one may returned under certain circumstances that probably + * can't happen. The value one is the minimal timer setup and it means + * that a context switch is needed now, but cannot be performed because + * noswitches == true. + * + ****************************************************************************/ + +#if CONFIG_RR_INTERVAL > 0 || defined(CONFIG_SCHED_SPORADIC) +static inline uint32_t sched_process_scheduler(uint32_t ticks, + bool noswitches) +{ +#ifdef CONFIG_SMP + uint32_t minslice = UINT32_MAX; + uint32_t timeslice; + irqstate_t flags; + int i; + + /* Perform scheduler operations on all CPUs */ + + flags = enter_critical_section(); + for (i = 0; i < CONFIG_SMP_NCPUS; i++) + { + timeslice = sched_cpu_scheduler(i, ticks, noswitches); + if (timeslice > 0 && timeslice < minslice) + { + minslice = timeslice; + } + } + + leave_critical_section(flags); + return minslice < UINT32_MAX ? minslice : 0; + +#else + /* Perform scheduler operations on the single CPUs */ + + return sched_cpu_scheduler(0, ticks, noswitches); +#endif +} #else # define sched_process_scheduler(t,n) (0) #endif @@ -656,4 +714,5 @@ void sched_timer_reassess(void) nexttime = sched_timer_cancel(); sched_timer_start(nexttime); } + #endif /* CONFIG_SCHED_TICKLESS */ diff --git a/syscall/syscall.csv b/syscall/syscall.csv index 4dbcc98227f..501f99c3c37 100644 --- a/syscall/syscall.csv +++ b/syscall/syscall.csv @@ -29,7 +29,7 @@ "getenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","FAR char*","FAR const char*" "getpid","unistd.h","","pid_t" "getsockopt","sys/socket.h","CONFIG_NSOCKET_DESCRIPTORS > 0 && defined(CONFIG_NET)","int","int","int","int","FAR void*","FAR socklen_t*" -"insmod","nuttx/module.h","defined(CONFIG_MODULE)","int","FAR const char *","FAR const char *" +"insmod","nuttx/module.h","defined(CONFIG_MODULE)","FAR void *","FAR const char *","FAR const char *" "ioctl","sys/ioctl.h","!defined(CONFIG_LIBC_IOCTL_VARIADIC) && (CONFIG_NSOCKET_DESCRIPTORS > 0 || CONFIG_NFILE_DESCRIPTORS > 0)","int","int","int","unsigned long" "kill","signal.h","!defined(CONFIG_DISABLE_SIGNALS)","int","pid_t","int" "listen","sys/socket.h","CONFIG_NSOCKET_DESCRIPTORS > 0 && defined(CONFIG_NET)","int","int","int" @@ -37,6 +37,8 @@ "mkdir","sys/stat.h","CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*","mode_t" "mkfifo2","nuttx/drivers/drivers.h","defined(CONFIG_PIPES) && CONFIG_DEV_FIFO_SIZE > 0","int","FAR const char*","mode_t","size_t" "mmap","sys/mman.h","CONFIG_NFILE_DESCRIPTORS > 0","FAR void*","FAR void*","size_t","int","int","int","off_t" +"modhandle","nuttx/module.h","defined(CONFIG_MODULE)","FAR void *","FAR const char *" +"modsym","nuttx/module.h","defined(CONFIG_MODULE)","FAR const void *","FAR void *","FAR const char *" "mount","sys/mount.h","CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_FS_READABLE)","int","const char*","const char*","const char*","unsigned long","const void*" "mq_close","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t" "mq_getattr","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t","struct mq_attr *" @@ -102,7 +104,7 @@ "rename","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*","FAR const char*" "rewinddir","dirent.h","CONFIG_NFILE_DESCRIPTORS > 0","void","FAR DIR*" "rmdir","unistd.h","CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*" -"rmmod","nuttx/module.h","defined(CONFIG_MODULE)","int","FAR const char *" +"rmmod","nuttx/module.h","defined(CONFIG_MODULE)","int","FAR void *" "sched_getparam","sched.h","","int","pid_t","struct sched_param*" "sched_getscheduler","sched.h","","int","pid_t" "sched_getstreams","nuttx/sched.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","FAR struct streamlist*" diff --git a/syscall/syscall_lookup.h b/syscall/syscall_lookup.h index 25807590d87..d064bdd93f2 100644 --- a/syscall/syscall_lookup.h +++ b/syscall/syscall_lookup.h @@ -1,7 +1,7 @@ /**************************************************************************** * syscall/syscall_lookup.h * - * Copyright (C) 2011, 2013-2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2013-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -123,6 +123,8 @@ SYSCALL_LOOKUP(up_assert, 2, STUB_up_assert) #ifdef CONFIG_MODULE SYSCALL_LOOKUP(insmod, 2, STUB_insmod) SYSCALL_LOOKUP(rmmod, 1, STUB_rmmod) + SYSCALL_LOOKUP(modsym, 2, STUB_modsym) + SYSCALL_LOOKUP(modhandle, 1, STUB_modhandle) #endif /* The following can only be defined if we are configured to execute diff --git a/syscall/syscall_stublookup.c b/syscall/syscall_stublookup.c index fda336d5aa4..fcb7d2dbfb6 100644 --- a/syscall/syscall_stublookup.c +++ b/syscall/syscall_stublookup.c @@ -122,6 +122,8 @@ uintptr_t STUB_waitid(int nbr, uintptr_t parm1, uintptr_t parm2, #ifdef CONFIG_MODULE uintptr_t STUB_insmod(int nbr, uintptr_t parm1, uintptr_t parm2); uintptr_t STUB_rmmod(int nbr, uintptr_t parm1); +uintptr_t STUB_modsym(int nbr, uintptr_t parm1); +uintptr_t STUB_modhandle(int nbr, uintptr_t parm1, uintptr_t parm2); #endif /* The following can only be defined if we are configured to execute diff --git a/tools/README.txt b/tools/README.txt index b0f36793e93..282be57b42b 100644 --- a/tools/README.txt +++ b/tools/README.txt @@ -564,8 +564,8 @@ indent.sh --------- This script can be used to indent .c and .h files in a manner similar - to my coding NuttX coding style. It doesn't do a really good job, - however (see the comments at the top of the indent.sh file). + to the NuttX coding style. It doesn't do a really good job, however + (see below and the comments at the top of the indent.sh file). USAGE: ./indent.sh [-d] -o @@ -585,6 +585,28 @@ indent.sh -h Show this help message and exit + The conversions make by the indent.sh script differs from the NuttX coding + style in that: + + 1. I normally put the trailing */ of a multi-line comment on a separate + line. If your C file already has properly formatted comments then + using -nfca instead of -fca eliminates that bad behavior + 2. I usually align things vertically (like '=' in assignments), + 3. indent.sh puts a bogus blank line at the top of the file, + 4. I don't like the way it handles nested conditional compilation + intermixed with code. I prefer the preprocessor conditiona tests + be all right justified in that case. + 5. I also indent brackets differently on structures than does this script. + 6. I normally use no spaces in casts. indent.sh adds spaces in casts like + "(FAR void *)&foo" becomes "(FAR void *) & foo". + 7. When used with header files, the initial idempotence conditional test + causes all preprecessor directives to be indented in the file. So for + header files, you will need to substitute "^# " with "#" in the + converted header file. + + You will manually need to check for the issues listed above after + performing the conversions. + sethost.sh ---------- diff --git a/tools/indent.sh b/tools/indent.sh index 4174fd5e4fd..76f7029d632 100755 --- a/tools/indent.sh +++ b/tools/indent.sh @@ -35,14 +35,27 @@ ############################################################################ # # This script uses the Linux 'indent' utility to re-format C source files -# to match the coding style that I use. It differs from my coding style in that +# to match the coding style that I use. It differs from the NuttX coding +# style in that: # -# - I normally put the trailing */ of a multi-line comment on a separate line, -# - I usually align things vertically (like '=' in assignments), -# - indent puts a bogus blank line at the top of the file, -# - I don't like the way it handles nested conditional compilation intermixed with code. -# - I also indent brackets differently on structures than does this script. +# 1. I normally put the trailing */ of a multi-line comment on a separate +# line. If your C file already has properly formatted comments then +# using -nfca instead of -fca eliminates that bad behavior +# 2. I usually align things vertically (like '=' in assignments), +# 3. indent.sh puts a bogus blank line at the top of the file, +# 4. I don't like the way it handles nested conditional compilation +# intermixed with code. I prefer the preprocessor conditiona tests +# be all right justified in that case. +# 5. I also indent brackets differently on structures than does this script. +# 6. I normally use no spaces in casts. indent.sh adds spaces in casts like +# "(FAR void *)&foo" becomes "(FAR void *) & foo". +# 7. When used with header files, the initial idempotence conditional test +# causes all preprecessor directives to be indented in the file. So for +# header files, you will need to substitute "^# " with "#" in the +# converted header file. # +# You will manually need to check for the issues listed above after +# performing the conversion. # Constants