Rename teensy-3.1 directory to teensy-3.x. Add board.h header file

This commit is contained in:
Gregory Nutt 2015-06-09 15:54:04 -06:00
parent 27211418ff
commit 1acfa1771b
6 changed files with 261 additions and 8 deletions

View File

@ -3281,7 +3281,7 @@ nsh>
<b>STATUS:</b> <b>STATUS:</b>
There are no K20 boards yet supported. There are no K20 boards yet supported.
Work is underway on the the PJRC Teensy-3.1 board and that port is expected in NuttX-7.11. Work is underway on the the PJRC Teensy-3.1 board and that port is expected in NuttX-7.11.
Refer to the Teensy-3.1 board <a href="http://sourceforge.net/p/nuttx/git/ci/master/tree/nuttx/configs/teensy-3.1/README.txt" target="_blank">README</a> file for further information. Refer to the Teensy-3.1 board <a href="http://sourceforge.net/p/nuttx/git/ci/master/tree/nuttx/configs/teensy-3.x/README.txt" target="_blank">README</a> file for further information.
</p> </p>
</ul> </ul>
</td> </td>

View File

@ -1330,7 +1330,7 @@ nuttx
| | `- README.txt | | `- README.txt
| |- teensy-2.0/ | |- teensy-2.0/
| | `- README.txt | | `- README.txt
| |- teensy-3.1/ | |- teensy-3.x/
| | `- README.txt | | `- README.txt
| |- teensy-lc/ | |- teensy-lc/
| | `- README.txt | | `- README.txt

View File

@ -908,6 +908,29 @@ config ARCH_BOARD_TEENSY_20
developed by http://pjrc.com/teensy/. The Teensy++ 2.0 is based developed by http://pjrc.com/teensy/. The Teensy++ 2.0 is based
on an Atmel AT90USB1286 MCU. on an Atmel AT90USB1286 MCU.
config ARCH_BOARD_TEENSY_3X
bool "PJRC Teensy++ 3.1 board"
depends on ARCH_CHIP_MK20DX256VLH7
select ARCH_HAVE_LEDS
---help---
This is 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.
This is 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
This board configuration can also be used with the older Teensy-3.0. The
Teensy-3.0 has the same schematic (although some pins are not used on the
Teensy-3.0). the primary difference is that the Teensy 3.0 has a
MK30DX128VLH5 with slightly less capability.
config ARCH_BOARD_TEENSY_LC config ARCH_BOARD_TEENSY_LC
bool "Teensy LC" bool "Teensy LC"
depends on ARCH_CHIP_MKL25Z64 depends on ARCH_CHIP_MKL25Z64
@ -1238,6 +1261,7 @@ config ARCH_BOARD
default "mikroe-stm32f4" if ARCH_BOARD_MIKROE_STM32F4 default "mikroe-stm32f4" if ARCH_BOARD_MIKROE_STM32F4
default "sure-pic32mx" if ARCH_BOARD_SUREPIC32MX default "sure-pic32mx" if ARCH_BOARD_SUREPIC32MX
default "teensy-2.0" if ARCH_BOARD_TEENSY_20 default "teensy-2.0" if ARCH_BOARD_TEENSY_20
default "teensy-3.x" if ARCH_BOARD_TEENSY_3X
default "teensy-lc" if ARCH_BOARD_TEENSY_LC default "teensy-lc" if ARCH_BOARD_TEENSY_LC
default "tm4c123g-launchpad" if ARCH_BOARD_TM4C123G_LAUNCHPAD default "tm4c123g-launchpad" if ARCH_BOARD_TM4C123G_LAUNCHPAD
default "tm4c1294-launchpad" if ARCH_BOARD_TM4C1294_LAUNCHPAD default "tm4c1294-launchpad" if ARCH_BOARD_TM4C1294_LAUNCHPAD
@ -1569,6 +1593,9 @@ endif
if ARCH_BOARD_TEENSY_20 if ARCH_BOARD_TEENSY_20
source "configs/teensy-2.0/Kconfig" source "configs/teensy-2.0/Kconfig"
endif endif
if ARCH_BOARD_TEENSY_3X
source "configs/teensy-3.x/Kconfig"
endif
if ARCH_BOARD_TEENSY_LC if ARCH_BOARD_TEENSY_LC
source "configs/teensy-lc/Kconfig" source "configs/teensy-lc/Kconfig"
endif endif

View File

@ -607,6 +607,21 @@ configs/teensy-2.0
developed by http://pjrc.com/teensy/. The Teensy++ 2.0 is based developed by http://pjrc.com/teensy/. The Teensy++ 2.0 is based
on an Atmel AT90USB1286 MCU. on an Atmel AT90USB1286 MCU.
configs/teensy-3.x
This is 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
This board configuration can also be used with the older Teensy-3.0. The
Teensy-3.0 has the same schematic (although some pins are not used on the
Teensy-3.0). the primary difference is that the Teensy 3.0 has a
MK30DX128VLH5 with slightly less capability.
configs/teensy-lc configs/teensy-lc
This is the port of nuttx for the Teensy LC board. The Teensy LC This is the port of nuttx for the Teensy LC board. The Teensy LC
is a DIP style breakout board for the MKL25Z64 and comes with a USB is a DIP style breakout board for the MKL25Z64 and comes with a USB

