Update/add README.txt files
This commit is contained in:
parent
c09cc0dd07
commit
10664271eb
@ -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
|
||||
|
@ -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
|
||||
----
|
||||
|
280
configs/teensy-3.1/README.txt
Normal file
280
configs/teensy-3.1/README.txt
Normal file
@ -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/<subdir>
|
||||
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\<subdir>
|
||||
|
||||
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 <subdir> 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).
|
Loading…
Reference in New Issue
Block a user