mirror of
https://github.com/apache/nuttx.git
synced 2026-05-29 20:56:47 +08:00
Add ATMega128 configuration
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3695 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -144,13 +144,19 @@
|
|||||||
#ifdef HAVE_USART_DEVICE
|
#ifdef HAVE_USART_DEVICE
|
||||||
void usart1_reset(void)
|
void usart1_reset(void)
|
||||||
{
|
{
|
||||||
|
/* Clear USART configuration */
|
||||||
|
|
||||||
UCSR1A = 0;
|
UCSR1A = 0;
|
||||||
UCSR1B = 0;
|
UCSR1B = 0;
|
||||||
UCSR1C = 0;
|
UCSR1C = 0;
|
||||||
|
|
||||||
DDRD &= ~(1 << 3);
|
/* Unconfigure pins */
|
||||||
|
|
||||||
|
DDRD &= ~(1 << 3);
|
||||||
PORTD &= ~(1 << 2);
|
PORTD &= ~(1 << 2);
|
||||||
|
|
||||||
|
/* Unconfigure BAUD divisor */
|
||||||
|
|
||||||
UBRR1 = 0;
|
UBRR1 = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -214,10 +220,20 @@ void usart1_configure(void)
|
|||||||
UCSR1B = ucsr1b;
|
UCSR1B = ucsr1b;
|
||||||
UCSR1C = ucsr1c;
|
UCSR1C = ucsr1c;
|
||||||
|
|
||||||
/* Configure pin */
|
/* Pin Configuration: None necessary, Port D bits 2&3 are automatically
|
||||||
|
* configured:
|
||||||
|
*
|
||||||
|
* Port D, Bit 2: RXD1, Receive Data (Data input pin for the USART1). When
|
||||||
|
* the USART1 receiver is enabled this pin is configured as an input
|
||||||
|
* regardless of the value of DDD2. When the USART forces this pin to
|
||||||
|
* be an input, the pull-up can still be controlled by the PORTD2 bit.
|
||||||
|
* Port D, Bit 3: TXD1, Transmit Data (Data output pin for the USART1).
|
||||||
|
* When the USART1 Transmitter is enabled, this pin is configured as
|
||||||
|
* an output regardless of the value of DDD3.
|
||||||
|
*/
|
||||||
|
|
||||||
DDRD |= (1 << 3);
|
DDRD |= (1 << 3); /* Force Port D pin 3 to be an output */
|
||||||
PORTD |= (1 << 2);
|
PORTD |= (1 << 2); /* Set pull-up on port D pin 2 */
|
||||||
|
|
||||||
/* Set the baud rate divisor */
|
/* Set the baud rate divisor */
|
||||||
|
|
||||||
|
|||||||
@@ -33,8 +33,8 @@
|
|||||||
*
|
*
|
||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifndef __ARCH_AVR_SRC_AT90USB_AT90USB_CONFIG_H
|
#ifndef __ARCH_AVR_SRC_ATMEGA_ATMEGA_CONFIG_H
|
||||||
#define __ARCH_AVR_SRC_AT90USB_AT90USB_CONFIG_H
|
#define __ARCH_AVR_SRC_ATMEGA_ATMEGA_CONFIG_H
|
||||||
|
|
||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
@@ -80,5 +80,5 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#endif /* __ARCH_AVR_SRC_AT90USB_AT90USB_CONFIG_H */
|
#endif /* __ARCH_AVR_SRC_ATMEGA_ATMEGA_CONFIG_H */
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
.file "atmega_exceptions.S"
|
.file "atmega_exceptions.S"
|
||||||
.global up_doirq
|
.global up_doirq
|
||||||
.gloal up_fullcontextrestore
|
.global up_fullcontextrestore
|
||||||
|
|
||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* Macros
|
* Macros
|
||||||
|
|||||||
@@ -58,10 +58,10 @@
|
|||||||
/* USART0 Baud rate settings for normal and double speed settings */
|
/* USART0 Baud rate settings for normal and double speed settings */
|
||||||
|
|
||||||
#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)
|
||||||
|
|
||||||
#define AVR_DBLSPEED_UBRR0 \
|
#define AVR_DBLSPEED_UBRR0 \
|
||||||
((((BOARD_CPU_CLOCK / 8) + (CONFIG_USART0_BAUD / 2)) / (CONFIG_USART0_BAUD)) - 1)
|
(((((BOARD_CPU_CLOCK / 8) + (CONFIG_USART0_BAUD / 2)) / (CONFIG_USART0_BAUD)) - 1)
|
||||||
|
|
||||||
/* Select normal or double speed baud settings. This is a trade-off between the
|
/* Select normal or double speed baud settings. This is a trade-off between the
|
||||||
* sampling rate and the accuracy of the divisor for high baud rates.
|
* sampling rate and the accuracy of the divisor for high baud rates.
|
||||||
@@ -111,10 +111,10 @@
|
|||||||
/* USART1 Baud rate settings for normal and double speed settings */
|
/* USART1 Baud rate settings for normal and double speed settings */
|
||||||
|
|
||||||
#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)
|
||||||
|
|
||||||
#define AVR_DBLSPEED_UBRR1 \
|
#define AVR_DBLSPEED_UBRR1 \
|
||||||
(((BOARD_CPU_CLOCK / 8) + (CONFIG_USART1_BAUD / 2)) / (CONFIG_USART1_BAUD)) - 1)
|
((((BOARD_CPU_CLOCK / 8) + (CONFIG_USART1_BAUD / 2)) / (CONFIG_USART1_BAUD)) - 1)
|
||||||
|
|
||||||
/* Select normal or double speed baud settings. This is a trade-off between the
|
/* Select normal or double speed baud settings. This is a trade-off between the
|
||||||
* sampling rate and the accuracy of the divisor for high baud rates.
|
* sampling rate and the accuracy of the divisor for high baud rates.
|
||||||
@@ -196,27 +196,42 @@
|
|||||||
#ifdef CONFIG_ATMEGA_USART0
|
#ifdef CONFIG_ATMEGA_USART0
|
||||||
void usart0_reset(void)
|
void usart0_reset(void)
|
||||||
{
|
{
|
||||||
|
/* Clear USART configuration */
|
||||||
|
|
||||||
UCSR0A = 0;
|
UCSR0A = 0;
|
||||||
UCSR0B = 0;
|
UCSR0B = 0;
|
||||||
UCSR0C = 0;
|
UCSR0C = 0;
|
||||||
|
|
||||||
# warning "Missing logic"
|
/* Unconfigure pins (no action needed */
|
||||||
|
|
||||||
UBRR0 = 0;
|
DDRE &= ~(1 << 1);
|
||||||
|
PORTE &= ~(1 << 0);
|
||||||
|
|
||||||
|
/* Unconfigure BAUD divisor */
|
||||||
|
|
||||||
|
UBRR0H = 0;
|
||||||
|
UBRR0L = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_ATMEGA_USART1
|
#ifdef CONFIG_ATMEGA_USART1
|
||||||
void usart1_reset(void)
|
void usart1_reset(void)
|
||||||
{
|
{
|
||||||
|
/* Clear USART configuration */
|
||||||
|
|
||||||
UCSR1A = 0;
|
UCSR1A = 0;
|
||||||
UCSR1B = 0;
|
UCSR1B = 0;
|
||||||
UCSR1C = 0;
|
UCSR1C = 0;
|
||||||
|
|
||||||
DDRD &= ~(1 << 3);
|
/* Unconfigure pins */
|
||||||
|
|
||||||
|
DDRD &= ~(1 << 3);
|
||||||
PORTD &= ~(1 << 2);
|
PORTD &= ~(1 << 2);
|
||||||
|
|
||||||
UBRR1 = 0;
|
/* Unconfigure BAUD divisor */
|
||||||
|
|
||||||
|
UBRR1H = 0;
|
||||||
|
UBRR1L = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -279,13 +294,28 @@ void usart0_configure(void)
|
|||||||
UCSR0B = ucsr0b;
|
UCSR0B = ucsr0b;
|
||||||
UCSR0C = ucsr0c;
|
UCSR0C = ucsr0c;
|
||||||
|
|
||||||
/* Configure pin */
|
/* Pin Configuration: None necessary, Port E bits 0&1 are automatically
|
||||||
|
* configured:
|
||||||
|
*
|
||||||
|
* Port E, Bit 0: RXD0, USART0 Receive Pin. Receive Data (Data input pin
|
||||||
|
* for the USART0). When the USART0 receiver is enabled this pin is
|
||||||
|
* configured as an input regardless of the value of DDRE0. When the
|
||||||
|
* USART0 forces this pin to be an input, a logical one in PORTE0 will
|
||||||
|
* turn on the internal pull-up.
|
||||||
|
*
|
||||||
|
* Port E, Bit 1: TXD0, UART0 Transmit pin.
|
||||||
|
*
|
||||||
|
* REVISIT: According to table 41, TXD0 is also automatically configured.
|
||||||
|
* However, this is not explicitly stated in the text.
|
||||||
|
*/
|
||||||
|
|
||||||
#warning "Missing logic"
|
DDRE |= (1 << 1); /* Force Port E pin 1 to be an input */
|
||||||
|
PORTE |= (1 << 0); /* Set pull-up on Port E pin 0 */
|
||||||
|
|
||||||
/* Set the baud rate divisor */
|
/* Set the baud rate divisor */
|
||||||
|
|
||||||
UBRR0 = AVR_UBRR0;
|
UBRR0H = AVR_UBRR1 >> 8;
|
||||||
|
UBRR0L = AVR_UBRR1 & 0xff;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -340,14 +370,25 @@ void usart1_configure(void)
|
|||||||
UCSR1B = ucsr1b;
|
UCSR1B = ucsr1b;
|
||||||
UCSR1C = ucsr1c;
|
UCSR1C = ucsr1c;
|
||||||
|
|
||||||
/* Configure pin */
|
/* Pin Configuration: None necessary, Port D bits 2&3 are automatically
|
||||||
|
* configured:
|
||||||
|
*
|
||||||
|
* Port D, Bit 2: RXD1, Receive Data (Data input pin for the USART1). When
|
||||||
|
* the USART1 receiver is enabled this pin is configured as an input
|
||||||
|
* regardless of the value of DDD2. When the USART forces this pin to
|
||||||
|
* be an input, the pull-up can still be controlled by the PORTD2 bit.
|
||||||
|
* Port D, Bit 3: TXD1, Transmit Data (Data output pin for the USART1).
|
||||||
|
* When the USART1 Transmitter is enabled, this pin is configured as
|
||||||
|
* an output regardless of the value of DDD3.
|
||||||
|
*/
|
||||||
|
|
||||||
DDRD |= (1 << 3);
|
DDRD |= (1 << 3); /* Force Port D pin 3 to be an output */
|
||||||
PORTD |= (1 << 2);
|
PORTD |= (1 << 2); /* Set pull-up on port D pin 2 */
|
||||||
|
|
||||||
/* Set the baud rate divisor */
|
/* Set the baud rate divisor */
|
||||||
|
|
||||||
UBRR1 = AVR_UBRR1;
|
UBRR1H = AVR_UBRR1 >> 8;
|
||||||
|
UBRR1L = AVR_UBRR1 & 0xff;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -177,5 +177,5 @@ void up_timerinit(void)
|
|||||||
|
|
||||||
/* Enable the interrupt on compare match A */
|
/* Enable the interrupt on compare match A */
|
||||||
|
|
||||||
TIMSK1 |= (1 << OCIE1A);
|
TIMSK |= (1 << OCIE1A);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,6 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
#include "at90usb_config.h"
|
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|||||||
+25
-14
@@ -26,6 +26,19 @@ Contents
|
|||||||
Amber Web Server Features
|
Amber Web Server Features
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
o 17.56MHz ATmega128 Atmel 8bit AVR RISC Processor
|
||||||
|
o 128Kbyte Flash
|
||||||
|
o 64Kbyte RAM
|
||||||
|
o 10BaseT Ethernet Port
|
||||||
|
o High Speed Serial Port
|
||||||
|
o 8Ch 10bit Analog Input port
|
||||||
|
o 16 Digital IO ports
|
||||||
|
o Expansion bus for daughter cards
|
||||||
|
o LED status indicators
|
||||||
|
o ISP Programming port
|
||||||
|
o 7-14VDC input
|
||||||
|
o Power via Ethernet port
|
||||||
|
|
||||||
Toolchains
|
Toolchains
|
||||||
^^^^^^^^^^
|
^^^^^^^^^^
|
||||||
|
|
||||||
@@ -189,6 +202,7 @@ Build Notes:
|
|||||||
cd avr-lib-1.7.1
|
cd avr-lib-1.7.1
|
||||||
|
|
||||||
3. Configure avr-lib. Assuming that WinAVR is installed at the following
|
3. Configure avr-lib. Assuming that WinAVR is installed at the following
|
||||||
|
loction:
|
||||||
|
|
||||||
export PATH=/cygdrive/c/WinAVR/bin:$PATH
|
export PATH=/cygdrive/c/WinAVR/bin:$PATH
|
||||||
./configure --build=`./config.guess` --host=avr
|
./configure --build=`./config.guess` --host=avr
|
||||||
@@ -287,32 +301,29 @@ Amber Web Server Configuration Options
|
|||||||
CONFIG_AVR_INT5=n
|
CONFIG_AVR_INT5=n
|
||||||
CONFIG_AVR_INT6=n
|
CONFIG_AVR_INT6=n
|
||||||
CONFIG_AVR_INT7=n
|
CONFIG_AVR_INT7=n
|
||||||
CONFIG_AVR_USBHOST=n
|
|
||||||
CONFIG_AVR_USBDEV=n
|
|
||||||
CONFIG_AVR_WDT=n
|
|
||||||
CONFIG_AVR_TIMER0=n
|
CONFIG_AVR_TIMER0=n
|
||||||
CONFIG_AVR_TIMER1=n
|
CONFIG_AVR_TIMER1=n
|
||||||
CONFIG_AVR_TIMER2=n
|
CONFIG_AVR_TIMER2=n
|
||||||
CONFIG_AVR_TIMER3=n
|
CONFIG_AVR_TIMER3=n
|
||||||
CONFIG_AVR_SPI=n
|
CONFIG_AVR_SPI=n
|
||||||
CONFIG_AVR_UART0=y
|
CONFIG_AVR_USART0=y
|
||||||
CONFIG_AVR_UART1=n
|
CONFIG_AVR_USART1=n
|
||||||
CONFIG_AVR_ANACOMP=n
|
|
||||||
CONFIG_AVR_ADC=n
|
CONFIG_AVR_ADC=n
|
||||||
|
CONFIG_AVR_ANACOMP=n
|
||||||
CONFIG_AVR_TWI=n
|
CONFIG_AVR_TWI=n
|
||||||
|
|
||||||
ATMEGA specific device driver settings
|
ATMEGA specific device driver settings
|
||||||
|
|
||||||
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
|
CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the
|
||||||
console and ttys0 (default is the UART0).
|
console and ttys0 (default is the USART0).
|
||||||
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
|
CONFIG_USARTn_RXBUFSIZE - Characters are buffered as received.
|
||||||
This specific the size of the receive buffer
|
This specific the size of the receive buffer
|
||||||
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
|
CONFIG_USARTn_TXBUFSIZE - Characters are buffered before
|
||||||
being sent. This specific the size of the transmit buffer
|
being sent. This specific the size of the transmit buffer
|
||||||
CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
|
CONFIG_USARTn_BAUD - The configure BAUD of the USART. Must be
|
||||||
CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
|
CONFIG_USARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||||
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
CONFIG_USARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||||
CONFIG_UARTn_2STOP - Two stop bits
|
CONFIG_USARTn_2STOP - Two stop bits
|
||||||
|
|
||||||
Configurations
|
Configurations
|
||||||
^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^
|
||||||
|
|||||||
Executable
+93
@@ -0,0 +1,93 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* configs/amber/include/board.h
|
||||||
|
* include/arch/board/board.h
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __CONFIGS_AMBER_INCLUDE_BOARD_H
|
||||||
|
#define __CONFIGS_AMBER_INCLUDE_BOARD_H
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Pre-Processor Definitions
|
||||||
|
****************************************************************************/
|
||||||
|
/* Configuration ************************************************************/
|
||||||
|
|
||||||
|
/* Clocking *****************************************************************/
|
||||||
|
|
||||||
|
#define BOARD_CPU_CLOCK 8000000 /* 8MHz */
|
||||||
|
|
||||||
|
/* LED definitions **********************************************************/
|
||||||
|
|
||||||
|
#define LED_STARTED 0
|
||||||
|
#define LED_HEAPALLOCATE 1
|
||||||
|
#define LED_IRQSENABLED 2
|
||||||
|
#define LED_STACKCREATED 3
|
||||||
|
#define LED_INIRQ 4
|
||||||
|
#define LED_SIGNAL 5
|
||||||
|
#define LED_ASSERTION 6
|
||||||
|
#define LED_PANIC 7
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Types
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Inline Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Function Prototypes
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define EXTERN extern "C"
|
||||||
|
extern "C" {
|
||||||
|
#else
|
||||||
|
#define EXTERN extern
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef EXTERN
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __ASSEMBLY__ */
|
||||||
|
#endif /* __CONFIGS_AMBER_INCLUDE_BOARD_H */
|
||||||
@@ -0,0 +1,149 @@
|
|||||||
|
############################################################################
|
||||||
|
# configs/amber/ostest/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=atmega128
|
||||||
|
LDFLAGS += -nostartfiles -nodefaultlibs
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_AVR_LINUXGCC),y)
|
||||||
|
# GCC toolchain under Linux
|
||||||
|
CROSSDEV = avr-
|
||||||
|
MAXOPTIMIZATION = -O2
|
||||||
|
ARCHCPUFLAGS = -mmcu=atmega128
|
||||||
|
LDFLAGS += -nostartfiles -nodefaultlibs
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_AVR_BUILDROOT),y)
|
||||||
|
# NuttX buildroot GCC toolchain under Linux or Cygwin
|
||||||
|
CROSSDEV = avr-elf-
|
||||||
|
MAXOPTIMIZATION = -O2
|
||||||
|
ARCHCPUFLAGS = -mmcu=atmega128
|
||||||
|
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)/ostest/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)/ostest/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/amber/ostest/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/ostest
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,202 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* configs/amber/ostest/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/amber/ostest/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}"
|
||||||
Executable
+97
@@ -0,0 +1,97 @@
|
|||||||
|
############################################################################
|
||||||
|
# configs/amber/src/Makefile
|
||||||
|
#
|
||||||
|
# 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)/Make.defs
|
||||||
|
|
||||||
|
ASRCS =
|
||||||
|
CSRCS = up_boot.c
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_LEDS),y)
|
||||||
|
CSRCS += up_leds.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
||||||
|
COBJS = $(CSRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
|
SRCS = $(ASRCS) $(CSRCS)
|
||||||
|
OBJS = $(AOBJS) $(COBJS)
|
||||||
|
|
||||||
|
ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src
|
||||||
|
ifeq ($(CONFIG_ARCH_AVR32),y)
|
||||||
|
ARCH_SUBDIR = avr32
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_ARCH_AVR),y)
|
||||||
|
ARCH_SUBDIR = avr
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(WINTOOL),y)
|
||||||
|
CFLAGS += -I "${shell cygpath -w $(TOPDIR)/sched}"
|
||||||
|
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}"
|
||||||
|
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/common}"
|
||||||
|
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/$(ARCH_SUBDIR)}"
|
||||||
|
else
|
||||||
|
CFLAGS += -I "$(TOPDIR)/sched"
|
||||||
|
CFLAGS += -I "$(ARCH_SRCDIR)/chip"
|
||||||
|
CFLAGS += -I "$(ARCH_SRCDIR)/common"
|
||||||
|
CFLAGS += -I "$(ARCH_SRCDIR)/$(ARCH_SUBDIR)"
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: libboard$(LIBEXT)
|
||||||
|
|
||||||
|
$(AOBJS): %$(OBJEXT): %.S
|
||||||
|
$(call ASSEMBLE, $<, $@)
|
||||||
|
|
||||||
|
$(COBJS) $(LINKOBJS): %$(OBJEXT): %.c
|
||||||
|
$(call COMPILE, $<, $@)
|
||||||
|
|
||||||
|
libboard$(LIBEXT): $(OBJS)
|
||||||
|
@( for obj in $(OBJS) ; do \
|
||||||
|
$(call ARCHIVE, $@, $${obj}); \
|
||||||
|
done ; )
|
||||||
|
|
||||||
|
.depend: Makefile $(SRCS)
|
||||||
|
@$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
|
||||||
|
@touch $@
|
||||||
|
|
||||||
|
depend: .depend
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -f libboard$(LIBEXT) *~ .*.swp
|
||||||
|
$(call CLEAN)
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
@rm -f Make.dep .depend
|
||||||
|
|
||||||
|
-include Make.dep
|
||||||
Executable
+101
@@ -0,0 +1,101 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* configs/amber/src/pcblogic-internal.h
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __CONFIGS_AMBER_SRC_AMBER_INTERNAL_H
|
||||||
|
#define __CONFIGS_AMBER_SRC_AMBER_INTERNAL_H
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Pre-Processor Definitions
|
||||||
|
****************************************************************************/
|
||||||
|
/* Configuration ************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Types
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Inline Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Function Prototypes
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define EXTERN extern "C"
|
||||||
|
extern "C" {
|
||||||
|
#else
|
||||||
|
#define EXTERN extern
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Name: atmega_spiinitialize
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Called to configure SPI chip select GPIO pins for the Amber Web Server.
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
#if defined(CONFIG_AVR_SPI1) || defined(CONFIG_AVR_SPI2)
|
||||||
|
EXTERN void weak_function atmega_spiinitialize(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Name: atmega_ledinit
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Configure on-board LEDs if LED support has been selected.
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_LEDS
|
||||||
|
EXTERN void atmega_ledinit(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef EXTERN
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __ASSEMBLY__ */
|
||||||
|
#endif /* __CONFIGS_AMBER_SRC_AMBER_INTERNAL_H */
|
||||||
Executable
+93
@@ -0,0 +1,93 @@
|
|||||||
|
/************************************************************************************
|
||||||
|
* configs/amber/src/up_boot.c
|
||||||
|
* arch/mips/src/board/up_boot.c
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Included Files
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
|
#include <arch/board/board.h>
|
||||||
|
|
||||||
|
#include "up_arch.h"
|
||||||
|
#include "up_internal.h"
|
||||||
|
|
||||||
|
#include "atmega_internal.h"
|
||||||
|
#include "amber_internal.h"
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Definitions
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Private Functions
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Name: up_boardinitialize
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* All ATMega architectures must provide the following entry point. This entry
|
||||||
|
* point is called early in the intitialization -- after all memory has been
|
||||||
|
* configured and mapped but before any devices have been initialized.
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
void up_boardinitialize(void)
|
||||||
|
{
|
||||||
|
/* Configure SSP chip selects if 1) at least one SSP is enabled, and 2) the weak
|
||||||
|
* function atmega_spiinitialize() has been brought into the link.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(CONFIG_AVR_SPI1) || defined(CONFIG_AVR_SPI2)
|
||||||
|
if (atmega_spiinitialize)
|
||||||
|
{
|
||||||
|
atmega_spiinitialize();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Configure on-board LEDs if LED support has been selected. */
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_LEDS
|
||||||
|
atmega_ledinit();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
@@ -34,8 +34,8 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef __CONFIGS_MICROPENDOUS_INCLUDE_BOARD_H
|
#ifndef __CONFIGS_MICROPENDOUS3_INCLUDE_BOARD_H
|
||||||
#define __CONFIGS_MICROPENDOUS_INCLUDE_BOARD_H
|
#define __CONFIGS_MICROPENDOUS3_INCLUDE_BOARD_H
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
@@ -90,4 +90,4 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __ASSEMBLY__ */
|
#endif /* __ASSEMBLY__ */
|
||||||
#endif /* __CONFIGS_MICROPENDOUS_INCLUDE_BOARD_H */
|
#endif /* __CONFIGS_MICROPENDOUS3_INCLUDE_BOARD_H */
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
# CONFIG_ARCH_NOINTC - define if the architecture does not
|
# CONFIG_ARCH_NOINTC - define if the architecture does not
|
||||||
# support an interrupt controller or otherwise cannot support
|
# support an interrupt controller or otherwise cannot support
|
||||||
# APIs like up_enable_irq() and up_disable_irq().
|
# APIs like up_enable_irq() and up_disable_irq().
|
||||||
# CONFIG_ARCH_IRQPRIO - The AT90USB supports interrupt prioritization
|
# CONFIG_ARCH_IRQPRIO - The AT90USB does not support interrupt prioritization
|
||||||
# CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
# CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
||||||
# stack. If defined, this symbol is the size of the interrupt
|
# stack. If defined, this symbol is the size of the interrupt
|
||||||
# stack in bytes. If not defined, the user task stacks will be
|
# stack in bytes. If not defined, the user task stacks will be
|
||||||
|
|||||||
Reference in New Issue
Block a user