diff --git a/ChangeLog b/ChangeLog index 830203fbe56..07414609d13 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4274,7 +4274,7 @@ the socket was not closed, but lost the connection through an abnormal event, then poll/select will hang. That needs to be revisited. (2013-03-07) - * fs/fs_selected.c: Was not checking if the timeout parameter was NULL + * fs/fs_select.c: Was not checking if the timeout parameter was NULL but would, instead, setup a bogus timeout based on whatever it found at address zero. Also, improved some of the memory allocation logic so that it will not use so much memory. (2013-03-07) @@ -4295,4 +4295,11 @@ a good test and helped me a lot when I wrote the memory manager, but now it is in the way and paralyzing other efforts. So the memory unit test was deleted. (2013-03-08) + * sched/sched_free.c: Rename sched_free() to sched_ufree(); Add + sched_kfree() to handler deferred kernel heap allocations. (2013-03-10) + * arch/: User user-accessible heap to allocate all stacks. (2013-03-10) + * arch/arm/src/sam3u: The AT91SAM3U will now support a kernel heap if + so configured. (2013-03-10) + * configs/sam3u-ek/knsh: This configuration was converted to use the + kconfigs-frontends build tool. (2013-03-10) diff --git a/Kconfig b/Kconfig index 01653aa81e6..31b5ad6d602 100644 --- a/Kconfig +++ b/Kconfig @@ -150,7 +150,7 @@ config BUILD_2PASS if BUILD_2PASS config PASS1_TARGET string "Pass one target" - default "" + default "all" ---help--- The name of the first pass build target. This can be specific build target, a special build target (all, default, etc.) @@ -458,6 +458,9 @@ endmenu menu "RTOS Features" source sched/Kconfig +if NUTTX_KERNEL +source syscall/Kconfig +endif endmenu menu "Device Drivers" diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 72526654b83..683e23f36ef 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -104,11 +104,11 @@ config ARCH_CHIP_NUC1XX NPX LPC43XX architectures (ARM Cortex-M4). config ARCH_CHIP_SAM3U - bool "Atmel AT91SAM3U" + bool "Atmel AT91SAM3" select ARCH_CORTEXM3 select ARCH_HAVE_MPU ---help--- - Atmel AT91SAM3U architectures (ARM Cortex-M3) + Atmel AT91SAM3 architectures (ARM Cortex-M3) config ARCH_CHIP_STM32 bool "STMicro STM32" diff --git a/arch/arm/src/sam3u/Kconfig b/arch/arm/src/sam3u/Kconfig index b845655474b..473e1d9a44e 100644 --- a/arch/arm/src/sam3u/Kconfig +++ b/arch/arm/src/sam3u/Kconfig @@ -3,4 +3,95 @@ # see misc/tools/kconfig-language.txt. # -comment "AT91SAM3U Configuration Options" +comment "AT91SAM3 Configuration Options" + +choice + prompt "AT91SAM3 Chip Selection" + default ARCH_CHIP_AT91SAM3U4E + depends on ARCH_CHIP_SAM3U + +config ARCH_CHIP_AT91SAM3U4E + bool "AT91SAM3U4E" + +endchoice + +menu "AT91SAM3 Peripheral Support" + +config SAM3U_DMA + bool "DMA" + default n + +config SAM3U_NAND + bool "NAND support" + default n + +config SAM3U_HSMCI + bool "HSMCI" + default n + +config SAM3U_UART + bool "UART" + default y + select ARCH_HAVE_UART + +config SAM3U_USART0 + bool "USART0" + default n + +config SAM3U_USART1 + bool "USART1" + default n + +config SAM3U_USART2 + bool "USART2" + default n + +config SAM3U_USART3 + bool "USART3" + default n + +endmenu + +menu "AT91SAM3 UART Configuration" + +config USART0_ISUART + bool "USART0 is a UART" + default y + depends on SAM3U_USART0 + select ARCH_HAVE_USART0 + +config USART1_ISUART + bool "USART1 is a UART" + default y + depends on SAM3U_USART1 + select ARCH_HAVE_USART1 + +config USART2_ISUART + bool "USART2 is a UART" + default n + depends on SAM3U_USART2 + select ARCH_HAVE_USART2 + +config USART3_ISUART + bool "USART3 is a UART" + default y + depends on SAM3U_USART3 + select ARCH_HAVE_USART2 + +endmenu + +menu "AT91SAM3 GPIO Interrupt Configuration" + +config GPIOA_IRQ + bool "GPIOA interrupts" + default n + +config GPIOB_IRQ + bool "GPIOB interrupts" + default n + +config GPIOC_IRQ + bool "GPIOC interrupts" + default n + +endmenu diff --git a/arch/arm/src/sam3u/sam3u_allocateheap.c b/arch/arm/src/sam3u/sam3u_allocateheap.c index 99e2d9e865a..9ae97dfb414 100644 --- a/arch/arm/src/sam3u/sam3u_allocateheap.c +++ b/arch/arm/src/sam3u/sam3u_allocateheap.c @@ -78,6 +78,68 @@ # warning "CONFIG_DRAM_END is before end of SRAM0... not all of SRAM0 used" #endif +#ifdef CONFIG_MM_KERNEL_HEAPSIZE +# if CONFIG_MM_KERNEL_HEAPSIZE < (1 << 5) /* Kernel heap size < 2**5 */ +# define KHEAP_SIZE (1 << 4) /* Use size 2**4 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 6) /* Kernel heap size < 2**6 */ +# define KHEAP_SIZE (1 << 5) /* Use size 2**5 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 7) /* Kernel heap size < 2**7 */ +# define KHEAP_SIZE (1 << 6) /* Use size 2**6 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 8) /* Kernel heap size < 2**8 */ +# define KHEAP_SIZE (1 << 7) /* Use size 2**7 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 9) /* Kernel heap size < 2**9 */ +# define KHEAP_SIZE (1 << 8) /* Use size 2**8 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 10) /* Kernel heap size < 2**10 */ +# define KHEAP_SIZE (1 << 9) /* Use size 2**9 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 11) /* Kernel heap size < 2**11 */ +# define KHEAP_SIZE (1 << 10) /* Use size 2**10 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 12) /* Kernel heap size < 2**12 */ +# define KHEAP_SIZE (1 << 11) /* Use size 2**11 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 13) /* Kernel heap size < 2**13 */ +# define KHEAP_SIZE (1 << 12) /* Use size 2**12 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 14) /* Kernel heap size < 2**14 */ +# define KHEAP_SIZE (1 << 13) /* Use size 2**13 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 15) /* Kernel heap size < 2**15 */ +# define KHEAP_SIZE (1 << 14) /* Use size 2**14 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 16) /* Kernel heap size < 2**16 */ +# define KHEAP_SIZE (1 << 15) /* Use size 2**15 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 17) /* Kernel heap size < 2**17 */ +# define KHEAP_SIZE (1 << 16) /* Use size 2**16 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 18) /* Kernel heap size < 2**18 */ +# define KHEAP_SIZE (1 << 17) /* Use size 2**17 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 19) /* Kernel heap size < 2**19 */ +# define KHEAP_SIZE (1 << 18) /* Use size 2**18 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 20) /* Kernel heap size < 2**20 */ +# define KHEAP_SIZE (1 << 19) /* Use size 2**19 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 21) /* Kernel heap size < 2**21 */ +# define KHEAP_SIZE (1 << 20) /* Use size 2**20 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 22) /* Kernel heap size < 2**22 */ +# define KHEAP_SIZE (1 << 21) /* Use size 2**21 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 23) /* Kernel heap size < 2**23 */ +# define KHEAP_SIZE (1 << 22) /* Use size 2**22 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 24) /* Kernel heap size < 2**24 */ +# define KHEAP_SIZE (1 << 23) /* Use size 2**23 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 25) /* Kernel heap size < 2**25 */ +# define KHEAP_SIZE (1 << 24) /* Use size 2**24 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 26) /* Kernel heap size < 2**26 */ +# define KHEAP_SIZE (1 << 25) /* Use size 2**25 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 27) /* Kernel heap size < 2**27 */ +# define KHEAP_SIZE (1 << 26) /* Use size 2**26 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 28) /* Kernel heap size < 2**28 */ +# define KHEAP_SIZE (1 << 27) /* Use size 2**27 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 29) /* Kernel heap size < 2**29 */ +# define KHEAP_SIZE (1 << 28) /* Use size 2**28 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 30) /* Kernel heap size < 2**30 */ +# define KHEAP_SIZE (1 << 29) /* Use size 2**29 */ +# elif CONFIG_MM_KERNEL_HEAPSIZE < (1 << 31) /* Kernel heap size < 2**31 */ +# define KHEAP_SIZE (1 << 30) /* Use size 2**30 */ +# else +# define KHEAP_SIZE (1 << 31) /* Use size 2**31 */ +# endif + +# define KHEAP_MASK (KHEAP_SIZE - 1) +#endif + /**************************************************************************** * Private Data ****************************************************************************/ @@ -107,6 +169,24 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size) { +#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP) + uintptr_t kbase = ((uintptr_t)g_heapbase + KHEAP_MASK) & ~KHEAP_MASK; + uintptr_t ubase = kbase + KHEAP_SIZE; + size_t usize = CONFIG_DRAM_END - ubase; + + DEBUGASSERT(ubase < (uintptr_t)CONFIG_DRAM_END); + + /* Return the heap settings */ + + up_ledon(LED_HEAPALLOCATE); + *heap_start = (FAR void*)ubase; + *heap_size = usize; + + /* Allow access to the heap memory */ + + sam3u_mpu_uheap((uintptr_t)ubase, usize); +#else + size_t size = CONFIG_DRAM_END - g_heapbase; /* Return the heap settings */ @@ -115,11 +195,41 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size) *heap_start = (FAR void*)g_heapbase; *heap_size = size; - /* Allow access to the heap memory */ + /* Allow user access to the user heap memory */ - sam3u_mpuheap((uintptr_t)g_heapbase, size); + sam3u_mpu_uheap((uintptr_t)g_heapbase, size); + +#endif } +/**************************************************************************** + * Name: up_allocate_kheap + * + * Description: + * For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and + * user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function allocates + * (and protects) the kernel-space heap. + * + ****************************************************************************/ + +#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP) +void up_allocate_kheap(FAR void **heap_start, size_t *heap_size) +{ + uintptr_t kbase = ((uintptr_t)g_heapbase + KHEAP_MASK) & ~KHEAP_MASK; + + DEBUGASSERT((kbase + KHEAP_SIZE) < (uintptr_t)CONFIG_DRAM_END); + + /* Return the heap settings */ + + *heap_start = (FAR void*)kbase; + *heap_size = KHEAP_SIZE; + + /* Prohibit user access to the kernel heap memory */ + + sam3u_mpu_kheap((uintptr_t)kbase, KHEAP_SIZE); +} +#endif + /************************************************************************ * Name: up_addregion * @@ -136,18 +246,18 @@ void up_addregion(void) kmm_addregion((FAR void*)SAM3U_INTSRAM1_BASE, CONFIG_SAM3U_SRAM1_SIZE); - /* Allow access to the heap memory */ + /* Allow user access to the heap memory */ - sam3u_mpuheap(SAM3U_INTSRAM1_BASE, CONFIG_SAM3U_SRAM1_SIZE); + sam3u_mpu_uheap(SAM3U_INTSRAM1_BASE, CONFIG_SAM3U_SRAM1_SIZE); /* Add the region */ #if CONFIG_MM_REGIONS > 2 kmm_addregion((FAR void*)SAM3U_NFCSRAM_BASE, CONFIG_SAM3U_NFCSRAM_SIZE); - /* Allow access to the heap memory */ + /* Allow user access to the heap memory */ - sam3u_mpuheap(SAM3U_NFCSRAM_BASE, CONFIG_SAM3U_NFCSRAM_SIZE); + sam3u_mpu_uheap(SAM3U_NFCSRAM_BASE, CONFIG_SAM3U_NFCSRAM_SIZE); #endif } #endif diff --git a/arch/arm/src/sam3u/sam3u_internal.h b/arch/arm/src/sam3u/sam3u_internal.h index d3796851519..b0cf83cb049 100644 --- a/arch/arm/src/sam3u/sam3u_internal.h +++ b/arch/arm/src/sam3u/sam3u_internal.h @@ -1,7 +1,7 @@ /************************************************************************************ * arch/arm/src/sam3u/sam3u_internal.h * - * Copyright (C) 2009-2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2009-2011, 2013 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -409,7 +409,8 @@ struct sam3u_dmaregs_s #undef EXTERN #if defined(__cplusplus) #define EXTERN extern "C" -extern "C" { +extern "C" +{ #else #define EXTERN extern #endif @@ -431,7 +432,7 @@ extern "C" { * ************************************************************************************/ -EXTERN void sam3u_clockconfig(void); +void sam3u_clockconfig(void); /************************************************************************************ * Name: sam3u_lowsetup @@ -443,7 +444,7 @@ EXTERN void sam3u_clockconfig(void); * ************************************************************************************/ -EXTERN void sam3u_lowsetup(void); +void sam3u_lowsetup(void); /**************************************************************************** * Name: sam3u_userspace @@ -457,7 +458,7 @@ EXTERN void sam3u_lowsetup(void); ****************************************************************************/ #ifdef CONFIG_NUTTX_KERNEL -EXTERN void sam3u_userspace(void); +void sam3u_userspace(void); #endif /**************************************************************************** @@ -470,23 +471,29 @@ EXTERN void sam3u_userspace(void); ****************************************************************************/ #ifdef CONFIG_NUTTX_KERNEL -EXTERN void sam3u_mpuinitialize(void); +void sam3u_mpuinitialize(void); #else # define sam3u_mpuinitialize() #endif /**************************************************************************** - * Name: sam3u_mpuheap + * Name: sam3u_mpu_uheap and sam3u_mpu_uheap * * Description: - * Map a heap region. + * Map a user- or kernel-heap region. * ****************************************************************************/ #ifdef CONFIG_NUTTX_KERNEL -EXTERN void sam3u_mpuheap(uintptr_t start, size_t size); +void sam3u_mpu_uheap(uintptr_t start, size_t size); #else -# define sam3u_mpuheap(start,size) +# define sam3u_mpu_uheap(start,size) +#endif + +#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP) +void sam3u_mpu_kheap(uintptr_t start, size_t size); +#else +# define sam3u_mpu_kheap(start,size) #endif /************************************************************************************ @@ -498,7 +505,7 @@ EXTERN void sam3u_mpuheap(uintptr_t start, size_t size); ************************************************************************************/ #ifdef CONFIG_GPIO_IRQ -EXTERN void sam3u_gpioirqinitialize(void); +void sam3u_gpioirqinitialize(void); #else # define sam3u_gpioirqinitialize() #endif @@ -511,7 +518,7 @@ EXTERN void sam3u_gpioirqinitialize(void); * ************************************************************************************/ -EXTERN int sam3u_configgpio(uint16_t cfgset); +int sam3u_configgpio(uint16_t cfgset); /************************************************************************************ * Name: sam3u_gpiowrite @@ -521,7 +528,7 @@ EXTERN int sam3u_configgpio(uint16_t cfgset); * ************************************************************************************/ -EXTERN void sam3u_gpiowrite(uint16_t pinset, bool value); +void sam3u_gpiowrite(uint16_t pinset, bool value); /************************************************************************************ * Name: sam3u_gpioread @@ -531,7 +538,7 @@ EXTERN void sam3u_gpiowrite(uint16_t pinset, bool value); * ************************************************************************************/ -EXTERN bool sam3u_gpioread(uint16_t pinset); +bool sam3u_gpioread(uint16_t pinset); /************************************************************************************ * Name: sam3u_gpioirq @@ -542,7 +549,7 @@ EXTERN bool sam3u_gpioread(uint16_t pinset); ************************************************************************************/ #ifdef CONFIG_GPIO_IRQ -EXTERN void sam3u_gpioirq(uint16_t pinset); +void sam3u_gpioirq(uint16_t pinset); #else # define sam3u_gpioirq(pinset) #endif @@ -556,7 +563,7 @@ EXTERN void sam3u_gpioirq(uint16_t pinset); ************************************************************************************/ #ifdef CONFIG_GPIO_IRQ -EXTERN void sam3u_gpioirqenable(int irq); +void sam3u_gpioirqenable(int irq); #else # define sam3u_gpioirqenable(irq) #endif @@ -570,7 +577,7 @@ EXTERN void sam3u_gpioirqenable(int irq); ************************************************************************************/ #ifdef CONFIG_GPIO_IRQ -EXTERN void sam3u_gpioirqdisable(int irq); +void sam3u_gpioirqdisable(int irq); #else # define sam3u_gpioirqdisable(irq) #endif @@ -584,7 +591,7 @@ EXTERN void sam3u_gpioirqdisable(int irq); ************************************************************************************/ #ifdef CONFIG_DEBUG_GPIO -EXTERN int sam3u_dumpgpio(uint32_t pinset, const char *msg); +int sam3u_dumpgpio(uint32_t pinset, const char *msg); #else # define sam3u_dumpgpio(p,m) #endif @@ -609,7 +616,7 @@ EXTERN int sam3u_dumpgpio(uint32_t pinset, const char *msg); * ****************************************************************************/ -EXTERN DMA_HANDLE sam3u_dmachannel(uint32_t dmach_flags); +DMA_HANDLE sam3u_dmachannel(uint32_t dmach_flags); /**************************************************************************** * Name: sam3u_dmafree @@ -624,7 +631,7 @@ EXTERN DMA_HANDLE sam3u_dmachannel(uint32_t dmach_flags); * ****************************************************************************/ -EXTERN void sam3u_dmafree(DMA_HANDLE handle); +void sam3u_dmafree(DMA_HANDLE handle); /**************************************************************************** * Name: sam3u_dmatxsetup @@ -637,8 +644,8 @@ EXTERN void sam3u_dmafree(DMA_HANDLE handle); * ****************************************************************************/ -EXTERN int sam3u_dmatxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, - size_t nbytes); +int sam3u_dmatxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, + size_t nbytes); /**************************************************************************** * Name: sam3u_dmarxsetup @@ -651,8 +658,8 @@ EXTERN int sam3u_dmatxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, * ****************************************************************************/ -EXTERN int sam3u_dmarxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, - size_t nbytes); +int sam3u_dmarxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, + size_t nbytes); /**************************************************************************** * Name: sam3u_dmastart @@ -662,7 +669,7 @@ EXTERN int sam3u_dmarxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, * ****************************************************************************/ -EXTERN int sam3u_dmastart(DMA_HANDLE handle, dma_callback_t callback, void *arg); +int sam3u_dmastart(DMA_HANDLE handle, dma_callback_t callback, void *arg); /**************************************************************************** * Name: sam3u_dmastop @@ -674,7 +681,7 @@ EXTERN int sam3u_dmastart(DMA_HANDLE handle, dma_callback_t callback, void *arg) * ****************************************************************************/ -EXTERN void sam3u_dmastop(DMA_HANDLE handle); +void sam3u_dmastop(DMA_HANDLE handle); /**************************************************************************** * Name: sam3u_dmasample @@ -685,7 +692,7 @@ EXTERN void sam3u_dmastop(DMA_HANDLE handle); ****************************************************************************/ #ifdef CONFIG_DEBUG_DMA -EXTERN void sam3u_dmasample(DMA_HANDLE handle, struct sam3u_dmaregs_s *regs); +void sam3u_dmasample(DMA_HANDLE handle, struct sam3u_dmaregs_s *regs); #else # define sam3u_dmasample(handle,regs) #endif @@ -699,8 +706,8 @@ EXTERN void sam3u_dmasample(DMA_HANDLE handle, struct sam3u_dmaregs_s *regs); ****************************************************************************/ #ifdef CONFIG_DEBUG_DMA -EXTERN void sam3u_dmadump(DMA_HANDLE handle, const struct sam3u_dmaregs_s *regs, - const char *msg); +void sam3u_dmadump(DMA_HANDLE handle, const struct sam3u_dmaregs_s *regs, + const char *msg); #else # define sam3u_dmadump(handle,regs,msg) #endif @@ -720,7 +727,7 @@ EXTERN void sam3u_dmadump(DMA_HANDLE handle, const struct sam3u_dmaregs_s *regs, ****************************************************************************/ struct sdio_dev_s; /* See include/nuttx/sdio.h */ -EXTERN FAR struct sdio_dev_s *sdio_initialize(int slotno); +FAR struct sdio_dev_s *sdio_initialize(int slotno); /**************************************************************************** * Name: sdio_mediachange @@ -741,7 +748,7 @@ EXTERN FAR struct sdio_dev_s *sdio_initialize(int slotno); * ****************************************************************************/ -EXTERN void sdio_mediachange(FAR struct sdio_dev_s *dev, bool cardinslot); +void sdio_mediachange(FAR struct sdio_dev_s *dev, bool cardinslot); /**************************************************************************** * Name: sdio_wrprotect @@ -759,7 +766,7 @@ EXTERN void sdio_mediachange(FAR struct sdio_dev_s *dev, bool cardinslot); * ****************************************************************************/ -EXTERN void sdio_wrprotect(FAR struct sdio_dev_s *dev, bool wrprotect); +void sdio_wrprotect(FAR struct sdio_dev_s *dev, bool wrprotect); /**************************************************************************** * Name: sam3u_spicsnumber, sam3u_spiselect, sam3u_spistatus, and @@ -825,7 +832,7 @@ enum spi_dev_e; * ****************************************************************************/ -EXTERN int sam3u_spicsnumber(enum spi_dev_e devid); +int sam3u_spicsnumber(enum spi_dev_e devid); /**************************************************************************** * Name: sam3u_spiselect @@ -853,7 +860,7 @@ EXTERN int sam3u_spicsnumber(enum spi_dev_e devid); * ****************************************************************************/ -EXTERN void sam3u_spiselect(enum spi_dev_e devid, bool selected); +void sam3u_spiselect(enum spi_dev_e devid, bool selected); /**************************************************************************** * Name: sam3u_spistatus @@ -870,7 +877,7 @@ EXTERN void sam3u_spiselect(enum spi_dev_e devid, bool selected); * ****************************************************************************/ -EXTERN uint8_t sam3u_spistatus(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +uint8_t sam3u_spistatus(FAR struct spi_dev_s *dev, enum spi_dev_e devid); /**************************************************************************** * Name: sam3u_spicmddata @@ -897,7 +904,7 @@ EXTERN uint8_t sam3u_spistatus(FAR struct spi_dev_s *dev, enum spi_dev_e devid); ****************************************************************************/ #ifdef CONFIG_SPI_CMDDATA -EXTERN int sam3u_spicmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +int sam3u_spicmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); #endif #endif /* CONFIG_SAM3U_SPI */ diff --git a/arch/arm/src/sam3u/sam3u_mpuinit.c b/arch/arm/src/sam3u/sam3u_mpuinit.c index ef8553e9cf4..b2d3850eac6 100644 --- a/arch/arm/src/sam3u/sam3u_mpuinit.c +++ b/arch/arm/src/sam3u/sam3u_mpuinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/common/sam3u_mpuinit.c * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2013 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -102,17 +102,26 @@ void sam3u_mpuinitialize(void) } /**************************************************************************** - * Name: sam3u_mpuheap + * Name: sam3u_mpu_uheap and sam3u_mpu_uheap * * Description: - * Map a heap region (probably needs to extension to handle external SRAM). + * Map a user- or kernel-heap region. + * + * This logic may need an extension to handle external SRAM). * ****************************************************************************/ -void sam3u_mpuheap(uintptr_t start, size_t size) +void sam3u_mpu_uheap(uintptr_t start, size_t size) { mpu_userintsram(start, size); } +#ifdef CONFIG_MM_KERNEL_HEAP +void sam3u_mpu_kheap(uintptr_t start, size_t size) +{ + mpu_privintsram(start, size); +} +#endif + #endif /* CONFIG_NUTTX_KERNEL */ diff --git a/configs/sam3u-ek/knsh/appconfig b/configs/sam3u-ek/knsh/appconfig deleted file mode 100644 index 3e94f548dd6..00000000000 --- a/configs/sam3u-ek/knsh/appconfig +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################ -# configs/sam3u-ek/nsh/appconfig -# -# Copyright (C) 2011-2012 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. -# -############################################################################ - -# Path to example in apps/examples containing the user_start entry point - -CONFIGURED_APPS += examples/nsh - -# The NSH library - -CONFIGURED_APPS += system/readline -CONFIGURED_APPS += nshlib - diff --git a/configs/sam3u-ek/knsh/defconfig b/configs/sam3u-ek/knsh/defconfig index 1a8db473b7c..7b0963ce061 100755 --- a/configs/sam3u-ek/knsh/defconfig +++ b/configs/sam3u-ek/knsh/defconfig @@ -1,252 +1,231 @@ -############################################################################ -# configs/sam3u-ek/knsh/defconfig # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration # -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: +CONFIG_NUTTX_NEWCONFIG=y + # -# 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. +# Build Setup # -# 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 -# POSPIBILITY OF SUCH DAMAGE. +# CONFIG_EXPERIMENTAL 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 # -# Architecture Selection +CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_2PASS=y +CONFIG_PASS1_TARGET="all" +CONFIG_PASS1_BUILDIR="configs/sam3u-ek/kernel" +CONFIG_PASS1_OBJECT="" +CONFIG_NUTTX_KERNEL=y + # -CONFIG_ARCH="arm" +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +# CONFIG_INTELHEX_BINARY=y +# CONFIG_MOTOROLA_SREC is not set +# CONFIG_RAW_BINARY is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_SYMBOLS is not set + +# +# System Type +# +# CONFIG_ARCH_8051 is not set CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_IMX is not set +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_LM 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_SAM3U=y +# CONFIG_ARCH_CHIP_STM32 is not set +# CONFIG_ARCH_CHIP_STR71X is not set CONFIG_ARCH_CORTEXM3=y +CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="sam3u" -CONFIG_ARCH_CHIP_AT91SAM3U4E=y -CONFIG_ARCH_BOARD="sam3u-ek" -CONFIG_ARCH_BOARD_SAM3UEK=y -CONFIG_BOARD_LOOPSPERMSEC=4768 -CONFIG_DRAM_SIZE=32768 -CONFIG_DRAM_START=0x20000000 -CONFIG_ARCH_IRQPRIO=y -CONFIG_ARCH_INTERRUPTSTACK=0 -CONFIG_ARCH_STACKDUMP=y -CONFIG_ARCH_BOOTLOADER=n -CONFIG_ARCH_LEDS=y -CONFIG_ARCH_BUTTONS=y -CONFIG_ARCH_CALIBRATION=n -CONFIG_ARCH_DMA=n - -# -# Identify toolchain and linker options -# -CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y -CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=n -CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=n -CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=n -CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=n -CONFIG_ARMV7M_OABI_TOOLCHAIN=y - -# -# Cortex-M3 features -# +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_MPU=y CONFIG_ARMV7M_MPU=y # -# Individual subsystems can be enabled: +# ARMV7M Configuration Options # -CONFIG_SAM3U_DMA=n -CONFIG_SAM3U_NAND=n -CONFIG_SAM3U_HSMCI=n +CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI is not set +CONFIG_ARMV7M_OABI_TOOLCHAIN=y +# CONFIG_SDIO_DMA is not set +# CONFIG_SDIO_WIDTH_D1_ONLY is not set + +# +# AT91SAM3 Configuration Options +# +CONFIG_ARCH_CHIP_AT91SAM3U4E=y + +# +# AT91SAM3 Peripheral Support +# +# CONFIG_SAM3U_DMA is not set +# CONFIG_SAM3U_NAND is not set +# CONFIG_SAM3U_HSMCI is not set CONFIG_SAM3U_UART=y -CONFIG_SAM3U_USART0=n -CONFIG_SAM3U_USART1=n -CONFIG_SAM3U_USART2=n -CONFIG_SAM3U_USART3=n +# CONFIG_SAM3U_USART0 is not set +# CONFIG_SAM3U_USART1 is not set +# CONFIG_SAM3U_USART2 is not set +# CONFIG_SAM3U_USART3 is not set # -# Some subsystems can be configured to operate in different ways.. -# The drivers need to know how to configure the subsystem. +# AT91SAM3 UART Configuration # -CONFIG_GPIOA_IRQ=n -CONFIG_GPIOB_IRQ=n -CONFIG_GPIOC_IRQ=n -CONFIG_USART0_ISUART=y -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y -CONFIG_USART3_ISUART=y +# +# AT91SAM3 GPIO Interrupt Configuration +# +# CONFIG_GPIOA_IRQ is not set +# CONFIG_GPIOB_IRQ is not set +# CONFIG_GPIOC_IRQ is not set # -# SAM3U specific serial device driver settings +# External Memory Configuration # -CONFIG_UART_SERIAL_CONSOLE=Y -CONFIG_USART0_SERIAL_CONSOLE=n -CONFIG_USART1_SERIAL_CONSOLE=n -CONFIG_USART2_SERIAL_CONSOLE=n -CONFIG_USART3_SERIAL_CONSOLE=n - -CONFIG_UART_TXBUFSIZE=256 -CONFIG_USART0_TXBUFSIZE=256 -CONFIG_USART1_TXBUFSIZE=256 -CONFIG_USART2_TXBUFSIZE=256 -CONFIG_USART3_TXBUFSIZE=256 - -CONFIG_UART_RXBUFSIZE=256 -CONFIG_USART0_RXBUFSIZE=256 -CONFIG_USART1_RXBUFSIZE=256 -CONFIG_USART2_RXBUFSIZE=256 -CONFIG_USART3_RXBUFSIZE=256 - -CONFIG_UART_BAUD=115200 -CONFIG_USART0_BAUD=115200 -CONFIG_USART1_BAUD=115200 -CONFIG_USART2_BAUD=115200 -CONFIG_USART3_BAUD=115200 - -CONFIG_UART_BITS=8 -CONFIG_USART0_BITS=8 -CONFIG_USART1_BITS=8 -CONFIG_USART2_BITS=8 -CONFIG_USART3_BITS=8 - -CONFIG_UART_PARITY=0 -CONFIG_USART0_PARITY=0 -CONFIG_USART1_PARITY=0 -CONFIG_USART2_PARITY=0 -CONFIG_USART3_PARITY=0 - -CONFIG_UART_2STOP=0 -CONFIG_USART0_2STOP=0 -CONFIG_USART1_2STOP=0 -CONFIG_USART2_2STOP=0 -CONFIG_USART3_2STOP=0 # -# General build options +# Architecture Options # -CONFIG_RRLOAD_BINARY=n -CONFIG_INTELHEX_BINARY=y -CONFIG_MOTOROLA_SREC=n -CONFIG_RAW_BINARY=n +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +# CONFIG_ARCH_DMA is not set +CONFIG_ARCH_IRQPRIO=y +# CONFIG_CUSTOM_STACK is not set +# CONFIG_ADDRENV is not set +CONFIG_ARCH_HAVE_VFORK=y +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_HAVE_RAMFUNCS is not set # -# Setup for a two-pass build +# Board Settings # -CONFIG_BUILD_2PASS=y -CONFIG_PASS1_BUILDIR=configs/sam3u-ek/kernel -CONFIG_PASS1_TARGET=all -CONFIG_PASS1_OBJECT= +CONFIG_BOARD_LOOPSPERMSEC=4768 +# CONFIG_ARCH_CALIBRATION is not set +CONFIG_DRAM_START=0x20000000 +CONFIG_DRAM_SIZE=32768 +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=0 # -# General OS setup +# Boot options # -CONFIG_USER_ENTRYPOINT="nsh_main" -CONFIG_DEBUG=n -CONFIG_DEBUG_VERBOSE=n -CONFIG_DEBUG_SYMBOLS=n -CONFIG_NUTTX_KERNEL=y -CONFIG_SYS_RESERVED=4 -CONFIG_MM_REGIONS=3 -CONFIG_ARCH_LOWPUTC=y +# 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 + +# +# Board Selection +# +CONFIG_ARCH_BOARD_SAM3UEK=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="sam3u-ek" + +# +# 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 is not set +CONFIG_NSH_MMCSDMINOR=0 +CONFIG_NSH_MMCSDSLOTNO=0 + +# +# Board-Specific Options +# + +# +# RTOS Features +# +# CONFIG_BOARD_INITIALIZE is not set +CONFIG_MSEC_PER_TICK=10 CONFIG_RR_INTERVAL=200 -CONFIG_SCHED_INSTRUMENTATION=n +# CONFIG_SCHED_INSTRUMENTATION is not set CONFIG_TASK_NAME_SIZE=0 -CONFIG_START_YEAR=2011 -CONFIG_START_MONTH=4 -CONFIG_START_DAY=6 -CONFIG_GREGORIAN_TIME=n -CONFIG_JULIAN_TIME=n +# CONFIG_SCHED_HAVE_PARENT is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2013 +CONFIG_START_MONTH=3 +CONFIG_START_DAY=10 CONFIG_DEV_CONSOLE=y -CONFIG_DEV_LOWCONSOLE=n -CONFIG_MUTEX_TYPES=n -CONFIG_PRIORITY_INHERITANCE=n -CONFIG_SEM_PREALLOCHOLDERS=0 -CONFIG_SEM_NNESTPRIO=0 -CONFIG_FDCLONE_DISABLE=n -CONFIG_FDCLONE_STDIO=n +# CONFIG_MUTEX_TYPES is not set +# CONFIG_PRIORITY_INHERITANCE is not set +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set CONFIG_SDCLONE_DISABLE=y -CONFIG_NXFLAT=n -CONFIG_SCHED_WORKQUEUE=y -CONFIG_SCHED_HPWORK=y -CONFIG_SCHED_WORKPRIORITY=192 -CONFIG_SCHED_WORKPERIOD=50000 -CONFIG_SCHED_WORKSTACKSIZE=1024 +# CONFIG_SCHED_WAITPID is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_DISABLE_OS_API=y +# CONFIG_DISABLE_CLOCK is not set +# 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 + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCONDTIMEDOUT=16 CONFIG_SIG_SIGWORK=17 -# -# These NSH commands are (temporarily) disable because more support is needed -# for these commands to work with CONFIG_NUTTX_KERNEL -# -CONFIG_NSH_DISABLE_MKRD=y -CONFIG_NSH_DISABLE_MKFATFS=y -CONFIG_NSH_DISABLE_LOSETUP=y -CONFIG_NSH_DISABLE_DD=y -CONFIG_NSH_DISABLE_PS=y - -# -# The following can be used to disable categories of -# APIs supported by the OS. If the compiler supports -# weak functions, then it should not be necessary to -# disable functions unless you want to restrict usage -# of those APIs. -# -# There are certain dependency relationships in these -# features. -# -# o mq_notify logic depends on signals to awaken tasks -# waiting for queues to become full or empty. -# o pthread_condtimedwait() depends on signals to wake -# up waiting tasks. -# -CONFIG_DISABLE_CLOCK=n -CONFIG_DISABLE_POSIX_TIMERS=n -CONFIG_DISABLE_PTHREAD=n -CONFIG_DISABLE_SIGNALS=n -CONFIG_DISABLE_MQUEUE=n -CONFIG_DISABLE_MOUNTPOINT=n -CONFIG_DISABLE_ENVIRON=n -CONFIG_DISABLE_POLL=y - -# -# Misc libc settings -# -CONFIG_NOPRINTF_FIELDWIDTH=n - -# -# Allow for architecture optimized implementations -# -# The architecture can provide optimized versions of the -# following to improve system performance -# -CONFIG_ARCH_MEMCPY=n -CONFIG_ARCH_MEMCMP=n -CONFIG_ARCH_MEMMOVE=n -CONFIG_ARCH_MEMSET=n -CONFIG_ARCH_STRCMP=n -CONFIG_ARCH_STRCPY=n -CONFIG_ARCH_STRNCPY=n -CONFIG_ARCH_STRLEN=n -CONFIG_ARCH_STRNLEN=n -CONFIG_ARCH_BZERO=n - # # Sizes of configurable things (0 disables) # @@ -256,234 +235,388 @@ CONFIG_NPTHREAD_KEYS=4 CONFIG_NFILE_DESCRIPTORS=8 CONFIG_NFILE_STREAMS=8 CONFIG_NAME_MAX=32 -CONFIG_STDIO_BUFFER_SIZE=64 -CONFIG_NUNGET_CHARS=2 CONFIG_PREALLOC_MQ_MSGS=4 CONFIG_MQ_MAXMSGSIZE=32 CONFIG_MAX_WDOGPARMS=2 CONFIG_PREALLOC_WDOGS=4 CONFIG_PREALLOC_TIMERS=4 -# -# Filesystem configuration -# -CONFIG_FS_FAT=y -CONFIG_FS_ROMFS=n - -# -# Maintain legacy build behavior (revisit) -# - -CONFIG_MMCSD=y -CONFIG_MMCSD_SPI=y -CONFIG_MMCSD_SDIO=y -CONFIG_MTD=y - -# -# SPI-based MMC/SD driver -# -CONFIG_MMCSD_NSLOTS=1 -CONFIG_MMCSD_READONLY=n -CONFIG_MMCSD_SPICLOCK=12500000 - -# -# Block driver buffering -# -CONFIG_FS_READAHEAD=n -CONFIG_FS_WRITEBUFFER=n - -# -# SDIO-based MMC/SD driver -# -CONFIG_SDIO_DMA=n -CONFIG_SDIO_BLOCKSETUP=y -CONFIG_MMCSD_MMCSUPPORT=n -CONFIG_MMCSD_HAVECARDDETECT=n - -# -# TCP/IP and UDP support via uIP -# -CONFIG_NET=n -CONFIG_NET_IPv6=n -CONFIG_NSOCKET_DESCRIPTORS=0 -CONFIG_NET_SOCKOPTS=y -CONFIG_NET_BUFSIZE=420 -CONFIG_NET_TCP=n -CONFIG_NET_TCP_CONNS=40 -CONFIG_NET_MAX_LISTENPORTS=40 -CONFIG_NET_UDP=n -CONFIG_NET_UDP_CHECKSUMS=y -#CONFIG_NET_UDP_CONNS=10 -CONFIG_NET_ICMP=n -CONFIG_NET_ICMP_PING=n -#CONFIG_NET_PINGADDRCONF=0 -CONFIG_NET_STATISTICS=y -#CONFIG_NET_RECEIVE_WINDOW= -#CONFIG_NET_ARPTAB_SIZE=8 -CONFIG_NET_BROADCAST=n - -# -# UIP Network Utilities -# -CONFIG_NET_DHCP_LIGHT=n -CONFIG_NET_RESOLV_ENTRIES=4 - -# -# USB Device Configuration -# -CONFIG_USBDEV=n -CONFIG_USBDEV_ISOCHRONOUS=n -CONFIG_USBDEV_DUALSPEED=n -CONFIG_USBDEV_SELFPOWERED=y -CONFIG_USBDEV_REMOTEWAKEUP=n -CONFIG_USBDEV_MAXPOWER=100 -CONFIG_USBDEV_TRACE=n -CONFIG_USBDEV_TRACE_NRECORDS=128 - -# -# USB Serial Device Configuration -# -CONFIG_PL2303=n -CONFIG_PL2303_EPINTIN=1 -CONFIG_PL2303_EPBULKOUT=2 -CONFIG_PL2303_EPBULKIN=3 -CONFIG_PL2303_NWRREQS=4 -CONFIG_PL2303_NRDREQS=4 -CONFIG_PL2303_VENDORID=0x067b -CONFIG_PL2303_PRODUCTID=0x2303 -CONFIG_PL2303_VENDORSTR="Nuttx" -CONFIG_PL2303_PRODUCTSTR="USBdev Serial" -CONFIG_PL2303_RXBUFSIZE=512 -CONFIG_PL2303_TXBUFSIZE=512 - -# -# USB Storage Device Configuration -# -CONFIG_USBMSC=n -CONFIG_USBMSC_EP0MAXPACKET=64 -CONFIG_USBMSC_EPBULKOUT=2 -CONFIG_USBMSC_EPBULKIN=5 -CONFIG_USBMSC_NRDREQS=2 -CONFIG_USBMSC_NWRREQS=2 -CONFIG_USBMSC_BULKINREQLEN=256 -CONFIG_USBMSC_BULKOUTREQLEN=256 -CONFIG_USBMSC_VENDORID=0x584e -CONFIG_USBMSC_VENDORSTR="NuttX" -CONFIG_USBMSC_PRODUCTID=0x5342 -CONFIG_USBMSC_PRODUCTSTR="USBdev Storage" -CONFIG_USBMSC_VERSIONNO=0x0399 -CONFIG_USBMSC_REMOVABLE=y - -# -# Graphics related configuration settings -# -CONFIG_NX=n -CONFIG_NX_MULTIUSER=n -CONFIG_NX_NPLANES=1 -CONFIG_NX_DISABLE_1BPP=y -CONFIG_NX_DISABLE_2BPP=y -CONFIG_NX_DISABLE_4BPP=y -CONFIG_NX_DISABLE_8BPP=y -CONFIG_NX_DISABLE_16BPP=n -CONFIG_NX_DISABLE_24BPP=y -CONFIG_NX_DISABLE_32BPP=y -CONFIG_NX_PACKEDMSFIRST=n -CONFIG_NX_LCDDRIVER=y -CONFIG_LCD_MAXPOWER=31 -CONFIG_LCD_MAXCONTRAST=1 -CONFIG_NX_MOUSE=y -CONFIG_NX_KBD=y -#CONFIG_NXTK_BORDERWIDTH=4 -#CONFIG_NXTK_BORDERCOLOR1 -#CONFIG_NXTK_BORDERCOLOR2 -CONFIG_NXTK_AUTORAISE=n -CONFIG_NXFONT_SANS23X27=y -CONFIG_NXFONTS_CHARBITS=7 -CONFIG_NX_BLOCKING=y -CONFIG_NX_MXSERVERMSGS=32 -CONFIG_NX_MXCLIENTMSGS=16 - -# -# Settings for examples/uip -# -CONFIG_EXAMPLES_UIP_IPADDR=0x0a000002 -CONFIG_EXAMPLES_UIP_DRIPADDR=0x0a000001 -CONFIG_EXAMPLES_UIP_NETMASK=0xffffff00 -CONFIG_EXAMPLES_UIP_DHCPC=n - -# -# Settings for examples/nettest -CONFIG_EXAMPLES_NETTEST_SERVER=n -CONFIG_EXAMPLES_NETTEST_PERFORMANCE=n -CONFIG_EXAMPLES_NETTEST_NOMAC=n -CONFIG_EXAMPLES_NETTEST_IPADDR=0x0a000002 -CONFIG_EXAMPLES_NETTEST_DRIPADDR=0x0a000001 -CONFIG_EXAMPLES_NETTEST_NETMASK=0xffffff00 -CONFIG_EXAMPLES_NETTEST_CLIENTIP=0x0a000001 - -# -# Settings for examples/ostest -# -CONFIG_EXAMPLES_OSTEST_LOOPS=1 -CONFIG_EXAMPLES_OSTEST_STACKSIZE=2048 -CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS=3 - -# -# Settings for apps/nshlib -# -CONFIG_NSH_FILEIOSIZE=512 -CONFIG_NSH_STRERROR=n -CONFIG_NSH_LINELEN=64 -CONFIG_NSH_NESTDEPTH=3 -CONFIG_NSH_DISABLESCRIPT=n -CONFIG_NSH_DISABLEBG=n -CONFIG_NSH_ROMFSETC=n -CONFIG_NSH_CONSOLE=y -CONFIG_NSH_TELNET=n -CONFIG_NSH_ARCHINIT=n -CONFIG_NSH_IOBUFFER_SIZE=512 -CONFIG_NSH_DHCPC=n -CONFIG_NSH_NOMAC=n -CONFIG_NSH_IPADDR=0x0a000002 -CONFIG_NSH_DRIPADDR=0x0a000001 -CONFIG_NSH_NETMASK=0xffffff00 -CONFIG_NSH_ROMFSMOUNTPT="/etc" -CONFIG_NSH_INITSCRIPT="init.d/rcS" -CONFIG_NSH_ROMFSDEVNO=0 -CONFIG_NSH_ROMFSSECTSIZE=64 -CONFIG_NSH_FATDEVNO=1 -CONFIG_NSH_FATSECTSIZE=512 -CONFIG_NSH_FATNSECTORS=1024 -CONFIG_NSH_FATMOUNTPT="/tmp" - -# -# Architecture-specific NSH options -# -CONFIG_NSH_MMCSDSPIPORTNO=0 -CONFIG_NSH_MMCSDSLOTNO=0 -CONFIG_NSH_MMCSDMINOR=0 - -# -# Settings for examples/usbserial -# -CONFIG_EXAMPLES_USBSERIAL_INONLY=n -CONFIG_EXAMPLES_USBSERIAL_OUTONLY=n -CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL=n -CONFIG_EXAMPLES_USBSERIAL_ONLYBIG=n - -CONFIG_EXAMPLES_USBSERIAL_TRACEINIT=n -CONFIG_EXAMPLES_USBSERIAL_TRACECLASS=n -CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS=n -CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER=n -CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS=n - # # Stack and heap information # -CONFIG_BOOT_RUNFROMFLASH=n -CONFIG_BOOT_COPYTORAM=n -CONFIG_CUSTOM_STACK=n CONFIG_IDLETHREAD_STACKSIZE=1024 CONFIG_USERMAIN_STACKSIZE=2048 CONFIG_PTHREAD_STACK_MIN=256 CONFIG_PTHREAD_STACK_DEFAULT=2048 +CONFIG_SYS_RESERVED=4 + +# +# Device Drivers +# +CONFIG_DISABLE_POLL=y +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_LOOP is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_PWM is not set +# CONFIG_I2C is not set +# CONFIG_SPI is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_ANALOG is not set +# CONFIG_BCH is not set +# CONFIG_INPUT is not set +# CONFIG_LCD is not set +CONFIG_MMCSD=y +CONFIG_MMCSD_NSLOTS=1 +# CONFIG_MMCSD_READONLY is not set +# CONFIG_MMCSD_MULTIBLOCK_DISABLE is not set +# CONFIG_MMCSD_MMCSUPPORT is not set +# CONFIG_MMCSD_HAVECARDDETECT is not set +CONFIG_MMCSD_SDIO=y +# CONFIG_SDIO_MUXBUS is not set +CONFIG_SDIO_BLOCKSETUP=y +# CONFIG_MTD is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +CONFIG_ARCH_HAVE_UART=y +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +CONFIG_UART_SERIAL_CONSOLE=y +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# UART Configuration +# +CONFIG_UART_RXBUFSIZE=256 +CONFIG_UART_TXBUFSIZE=256 +CONFIG_UART_BAUD=115200 +CONFIG_UART_BITS=8 +CONFIG_UART_PARITY=0 +CONFIG_UART_2STOP=0 +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +# CONFIG_RAMLOG is not set + +# +# Networking Support +# +# CONFIG_NET is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_RAMMAP is not set +CONFIG_FS_FAT=y +# CONFIG_FAT_LCNAMES is not set +# CONFIG_FAT_LFN is not set +# CONFIG_FS_FATTIME is not set +# CONFIG_FAT_DMAMEMORY is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set + +# +# System Logging +# +# CONFIG_SYSLOG_ENABLE is not set +# CONFIG_SYSLOG is not set + +# +# Graphics Support +# +# CONFIG_NX is not set + +# +# Memory Management +# +# CONFIG_MM_MULTIHEAP is not set +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=3 +# CONFIG_GRAN is not set + +# +# Binary Formats +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +# CONFIG_BUILTIN is not set +# CONFIG_PIC is not set +# CONFIG_SYMTAB_ORDEREDBYNAME is not set + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBM is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_ARCH_LOWPUTC=y +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set + +# +# Non-standard Library Support +# +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_WORKPRIORITY=192 +CONFIG_SCHED_WORKPERIOD=50000 +CONFIG_SCHED_WORKSTACKSIZE=1024 +# CONFIG_SCHED_LPWORK is not set +# CONFIG_SCHED_USRWORK is not set +# CONFIG_LIB_KBDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +# CONFIG_HAVE_CXX is not set + +# +# Application Configuration +# + +# +# Built-In Applications +# + +# +# Examples +# +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CAN is not set +# CONFIG_EXAMPLES_COMPOSITE is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_HELLOXX is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_LCDRW is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_MODBUS is not set +CONFIG_EXAMPLES_NSH=y +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXCONSOLE is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXFLAT is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PASHELLO is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_POLL is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_QENCODER is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_ROMFS is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_THTTPD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_UDP is not set +# CONFIG_EXAMPLES_UIP is not set +# CONFIG_EXAMPLES_USBSERIAL is not set +# CONFIG_EXAMPLES_USBMSC is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set + +# +# Network Utilities +# + +# +# Networking Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_DHCPC is not set +# CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_FTPD is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_RESOLV is not set +# CONFIG_NETUTILS_SMTP is not set +# CONFIG_NETUTILS_TELNETD is not set +# CONFIG_NETUTILS_TFTPC is not set +# CONFIG_NETUTILS_THTTPD is not set +# CONFIG_NETUTILS_UIPLIB is not set +# CONFIG_NETUTILS_WEBCLIENT is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y + +# +# Disable Individual commands +# +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +CONFIG_NSH_DISABLE_DD=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_KILL is not set +CONFIG_NSH_DISABLE_LOSETUP=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_MKFATFS=y +# CONFIG_NSH_DISABLE_MKFIFO 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_MW is not set +# CONFIG_NSH_DISABLE_NSFMOUNT is not set +CONFIG_NSH_DISABLE_PS=y +# CONFIG_NSH_DISABLE_PING is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set +CONFIG_NSH_CODECS_BUFSIZE=128 +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_LINELEN=64 +CONFIG_NSH_NESTDEPTH=3 +# CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLEBG is not set +CONFIG_NSH_CONSOLE=y + +# +# USB Trace Support +# +# CONFIG_NSH_CONDEV is not set +# CONFIG_NSH_ARCHINIT is not set + +# +# NxWidgets/NxWM +# + +# +# System NSH Add-Ons +# + +# +# Custom Free Memory Command +# +# CONFIG_SYSTEM_FREE is not set + +# +# I2C tool +# + +# +# FLASH Program Installation +# +# CONFIG_SYSTEM_INSTALL is not set + +# +# readline() +# +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y + +# +# Power Off +# +# CONFIG_SYSTEM_POWEROFF is not set + +# +# RAMTRON +# +# CONFIG_SYSTEM_RAMTRON is not set + +# +# SD Card +# +# CONFIG_SYSTEM_SDCARD is not set + +# +# Sysinfo +# +# CONFIG_SYSTEM_SYSINFO is not set + +# +# USB Monitor +# diff --git a/configs/sam3u-ek/src/Makefile b/configs/sam3u-ek/src/Makefile index 381341e6a73..258748a1d25 100644 --- a/configs/sam3u-ek/src/Makefile +++ b/configs/sam3u-ek/src/Makefile @@ -35,36 +35,47 @@ -include $(TOPDIR)/Make.defs -CFLAGS += -I$(TOPDIR)/sched +CFLAGS += -I$(TOPDIR)/sched -ASRCS = -AOBJS = $(ASRCS:.S=$(OBJEXT)) +ASRCS = +AOBJS = $(ASRCS:.S=$(OBJEXT)) + +CSRCS = up_boot.c up_leds.c up_buttons.c up_spi.c up_usbdev.c -CSRCS = up_boot.c up_leds.c up_buttons.c up_spi.c up_usbdev.c up_lcd.c -ifeq ($(CONFIG_NSH_ARCHINIT),y) -CSRCS += up_nsh.c -endif ifeq ($(CONFIG_SAM3U_HSMCI),y) -CSRCS += up_mmcsd.c +CSRCS += up_lcd.c endif + +ifeq ($(CONFIG_NSH_ARCHINIT),y) +CSRCS += up_nsh.c +endif + +ifeq ($(CONFIG_SAM3U_HSMCI),y) +CSRCS += up_mmcsd.c +endif + ifeq ($(CONFIG_USBMSC),y) -CSRCS += up_usbmsc.c +CSRCS += up_usbmsc.c endif + ifeq ($(CONFIG_INPUT_ADS7843E),y) -CSRCS += up_touchscreen.c +CSRCS += up_touchscreen.c endif -COBJS = $(CSRCS:.c=$(OBJEXT)) -SRCS = $(ASRCS) $(CSRCS) -OBJS = $(AOBJS) $(COBJS) +COBJS = $(CSRCS:.c=$(OBJEXT)) -ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) + +ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src ifeq ($(WINTOOL),y) - CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \ - -I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \ - -I "${shell cygpath -w $(ARCH_SRCDIR)/armv7-m}" + CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" + CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/common}" + CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/armv7-m}" else - CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(ARCH_SRCDIR)/armv7-m + CFLAGS += -I$(ARCH_SRCDIR)/chip + CFLAGS += -I$(ARCH_SRCDIR)/common + CFLAGS += -I$(ARCH_SRCDIR)/armv7-m endif all: libboard$(LIBEXT) diff --git a/configs/sam3u-ek/src/up_nsh.c b/configs/sam3u-ek/src/up_nsh.c index 7b3174a74c2..628405521f4 100644 --- a/configs/sam3u-ek/src/up_nsh.c +++ b/configs/sam3u-ek/src/up_nsh.c @@ -61,27 +61,22 @@ /* PORT and SLOT number probably depend on the board configuration */ -#ifdef CONFIG_ARCH_BOARD_SAM3UEK -# define NSH_HAVEUSBDEV 1 -# define NSH_HAVEMMCSD 1 -# if defined(CONFIG_NSH_MMCSDSLOTNO) && CONFIG_NSH_MMCSDSLOTNO != 0 -# error "Only one MMC/SD slot" -# undef CONFIG_NSH_MMCSDSLOTNO -# endif -# ifndef CONFIG_NSH_MMCSDSLOTNO -# define CONFIG_NSH_MMCSDSLOTNO 0 -# endif -#else - /* Add configuration for new SAM3U boards here */ -# error "Unrecognized SAM3U board" -# undef NSH_HAVEUSBDEV -# undef NSH_HAVEMMCSD +#define NSH_HAVE_USBDEV 1 +#define NSH_HAVE_MMCSD 1 + +#if defined(CONFIG_NSH_MMCSDSLOTNO) && CONFIG_NSH_MMCSDSLOTNO != 0 +# error "Only one MMC/SD slot" +# undef CONFIG_NSH_MMCSDSLOTNO +#endif + +#ifndef CONFIG_NSH_MMCSDSLOTNO +# define CONFIG_NSH_MMCSDSLOTNO 0 #endif /* Can't support USB features if USB is not enabled */ #ifndef CONFIG_USBDEV -# undef NSH_HAVEUSBDEV +# undef NSH_HAVE_USBDEV #endif /* Can't support MMC/SD features if mountpoints are disabled or if SDIO support @@ -89,7 +84,7 @@ */ #if defined(CONFIG_DISABLE_MOUNTPOINT) || !defined(CONFIG_SAM3U_HSMCI) -# undef NSH_HAVEMMCSD +# undef NSH_HAVE_MMCSD #endif #ifndef CONFIG_NSH_MMCSDMINOR @@ -126,7 +121,7 @@ int nsh_archinitialize(void) { -#ifdef NSH_HAVEMMCSD +#ifdef NSH_HAVE_MMCSD FAR struct sdio_dev_s *sdio; int ret; diff --git a/drivers/mmcsd/Kconfig b/drivers/mmcsd/Kconfig index 2d9a04bbbc4..43c5f3ac7fe 100644 --- a/drivers/mmcsd/Kconfig +++ b/drivers/mmcsd/Kconfig @@ -75,5 +75,13 @@ config SDIO_WIDTH_D1_ONLY ---help--- Select 1-bit transfer mode. Default: 4-bit transfer mode. + +config SDIO_BLOCKSETUP + bool "SDIO block setup" + default n + ---help--- + Some hardward needs to be informed of the selected blocksize and the + number of blocks. Others just work on the byte stream. This option + enables the block setup method in the SDIO vtable. + endif - diff --git a/mm/mm_kernel.c b/mm/mm_kernel.c index ff88bf0cc68..0cf592e0a8f 100644 --- a/mm/mm_kernel.c +++ b/mm/mm_kernel.c @@ -38,6 +38,9 @@ ************************************************************************/ #include + +#include + #include #if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP) && defined(__KERNEL__) diff --git a/mm/mm_kerneluser.c b/mm/mm_kerneluser.c index da1f2716ed9..618b9f190aa 100644 --- a/mm/mm_kerneluser.c +++ b/mm/mm_kerneluser.c @@ -38,6 +38,9 @@ ************************************************************************/ #include + +#include + #include #if defined(CONFIG_NUTTX_KERNEL) && defined(__KERNEL__) @@ -245,7 +248,7 @@ FAR void *kurealloc(FAR void *oldmem, size_t newsize) void kufree(FAR void *mem) { -#ifdef CONFIG_MM_KERNEL_HEAP +#if defined(CONFIG_MM_KERNEL_HEAP) && defined(CONFIG_DEBUG) DEBUGASSERT(!kmm_heapmember(mem)); #endif return KFREE(mem); diff --git a/mm/mm_realloc.c b/mm/mm_realloc.c index 4b5a479b423..f20bbb25560 100644 --- a/mm/mm_realloc.c +++ b/mm/mm_realloc.c @@ -95,14 +95,14 @@ FAR void *mm_realloc(FAR struct mm_heap_s *heap, FAR void *oldmem, if (!oldmem) { - return malloc(size); + return mm_malloc(heap, size); } /* If size is zero, then realloc is equivalent to free */ if (size <= 0) { - free(oldmem); + mm_free(heap, oldmem); return NULL; } @@ -348,11 +348,11 @@ FAR void *mm_realloc(FAR struct mm_heap_s *heap, FAR void *oldmem, */ mm_givesemaphore(heap); - newmem = (FAR void*)malloc(size); + newmem = (FAR void*)mm_malloc(heap, size); if (newmem) { memcpy(newmem, oldmem, oldsize); - free(oldmem); + mm_free(heap, oldmem); } return newmem; diff --git a/syscall/Kconfig b/syscall/Kconfig index ae2bf31307d..6e047012a99 100644 --- a/syscall/Kconfig +++ b/syscall/Kconfig @@ -2,3 +2,18 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +if NUTTX_KERNEL + +config SYS_RESERVED + int "Number of reserved system calls" + default 0 + ---help--- + Kernel system calls may share the same software trapping mechanism + as other functions used by architecture port. Those software traps + must be reserved for use exclusively by the architecture. These + value specifies the number of reserved software traps used by the + architecture; number of the kernel system calls will begin with this + number. + +endif diff --git a/tools/cfgdefine.c b/tools/cfgdefine.c index ca503c62906..8d289a2c4ee 100644 --- a/tools/cfgdefine.c +++ b/tools/cfgdefine.c @@ -65,6 +65,8 @@ static const char *dequote_list[] = "CONFIG_USER_ENTRYPOINT", /* Name of entry point function */ "CONFIG_EXECFUNCS_SYMTAB", /* Symbol table used by exec[l|v] */ + "CONFIG_PASS1_BUILDIR", /* Pass1 build directory */ + "CONFIG_PASS1_TARGET", /* Pass1 build target */ /* NxWidgets/NxWM */