diff --git a/Documentation/README.html b/Documentation/README.html
index 3ece509955..07e7819b9b 100644
--- a/Documentation/README.html
+++ b/Documentation/README.html
@@ -240,6 +240,8 @@
| | | `- README.txt
| | |- teensy-2.0/
| | | `- README.txt
+ | | |- teensy-3.1/
+ | | | `- README.txt
| | |- teensy-lc/
| | | `- README.txt
| | |- tm4c123g-launchpad/
diff --git a/README.txt b/README.txt
index 29cae6bf35..2ba063410e 100644
--- a/README.txt
+++ b/README.txt
@@ -1330,6 +1330,8 @@ nuttx
| | `- README.txt
| |- teensy-2.0/
| | `- README.txt
+ | |- teensy-3.1/
+ | | `- README.txt
| |- teensy-lc/
| | `- README.txt
| |- tm4c123g-launchpad/
diff --git a/arch/arm/src/kinetis/kinetis_k20pinmux.h b/arch/arm/src/kinetis/kinetis_k20pinmux.h
index dcad9aecbf..a4ca3eda29 100644
--- a/arch/arm/src/kinetis/kinetis_k20pinmux.h
+++ b/arch/arm/src/kinetis/kinetis_k20pinmux.h
@@ -50,7 +50,7 @@
/* Reference: Paragraph 10.3.1, p 207, of FreeScale document K20P64M72SF1RM
*
* In most cases, there are alternative configurations for various pins. Those alternative
- * pins are labeled with a suffix like _1, _2, etc. in order to distinguish them. Logic in
+ * pins are labelled with a suffix like _1, _2, etc. in order to distinguish them. Logic in
* the board.h file must select the correct pin configuration for the board by defining a pin
* configuration (with no suffix) that maps to the correct alternative.
*/
@@ -324,6 +324,7 @@
# define PIN_UART2_RTS_b (PIN_ALT3 | PIN_PORTD | PIN0)
# define PIN_UART2_RX (PIN_ALT3 | PIN_PORTD | PIN2)
# define PIN_UART2_TX (PIN_ALT3 | PIN_PORTD | PIN3)
+
# define PIN_USB_CLKIN (PIN_ALT1 | PIN_PORTA | PIN5)
# define PIN_USB_SOF_OUT (PIN_ALT3 | PIN_PORTC | PIN7)
diff --git a/arch/arm/src/kinetis/kinetis_pinmux.h b/arch/arm/src/kinetis/kinetis_pinmux.h
index 4359728b66..589184ffdd 100644
--- a/arch/arm/src/kinetis/kinetis_pinmux.h
+++ b/arch/arm/src/kinetis/kinetis_pinmux.h
@@ -1,7 +1,7 @@
/********************************************************************************************
* arch/arm/src/kinetis/kinetis_pinmux.h
*
- * Copyright (C) 2011 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2011, 2015 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
diff --git a/configs/kwikstik-k40/README.txt b/configs/kwikstik-k40/README.txt
index 997d31b8a4..43f5a026f3 100644
--- a/configs/kwikstik-k40/README.txt
+++ b/configs/kwikstik-k40/README.txt
@@ -344,7 +344,7 @@ NXFLAT Toolchain
KwikStik-K40-specific Configuration Options
============================================
- CONFIG_ARCH - Identifies the arch/ subdirectory. This sould
+ CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to:
CONFIG_ARCH=arm
@@ -399,11 +399,9 @@ KwikStik-K40-specific Configuration Options
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
+ serves no purpose other than it allows you to calibrate
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.
@@ -446,7 +444,7 @@ KwikStik-K40-specific Configuration Options
CONFIG_KINETIS_USBOTG -- Support USB OTG (see also CONFIG_USBHOST and CONFIG_USBDEV)
CONFIG_KINETIS_USBDCD -- Support the USB Device Charger Detection module
CONFIG_KINETIS_LLWU -- Support the Low Leakage Wake-Up Unit
- CONFIG_KINETIS_TSI -- Support the touch screeen interface
+ CONFIG_KINETIS_TSI -- Support the touch screen interface
CONFIG_KINETIS_FTFL -- Support FLASH
CONFIG_KINETIS_DMA -- Support DMA
CONFIG_KINETIS_CRC -- Support CRC
@@ -469,7 +467,7 @@ KwikStik-K40-specific Configuration Options
PIN Interrupt Support
- CONFIG_GPIO_IRQ -- Enable pin interrtup support. Also needs
+ CONFIG_GPIO_IRQ -- Enable pin interrupt support. Also needs
one or more of the following:
CONFIG_KINETIS_PORTAINTS -- Support 32 Port A interrupts
CONFIG_KINETIS_PORTBINTS -- Support 32 Port B interrupts
diff --git a/configs/saml21-xplained/README.txt b/configs/saml21-xplained/README.txt
index 709a93794c..3453e0e1d1 100644
--- a/configs/saml21-xplained/README.txt
+++ b/configs/saml21-xplained/README.txt
@@ -27,17 +27,10 @@ STATUS/ISSUES
- Since this port is a leverage of the SAMD20 Xplained port, some of the
STATUS/ISSUES in the SAMD20 Xplained README.txt may apply here as well.
- - 2015-5-25: The basic port is running but using OSC16M and with a CPU
- frequency of only 16MHz. Attempts to use the DFLL to get the 48MHz
- has so far been unsuccessful. I can't find any example in the Atmel
- ASF files the run at 48MHz with the DFLL (in closed loop mode) or
- with the DPLL.
-
- If I enable the DFLL now in open loop mode. It kind of works but with
- a some random CPU frequenycy (soemthing like 13.7MHz). Of course the
- results in a crazy UART baud so that is not usable. If I try to enable
- the DFLL in closed loop mode, it hangs waiting for the DFLL to become
- ready. I have not tried the DPLL.
+ - 2015-5-26: The basic port is running at 48MHz (using 32.768 XTAL input
+ and the digital frequency locked loop). The basic NuttShell (NSH)
+ configuration is working well with the serial console provided by
+ SERCOM4 as 115200 8N1.
Modules
=======
@@ -51,7 +44,7 @@ Modules
3) PROTO1 - A prototyping board with logic on board (other than power-
related logic).
-Some of these are discussed further below.
+ Some of these are discussed further below.
I/O1
----
diff --git a/configs/teensy-3.1/README.txt b/configs/teensy-3.1/README.txt
new file mode 100644
index 0000000000..a548e1b980
--- /dev/null
+++ b/configs/teensy-3.1/README.txt
@@ -0,0 +1,280 @@
+README
+======
+
+ This is a README file for the port of NuttX to the Teensy-3.1 from PJRC
+ (https://www.pjrc.com/). The Teensy-3.1 features the Freescale
+ MK30DX256VLH7 chip (now NXP). The MK30DX256VLH7 is a 64-pin Cortex-M4
+ running at 72MHz. It has 256KiB of program FLASH memory and 64KiB of
+ SRAM. For more information about the Teensy 3.1, see
+
+ https://www.pjrc.com/teensy/teensy31.html
+ https://www.pjrc.com/store/teensy31.html
+
+Contents
+========
+
+ o STATUS
+ o Pin Configuration
+ o Serial Console
+ o LEDs
+ o Using the Halfkey Loader
+ o Teensy-3.1 Configuration settings
+ o Configurations
+
+STATUS
+======
+
+ 2005-08-08:
+ At present, this README is merely a placeholder for a planned port of
+ NuttX to the Teensy-3.1
+
+Pin Configuration
+=================
+
+ Nearly all pins are available to the user. The few port pins used on
+ board are listed below:
+
+ ----- --------------------------------------
+ P0RT BOARD USAGE
+ ----- --------------------------------------
+ PTA0 MINI54TAN / Bootloader
+ PTA1 MINI54TAN / Bootloader
+ PTA2 MINI54TAN / Bootloader
+ PTA3 MINI54TAN / Bootloader
+ PTA18 16MHz XTAL (XTAL32 is not populated).
+ PTA19 16MHz XTAL
+ PTB1 MINI54TAN / Bootloader
+ PTB2 MINI54TAN / Bootloader
+ PTC5 LED
+ ----- --------------------------------------
+
+Serial Console
+==============
+
+ The K20 has three UARTs with pin availability as follows:
+
+ --------- ------ ----------- -------------------------
+ UART PORT BOARD PJRC PINOUT DESCRIPTION
+ FUNCTION LABEL
+ --------- ------ ----------- -------------------------
+ UART0_RX PTA1 (See above) MINI54TAN / Bootloader
+ PTB16 Pin 0 RX1 / Touch
+ PTD6 Pin 21 / A7 RX1 / CS / PWM
+ UART0_TX PTA2 (See above) MINI54TAN / Bootloader
+ PTB17 Pin 1 TX1 / Touch
+ PTD7 Pin 5 TX1 / PWM
+ --------- ------ ----------- -------------------------
+ UART1_RX PTC3 Pin 9 RX2 / CS / PWM
+ PTE1 Pad 26 (Pad on back of board)
+ UART1_TX PTC4 Pin 10 TX2 / CS / PWM
+ PTE0 Pad 31 (Pad on back of board)
+ --------- ------ ----------- -------------------------
+ UART2_RX PTD2 Pin 7 RX3 / DOUT
+ UART2_TX PTD3 Pin 8 TX3 / DIN
+ --------- ------ ----------- -------------------------
+
+ The default serial console is UART0 on pins 0 (RX) and 1 (TX).
+
+LEDs
+====
+
+ A single LED is available driven by PTC5. The LED is grounded
+ so bringing PTC5 high will illuminate the LED.
+
+ When CONFIG_ARCH_LEDS is defined in the NuttX configuration, NuttX will
+ control the LED as follows:
+
+ SYMBOL Meaning LED
+ ------------------- ----------------------- ------
+ LED_STARTED NuttX has been started OFF
+ LED_HEAPALLOCATE Heap has been allocated OFF
+ LED_IRQSENABLED Interrupts enabled OFF
+ LED_STACKCREATED Idle stack created ON
+ LED_INIRQ In an interrupt N/C
+ LED_SIGNAL In a signal handler N/C
+ LED_ASSERTION An assertion failed N/C
+ LED_PANIC The system has crashed FLASH
+
+ Thus is LED is statically on, NuttX has successfully booted and is,
+ apparently, running normally. If LED is flashing at approximately
+ 2Hz, then a fatal error has been detected and the system has halted.
+
+Using the Halfkey Loader
+========================
+
+ See https://www.pjrc.com/teensy/first_use.html
+ https://www.pjrc.com/teensy/loader_cli.html
+
+Teensy-3.1 Configuration settings
+=================================
+
+ CONFIG_ARCH - Identifies the arch/ subdirectory. This should
+ be set to:
+
+ CONFIG_ARCH=arm
+
+ CONFIG_ARCH_family - For use in C code:
+
+ CONFIG_ARCH_ARM=y
+
+ CONFIG_ARCH_architecture - For use in C code:
+
+ CONFIG_ARCH_CORTEXM4=y
+
+ CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
+
+ CONFIG_ARCH_CHIP="kinetis"
+
+ CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
+ chip:
+
+ CONFIG_ARCH_CHIP_MK20DX256VLH7=y
+
+ CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
+ hence, the board that supports the particular chip or SoC.
+
+ CONFIG_ARCH_BOARD="teensy-3.1"
+
+ CONFIG_ARCH_BOARD_name - For use in C code
+
+ CONFIG_ARCH_BOARD_TEENSY_31=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_RAM_SIZE - Describes the installed DRAM (SRAM in this case):
+
+ CONFIG_RAM_SIZE=0x00008000 (32Kb)
+
+ CONFIG_RAM_START - The start address of installed DRAM
+
+ CONFIG_RAM_START=0x20000000
+
+ 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_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 calibrate
+ 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:
+
+ To be provided
+
+Configurations
+==============
+
+ Common Configuration Information
+ --------------------------------
+ Each Teensy-3.1 configurations are maintained in sub-directories and
+ can be selected as follow:
+
+ cd tools
+ ./configure.sh teensy-3.1/
+ cd -
+ make oldconfig
+ . ./setenv.sh
+
+ Before sourcing the setenv.sh file above, you should examine it and
+ perform edits as necessary so that TOOLCHAIN_BIN is the correct path to
+ the directory than holds your toolchain binaries.
+
+ If this is a Windows native build, then configure.bat should be used
+ instead of configure.sh:
+
+ configure.bat teensy-3.1\
+
+ And then build NuttX by simply typing the following. At the conclusion of
+ the make, the nuttx binary will reside in an ELF file called, simply,
+ nuttx.
+
+ make oldconfig
+ make
+
+ The that is provided above as an argument to the
+ tools/configure.sh must be is one of the directories listed below.
+
+NOTES:
+
+ 1. These configurations use the mconf-based configuration tool. To
+ change any of these configurations using that tool, you should:
+
+ a. Build and install the kconfig-mconf tool. See nuttx/README.txt
+ and misc/tools/
+
+ b. Execute 'make menuconfig' in nuttx/ in order to start the
+ reconfiguration process.
+
+ 2. Unless stated otherwise, all configurations generate console
+ output on [To be provided].
+
+ 3. All of these configurations are set up to build under Windows using the
+ "GNU Tools for ARM Embedded Processors" that is maintained by ARM
+ (unless stated otherwise in the description of the configuration).
+
+ https://launchpad.net/gcc-arm-embedded
+
+ As of this writing (2015-03-11), full support is difficult to find
+ for the Cortex-M&, but is supported by at least this realeasse of
+ the ARM GNU tools:
+
+ https://launchpadlibrarian.net/192228215/release.txt
+
+ That toolchain selection can easily be reconfigured using
+ 'make menuconfig'. Here are the relevant current settings:
+
+ Build Setup:
+ CONFIG_HOST_WINDOWS=y : Window environment
+ CONFIG_WINDOWS_CYGWIN=y : Cywin under Windows
+
+ System Type -> Toolchain:
+ CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW=y : GNU ARM EABI toolchain
+
+ NOTE: As of this writing, there are issues with using this tool at
+ the -Os level of optimization. This has not been proven to be a
+ compiler issue (as least not one that might not be fixed with a
+ well placed volatile qualifier). However, in any event, it is
+ recommend that you use not more that -O2 optimization.
+
+ Configuration sub-directories
+ -----------------------------
+
+ nsh:
+
+ Configures the NuttShell (nsh) located at apps/examples/nsh.
+
+ NOTES:
+
+ 1. This configuration uses the mconf-based configuration tool. To
+ change this configuration using that tool, you should:
+
+ a. Build and install the kconfig-mconf tool. See nuttx/README.txt
+ and misc/tools/
+
+ b. Execute 'make menuconfig' in nuttx/ in order to start the
+ reconfiguration process.
+
+ 2. By default, this configuration uses the CodeSourcery toolchain
+ for Windows and builds under Cygwin (or probably MSYS). That
+ can easily be reconfigured, of course.
+
+ CONFIG_HOST_WINDOWS=y : Builds under Windows
+ CONFIG_WINDOWS_CYGWIN=y : Using Cygwin
+ CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery for Windows
+
+ Support
+ for builtin applications is enabled, but in the base configuration
+ no builtin applications are selected (see NOTES below).
\ No newline at end of file