mirror of
https://github.com/apache/nuttx.git
synced 2026-05-20 20:44:39 +08:00
Add configuratin for PJRC Teensy board
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3716 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -1822,4 +1822,6 @@
|
||||
* configs/amber: This is a placehold for the Atmel ATMega128 Amber Web
|
||||
Server from SoC Robotics. Not much present in this directory on initial
|
||||
check-in.
|
||||
* configs/teensy: Adds a board configuration for the PJRC Teensy++ 2.0 boar
|
||||
that features an Atmel AT90USB1286 MCU.
|
||||
|
||||
|
||||
+38
-10
@@ -8,7 +8,7 @@
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
||||
<p>Last Updated: June 8, 2011</p>
|
||||
<p>Last Updated: June 16, 2011</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -1466,16 +1466,16 @@
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<b>ATMega128</b>.
|
||||
<b>SoC Robotics ATMega128</b>.
|
||||
This port of NuttX to the Amber Web Server from SoC Robotics
|
||||
(http://www.soc-robotics.com/index.htm) is underway. The Amber Web Server is
|
||||
(http://www.soc-robotics.com/index.htm) partially complete. The Amber Web Server is
|
||||
based on an Atmel ATMega128.
|
||||
</p>
|
||||
<ul>
|
||||
<p>
|
||||
<b>STATUS:</b>
|
||||
This port a work in progress. It is in the early stage at approximately code
|
||||
complete but with no testing. This port may be verified for the NuttX 6.5 release.
|
||||
Work on this port has stalled due to toolchain issues. Complete, but untested
|
||||
code for this port appears in the NuttX 6.5 release.
|
||||
</p>
|
||||
</ul>
|
||||
</td>
|
||||
@@ -1488,15 +1488,40 @@
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<b>AT9USB64x</b> and <b>AT9USB6128x</b>.
|
||||
<b>Micropendous 3 AT9USB64x</b> and <b>AT9USB6128x</b>.
|
||||
This port of NuttX to the Opendous Micropendous 3 board. The Micropendous3 is
|
||||
may be populated with an AT90USB646, 647, 1286, or 1287.
|
||||
may be populated with an AT90USB646, 647, 1286, or 1287. I have only the AT90USB647
|
||||
version for testing. This version have very limited memory resources: 64Kb of
|
||||
FLASH and 4Kb of SRAM.
|
||||
</p>
|
||||
<ul>
|
||||
<p>
|
||||
<b>STATUS:</b>
|
||||
This port a work in progress. It is in the early stage at approximately code
|
||||
complete but with no testing. This port may be verified for the NuttX 6.5 release.
|
||||
The basic port was release in NuttX-6.5. This basic port consists only of
|
||||
a "Hello, World!!" example that demonstrates initialization of the OS,
|
||||
creation of a simple task, and serial console output. A complete OS
|
||||
test configuration is also available, but this would have to be scaled
|
||||
down quite a bit before it could be executed in the tiny AT90USB SRAM
|
||||
memory.
|
||||
</p>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<b>PRJC Teensy++ 2.0 AT9USB1286</b>.
|
||||
This is a port of NuttX to the PJRC Teensy++ 2.0 board.
|
||||
This board is developed by http://pjrc.com/teensy/.
|
||||
The Teensy++ 2.0 is based on an Atmel AT90USB1286 MCU.
|
||||
</p>
|
||||
<ul>
|
||||
<p>
|
||||
<b>STATUS:</b>
|
||||
Work on the Teensy board is just beginning as of this writing.
|
||||
However, because of the great similarity to the Micropendous board,
|
||||
this port should be completed with only a small additional effort.
|
||||
</p>
|
||||
</ul>
|
||||
</td>
|
||||
@@ -2318,10 +2343,13 @@ nuttx-6.5 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
* configs/amber: This is a placehold for the Atmel ATMega128 Amber Web
|
||||
Server from SoC Robotics. Not much present in this directory on initial
|
||||
check-in.
|
||||
|
||||
* configs/teensy: Adds a board configuration for the PJRC Teensy++ 2.0 boar
|
||||
that features an Atmel AT90USB1286 MCU.
|
||||
|
||||
apps-6.5 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
||||
* netutils/ftpc: Simpflication and size reduction.
|
||||
|
||||
pascal-3.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
||||
buildroot-1.11 2011-xx-xx <spudmonkey@racsa.co.cr>
|
||||
|
||||
+7
-1
@@ -984,7 +984,8 @@ Supported Boards
|
||||
|
||||
configs/amber
|
||||
This is placeholder for the SoC Robotics Amber Web Server that is based
|
||||
on the Atmel AVR ATMega128 MCU. There is not much there yet.
|
||||
on the Atmel AVR ATMega128 MCU. There is not much there yet and what is
|
||||
there is untested due to tool-related issues.
|
||||
|
||||
configs/avr32dev1
|
||||
This is a port of NuttX to the Atmel AVR32DEV1 board. That board is
|
||||
@@ -1160,6 +1161,11 @@ configs/stm3210e-evel
|
||||
microcontroller (ARM Cortex-M3). This port uses the GNU Cortex-M3
|
||||
toolchain.
|
||||
|
||||
configs/teensy
|
||||
This is theport of NuttX to the PJRC Teensy++ 2.0 board. This board is
|
||||
developed by http://pjrc.com/teensy/. The Teensy++ 2.0 is based
|
||||
on an Atmel AT90USB1286 MCU.
|
||||
|
||||
configs/us7032evb1
|
||||
This is a port of the Hitachi SH-1 on the Hitachi SH-1/US7032EVB1 board.
|
||||
STATUS: Work has just began on this port.
|
||||
|
||||
@@ -409,9 +409,9 @@ Amber Web Server Configuration Options
|
||||
|
||||
CONFIG_DRAM_SIZE=(8*1024) - (8Kb)
|
||||
|
||||
CONFIG_DRAM_START - The start address of installed DRAM
|
||||
CONFIG_DRAM_START - The start address of installed SRAM
|
||||
|
||||
CONFIG_DRAM_START=0x10000000
|
||||
CONFIG_DRAM_START=0x800100
|
||||
|
||||
CONFIG_DRAM_END - Last address+1 of installed RAM
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ CONFIG_ARCH_BOARD_AMBER=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=8079
|
||||
CONFIG_BOARD_LOOPSPERMSEC=(8*100)
|
||||
CONFIG_DRAM_SIZE=(4*1024)
|
||||
CONFIG_DRAM_START=0x800000
|
||||
CONFIG_DRAM_START=0x800100
|
||||
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
|
||||
CONFIG_ARCH_NOINTC=y
|
||||
CONFIG_ARCH_IRQPRIO=n
|
||||
|
||||
@@ -81,7 +81,7 @@ CONFIG_ARCH_BOARD=amber
|
||||
CONFIG_ARCH_BOARD_AMBER=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=(8*100)
|
||||
CONFIG_DRAM_SIZE=(4*1024)
|
||||
CONFIG_DRAM_START=0x800000
|
||||
CONFIG_DRAM_START=0x800100
|
||||
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
|
||||
CONFIG_ARCH_NOINTC=y
|
||||
CONFIG_ARCH_IRQPRIO=n
|
||||
|
||||
@@ -424,9 +424,9 @@ Micropendous3 Configuration Options
|
||||
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 SRAM
|
||||
|
||||
CONFIG_DRAM_START=0x10000000
|
||||
CONFIG_DRAM_START=0x800100
|
||||
|
||||
CONFIG_DRAM_END - Last address+1 of installed RAM
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ CONFIG_ARCH_BOARD=micropendous3
|
||||
CONFIG_ARCH_BOARD_MICROPENDOUS3=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=(8*108)
|
||||
CONFIG_DRAM_SIZE=(4*1024)
|
||||
CONFIG_DRAM_START=0x800000
|
||||
CONFIG_DRAM_START=0x800100
|
||||
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
|
||||
CONFIG_ARCH_NOINTC=y
|
||||
CONFIG_ARCH_IRQPRIO=n
|
||||
|
||||
@@ -81,7 +81,7 @@ CONFIG_ARCH_BOARD=micropendous3
|
||||
CONFIG_ARCH_BOARD_MICROPENDOUS3=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=(8*108)
|
||||
CONFIG_DRAM_SIZE=(4*1024)
|
||||
CONFIG_DRAM_START=0x800000
|
||||
CONFIG_DRAM_START=0x800100
|
||||
CONFIG_DRAM_END=(CONFIG_DRAM_START+CONFIG_DRAM_SIZE)
|
||||
CONFIG_ARCH_NOINTC=y
|
||||
CONFIG_ARCH_IRQPRIO=n
|
||||
|
||||
@@ -0,0 +1,473 @@
|
||||
README
|
||||
^^^^^
|
||||
|
||||
This is the README file for the port of NuttX to the PJRC Teensy++ 2.0 board.
|
||||
This board is developed by http://pjrc.com/teensy/. The Teensy++ 2.0 is based
|
||||
on an Atmel AT90USB1286 MCU.
|
||||
|
||||
Contents
|
||||
^^^^^^^^
|
||||
|
||||
o Teensy++ 2.0 Features
|
||||
o Pin Usage
|
||||
o Halfkey Bootloader
|
||||
o Serial Console
|
||||
o Toolchains
|
||||
o Windows Native Toolchains
|
||||
o NuttX buildroot Toolchain
|
||||
o avr-libc
|
||||
o Teensy++ Configuration Options
|
||||
o Configurations
|
||||
|
||||
Teensy++ 2.0 Features
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
o Based on the 64-pin USB AVR Microcontroller AT90USB1286.
|
||||
o USB Full Speed (12Mbit/s)
|
||||
o USB Device Mode
|
||||
o 120kbof available FLASH memory for programs.
|
||||
o 8 kbytes SRAM and 4 kbytes of EEPROM
|
||||
o USB powered
|
||||
o 16MHz crystal
|
||||
o 48 General Purpose IO Pins
|
||||
|
||||
Pin Usage
|
||||
^^^^^^^^^
|
||||
|
||||
AT90USB1286 TQFP64
|
||||
-- ------------------------ ---------------------------------------------
|
||||
PIN SIGNAL BOARD CONNECTION
|
||||
-- ------------------------ ---------------------------------------------
|
||||
(left)
|
||||
1 (INT.6/AIN.0) PE6 Pad E6
|
||||
2 (INT.7/AIN.1/UVcon) PE7 Pad E7
|
||||
3 UVcc (Voltage circutry)
|
||||
4 D- USB DP
|
||||
5 D+ USB DM
|
||||
6 UGnd GND
|
||||
7 UCap GND (via cap)
|
||||
8 VBus USB VBUS
|
||||
9 (IUID) PE3 N/C
|
||||
10 (SS/PCINT0) PB0 Pad B0
|
||||
11 (PCINT1/SCLK) PB1 Pad B1
|
||||
12 (PDI/PCINT2/MOSI) PB2 Pad B2
|
||||
13 (PDO/PCINT3/MISO) PB3 Pad1 B3
|
||||
14 (PCINT4/OC.2A) PB4 Pad B4
|
||||
15 (PCINT5/OC.1A) PB5 Pad B5
|
||||
16 (PCINT6/OC.1B) PB6 Pad B6
|
||||
(bottom)
|
||||
17 (PCINT7/OC.0A/OC.1C) PB7 Pad B7
|
||||
18 (INT4/TOSC1) PE4 Pad E4
|
||||
19 (INT.5/TOSC2) PE5 Pad E5
|
||||
20 RESET Switch pulls to ground
|
||||
21 VCC VCC
|
||||
22 GND GND
|
||||
23 XTAL2 XTAL (16MHz)
|
||||
24 XTAL1 XTAL (16MHz)
|
||||
25 (OC0B/SCL/INT0) PD0 Pad D0
|
||||
26 (OC2B/SDA/INT1) PD1 Pad D1
|
||||
27 (RXD1/INT2) PD2 Pad D2
|
||||
28 (TXD1/INT3) PD3 Pad D3
|
||||
29 (ICP1) PD4 Pad D4
|
||||
30 (XCK1) PD5 Pad D5
|
||||
31 (T1) PD6 Pad D6, LED
|
||||
32 (T0) PD7 Pad D7
|
||||
(right)
|
||||
48 PA3 (AD3) Pad A3
|
||||
47 PA4 (AD4) Pad A4
|
||||
46 PA5 (AD5) Pad A5
|
||||
45 PA6 (AD6) Pad A6
|
||||
44 PA7 (AD7) Pad A7
|
||||
43 PE2 (ALE/HWB) Pad ALE (Pulled down)
|
||||
42 PC7 (A15/IC.3/CLKO) Pad C7
|
||||
41 PC6 (A14/OC.3A) Pad C6
|
||||
40 PC5 (A13/OC.3B) Pad C5
|
||||
39 PC4 (A12/OC.3C) Pad C4
|
||||
38 PC3 (A11/T.3) Pad C3
|
||||
37 PC2 (A10) Pad C2
|
||||
36 PC1 (A9) Pad C1
|
||||
35 PC0 (A8) Pad C0
|
||||
34 PE1 (RD) Pad E1
|
||||
33 PE0 (WR) Pad E0
|
||||
(top)
|
||||
64 AVCC VCC
|
||||
63 GND GND
|
||||
62 AREF Pad Ref (Capacitor to ground)
|
||||
61 PF0 (ADC0) Pad F0
|
||||
60 PF1 (ADC1) Pad F1
|
||||
59 PF2 (ADC2) Pad F2
|
||||
58 PF3 (ADC3) Pad F3
|
||||
57 PF4 (ADC4/TCK) Pad F4
|
||||
56 PF5 (ADC5/TMS) Pad F5
|
||||
55 PF6 (ADC6/TDO) Pad F6
|
||||
54 PF7 (ADC7/TDI) Pad F7
|
||||
53 GND GND
|
||||
52 VCC VCC
|
||||
51 PA0 (AD0) Pad A0
|
||||
50 PA1 (AD1) Pad A1
|
||||
49 PA2 (AD2) Pad A2
|
||||
|
||||
Halfkey Bootloader
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
o Download the Teensy application from http://pjrc.com/teensy/loader.html
|
||||
o Instructions are available for your OS at that places as well.
|
||||
|
||||
Summary:
|
||||
|
||||
1. Start Teensy
|
||||
2. Press button on the Teensy board
|
||||
3. Select a HEX file (File menu)
|
||||
4. Select "program" (Operations menu)
|
||||
5. Reboot (Operations menu).
|
||||
|
||||
Serial Console
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
A serial console is supported on an external MAX232/MAX3232 Connected
|
||||
on PD2 and PD3:
|
||||
|
||||
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.
|
||||
|
||||
AT90USB90128/64 TQFP64
|
||||
-- ------------------------ ---------------------------------------------
|
||||
PIN SIGNAL BOARD CONNECTION
|
||||
-- ------------------------ ---------------------------------------------
|
||||
27 (RXD1/INT2) PD2 Pad D2
|
||||
28 (TXD1/INT3) PD3 Pad D3
|
||||
|
||||
Plus Vcc and ground.
|
||||
|
||||
Toolchains
|
||||
^^^^^^^^^^
|
||||
|
||||
Buildroot:
|
||||
|
||||
There is a DIY buildroot version for the AVR boards here:
|
||||
http://sourceforge.net/projects/nuttx/files/buildroot/. See the
|
||||
following section for details on building this toolchain.
|
||||
|
||||
It is assumed in some places that buildroot toolchain is available
|
||||
at ../misc/buildroot/build_avr. Edit the setenv.sh file if
|
||||
this is not the case.
|
||||
|
||||
After configuring NuttX, make sure that CONFIG_AVR_BUILDROOT=y is set in your
|
||||
.config file.
|
||||
|
||||
WinAVR:
|
||||
|
||||
For Cygwin development environment on Windows machines, you can use
|
||||
WinAVR: http://sourceforge.net/projects/winavr/files/
|
||||
|
||||
It is assumed in some places that WinAVR is installed at C:/WinAVR. Edit the
|
||||
setenv.sh file if this is not the case.
|
||||
|
||||
After configuring NuttX, make sure that CONFIG_AVR_WINAVR=y is set in your
|
||||
.config file.
|
||||
|
||||
WARNING: There is an incompatible version of cygwin.dll in the WinAVR/bin
|
||||
directory! Make sure that the path to the correct cygwin.dll file precedes
|
||||
the path to the WinAVR binaries!
|
||||
|
||||
Linux:
|
||||
|
||||
For Linux, there are widely available avr-gcc packages. On Ubuntu, use:
|
||||
sudo apt-get install gcc-avr gdb-avr avr-libc
|
||||
|
||||
After configuring NuttX, make sure that CONFIG_AVR_LINUXGCC=y is set in your
|
||||
.config file.
|
||||
|
||||
Windows Native Toolchains
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The WinAVR toolchain is a Windows native toolchain. There are several
|
||||
limitations to using a Windows native toolchain in a Cygwin environment.
|
||||
The three biggest are:
|
||||
|
||||
1. The Windows toolchain cannot follow Cygwin paths. Path conversions are
|
||||
performed automatically in the Cygwin makefiles using the 'cygpath'
|
||||
utility but you might easily find some new path problems. If so, check
|
||||
out 'cygpath -w'
|
||||
|
||||
2. Windows toolchains cannot follow Cygwin symbolic links. Many symbolic
|
||||
links are used in Nuttx (e.g., include/arch). The make system works
|
||||
around these problems for the Windows tools by copying directories
|
||||
instead of linking them. But this can also cause some confusion for
|
||||
you: For example, you may edit a file in a "linked" directory and find
|
||||
that your changes had not effect. That is because you are building the
|
||||
copy of the file in the "fake" symbolic directory. If you use a
|
||||
Windows toolchain, you should get in the habit of making like this:
|
||||
|
||||
make clean_context all
|
||||
|
||||
An alias in your .bashrc file might make that less painful.
|
||||
|
||||
3. Dependencies are not made when using Windows versions of the GCC. This
|
||||
is because the dependencies are generated using Windows pathes which do
|
||||
not work with the Cygwin make.
|
||||
|
||||
Support has been added for making dependencies with the windows-native
|
||||
toolchains. That support can be enabled by modifying your Make.defs
|
||||
file as follows:
|
||||
|
||||
- MKDEP = $(TOPDIR)/tools/mknulldeps.sh
|
||||
+ MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
|
||||
|
||||
If you have problems with the dependency build (for example, if you are
|
||||
not building on C:), then you may need to modify tools/mkdeps.sh
|
||||
|
||||
An additional issue with the WinAVR toolchain, in particular, is that it
|
||||
contains an incompatible version of the Cygwin DLL in its bin/ directory.
|
||||
You must take care that the correct Cygwin DLL is used.
|
||||
|
||||
NuttX buildroot Toolchain
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
If NuttX buildroot toolchain source tarball cne can be downloaded from the
|
||||
NuttX SourceForge download site (https://sourceforge.net/projects/nuttx/files/).
|
||||
This GNU toolchain builds and executes in the Linux or Cygwin environment.
|
||||
|
||||
1. You must have already configured Nuttx in <some-dir>/nuttx.
|
||||
|
||||
cd tools
|
||||
./configure.sh Teensy++/<sub-dir>
|
||||
|
||||
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/.
|
||||
|
||||
2. Download the latest buildroot package into <some-dir>
|
||||
|
||||
3. unpack the buildroot tarball. The resulting directory may
|
||||
have versioning information on it like buildroot-x.y.z. If so,
|
||||
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
|
||||
|
||||
4. cd <some-dir>/buildroot
|
||||
|
||||
5. cp configs/avr-defconfig-4.5.2 .config
|
||||
|
||||
6. make oldconfig
|
||||
|
||||
7. make
|
||||
|
||||
8. Edit setenv.h, if necessary, so that the PATH variable includes
|
||||
the path to the newly built binaries.
|
||||
|
||||
See the file configs/README.txt in the buildroot source tree. That has more
|
||||
detailed PLUS some special instructions that you will need to follow if you
|
||||
are building a toolchain for Cygwin under Windows.
|
||||
|
||||
avr-libc
|
||||
^^^^^^^^
|
||||
|
||||
Header Files
|
||||
|
||||
In any case, header files from avr-libc are required: http://www.nongnu.org/avr-libc/.
|
||||
A snapshot of avr-lib is included in the WinAVR installation. For Linux
|
||||
development platforms, avr-libc package is readily available (and would
|
||||
be installed in the apt-get command shown above). But if you are using
|
||||
the NuttX buildroot configuration on Cygwin, then you will have to build
|
||||
get avr-libc from binaries.
|
||||
|
||||
Header File Installation
|
||||
|
||||
The NuttX build will required that the AVR header files be available via
|
||||
the NuttX include directory. This can be accomplished by either copying
|
||||
the avr-libc header files into the NuttX include directory:
|
||||
|
||||
cp -a <avr-libc-path>/include/avr <nuttx-path>/include/.
|
||||
|
||||
Or simply using a symbolic link:
|
||||
|
||||
ln -s <avr-libc-path>/include/avr <nuttx-path>/include/.
|
||||
|
||||
Build Notes:
|
||||
|
||||
It may not necessary to have a built version of avr-lib; only header files
|
||||
are required. Bu if you choose to use the optimized libraru functions of
|
||||
the flowing point library, then you may have to build avr-lib from sources.
|
||||
Below are instructions for building avr-lib from fresh sources:
|
||||
|
||||
1. Download the avr-libc package from:
|
||||
|
||||
http://savannah.nongnu.org/projects/avr-libc/
|
||||
|
||||
I am using avr-lib-1.7.1.tar.bz2
|
||||
|
||||
2. Upack the tarball and cd into the
|
||||
|
||||
tar jxf avr-lib-1.7.1.tar.bz2
|
||||
cd avr-lib-1.7.1
|
||||
|
||||
3. Configure avr-lib. Assuming that WinAVR is installed at the following
|
||||
location:
|
||||
|
||||
export PATH=/cygdrive/c/WinAVR/bin:$PATH
|
||||
./configure --build=`./config.guess` --host=avr
|
||||
|
||||
This takes a *long* time.
|
||||
|
||||
4. Make avr-lib.
|
||||
|
||||
make
|
||||
|
||||
This also takes a long time because it generates variants for nearly
|
||||
all AVR chips.
|
||||
|
||||
5. Install avr-lib.
|
||||
|
||||
make install
|
||||
|
||||
Teensy++ Configuration Options
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
|
||||
CONFIG_ARCH=avr
|
||||
|
||||
CONFIG_ARCH_family - For use in C code:
|
||||
|
||||
CONFIG_ARCH_AVR=y
|
||||
|
||||
CONFIG_ARCH_architecture - For use in C code:
|
||||
|
||||
CONFIG_ARCH_AT90USB=y
|
||||
|
||||
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
|
||||
|
||||
CONFIG_ARCH_CHIP=at90usb
|
||||
|
||||
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
|
||||
chip.
|
||||
|
||||
CONFIG_ARCH_CHIP_AT90USB1286=y
|
||||
|
||||
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
|
||||
hence, the board that supports the particular chip or SoC.
|
||||
|
||||
CONFIG_ARCH_BOARD=teensy
|
||||
|
||||
CONFIG_ARCH_BOARD_name - For use in C code
|
||||
|
||||
CONFIG_ARCH_BOARD_TEENSY=y
|
||||
|
||||
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
|
||||
of delay loops
|
||||
|
||||
CONFIG_ENDIAN_BIG - define if big endian (default is little
|
||||
endian)
|
||||
|
||||
CONFIG_DRAM_SIZE - Describes the installed DRAM. One of:
|
||||
|
||||
CONFIG_DRAM_SIZE=(8*1024) - (8Kb)
|
||||
|
||||
CONFIG_DRAM_START - The start address of installed DRAM
|
||||
|
||||
CONFIG_DRAM_START=0x800100
|
||||
|
||||
CONFIG_DRAM_END - Last address+1 of installed RAM
|
||||
|
||||
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_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_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.
|
||||
|
||||
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
|
||||
|
||||
If the watchdog is enabled, this specifies the initial timeout. Default
|
||||
is maximum supported value.
|
||||
|
||||
CONFIG_WDTO_15MS
|
||||
CONFIG_WDTO_30MS
|
||||
CONFIG_WDTO_60MS
|
||||
CONFIG_WDTO_120MS
|
||||
CONFIG_WDTO_1250MS
|
||||
CONFIG_WDTO_500MS
|
||||
CONFIG_WDTO_1S
|
||||
CONFIG_WDTO_2S
|
||||
CONFIG_WDTO_4S
|
||||
CONFIG_WDTO_8S
|
||||
|
||||
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
|
||||
|
||||
Configurations
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
Each Teensy++ configuration is maintained in a sudirectory and can
|
||||
be selected as follow:
|
||||
|
||||
cd tools
|
||||
./configure.sh teensy/<subdir>
|
||||
cd -
|
||||
. ./setenv.sh
|
||||
|
||||
NOTE: You must also copy avr-libc header files, perhaps like:
|
||||
|
||||
cp -a /cygdrive/c/WinAVR/include/avr include/.
|
||||
|
||||
Where <subdir> is one of the following:
|
||||
|
||||
hello:
|
||||
The simple apps/examples/hello "Hello, World!" example.
|
||||
|
||||
ostest:
|
||||
This configuration directory, performs a simple OS test using
|
||||
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.
|
||||
@@ -0,0 +1,149 @@
|
||||
############################################################################
|
||||
# configs/teensy/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/teensy/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,210 @@
|
||||
/************************************************************************************
|
||||
* configs/teensy/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 *******************************************************************/
|
||||
/* ------------ ------ ------+------- -- ------ -- ------ --- ------ ----+------- ---
|
||||
* FLASH | REGISTERS I/O EXT I/O ISRAM | EEPROM
|
||||
* | REGISTERS REGISTERS |
|
||||
* ------------ ------ ------+------- -- ------ -- ------ --- ------ ----+------- ---
|
||||
* AT90USB1286 0x0000 128Kb | 0x0000 32 0x0020 64 0x0060 160 0x0100 8Kb | 0x0000 4Kb
|
||||
* ------------ ------ ------+------- -- ------ -- ------ --- ------ ----+------- ---
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
flash (rx) : ORIGIN = 0, LENGTH = 128K
|
||||
sram (rw!x) : ORIGIN = 0x800100, LENGTH = 8K
|
||||
eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 4K
|
||||
}
|
||||
|
||||
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(.);
|
||||
|
||||
.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/teensy/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}"
|
||||
Executable
+97
@@ -0,0 +1,97 @@
|
||||
/****************************************************************************
|
||||
* configs/teensy/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_TEENSY_INCLUDE_BOARD_H
|
||||
#define __CONFIGS_TEENSY_INCLUDE_BOARD_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-Processor Definitions
|
||||
****************************************************************************/
|
||||
/* Configuration ************************************************************/
|
||||
|
||||
/* Clocking *****************************************************************/
|
||||
|
||||
#define BOARD_CPU_CLOCK 16000000 /* F_CPU = 16MHz */
|
||||
|
||||
/* LED definitions **********************************************************/
|
||||
/* The Teensy++ 2.0 has a single on-board LEDs connected to PortD, Pin 6 */
|
||||
|
||||
#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
|
||||
|
||||
/* Button definitions *******************************************************/
|
||||
/* SW1 = Connects to AT90USBxx RESET pin and is not available to software */
|
||||
|
||||
/****************************************************************************
|
||||
* 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_TEENSY_INCLUDE_BOARD_H */
|
||||
Executable
+97
@@ -0,0 +1,97 @@
|
||||
############################################################################
|
||||
# configs/teensy/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/teensy/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_TEENSY_SRC_TEENSY_INTERNAL_H
|
||||
#define __CONFIGS_TEENSY_SRC_TEENSY_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: at90usb_spiinitialize
|
||||
*
|
||||
* Description:
|
||||
* Called to configure SPI chip select GPIO pins for the Teensy++ 2.0 board.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#if defined(CONFIG_AVR_SPI1) || defined(CONFIG_AVR_SPI2)
|
||||
EXTERN void weak_function at90usb_spiinitialize(void);
|
||||
#endif
|
||||
|
||||
/************************************************************************************
|
||||
* Name: at90usb_ledinit
|
||||
*
|
||||
* Description:
|
||||
* Configure on-board LEDs if LED support has been selected.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
EXTERN void at90usb_ledinit(void);
|
||||
#endif
|
||||
|
||||
#undef EXTERN
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __CONFIGS_TEENSY_SRC_TEENSY_INTERNAL_H */
|
||||
Executable
+93
@@ -0,0 +1,93 @@
|
||||
/************************************************************************************
|
||||
* configs/teensy/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 "at90usb_internal.h"
|
||||
#include "teensy_internal.h"
|
||||
|
||||
/************************************************************************************
|
||||
* Definitions
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Private Functions
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Public Functions
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Name: up_boardinitialize
|
||||
*
|
||||
* Description:
|
||||
* All AT90USB 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 at90usb_spiinitialize() has been brought into the link.
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_AVR_SPI1) || defined(CONFIG_AVR_SPI2)
|
||||
if (at90usb_spiinitialize)
|
||||
{
|
||||
at90usb_spiinitialize();
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Configure on-board LEDs if LED support has been selected. */
|
||||
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
at90usb_ledinit();
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user