View File

@ -6,10 +6,15 @@ README
MK30DX256VLH7 chip (now NXP). The MK30DX256VLH7 is a 64-pin Cortex-M4 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 running at 72MHz. It has 256KiB of program FLASH memory and 64KiB of
SRAM. For more information about the Teensy 3.1, see SRAM. For more information about the Teensy 3.1, see
https://www.pjrc.com/teensy/teensy31.html https://www.pjrc.com/teensy/teensy31.html
https://www.pjrc.com/store/teensy31.html https://www.pjrc.com/store/teensy31.html
This board configuration can also be used with the older Teensy-3.0. The
Teensy-3.0 has the same schematic (although some pins are not used on the
Teensy-3.0). the primary difference is that the Teensy 3.0 has a
MK30DX128VLH5 with slightly less capability.
Contents Contents
======== ========
@ -133,11 +138,11 @@ Teensy-3.1 Configuration settings
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD="teensy-3.1" CONFIG_ARCH_BOARD="teensy-3.x"
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_TEENSY_31=y CONFIG_ARCH_BOARD_TEENSY_3X=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
@ -179,11 +184,11 @@ Configurations
Common Configuration Information Common Configuration Information
-------------------------------- --------------------------------
Each Teensy-3.1 configurations are maintained in sub-directories and Each Teensy-3.x configurations are maintained in sub-directories and
can be selected as follow: can be selected as follow:
cd tools cd tools
./configure.sh teensy-3.1/<subdir> ./configure.sh teensy-3.x/<subdir>
cd - cd -
make oldconfig make oldconfig
. ./setenv.sh . ./setenv.sh
@ -195,7 +200,7 @@ Configurations
If this is a Windows native build, then configure.bat should be used If this is a Windows native build, then configure.bat should be used
instead of configure.sh: instead of configure.sh:
configure.bat teensy-3.1\<subdir> configure.bat teensy-3.x\<subdir>
And then build NuttX by simply typing the following. At the conclusion of 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, the make, the nuttx binary will reside in an ELF file called, simply,

View File

