mirror of
https://github.com/apache/nuttx.git
synced 2026-05-20 20:44:39 +08:00
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:
@@ -56,7 +56,7 @@
|
||||
* Private Definitions
|
||||
******************************************************************************/
|
||||
|
||||
/* Baud rate settings for normal and double speed settings */
|
||||
/* Baud rate settings for normal and double speed modes */
|
||||
|
||||
#define AVR_NORMAL_UBRR1 \
|
||||
((((BOARD_CPU_CLOCK / 16) + (CONFIG_USART1_BAUD / 2)) / (CONFIG_USART1_BAUD)) - 1)
|
||||
@@ -100,13 +100,20 @@
|
||||
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1
|
||||
# define UART1_DOUBLE_SPEED 1
|
||||
# endif
|
||||
#else
|
||||
#elif BOARD_CPU_CLOCK <= 16000000
|
||||
# if CONFIG_USART1_BAUD <= 38400
|
||||
# define AVR_UBRR1 AVR_NORMAL_UBRR1
|
||||
# else
|
||||
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1
|
||||
# define UART1_DOUBLE_SPEED 1
|
||||
# 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
|
||||
|
||||
/******************************************************************************
|
||||
@@ -156,8 +163,8 @@ void usart1_reset(void)
|
||||
PORTD &= ~(1 << 2);
|
||||
|
||||
/* Unconfigure BAUD divisor */
|
||||
|
||||
UBRR1 = 0;
|
||||
|
||||
UBRR1 = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -237,7 +244,7 @@ void usart1_configure(void)
|
||||
|
||||
/* Set the baud rate divisor */
|
||||
|
||||
UBRR1 = AVR_UBRR1;
|
||||
UBRR1 = AVR_UBRR1;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
* 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 \
|
||||
(((((BOARD_CPU_CLOCK / 16) + (CONFIG_USART0_BAUD / 2)) / (CONFIG_USART0_BAUD)) - 1)
|
||||
@@ -99,16 +99,23 @@
|
||||
# define AVR_UBRR0 AVR_DBLSPEED_UBRR0
|
||||
# define UART0_DOUBLE_SPEED 1
|
||||
# endif
|
||||
#else
|
||||
#elif BOARD_CPU_CLOCK <= 16000000
|
||||
# if CONFIG_USART0_BAUD <= 38400
|
||||
# define AVR_UBRR0 AVR_NORMAL_UBRR0
|
||||
# else
|
||||
# define AVR_UBRR0 AVR_DBLSPEED_UBRR0
|
||||
# define UART0_DOUBLE_SPEED 1
|
||||
# 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
|
||||
|
||||
/* USART1 Baud rate settings for normal and double speed settings */
|
||||
/* USART1 Baud rate settings for normal and double speed modes */
|
||||
|
||||
#define AVR_NORMAL_UBRR1 \
|
||||
((((BOARD_CPU_CLOCK / 16) + (CONFIG_USART1_BAUD / 2)) / (CONFIG_USART1_BAUD)) - 1)
|
||||
@@ -152,13 +159,20 @@
|
||||
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1
|
||||
# define UART1_DOUBLE_SPEED 1
|
||||
# endif
|
||||
#else
|
||||
#elif BOARD_CPU_CLOCK <= 16000000
|
||||
# if CONFIG_USART1_BAUD <= 38400
|
||||
# define AVR_UBRR1 AVR_NORMAL_UBRR1
|
||||
# else
|
||||
# define AVR_UBRR1 AVR_DBLSPEED_UBRR1
|
||||
# define UART1_DOUBLE_SPEED 1
|
||||
# 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
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
@@ -123,35 +123,35 @@ static inline void up_registerdump(void)
|
||||
|
||||
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,
|
||||
current_regs[REG_R0], current_regs[REG_R1],
|
||||
current_regs[REG_R2], current_regs[REG_R3],
|
||||
current_regs[REG_R4], current_regs[REG_R5],
|
||||
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,
|
||||
current_regs[REG_R8], current_regs[REG_R9],
|
||||
current_regs[REG_R10], current_regs[REG_R11],
|
||||
current_regs[REG_R12], current_regs[REG_R13],
|
||||
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,
|
||||
current_regs[REG_R16], current_regs[REG_R17],
|
||||
current_regs[REG_R18], current_regs[REG_R19],
|
||||
current_regs[REG_R20], current_regs[REG_R21],
|
||||
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,
|
||||
current_regs[REG_R24], current_regs[REG_R25],
|
||||
current_regs[REG_R26], current_regs[REG_R27],
|
||||
current_regs[REG_R28], current_regs[REG_R29],
|
||||
current_regs[REG_R30], current_regs[REG_R31]);
|
||||
|
||||
lldbg("PC: %02x%02x SP: %02x%02x SREG: %02x\n",
|
||||
lldbg("PC: %02x%02x SP: %02x%02x SREG: %02x\n",
|
||||
current_regs[REG_PCH], current_regs[REG_PCL],
|
||||
current_regs[REG_SPH], current_regs[REG_SPL],
|
||||
current_regs[REG_SREG]);
|
||||
@@ -192,7 +192,7 @@ void up_dumpstate(void)
|
||||
|
||||
/* Get the limits on the interrupt stack memory */
|
||||
|
||||
#if CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
#if CONFIG_ARCH_INTERRUPTSTACK > 0
|
||||
istackbase = (uint16_t)&g_intstackbase;
|
||||
istacksize = (CONFIG_ARCH_INTERRUPTSTACK & ~3) - 4;
|
||||
|
||||
|
||||
+81
-79
@@ -133,10 +133,10 @@ NuttX buildroot Toolchain
|
||||
cd tools
|
||||
./configure.sh amber/<sub-dir>
|
||||
|
||||
NOTE: you also must copy avr-libc header files into the NuttX include
|
||||
directory with command perhaps like:
|
||||
NOTE: you also must copy avr-libc header files into the NuttX include
|
||||
directory with command perhaps like:
|
||||
|
||||
cp -a /cygdrive/c/WinAVR/include/avr include/.
|
||||
cp -a /cygdrive/c/WinAVR/include/avr include/.
|
||||
|
||||
2. Download the latest buildroot package into <some-dir>
|
||||
|
||||
@@ -223,107 +223,107 @@ Build Notes:
|
||||
Amber Web Server Configuration Options
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
|
||||
CONFIG_ARCH=avr
|
||||
CONFIG_ARCH=avr
|
||||
|
||||
CONFIG_ARCH_family - For use in C code:
|
||||
CONFIG_ARCH_family - For use in C code:
|
||||
|
||||
CONFIG_ARCH_AVR=y
|
||||
CONFIG_ARCH_AVR=y
|
||||
|
||||
CONFIG_ARCH_architecture - For use in C code:
|
||||
CONFIG_ARCH_architecture - For use in C code:
|
||||
|
||||
CONFIG_ARCH_ATMEGA=y
|
||||
CONFIG_ARCH_ATMEGA=y
|
||||
|
||||
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
|
||||
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
|
||||
|
||||
CONFIG_ARCH_CHIP=atmega
|
||||
CONFIG_ARCH_CHIP=atmega
|
||||
|
||||
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
|
||||
chip:
|
||||
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
|
||||
chip:
|
||||
|
||||
CONFIG_ARCH_CHIP_ATMEGA128=y
|
||||
CONFIG_ARCH_CHIP_ATMEGA128=y
|
||||
|
||||
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
|
||||
hence, the board that supports the particular chip or SoC.
|
||||
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
|
||||
hence, the board that supports the particular chip or SoC.
|
||||
|
||||
CONFIG_ARCH_BOARD=amber
|
||||
CONFIG_ARCH_BOARD=amber
|
||||
|
||||
CONFIG_ARCH_BOARD_name - For use in C code
|
||||
CONFIG_ARCH_BOARD_name - For use in C code
|
||||
|
||||
CONFIG_ARCH_BOARD_AMBER=y
|
||||
CONFIG_ARCH_BOARD_AMBER=y
|
||||
|
||||
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
|
||||
of delay loops
|
||||
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
|
||||
of delay loops
|
||||
|
||||
CONFIG_ENDIAN_BIG - define if big endian (default is little
|
||||
endian)
|
||||
CONFIG_ENDIAN_BIG - define if big endian (default is little
|
||||
endian)
|
||||
|
||||
CONFIG_DRAM_SIZE - Describes the installed DRAM. One of:
|
||||
CONFIG_DRAM_SIZE - Describes the installed DRAM. One of:
|
||||
|
||||
CONFIG_DRAM_SIZE=(8*1024) - (8Kb)
|
||||
CONFIG_DRAM_SIZE=(8*1024) - (8Kb)
|
||||
|
||||
CONFIG_DRAM_START - The start address of installed DRAM
|
||||
CONFIG_DRAM_START - The start address of installed DRAM
|
||||
|
||||
CONFIG_DRAM_START=0x10000000
|
||||
CONFIG_DRAM_START=0x10000000
|
||||
|
||||
CONFIG_DRAM_END - Last address+1 of installed RAM
|
||||
CONFIG_DRAM_END - Last address+1 of installed RAM
|
||||
|
||||
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
|
||||
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
|
||||
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
|
||||
have LEDs
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
|
||||
have LEDs
|
||||
|
||||
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
||||
stack. If defined, this symbol is the size of the interrupt
|
||||
stack in bytes. If not defined, the user task stacks will be
|
||||
used during interrupt handling.
|
||||
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
||||
stack. If defined, this symbol is the size of the interrupt
|
||||
stack in bytes. If not defined, the user task stacks will be
|
||||
used during interrupt handling.
|
||||
|
||||
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
|
||||
|
||||
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
|
||||
cause a 100 second delay during boot-up. This 100 second delay
|
||||
serves no purpose other than it allows you to calibratre
|
||||
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
|
||||
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
|
||||
the delay actually is 100 seconds.
|
||||
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
|
||||
cause a 100 second delay during boot-up. This 100 second delay
|
||||
serves no purpose other than it allows you to calibratre
|
||||
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
|
||||
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
|
||||
the delay actually is 100 seconds.
|
||||
|
||||
Individual subsystems can be enabled:
|
||||
Individual subsystems can be enabled:
|
||||
|
||||
CONFIG_AVR_INT0=n
|
||||
CONFIG_AVR_INT1=n
|
||||
CONFIG_AVR_INT2=n
|
||||
CONFIG_AVR_INT3=n
|
||||
CONFIG_AVR_INT4=n
|
||||
CONFIG_AVR_INT5=n
|
||||
CONFIG_AVR_INT6=n
|
||||
CONFIG_AVR_INT7=n
|
||||
CONFIG_AVR_TIMER0=n
|
||||
CONFIG_AVR_TIMER1=n
|
||||
CONFIG_AVR_TIMER2=n
|
||||
CONFIG_AVR_TIMER3=n
|
||||
CONFIG_AVR_SPI=n
|
||||
CONFIG_AVR_USART0=y
|
||||
CONFIG_AVR_USART1=n
|
||||
CONFIG_AVR_ADC=n
|
||||
CONFIG_AVR_ANACOMP=n
|
||||
CONFIG_AVR_TWI=n
|
||||
CONFIG_AVR_INT0=n
|
||||
CONFIG_AVR_INT1=n
|
||||
CONFIG_AVR_INT2=n
|
||||
CONFIG_AVR_INT3=n
|
||||
CONFIG_AVR_INT4=n
|
||||
CONFIG_AVR_INT5=n
|
||||
CONFIG_AVR_INT6=n
|
||||
CONFIG_AVR_INT7=n
|
||||
CONFIG_AVR_TIMER0=n
|
||||
CONFIG_AVR_TIMER1=n
|
||||
CONFIG_AVR_TIMER2=n
|
||||
CONFIG_AVR_TIMER3=n
|
||||
CONFIG_AVR_SPI=n
|
||||
CONFIG_AVR_USART0=y
|
||||
CONFIG_AVR_USART1=n
|
||||
CONFIG_AVR_ADC=n
|
||||
CONFIG_AVR_ANACOMP=n
|
||||
CONFIG_AVR_TWI=n
|
||||
|
||||
ATMEGA specific device driver settings
|
||||
|
||||
CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the
|
||||
console and ttys0 (default is the USART0).
|
||||
CONFIG_USARTn_RXBUFSIZE - Characters are buffered as received.
|
||||
This specific the size of the receive buffer
|
||||
CONFIG_USARTn_TXBUFSIZE - Characters are buffered before
|
||||
being sent. This specific the size of the transmit buffer
|
||||
CONFIG_USARTn_BAUD - The configure BAUD of the USART. Must be
|
||||
CONFIG_USARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||
CONFIG_USARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||
CONFIG_USARTn_2STOP - Two stop bits
|
||||
CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the
|
||||
console and ttys0 (default is the USART0).
|
||||
CONFIG_USARTn_RXBUFSIZE - Characters are buffered as received.
|
||||
This specific the size of the receive buffer
|
||||
CONFIG_USARTn_TXBUFSIZE - Characters are buffered before
|
||||
being sent. This specific the size of the transmit buffer
|
||||
CONFIG_USARTn_BAUD - The configure BAUD of the USART. Must be
|
||||
CONFIG_USARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||
CONFIG_USARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||
CONFIG_USARTn_2STOP - Two stop bits
|
||||
|
||||
Configurations
|
||||
^^^^^^^^^^^^^^
|
||||
@@ -331,17 +331,19 @@ Configurations
|
||||
Each Amber Web Server configuration is maintained in a sudirectory and can
|
||||
be selected as follow:
|
||||
|
||||
cd tools
|
||||
./configure.sh amber/<subdir>
|
||||
cd -
|
||||
. ./setenv.sh
|
||||
cd tools
|
||||
./configure.sh amber/<subdir>
|
||||
cd -
|
||||
. ./setenv.sh
|
||||
|
||||
NOTE: You must also copy avr-libc header files, perhaps like:
|
||||
|
||||
cp -a /cygdrive/c/WinAVR/include/avr include/.
|
||||
cp -a /cygdrive/c/WinAVR/include/avr include/.
|
||||
|
||||
Where <subdir> is one of the following:
|
||||
|
||||
ostest:
|
||||
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.
|
||||
|
||||
@@ -139,7 +139,7 @@ CONFIG_AVR_TWI=n
|
||||
CONFIG_USART0_SERIAL_CONSOLE=y
|
||||
CONFIG_USART0_TXBUFSIZE=256
|
||||
CONFIG_USART0_RXBUFSIZE=256
|
||||
CONFIG_USART0_BAUD=115200
|
||||
CONFIG_USART0_BAUD=38400
|
||||
CONFIG_USART0_BITS=8
|
||||
CONFIG_USART0_PARITY=0
|
||||
CONFIG_USART0_2STOP=0
|
||||
@@ -147,7 +147,7 @@ CONFIG_USART0_2STOP=0
|
||||
CONFIG_USART1_SERIAL_CONSOLE=n
|
||||
CONFIG_USART1_TXBUFSIZE=256
|
||||
CONFIG_USART1_RXBUFSIZE=256
|
||||
CONFIG_USART1_BAUD=115200
|
||||
CONFIG_USART1_BAUD=38400
|
||||
CONFIG_USART1_BITS=8
|
||||
CONFIG_USART1_PARITY=0
|
||||
CONFIG_USART1_2STOP=0
|
||||
|
||||
@@ -15,6 +15,7 @@ Contents
|
||||
o Pin Usage
|
||||
o Serial Console
|
||||
o Atmel mkII Connection
|
||||
o DFU Bootloader
|
||||
o Toolchains
|
||||
o Windows Native Toolchains
|
||||
o NuttX buildroot Toolchain
|
||||
@@ -156,15 +157,20 @@ Atmel mkII Connection
|
||||
Pin 6 nSRT Pin 5 Reset
|
||||
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
|
||||
PB4 RESET
|
||||
PB1(SCK) SCK
|
||||
PB2(MOSI) MOSI/PDI
|
||||
PB3(MISO) MISO/PDO
|
||||
GND GND+AGND
|
||||
Vcc Vcc+AVcc
|
||||
There is also an DFU bootloader that resides in the upper 8Kb of FLASH
|
||||
(unless you ERASE the flash with with ICE). You can enter this bootloader
|
||||
(if it is in FLASH) by:
|
||||
|
||||
Holding both the SW1 (RESET) and SW2, then releasing SW1 while continuing
|
||||
to hold SW2. SW2 connects to the PE2/HWB signal and causes a reset into
|
||||
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
|
||||
^^^^^^^^^^^^^^
|
||||
@@ -281,10 +287,10 @@ NuttX buildroot Toolchain
|
||||
cd tools
|
||||
./configure.sh micropendous3/<sub-dir>
|
||||
|
||||
NOTE: you also must copy avr-libc header files into the NuttX include
|
||||
directory with command perhaps like:
|
||||
NOTE: you also must copy avr-libc header files into the NuttX include
|
||||
directory with command perhaps like:
|
||||
|
||||
cp -a /cygdrive/c/WinAVR/include/avr include/.
|
||||
cp -a /cygdrive/c/WinAVR/include/avr include/.
|
||||
|
||||
2. Download the latest buildroot package into <some-dir>
|
||||
|
||||
@@ -371,115 +377,115 @@ Build Notes:
|
||||
Micropendous3 Configuration Options
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
|
||||
CONFIG_ARCH=avr
|
||||
CONFIG_ARCH=avr
|
||||
|
||||
CONFIG_ARCH_family - For use in C code:
|
||||
CONFIG_ARCH_family - For use in C code:
|
||||
|
||||
CONFIG_ARCH_AVR=y
|
||||
CONFIG_ARCH_AVR=y
|
||||
|
||||
CONFIG_ARCH_architecture - For use in C code:
|
||||
CONFIG_ARCH_architecture - For use in C code:
|
||||
|
||||
CONFIG_ARCH_AT90USB=y
|
||||
CONFIG_ARCH_AT90USB=y
|
||||
|
||||
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
|
||||
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
|
||||
|
||||
CONFIG_ARCH_CHIP=at90usb
|
||||
CONFIG_ARCH_CHIP=at90usb
|
||||
|
||||
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
|
||||
chip. This should be exactly one of
|
||||
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
|
||||
chip. This should be exactly one of
|
||||
|
||||
CONFIG_ARCH_CHIP_AT90USB646=y
|
||||
CONFIG_ARCH_CHIP_AT90USB647=y
|
||||
CONFIG_ARCH_CHIP_AT90USB1286=y
|
||||
CONFIG_ARCH_CHIP_AT90USB1287=y
|
||||
CONFIG_ARCH_CHIP_AT90USB646=y
|
||||
CONFIG_ARCH_CHIP_AT90USB647=y
|
||||
CONFIG_ARCH_CHIP_AT90USB1286=y
|
||||
CONFIG_ARCH_CHIP_AT90USB1287=y
|
||||
|
||||
Depending on which Micropendous3 version you have.
|
||||
Depending on which Micropendous3 version you have.
|
||||
|
||||
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
|
||||
hence, the board that supports the particular chip or SoC.
|
||||
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
|
||||
hence, the board that supports the particular chip or SoC.
|
||||
|
||||
CONFIG_ARCH_BOARD=micropendous3
|
||||
CONFIG_ARCH_BOARD=micropendous3
|
||||
|
||||
CONFIG_ARCH_BOARD_name - For use in C code
|
||||
CONFIG_ARCH_BOARD_name - For use in C code
|
||||
|
||||
CONFIG_ARCH_BOARD_MICROPENOUS3=y
|
||||
CONFIG_ARCH_BOARD_MICROPENOUS3=y
|
||||
|
||||
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
|
||||
of delay loops
|
||||
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
|
||||
of delay loops
|
||||
|
||||
CONFIG_ENDIAN_BIG - define if big endian (default is little
|
||||
endian)
|
||||
CONFIG_ENDIAN_BIG - define if big endian (default is little
|
||||
endian)
|
||||
|
||||
CONFIG_DRAM_SIZE - Describes the installed DRAM. One of:
|
||||
CONFIG_DRAM_SIZE - Describes the installed DRAM. One of:
|
||||
|
||||
CONFIG_DRAM_SIZE=(4*1024) - (4Kb)
|
||||
CONFIG_DRAM_SIZE=(8*1024) - (8Kb)
|
||||
CONFIG_DRAM_SIZE=(4*1024) - (4Kb)
|
||||
CONFIG_DRAM_SIZE=(8*1024) - (8Kb)
|
||||
|
||||
CONFIG_DRAM_START - The start address of installed DRAM
|
||||
CONFIG_DRAM_START - The start address of installed DRAM
|
||||
|
||||
CONFIG_DRAM_START=0x10000000
|
||||
CONFIG_DRAM_START=0x10000000
|
||||
|
||||
CONFIG_DRAM_END - Last address+1 of installed RAM
|
||||
CONFIG_DRAM_END - Last address+1 of installed RAM
|
||||
|
||||
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
|
||||
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
|
||||
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
|
||||
have LEDs
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
|
||||
have LEDs
|
||||
|
||||
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
||||
stack. If defined, this symbol is the size of the interrupt
|
||||
stack in bytes. If not defined, the user task stacks will be
|
||||
used during interrupt handling.
|
||||
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
||||
stack. If defined, this symbol is the size of the interrupt
|
||||
stack in bytes. If not defined, the user task stacks will be
|
||||
used during interrupt handling.
|
||||
|
||||
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
|
||||
|
||||
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
|
||||
cause a 100 second delay during boot-up. This 100 second delay
|
||||
serves no purpose other than it allows you to calibratre
|
||||
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
|
||||
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
|
||||
the delay actually is 100 seconds.
|
||||
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
|
||||
cause a 100 second delay during boot-up. This 100 second delay
|
||||
serves no purpose other than it allows you to calibratre
|
||||
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
|
||||
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
|
||||
the delay actually is 100 seconds.
|
||||
|
||||
Individual subsystems can be enabled:
|
||||
Individual subsystems can be enabled:
|
||||
|
||||
CONFIG_AVR_INT0=n
|
||||
CONFIG_AVR_INT1=n
|
||||
CONFIG_AVR_INT2=n
|
||||
CONFIG_AVR_INT3=n
|
||||
CONFIG_AVR_INT4=n
|
||||
CONFIG_AVR_INT5=n
|
||||
CONFIG_AVR_INT6=n
|
||||
CONFIG_AVR_INT7=n
|
||||
CONFIG_AVR_USBHOST=n
|
||||
CONFIG_AVR_USBDEV=n
|
||||
CONFIG_AVR_WDT=n
|
||||
CONFIG_AVR_TIMER0=n
|
||||
CONFIG_AVR_TIMER1=n
|
||||
CONFIG_AVR_TIMER2=n
|
||||
CONFIG_AVR_TIMER3=n
|
||||
CONFIG_AVR_SPI=n
|
||||
CONFIG_AVR_USART1=y
|
||||
CONFIG_AVR_ANACOMP=n
|
||||
CONFIG_AVR_ADC=n
|
||||
CONFIG_AVR_TWI=n
|
||||
CONFIG_AVR_INT0=n
|
||||
CONFIG_AVR_INT1=n
|
||||
CONFIG_AVR_INT2=n
|
||||
CONFIG_AVR_INT3=n
|
||||
CONFIG_AVR_INT4=n
|
||||
CONFIG_AVR_INT5=n
|
||||
CONFIG_AVR_INT6=n
|
||||
CONFIG_AVR_INT7=n
|
||||
CONFIG_AVR_USBHOST=n
|
||||
CONFIG_AVR_USBDEV=n
|
||||
CONFIG_AVR_WDT=n
|
||||
CONFIG_AVR_TIMER0=n
|
||||
CONFIG_AVR_TIMER1=n
|
||||
CONFIG_AVR_TIMER2=n
|
||||
CONFIG_AVR_TIMER3=n
|
||||
CONFIG_AVR_SPI=n
|
||||
CONFIG_AVR_USART1=y
|
||||
CONFIG_AVR_ANACOMP=n
|
||||
CONFIG_AVR_ADC=n
|
||||
CONFIG_AVR_TWI=n
|
||||
|
||||
AT90USB specific device driver settings
|
||||
|
||||
CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the
|
||||
console and ttys0 (default is no serial console).
|
||||
CONFIG_USARTn_RXBUFSIZE - Characters are buffered as received.
|
||||
This specific the size of the receive buffer
|
||||
CONFIG_USARTn_TXBUFSIZE - Characters are buffered before
|
||||
being sent. This specific the size of the transmit buffer
|
||||
CONFIG_USARTn_BAUD - The configure BAUD of the USART. Must be
|
||||
CONFIG_USARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||
CONFIG_USARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||
CONFIG_USARTn_2STOP - Two stop bits
|
||||
CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the
|
||||
console and ttys0 (default is no serial console).
|
||||
CONFIG_USARTn_RXBUFSIZE - Characters are buffered as received.
|
||||
This specific the size of the receive buffer
|
||||
CONFIG_USARTn_TXBUFSIZE - Characters are buffered before
|
||||
being sent. This specific the size of the transmit buffer
|
||||
CONFIG_USARTn_BAUD - The configure BAUD of the USART. Must be
|
||||
CONFIG_USARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||
CONFIG_USARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||
CONFIG_USARTn_2STOP - Two stop bits
|
||||
|
||||
Configurations
|
||||
^^^^^^^^^^^^^^
|
||||
@@ -487,17 +493,42 @@ Configurations
|
||||
Each Micropendous3 configuration is maintained in a sudirectory and can
|
||||
be selected as follow:
|
||||
|
||||
cd tools
|
||||
./configure.sh micropendous3/<subdir>
|
||||
cd -
|
||||
. ./setenv.sh
|
||||
cd tools
|
||||
./configure.sh micropendous3/<subdir>
|
||||
cd -
|
||||
. ./setenv.sh
|
||||
|
||||
NOTE: You must also copy avr-libc header files, perhaps like:
|
||||
|
||||
cp -a /cygdrive/c/WinAVR/include/avr include/.
|
||||
cp -a /cygdrive/c/WinAVR/include/avr include/.
|
||||
|
||||
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:
|
||||
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.
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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
@@ -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) }
|
||||
}
|
||||
Executable
+63
@@ -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}"
|
||||
@@ -142,7 +142,7 @@ CONFIG_AVR_TWI=n
|
||||
CONFIG_USART1_SERIAL_CONSOLE=y
|
||||
CONFIG_USART1_TXBUFSIZE=256
|
||||
CONFIG_USART1_RXBUFSIZE=256
|
||||
CONFIG_USART1_BAUD=115200
|
||||
CONFIG_USART1_BAUD=38400
|
||||
CONFIG_USART1_BITS=8
|
||||
CONFIG_USART1_PARITY=0
|
||||
CONFIG_USART1_2STOP=0
|
||||
|
||||
Reference in New Issue
Block a user