SAM4S: Add NSH configuration. Calibrated delay loops. Port now seems fully functional

This commit is contained in:
Gregory Nutt
2013-06-12 10:56:42 -06:00
parent d9cec43398
commit fa45b86b4d
13 changed files with 972 additions and 50 deletions
+8 -3
View File
@@ -3848,7 +3848,7 @@
* configs/olimex-lpc1766stk/wlan: Remove non-functional
configuration.
* configs/stm32f4discovery/src and nuttx/drivers/lcd/ug-2864hsweg01.c:
Updates and correctinos for the UG-2864HSWEG01 from Darcy Gong.
Updates and corrections for the UG-2864HSWEG01 from Darcy Gong.
* configs/lm326965-ek: All configurations converted to use the
kconfig-frontends configuration tool.
* configs/Kconfig: NSH_MMCSDSPIPORTNO should depend on MMCSD_SPI,
@@ -4948,7 +4948,12 @@
* arch/arm/src/sam34: SAM3S support: GPIO, chip characteristics,
peripheral Kconfig (2013-6-11).
* arch/arm/src/sam34/chip/sam4s_pinmap.h: Add SAM4S pin configuration
definitinos (2013-6-11).
definitions (2013-6-11).
* arch/arm/src/sam34/sam4s_periphclks.h: Add macros to manage SAM4S
peripheral clocks (2013-6-11).
* configs/sam4s-xplained: Configuratino builds error-free (2013-6-11).
* configs/sam4s-xplained: Configuration builds error-free (2013-6-11).
* configs/sam4s-xplained/nsh: Added an NSH configuration for the
SAM4S Xplained board. Both the OS test and the NSH configurations
no execute error-free. Delay loops calibrated for both the SAM4L
and SAM4S boards (2013-6-12).
+26 -4
View File
@@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4">
<td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
<p>Last Updated: June 9, 2013</p>
<p>Last Updated: June 12, 2013</p>
</td>
</tr>
</table>
@@ -1578,7 +1578,7 @@
<li><a href="#arm926ejs">ARM926EJS</a> (3) </li>
<li><a href="#armcortexm0">ARM Cortex-M0/M0+</a> (2)</li>
<li><a href="#armcortexm3">ARM Cortex-M3</a> (19)</li>
<li><a href="#armcortexm4">ARM Cortex-M4</a> (8)</li>
<li><a href="#armcortexm4">ARM Cortex-M4</a> (9)</li>
</ul>
<li>Atmel AVR
<ul>
@@ -1641,6 +1641,7 @@
<li><a href="#at32uc3bxxx">AVR32 AT32UC3BXXX</a> <small>(32-bit AVR32)</small></li>
<li><a href="#at91sam3u">Atmel AT91SAM3U</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#at91sam4l">Atmel AT91SAM4L</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#at91sam4s">Atmel AT91SAM4S</a> <small>(ARM Cortex-M4)</small></li>
</ul>
</li>
<li>Freescale
@@ -2967,13 +2968,13 @@ nsh>
<p>
<a name="at91sam4l"><b>Atmel AT91SAM4L</b>.</a>
This port uses the Atmel SAM4L Xplained Pro development board.
This board features the ATSAM4LC4C MCU with 256KB of FLASH and 32KB of internal SRAM.
This board features the ATSAM4LC4C MCU running at 48MHz with 256KB of FLASH and 32KB of internal SRAM.
</p>
<ul>
<p>
<b>STATUS:</b>
As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell <a href="http://www.nuttx.org/Documentation/NuttShell.html">NSH</a>).
The first fully functional LM4F120 LaunchPad port was released in NuttX-6.28.
The first fully functional SAM4L Xplained Pro port was released in NuttX-6.28.
</p>
<p>
<b>Memory Usage</b>.
@@ -3011,6 +3012,27 @@ Mem: 29232 5920 23312 23312
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="at91sam4s"><b>Atmel AT91SAM4S</b>.</a>
This port uses the Atmel SAM4S Xplained development board.
This board features the ATSAM4S16C MCU running at 120MHz with 1MB of FLASH and 128KB of internal SRAM.
</p>
<ul>
<p>
<b>STATUS:</b>
As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell <a href="http://www.nuttx.org/Documentation/NuttShell.html">NSH</a>).
The first fully functional SAM4S Xplained port was released in NuttX-6.28.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
+5 -3
View File
@@ -48,7 +48,7 @@
* Definitions
****************************************************************************************/
/* SAM3U Peripheral Identifiers */
/* SAM4S Peripheral Identifiers */
#define SAM_PID_SUPC (0) /* Supply Controller */
#define SAM_PID_RSTC (1) /* Reset Controller */
@@ -71,6 +71,7 @@
#define SAM_PID_HSMCI (18) /* High Speed Multimedia Card Interface */
#define SAM_PID_TWI0 (19) /* Two-Wire Interface 0 */
#define SAM_PID_TWI1 (20) /* Two-Wire Interface 1 */
#define SAM_PID_SPI (21) /* Serial Peripheral Interface */
#define SAM_PID_SSC (22) /* Synchronous Serial Controller */
#define SAM_PID_TC0 (23) /* Timer Counter 0 */
#define SAM_PID_TC1 (24) /* Timer Counter 1 */
@@ -101,14 +102,15 @@
#define SAM_IRQ_SMC (SAM_IRQ_EXTINT+SAM_PID_SMC) /* PID 10: Static Memory Controller */
#define SAM_IRQ_PIOA (SAM_IRQ_EXTINT+SAM_PID_PIOA) /* PID 11: Parallel I/O Controller A */
#define SAM_IRQ_PIOB (SAM_IRQ_EXTINT+SAM_PID_PIOB) /* PID 12: Parallel I/O Controller B */
#define SAM_IRQ_PIOB (SAM_IRQ_EXTINT+SAM_PID_PIOC) /* PID 13: Parallel I/O Controller C */
#define SAM_IRQ_PIOC (SAM_IRQ_EXTINT+SAM_PID_PIOC) /* PID 13: Parallel I/O Controller C */
#define SAM_IRQ_USART0 (SAM_IRQ_EXTINT+SAM_PID_USART0) /* PID 14: USART 0 */
#define SAM_IRQ_USART0 (SAM_IRQ_EXTINT+SAM_PID_USART1) /* PID 15: USART 1 */
#define SAM_IRQ_USART1 (SAM_IRQ_EXTINT+SAM_PID_USART1) /* PID 15: USART 1 */
#define SAM_IRQ_RESERVED_16 (SAM_IRQ_EXTINT+SAM_PID_RESERVED_16) /* PID 16: Reserved */
#define SAM_IRQ_RESERVED_17 (SAM_IRQ_EXTINT+SAM_PID_RESERVED_17) /* PID 17: Reserved */
#define SAM_IRQ_HSMCI (SAM_IRQ_EXTINT+SAM_PID_HSMCI) /* PID 18: High Speed Multimedia Card Interface */
#define SAM_IRQ_TWI0 (SAM_IRQ_EXTINT+SAM_PID_TWI0) /* PID 19: Two-Wire Interface 0 */
#define SAM_IRQ_TWI1 (SAM_IRQ_EXTINT+SAM_PID_TWI1) /* PID 20: Two-Wire Interface 1 */
#define SAM_IRQ_SPI (SAM_IRQ_EXTINT+SAM_PID_SPI) /* PIC 21: Serial Peripheral Interface */
#define SAM_IRQ_SSC (SAM_IRQ_EXTINT+SAM_PID_SSC) /* PID 22: Synchronous Serial Controller */
#define SAM_IRQ_TC0 (SAM_IRQ_EXTINT+SAM_PID_TC0) /* PID 23: Timer Counter 0 */
#define SAM_IRQ_TC1 (SAM_IRQ_EXTINT+SAM_PID_TC1) /* PID 24: Timer Counter 1 */
-1
View File
@@ -171,7 +171,6 @@ config SAM34_IISC
config SAM34_SPI
bool "Serial Peripheral Interface (SPI)"
default n
depends on ARCH_CHIP_SAM3U || ARCH_CHIP_SAM4L
config SAM34_SSC
bool "Synchronous Serial Controller (SSC)"
+33 -32
View File
@@ -54,38 +54,39 @@
# define ARMV7M_PERIPHERAL_INTERRUPTS 35
#else
VECTOR(sam_SUPC, SAM_IRQ_SUPC) /* Vector 16+0: Supply Controller */
VECTOR(sam_RSTC, SAM_IRQ_RSTC) /* Vector 16+1: Reset Controller */
VECTOR(sam_RTC, SAM_IRQ_RTC) /* Vector 16+2: Real Time Clock */
VECTOR(sam_RTT, SAM_IRQ_RTT) /* Vector 16+3: Real Time Timer */
VECTOR(sam_WDT, SAM_IRQ_WDT) /* Vector 16+4: Watchdog Timer */
VECTOR(sam_PMC, SAM_IRQ_PMC) /* Vector 16+5: Power Management Controller */
VECTOR(sam_EEFC0, SAM_IRQ_EEFC0) /* Vector 16+6: Enhanced Embedded Flash Controller 0 */
VECTOR(sam_EEFC1, SAM_IRQ_EEFC1) /* Vector 16+7: Enhanced Embedded Flash Controller 1 */
VECTOR(sam_UART0, SAM_IRQ_UART0) /* Vector 16+8: Universal Asynchronous Receiver Transmitter 0 */
VECTOR(sam_UART1, SAM_IRQ_UART1) /* Vector 16+9: Universal Asynchronous Receiver Transmitter 1 */
VECTOR(sam_SMC, SAM_IRQ_SMC) /* Vector 16+10: Static Memory Controller */
VECTOR(sam_PIOA, SAM_IRQ_PIOA) /* Vector 16+11: Parallel I/O Controller A */
VECTOR(sam_PIOB, SAM_IRQ_PIOB) /* Vector 16+12: Parallel I/O Controller B */
VECTOR(sam_PIOB, SAM_IRQ_PIOB) /* Vector 16+13: Parallel I/O Controller C */
VECTOR(sam_USART0, SAM_IRQ_USART0) /* Vector 16+14: USART 0 */
VECTOR(sam_USART1, SAM_IRQ_USART0) /* Vector 16+15: USART 1 */
VECTOR(sam_supc, SAM_IRQ_SUPC) /* Vector 16+0: Supply Controller */
VECTOR(sam_rstc, SAM_IRQ_RSTC) /* Vector 16+1: Reset Controller */
VECTOR(sam_rtc, SAM_IRQ_RTC) /* Vector 16+2: Real Time Clock */
VECTOR(sam_rtt, SAM_IRQ_RTT) /* Vector 16+3: Real Time Timer */
VECTOR(sam_wdt, SAM_IRQ_WDT) /* Vector 16+4: Watchdog Timer */
VECTOR(sam_pmc, SAM_IRQ_PMC) /* Vector 16+5: Power Management Controller */
VECTOR(sam_eefc0, SAM_IRQ_EEFC0) /* Vector 16+6: Enhanced Embedded Flash Controller 0 */
VECTOR(sam_eefc1, SAM_IRQ_EEFC1) /* Vector 16+7: Enhanced Embedded Flash Controller 1 */
VECTOR(sam_uart0, SAM_IRQ_UART0) /* Vector 16+8: Universal Asynchronous Receiver Transmitter 0 */
VECTOR(sam_uart1, SAM_IRQ_UART1) /* Vector 16+9: Universal Asynchronous Receiver Transmitter 1 */
VECTOR(sam_smc, SAM_IRQ_SMC) /* Vector 16+10: Static Memory Controller */
VECTOR(sam_pioa, SAM_IRQ_PIOA) /* Vector 16+11: Parallel I/O Controller A */
VECTOR(sam_piob, SAM_IRQ_PIOB) /* Vector 16+12: Parallel I/O Controller B */
VECTOR(sam_pioc, SAM_IRQ_PIOC) /* Vector 16+13: Parallel I/O Controller C */
VECTOR(sam_usart0, SAM_IRQ_USART0) /* Vector 16+14: USART 0 */
VECTOR(sam_usart1, SAM_IRQ_USART1) /* Vector 16+15: USART 1 */
UNUSED(SAM_IRQ_RESERVED_16) /* Vector 16+16: Reserved */
UNUSED(SAM_IRQ_RESERVED_17) /* Vector 16+17: Reserved */
VECTOR(sam_HSMCI, SAM_IRQ_HSMCI) /* Vector 16+18: High Speed Multimedia Card Interface */
VECTOR(sam_TWI0, SAM_IRQ_TWI0) /* Vector 16+19: Two-Wire Interface 0 */
VECTOR(sam_TWI1, SAM_IRQ_TWI1) /* Vector 16+20: Two-Wire Interface 1 */
VECTOR(sam_SSC, SAM_IRQ_SSC) /* Vector 16+22: Synchronous Serial Controller */
VECTOR(sam_TC0, SAM_IRQ_TC0) /* Vector 16+23: Timer Counter 0 */
VECTOR(sam_TC1, SAM_IRQ_TC1) /* Vector 16+24: Timer Counter 1 */
VECTOR(sam_TC2, SAM_IRQ_TC2) /* Vector 16+25: Timer Counter 2 */
VECTOR(sam_TC3, SAM_IRQ_TC3) /* Vector 16+26: Timer Counter 3 */
VECTOR(sam_TC4, SAM_IRQ_TC4) /* Vector 16+27: Timer Counter 4 */
VECTOR(sam_TC5, SAM_IRQ_TC5) /* Vector 16+28: Timer Counter 5 */
VECTOR(sam_ADC, SAM_IRQ_ADC) /* Vector 16+29: Analog To Digital Converter */
VECTOR(sam_DACC, SAM_IRQ_DACC) /* Vector 16+30: Digital To Analog Converter */
VECTOR(sam_PWM, SAM_IRQ_PWM) /* Vector 16+31: Pulse Width Modulation */
VECTOR(sam_CRCCU, SAM_IRQ_CRCCU) /* Vector 16+32: CRC Calculation Unit */
VECTOR(sam_ACC, SAM_IRQ_ACC) /* Vector 16+33: Analog Comparator */
VECTOR(sam_UDP, SAM_IRQ_UDP) /* Vector 16+34: USB Device Port */
VECTOR(sam_hsmci, SAM_IRQ_HSMCI) /* Vector 16+18: High Speed Multimedia Card Interface */
VECTOR(sam_twi0, SAM_IRQ_TWI0) /* Vector 16+19: Two-Wire Interface 0 */
VECTOR(sam_twi1, SAM_IRQ_TWI1) /* Vector 16+20: Two-Wire Interface 1 */
VECTOR(sam_spi, SAM_PID_SPI) /* Vector 16+21: Serial Peripheral Interface */
VECTOR(sam_ssc, SAM_IRQ_SSC) /* Vector 16+22: Synchronous Serial Controller */
VECTOR(sam_tc0, SAM_IRQ_TC0) /* Vector 16+23: Timer Counter 0 */
VECTOR(sam_tc1, SAM_IRQ_TC1) /* Vector 16+24: Timer Counter 1 */
VECTOR(sam_tc2, SAM_IRQ_TC2) /* Vector 16+25: Timer Counter 2 */
VECTOR(sam_tc3, SAM_IRQ_TC3) /* Vector 16+26: Timer Counter 3 */
VECTOR(sam_tc4, SAM_IRQ_TC4) /* Vector 16+27: Timer Counter 4 */
VECTOR(sam_tc5, SAM_IRQ_TC5) /* Vector 16+28: Timer Counter 5 */
VECTOR(sam_adc, SAM_IRQ_ADC) /* Vector 16+29: Analog To Digital Converter */
VECTOR(sam_dacc, SAM_IRQ_DACC) /* Vector 16+30: Digital To Analog Converter */
VECTOR(sam_pwm, SAM_IRQ_PWM) /* Vector 16+31: Pulse Width Modulation */
VECTOR(sam_crccu, SAM_IRQ_CRCCU) /* Vector 16+32: CRC Calculation Unit */
VECTOR(sam_acc, SAM_IRQ_ACC) /* Vector 16+33: Analog Comparator */
VECTOR(sam_udp, SAM_IRQ_UDP) /* Vector 16+34: USB Device Port */
#endif
+14 -1
View File
@@ -313,6 +313,9 @@ static int sam_irqinfo(int irq, uint32_t *regaddr, uint32_t *bit)
void up_irqinitialize(void)
{
uintptr_t regaddr;
#if defined(CONFIG_DEBUG_SYMBOLS) && !defined(CONFIG_ARMV7M_USEBASEPRI)
uint32_t regval;
#endif
int nintlines;
int i;
@@ -415,8 +418,18 @@ void up_irqinitialize(void)
sam_dumpnvic("initial", SAM_IRQ_NIRQS);
#ifndef CONFIG_SUPPRESS_INTERRUPTS
/* If a debugger is connected, try to prevent it from catching hardfaults.
* If CONFIG_ARMV7M_USEBASEPRI, no hardfaults are expected in normal
* operation.
*/
#if defined(CONFIG_DEBUG_SYMBOLS) && !defined(CONFIG_ARMV7M_USEBASEPRI)
regval = getreg32(NVIC_DEMCR);
regval &= ~NVIC_DEMCR_VCHARDERR;
putreg32(regval, NVIC_DEMCR);
#endif
#ifndef CONFIG_SUPPRESS_INTERRUPTS
/* Initialize logic to support a second level of interrupt decoding for
* GPIO pins.
*/
+7 -3
View File
@@ -128,14 +128,16 @@ sam_vectors:
#define VECTOR(l,i) .word l
#undef UNUSED
#define UNUSED(i) .word stm32_reserved
#define UNUSED(i) .word sam_reserved
#if defined(CONFIG_ARCH_CHIP_SAM3U)
# include "chip/sam3u_vectors.h"
#elif defined(CONFIG_ARCH_CHIP_SAM4L)
# include "chip/sam4l_vectors.h"
#elif defined(CONFIG_ARCH_CHIP_SAM4S)
# include "chip/sam4s_vectors.h"
#else
# Unrecognized SAM architecture
# error Unrecognized SAM architecture
#endif
.size sam_vectors, .-sam_vectors
@@ -169,8 +171,10 @@ handlers:
# include "chip/sam3u_vectors.h"
#elif defined(CONFIG_ARCH_CHIP_SAM4L)
# include "chip/sam4l_vectors.h"
#elif defined(CONFIG_ARCH_CHIP_SAM4S)
# include "chip/sam4s_vectors.h"
#else
# Unrecognized SAM architecture
# error Unrecognized SAM architecture
#endif
/* Common IRQ handling logic. On entry here, the return stack is on either
+30
View File
@@ -436,6 +436,7 @@ SAM4S Xplained-specific Configuration Options
CONFIG_SAM34_HSMCI - High Speed Multimedia Card Interface
CONFIG_SAM34_TWI0 - Two-Wire Interface 0
CONFIG_SAM34_TWI1 - Two-Wire Interface 1
CONFIG_SAM34_SPI - Serial Peripheral Interface
CONFIG_SAM34_SSC - Synchronous Serial Controller
CONFIG_SAM34_TC0 - Timer Counter 0
CONFIG_SAM34_TC1 - Timer Counter 1
@@ -555,3 +556,32 @@ Configurations
2. This configuration is set up to use the NuttX OABI toolchain (see
above). Of course this can be reconfigured if you prefer a different
toolchain.
nsh:
This configuration directory will built the NuttShell.
NOTES:
1. This configuration provides test output on UART1 which is available
on J3 or J4 (see the section "Serial Consoles" above). The
virtual COM port could be used, instead, by reconfiguring to use
UART0 instead of UART1:
System Type -> AT91SAM3/4 Peripheral Support
CONFIG_SAM_UART0=y
CONFIG_SAM_UART1=n
Device Drivers -> Serial Driver Support -> Serial Console
CONFIG_UART0_SERIAL_CONSOLE=y
Device Drivers -> Serial Driver Support -> USART0 Configuration
CONFIG_UART0_2STOP=0
CONFIG_UART0_BAUD=115200
CONFIG_UART0_BITS=8
CONFIG_UART0_PARITY=0
CONFIG_UART0_RXBUFSIZE=256
CONFIG_UART0_TXBUFSIZE=256
2. This configuration is set up to use the NuttX OABI toolchain (see
above). Of course this can be reconfigured if you prefer a different
toolchain.
-1
View File
@@ -166,7 +166,6 @@
#define BOARD_FWS 5
/* LED definitions ******************************************************************/
/* There are four LEDs on board the SAM4S Xplained board, two of these can be
* controlled by software in the SAM4S:
+109
View File
@@ -0,0 +1,109 @@
############################################################################
# configs/sam4s-xplained/nsh/Make.defs
#
# Copyright (C) 2013 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# 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
ifeq ($(WINTOOL),y)
# Windows-native toolchains
DIRLINK = $(TOPDIR)/tools/copydir.sh
DIRUNLINK = $(TOPDIR)/tools/unlink.sh
MKDEP = $(TOPDIR)/tools/mknulldeps.sh
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
MAXOPTIMIZATION = -O2
else
# Linux/Cygwin-native toolchain
MKDEP = $(TOPDIR)/tools/mkdeps.sh
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script
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
else
ARCHOPTIMIZATION = $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
endif
ARCHCFLAGS = -fno-builtin
ARCHCXXFLAGS = -fno-builtin -fno-exceptions
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
ARCHWARNINGSXX = -Wall -Wshadow
ARCHDEFINES =
ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
AFLAGS = $(CFLAGS) -D__ASSEMBLY__
NXFLATLDFLAGS1 = -r -d -warn-common
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
LDNXFLATFLAGS = -e main -s 2048
OBJEXT = .o
LIBEXT = .a
EXEEXT =
ifneq ($(CROSSDEV),arm-nuttx-elf-)
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
LDFLAGS += -g
endif
HOSTCC = gcc
HOSTINCLUDES = -I.
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
HOSTLDFLAGS =
File diff suppressed because it is too large Load Diff
+63
View File
@@ -0,0 +1,63 @@
#!/bin/bash
# configs/sam4s-xplained/nsh/setenv.sh
#
# Copyright (C) 2013 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# 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"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}"
+1 -2
View File
@@ -189,7 +189,7 @@ CONFIG_ARCH_HAVE_RAMVECTORS=y
#
# Board Settings
#
CONFIG_BOARD_LOOPSPERMSEC=4768
CONFIG_BOARD_LOOPSPERMSEC=9186
# CONFIG_ARCH_CALIBRATION is not set
CONFIG_DRAM_START=0x20000000
CONFIG_DRAM_SIZE=131072
@@ -319,7 +319,6 @@ CONFIG_DEV_LOWCONSOLE=y
# CONFIG_16550_UART is not set
CONFIG_ARCH_HAVE_UART1=y
CONFIG_MCU_SERIAL=y
# CONFIG_USART0_SERIAL_CONSOLE is not set
CONFIG_UART1_SERIAL_CONSOLE=y
# CONFIG_NO_SERIAL_CONSOLE is not set