Add hello configuratin for AVR

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3699 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2011-06-13 00:06:09 +00:00
parent 2c679ced26
commit fe9849bb99
12 changed files with 1513 additions and 191 deletions
+9 -2
View File
@@ -56,7 +56,7 @@
* Private Definitions * Private Definitions
******************************************************************************/ ******************************************************************************/
/* Baud rate settings for normal and double speed settings */ /* Baud rate settings for normal and double speed modes */
#define AVR_NORMAL_UBRR1 \ #define AVR_NORMAL_UBRR1 \
((((BOARD_CPU_CLOCK / 16) + (CONFIG_USART1_BAUD / 2)) / (CONFIG_USART1_BAUD)) - 1) ((((BOARD_CPU_CLOCK / 16) + (CONFIG_USART1_BAUD / 2)) / (CONFIG_USART1_BAUD)) - 1)
@@ -100,13 +100,20 @@
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1 # define AVR_UBRR1 AVR_DBLSPEED_UBRR1
# define UART1_DOUBLE_SPEED 1 # define UART1_DOUBLE_SPEED 1
# endif # endif
#else #elif BOARD_CPU_CLOCK <= 16000000
# if CONFIG_USART1_BAUD <= 38400 # if CONFIG_USART1_BAUD <= 38400
# define AVR_UBRR1 AVR_NORMAL_UBRR1 # define AVR_UBRR1 AVR_NORMAL_UBRR1
# else # else
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1 # define AVR_UBRR1 AVR_DBLSPEED_UBRR1
# define UART1_DOUBLE_SPEED 1 # define UART1_DOUBLE_SPEED 1
# endif # endif
#else
# if CONFIG_USART1_BAUD <= 57600
# define AVR_UBRR1 AVR_NORMAL_UBRR1
# else
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1
# define UART1_DOUBLE_SPEED 1
# endif
#endif #endif
/****************************************************************************** /******************************************************************************
+18 -4
View File
@@ -55,7 +55,7 @@
* Private Definitions * Private Definitions
******************************************************************************/ ******************************************************************************/
/* USART0 Baud rate settings for normal and double speed settings */ /* USART0 Baud rate settings for normal and double speed modes */
#define AVR_NORMAL_UBRR0 \ #define AVR_NORMAL_UBRR0 \
(((((BOARD_CPU_CLOCK / 16) + (CONFIG_USART0_BAUD / 2)) / (CONFIG_USART0_BAUD)) - 1) (((((BOARD_CPU_CLOCK / 16) + (CONFIG_USART0_BAUD / 2)) / (CONFIG_USART0_BAUD)) - 1)
@@ -99,16 +99,23 @@
# define AVR_UBRR0 AVR_DBLSPEED_UBRR0 # define AVR_UBRR0 AVR_DBLSPEED_UBRR0
# define UART0_DOUBLE_SPEED 1 # define UART0_DOUBLE_SPEED 1
# endif # endif
#else #elif BOARD_CPU_CLOCK <= 16000000
# if CONFIG_USART0_BAUD <= 38400 # if CONFIG_USART0_BAUD <= 38400
# define AVR_UBRR0 AVR_NORMAL_UBRR0 # define AVR_UBRR0 AVR_NORMAL_UBRR0
# else # else
# define AVR_UBRR0 AVR_DBLSPEED_UBRR0 # define AVR_UBRR0 AVR_DBLSPEED_UBRR0
# define UART0_DOUBLE_SPEED 1 # define UART0_DOUBLE_SPEED 1
# endif # endif
#else
# if CONFIG_USART0_BAUD <= 57600
# define AVR_UBRR0 AVR_NORMAL_UBRR0
# else
# define AVR_UBRR0 AVR_DBLSPEED_UBRR0
# define UART0_DOUBLE_SPEED 1
# endif
#endif #endif
/* USART1 Baud rate settings for normal and double speed settings */ /* USART1 Baud rate settings for normal and double speed modes */
#define AVR_NORMAL_UBRR1 \ #define AVR_NORMAL_UBRR1 \
((((BOARD_CPU_CLOCK / 16) + (CONFIG_USART1_BAUD / 2)) / (CONFIG_USART1_BAUD)) - 1) ((((BOARD_CPU_CLOCK / 16) + (CONFIG_USART1_BAUD / 2)) / (CONFIG_USART1_BAUD)) - 1)
@@ -152,13 +159,20 @@
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1 # define AVR_UBRR1 AVR_DBLSPEED_UBRR1
# define UART1_DOUBLE_SPEED 1 # define UART1_DOUBLE_SPEED 1
# endif # endif
#else #elif BOARD_CPU_CLOCK <= 16000000
# if CONFIG_USART1_BAUD <= 38400 # if CONFIG_USART1_BAUD <= 38400
# define AVR_UBRR1 AVR_NORMAL_UBRR1 # define AVR_UBRR1 AVR_NORMAL_UBRR1
# else # else
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1 # define AVR_UBRR1 AVR_DBLSPEED_UBRR1
# define UART1_DOUBLE_SPEED 1 # define UART1_DOUBLE_SPEED 1
# endif # endif
#else
# if CONFIG_USART1_BAUD <= 57600
# define AVR_UBRR1 AVR_NORMAL_UBRR1
# else
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1
# define UART1_DOUBLE_SPEED 1
# endif
#endif #endif
/****************************************************************************** /******************************************************************************
+5 -5
View File
@@ -123,28 +123,28 @@ static inline void up_registerdump(void)
if (current_regs) if (current_regs)
{ {
lldbg("R%d: %02x %02x %02x %02x %02x %02x %02x %02x\n", lldbg("R%02d: %02x %02x %02x %02x %02x %02x %02x %02x\n",
0, 0,
current_regs[REG_R0], current_regs[REG_R1], current_regs[REG_R0], current_regs[REG_R1],
current_regs[REG_R2], current_regs[REG_R3], current_regs[REG_R2], current_regs[REG_R3],
current_regs[REG_R4], current_regs[REG_R5], current_regs[REG_R4], current_regs[REG_R5],
current_regs[REG_R6], current_regs[REG_R7]); current_regs[REG_R6], current_regs[REG_R7]);
lldbg("R%d: %02x %02x %02x %02x %02x %02x %02x %02x\n", lldbg("R%02d: %02x %02x %02x %02x %02x %02x %02x %02x\n",
8, 8,
current_regs[REG_R8], current_regs[REG_R9], current_regs[REG_R8], current_regs[REG_R9],
current_regs[REG_R10], current_regs[REG_R11], current_regs[REG_R10], current_regs[REG_R11],
current_regs[REG_R12], current_regs[REG_R13], current_regs[REG_R12], current_regs[REG_R13],
current_regs[REG_R14], current_regs[REG_R15]); current_regs[REG_R14], current_regs[REG_R15]);
lldbg("R%d: %02x %02x %02x %02x %02x %02x %02x %02x\n", lldbg("R%02d: %02x %02x %02x %02x %02x %02x %02x %02x\n",
16, 16,
current_regs[REG_R16], current_regs[REG_R17], current_regs[REG_R16], current_regs[REG_R17],
current_regs[REG_R18], current_regs[REG_R19], current_regs[REG_R18], current_regs[REG_R19],
current_regs[REG_R20], current_regs[REG_R21], current_regs[REG_R20], current_regs[REG_R21],
current_regs[REG_R22], current_regs[REG_R23]); current_regs[REG_R22], current_regs[REG_R23]);
lldbg("R%d: %02x %02x %02x %02x %02x %02x %02x %02x\n", lldbg("R%02d: %02x %02x %02x %02x %02x %02x %02x %02x\n",
24, 24,
current_regs[REG_R24], current_regs[REG_R25], current_regs[REG_R24], current_regs[REG_R25],
current_regs[REG_R26], current_regs[REG_R27], current_regs[REG_R26], current_regs[REG_R27],
@@ -192,7 +192,7 @@ void up_dumpstate(void)
/* Get the limits on the interrupt stack memory */ /* Get the limits on the interrupt stack memory */
#if CONFIG_ARCH_INTERRUPTSTACK > 3 #if CONFIG_ARCH_INTERRUPTSTACK > 0
istackbase = (uint16_t)&g_intstackbase; istackbase = (uint16_t)&g_intstackbase;
istacksize = (CONFIG_ARCH_INTERRUPTSTACK & ~3) - 4; istacksize = (CONFIG_ARCH_INTERRUPTSTACK & ~3) - 4;
+3 -1
View File
@@ -344,4 +344,6 @@ Where <subdir> is one of the following:
ostest: ostest:
This configuration directory, performs a simple OS test using This configuration directory, performs a simple OS test using
apps/examples/ostest. apps/examples/ostest. NOTE: The OS test is quite large. In order
to get it to fit within AVR memory constraints, it will probably be
necessary to disable some OS features.
+2 -2
View File
@@ -139,7 +139,7 @@ CONFIG_AVR_TWI=n
CONFIG_USART0_SERIAL_CONSOLE=y CONFIG_USART0_SERIAL_CONSOLE=y
CONFIG_USART0_TXBUFSIZE=256 CONFIG_USART0_TXBUFSIZE=256
CONFIG_USART0_RXBUFSIZE=256 CONFIG_USART0_RXBUFSIZE=256
CONFIG_USART0_BAUD=115200 CONFIG_USART0_BAUD=38400
CONFIG_USART0_BITS=8 CONFIG_USART0_BITS=8
CONFIG_USART0_PARITY=0 CONFIG_USART0_PARITY=0
CONFIG_USART0_2STOP=0 CONFIG_USART0_2STOP=0
@@ -147,7 +147,7 @@ CONFIG_USART0_2STOP=0
CONFIG_USART1_SERIAL_CONSOLE=n CONFIG_USART1_SERIAL_CONSOLE=n
CONFIG_USART1_TXBUFSIZE=256 CONFIG_USART1_TXBUFSIZE=256
CONFIG_USART1_RXBUFSIZE=256 CONFIG_USART1_RXBUFSIZE=256
CONFIG_USART1_BAUD=115200 CONFIG_USART1_BAUD=38400
CONFIG_USART1_BITS=8 CONFIG_USART1_BITS=8
CONFIG_USART1_PARITY=0 CONFIG_USART1_PARITY=0
CONFIG_USART1_2STOP=0 CONFIG_USART1_2STOP=0
+40 -9
View File
@@ -15,6 +15,7 @@ Contents
o Pin Usage o Pin Usage
o Serial Console o Serial Console
o Atmel mkII Connection o Atmel mkII Connection
o DFU Bootloader
o Toolchains o Toolchains
o Windows Native Toolchains o Windows Native Toolchains
o NuttX buildroot Toolchain o NuttX buildroot Toolchain
@@ -156,15 +157,20 @@ Atmel mkII Connection
Pin 6 nSRT Pin 5 Reset Pin 6 nSRT Pin 5 Reset
Pin 9 TDI Pin 4 MOSI Pin 9 TDI Pin 4 MOSI
Connect your Micropendous board programmed with AVRISP firmware to another AVR using SPI (you can even connect to another USB AVR board to program its' bootloader): DFU Bootloader
^^^^^^^^^^^^^^
Micropendous Target AVR There is also an DFU bootloader that resides in the upper 8Kb of FLASH
PB4 RESET (unless you ERASE the flash with with ICE). You can enter this bootloader
PB1(SCK) SCK (if it is in FLASH) by:
PB2(MOSI) MOSI/PDI
PB3(MISO) MISO/PDO Holding both the SW1 (RESET) and SW2, then releasing SW1 while continuing
GND GND+AGND to hold SW2. SW2 connects to the PE2/HWB signal and causes a reset into
Vcc Vcc+AVcc the bootloader memory region.
Then you can use FLIP to load code into FLASH (available at the Atmel Web
Site). The DFU USB driver for the DFU bootload is available in the usb
subdirectory in the FLIP installation location.
Serial Console Serial Console
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@@ -498,6 +504,31 @@ NOTE: You must also copy avr-libc header files, perhaps like:
Where <subdir> is one of the following: Where <subdir> is one of the following:
hello:
The simple apps/examples/hello "Hello, World!" example.
FLASH/SRAM Requirements (as of 6/12/2011):
$ avr-elf-size nuttx
text data bss dec hex filename
31064 1075 449 32588 7f4c nuttx
Strings are in SRAM.
ostest: ostest:
This configuration directory, performs a simple OS test using This configuration directory, performs a simple OS test using
apps/examples/ostest. apps/examples/ostest. NOTE: The OS test is quite large. In order
to get it to fit within AVR memory constraints, it will probably be
necessary to disable some OS features.
As currently configured, This example will not fit into FLASH
or smaller AT90USB devices (or into the RAM of *any* AT90USB
devices).
FLASH/SRAM Requirements (as of 6/12/2011):
$ avr-elf-size nuttx
text data bss dec hex filename
67386 15583 10414 93383 16cc7 nuttx
Strings are in SRAM.
+149
View File
@@ -0,0 +1,149 @@
############################################################################
# configs/micropendous3/hello/Make.defs
#
# Copyright (C) 2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# 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
# Setup for the selected toolchain
ifeq ($(CONFIG_AVR_WINAVR),y)
# WinAVR toolchain under Windows/Cygwin
CROSSDEV = avr-
WINTOOL = y
MAXOPTIMIZATION = -O2
ARCHCPUFLAGS = -mmcu=at90usb647
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(CONFIG_AVR_LINUXGCC),y)
# GCC toolchain under Linux
CROSSDEV = avr-
MAXOPTIMIZATION = -O2
ARCHCPUFLAGS = -mmcu=at90usb647
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(CONFIG_AVR_BUILDROOT),y)
# NuttX buildroot GCC toolchain under Linux or Cygwin
CROSSDEV = avr-elf-
MAXOPTIMIZATION = -O2
ARCHCPUFLAGS = -mmcu=at90usb647
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(WINTOOL),y)
# Windows-native toolchains
DIRLINK = $(TOPDIR)/tools/winlink.sh
DIRUNLINK = $(TOPDIR)/tools/unlink.sh
MKDEP = $(TOPDIR)/tools/mknulldeps.sh
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
ARCHXXINCLUDES = $(ARCHINCLUDES) -w $(TOPDIR)/include/cxx}"
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/hello/ld.script}"
else
# Linux/Cygwin-native toolchain
MKDEP = $(TOPDIR)/tools/mkdeps.sh
ARCHINCLUDES = -I. -isystem "$(TOPDIR)/include"
ARCHXXINCLUDES = $(ARCHINCLUDES) -isystem "$(TOPDIR)/include/cxx"
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/hello/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
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 =
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
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.ld -no-check-sections
LDNXFLATFLAGS = -e main -s 2048
OBJEXT = .o
LIBEXT = .a
EXEEXT =
define PREPROCESS
@echo "CPP: $1->$2"
@$(CPP) $(CPPFLAGS) $1 -o $2
endef
define COMPILE
@echo "CC: $1"
@$(CC) -c $(CFLAGS) $1 -o $2
endef
define COMPILEXX
@echo "CXX: $1"
@$(CXX) -c $(CXXFLAGS) $1 -o $2
endef
define ASSEMBLE
@echo "AS: $1"
@$(CC) -c $(AFLAGS) $1 -o $2
endef
define ARCHIVE
echo "AR: $2"; \
$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
endef
define CLEAN
@rm -f *.o *.a
endef
HOSTCC = gcc
HOSTINCLUDES = -I.
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
HOSTLDFLAGS =
+39
View File
@@ -0,0 +1,39 @@
############################################################################
# configs/micropendous3/hello/appconfig
#
# Copyright (C) 2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# 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/hello
File diff suppressed because it is too large Load Diff
+202
View File
@@ -0,0 +1,202 @@
/****************************************************************************
* configs/micropendous3/hello/ld.script
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/* Memory Regions ***********************************************************/
MEMORY
{
flash (rx) : ORIGIN = 0, LENGTH = 128K
sram (rw!x) : ORIGIN = 0x800060, LENGTH = 0xffa0
eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
}
OUTPUT_FORMAT("elf32-avr","elf32-avr","elf32-avr")
OUTPUT_ARCH(avr:5)
ENTRY(__start)
SECTIONS
{
/* Read-only sections, merged into text segment: */
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.text :
{
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
}
.rela.text :
{
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
}
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.rodata :
{
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
}
.rela.rodata :
{
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
}
.rel.data :
{
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
}
.rela.data :
{
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
}
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.text :
{
_stext = . ;
*(.vectors)
*(.init)
*(.handlers)
*(.text)
*(.text.*)
_etext = . ;
} > flash
_eronly = ABSOLUTE(.); /* See below */
.data :
{
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
CONSTRUCTORS
_edata = ABSOLUTE(.);
} > sram AT > flash
.bss :
{
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
_ebss = ABSOLUTE(.);
} > sram
/* Global data not cleared after reset. */
.noinit :
{
_snoinit = ABSOLUTE(.);
*(.noinit*)
_enoinit = ABSOLUTE(.);
} > sram
.eeprom :
{
_seeprom = ABSOLUTE(.);
*(.eeprom*)
_eeeprom = ABSOLUTE(.);
} > eeprom
/* 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) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
}
+63
View File
@@ -0,0 +1,63 @@
#!/bin/bash
# configs/micropendous3/hello/setenv.sh
#
# Copyright (C) 2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# 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 the Cygwin path to the location where I installed the WinAVR
# toolchain under windows. This is *not* the default install
# location so you will probably have to edit this. You will also have
# to edit this if you install the Linux AVR toolchain as well
#export TOOLCHAIN_BIN="/cygdrive/c/WinAVR/bin"
# This the Cygwin path to the location where I build the buildroot
# toolchain.
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_avr/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 -1
View File
@@ -142,7 +142,7 @@ CONFIG_AVR_TWI=n
CONFIG_USART1_SERIAL_CONSOLE=y CONFIG_USART1_SERIAL_CONSOLE=y
CONFIG_USART1_TXBUFSIZE=256 CONFIG_USART1_TXBUFSIZE=256
CONFIG_USART1_RXBUFSIZE=256 CONFIG_USART1_RXBUFSIZE=256
CONFIG_USART1_BAUD=115200 CONFIG_USART1_BAUD=38400
CONFIG_USART1_BITS=8 CONFIG_USART1_BITS=8
CONFIG_USART1_PARITY=0 CONFIG_USART1_PARITY=0
CONFIG_USART1_2STOP=0 CONFIG_USART1_2STOP=0