@ -0,0 +1,206 @@
/************************************************************************************
* configs/teensy-3.x/include/board.h
* include/arch/board/board.h
*
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* 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_3X_INCLUDE_BOARD_H
#define __CONFIGS_TEENSY_3X_INCLUDE_BOARD_H
/************************************************************************************
* Included Files
************************************************************************************/
#include <nuttx/config.h>
#ifndef __ASSEMBLY__
# include <stdint.h>
#endif
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
/* Clocking *************************************************************************/
/* The teensy-3.1 has a 16MHz crystal on board */
#undef BOARD_EXTCLOCK /* Crystal */
#define BOARD_EXTAL_FREQ 16000000 /* 16MHz crystal frequency (REFCLK) */
#define BOARD_XTAL32_FREQ 32768 /* 32KHz RTC Oscillator (not populated) */
/* PLL Configuration. NOTE: Only even frequency crystals are supported that will
* produce a 2MHz reference clock to the PLL. The rated speed is 72MHz, but can
* be overclocked at 96MHz
*
* 72MHz
*
* PLL Input frequency: PLLIN = REFCLK/PRDIV = 16MHz/2 = 8MHz
* PLL Output frequency: PLLOUT = PLLIN*VDIV = 8Mhz*9 = 72MHz
* MCG Frequency: PLLOUT = 96MHz
*
* 96MHz
* PLL Input frequency: PLLIN = REFCLK/PRDIV = 16MHz/1 = 16MHz
* PLL Output frequency: PLLOUT = PLLIN*VDIV = 16Mhz*6 = 96MHz
* MCG Frequency: PLLOUT = 96MHz
*/
#define BOARD_PRDIV 2 /* PLL External Reference Divider */
#define BOARD_VDIV 24 /* PLL VCO Divider (frequency multiplier) */
#define BOARD_PLLIN_FREQ (BOARD_EXTAL_FREQ / BOARD_PRDIV)
#define BOARD_PLLOUT_FREQ (BOARD_PLLIN_FREQ * BOARD_VDIV)
#define BOARD_MCG_FREQ BOARD_PLLOUT_FREQ
/* SIM CLKDIV1 dividers */
#define BOARD_OUTDIV1 1 /* Core = MCG, 96MHz */
#define BOARD_OUTDIV2 2 /* Bus = MCG/2, 48MHz */
#define BOARD_OUTDIV3 2 /* FlexBus = MCG/2, 48MHz */
#define BOARD_OUTDIV4 4 /* Flash clock = MCG/4, 24MHz */
#define BOARD_CORECLK_FREQ (BOARD_MCG_FREQ / BOARD_OUTDIV1)
#define BOARD_BUS_FREQ (BOARD_MCG_FREQ / BOARD_OUTDIV2)
#define BOARD_FLEXBUS_FREQ (BOARD_MCG_FREQ / BOARD_OUTDIV3)
#define BOARD_FLASHCLK_FREQ (BOARD_MCG_FREQ / BOARD_OUTDIV4)
/* SDHC clocking ********************************************************************/
/* SDCLK configurations corresponding to various modes of operation. Formula is:
*
* SDCLK frequency = (base clock) / (prescaler * divisor)
*
* The SDHC module is always configure configured so that the core clock is the base
* clock.
*/
/* Identification mode: 400KHz = 96MHz / ( 16 * 15) */
#define BOARD_SDHC_IDMODE_PRESCALER SDHC_SYSCTL_SDCLKFS_DIV16
#define BOARD_SDHC_IDMODE_DIVISOR SDHC_SYSCTL_DVS_DIV(15)
/* MMC normal mode: 16MHz = 96MHz / (2 * 3) */
#define BOARD_SDHC_MMCMODE_PRESCALER SDHC_SYSCTL_SDCLKFS_DIV2
#define BOARD_SDHC_MMCMODE_DIVISOR SDHC_SYSCTL_DVS_DIV(3)
/* SD normal mode (1-bit): 16MHz = 96MHz / (2 * 3) */
#define BOARD_SDHC_SD1MODE_PRESCALER SDHC_SYSCTL_SDCLKFS_DIV2
#define BOARD_SDHC_SD1MODE_DIVISOR SDHC_SYSCTL_DVS_DIV(3)
/* SD normal mode (4-bit): 24MHz = 96MHz / (2 * 2) (with DMA)
* SD normal mode (4-bit): 16MHz = 96MHz / (2 * 3) (no DMA)
*/
#ifdef CONFIG_SDIO_DMA
# define BOARD_SDHC_SD4MODE_PRESCALER SDHC_SYSCTL_SDCLKFS_DIV2
# define BOARD_SDHC_SD4MODE_DIVISOR SDHC_SYSCTL_DVS_DIV(2)
#else
//# define BOARD_SDHC_SD4MODE_PRESCALER SDHC_SYSCTL_SDCLKFS_DIV2
//# define BOARD_SDHC_SD4MODE_DIVISOR SDHC_SYSCTL_DVS_DIV(3)
# define BOARD_SDHC_SD4MODE_PRESCALER SDHC_SYSCTL_SDCLKFS_DIV16
# define BOARD_SDHC_SD4MODE_DIVISOR SDHC_SYSCTL_DVS_DIV(15)
#endif
/* LED definitions ******************************************************************/
/* A single LED is available driven by PTC5. The LED is grounded so bringing PTC5
* high will illuminate the LED.
*/
/* LED index values for use with sam_setled() */
#define BOARD_STATUS_LED 0
#define BOARD_NLEDS 1
/* LED bits for use with sam_setleds() */
#define BOARD_STATUS LED_BIT (1 << BOARD_STATUS_LED)
/* When CONFIG_ARCH_LEDS is defined in the NuttX configuration, NuttX will
* control the LED as defined below. Thus if the LED is statically on, NuttX has
* successfully booted and is, apparently, running normally. If the LED is
* flashing at approximately 2Hz, then a fatal error has been detected and the
* system has halted.
*/
#define LED_STARTED 0 /* STATUS LED=OFF */
#define LED_HEAPALLOCATE 0 /* STATUS LED=OFF */
#define LED_IRQSENABLED 0 /* STATUS LED=OFF */
#define LED_STACKCREATED 1 /* STATUS LED=ON */
#define LED_INIRQ 2 /* STATUS LED=no change */
#define LED_SIGNAL 2 /* STATUS LED=no change */
#define LED_ASSERTION 2 /* STATUS LED=no change */
#define LED_PANIC 3 /* STATUS LED=flashing */
/* Button definitions ***************************************************************/
/* The teensy-3.1 board has no standard GPIO contact buttons */
/* Alternative pin resolution *******************************************************/
/* To be provided */
/************************************************************************************
* Public Data
************************************************************************************/
#ifndef __ASSEMBLY__
#undef EXTERN
#if defined(__cplusplus)
#define EXTERN extern "C"
extern "C"
{
#else
#define EXTERN extern
#endif
/************************************************************************************
* Public Function Prototypes
************************************************************************************/
/************************************************************************************
* Name: kinetis_boardinitialize
*
* Description:
* All STM32 architectures must provide the following entry point. This entry point
* is called early in the initialization -- after all memory has been configured
* and mapped but before any devices have been initialized.
*
************************************************************************************/
void kinetis_boardinitialize(void);
#undef EXTERN
#if defined(__cplusplus)
}
#endif
#endif /* __ASSEMBLY__ */
#endif /* __CONFIGS_TEENSY_3X_INCLUDE_BOARD_H */