This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new b6972ffc997 docs/teensy-3.x: Migrate README.txt to RST
b6972ffc997 is described below
commit b6972ffc997ea49236406889212bf004e0bb24cc
Author: Swatantra Yadav <[email protected]>
AuthorDate: Mon Oct 12 20:11:26 2026 +0530
docs/teensy-3.x: Migrate README.txt to RST
Migrate the legacy monospaced README.txt for the Teensy 3.x development
boards (NXP Kinetis MK20DX256VLH7 / MK20DX128VLH5 MCU) to standard
Sphinx rST documentation format in index.rst, and delete the legacy
README.txt.
Includes:
- Microcontroller and board features overview (Cortex-M4 @ 72 MHz, 256KB
Flash, 64KB SRAM)
- Teensy 3.0 vs. Teensy 3.1 / 3.2 hardware comparison table (features,
clock, 5V tolerance, and linker scripts)
- Operating voltage warnings (5V tolerance on digital pins vs 3.3V maximum
on analog inputs)
- Pin mapping tables for onboard bootloader signals, crystal, LEDs, and
UARTs
- Full LED state indicators table for CONFIG_ARCH_LEDS
- Flashing instructions using teensy_loader_cli for both Teensy 3.1/3.2
(--mcu=mk20dx256) and Teensy 3.0 (--mcu=mk20dx128)
- Hardware debugging considerations and SWD trace modification notes
- Descriptions and step-by-step build commands for nsh and usbnsh
configurations
Addresses #11077
Part of #15737
Signed-off-by: Swatantra Yadav <[email protected]>
Assisted-by: Google Gemini
---
.../arm/kinetis/boards/teensy-3.x/README.txt | 305 ---------------------
.../arm/kinetis/boards/teensy-3.x/index.rst | 251 ++++++++++++++++-
2 files changed, 249 insertions(+), 307 deletions(-)
diff --git a/Documentation/platforms/arm/kinetis/boards/teensy-3.x/README.txt
b/Documentation/platforms/arm/kinetis/boards/teensy-3.x/README.txt
deleted file mode 100644
index bccd5da3a67..00000000000
--- a/Documentation/platforms/arm/kinetis/boards/teensy-3.x/README.txt
+++ /dev/null
@@ -1,305 +0,0 @@
-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
- MK20DX256VLH7 chip (now NXP). The MK20DX256VLH7 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
- MK20DX128VLH5 with slightly less capability. There are many difference
- between the MK20DX256VLH7 and the MK20DX128VLH5 but the basic differences
- that effect how you configure NuttX are:
-
- --------------- -------------- -------------- ---------------------------
- Feature Teensy 3.0 Teensy 3.1 Teensy 3.0 CONFIGURATION
- --------------- -------------- -------------- ---------------------------
- Processor
- Core MK20DX128VLH5 MK20DX256VLH7
CONFIG_ARCH_CHIP_MK20DX128VLH5=y
- Rated Speed 48 MHz 72 MHz See Note 1
- Overclockable 96 MHz 96 MHz CONFIG_TEENSY_3X_OVERCLOCK=y
- Flash Memory 128 KB 256 KB See Note 1
- SRAM 16 KB 64 KB CONFIG_RAM_SIZE=16384 and
- see Note 2
- --------------- -------------- -------------- ---------------------------
-
- NOTES:
- 1. Settings in boards/arm/kinetis/teensy-3.x/include/board.h will
automatically
- select the correct clocking based on CONFIG_ARCH_CHIP_MK20DX128VLH5=y.
- 2. The linker script at
boards/arm/kinetis/teensy-3.x/scripts/mk30dx128vlh5.ld will
- automatically be selected when CONFIG_ARCH_CHIP_MK20DX128VLH5=y. It
- will use the correct FLASH and SRAM sizes.
-
- The initial Teensy-3.1 port is largely the effort of Jakob Odersky.
- https://github.com/jodersky/nuttx/tree/teensy31-7.6 and
- https://github.com/jodersky/px4-nuttx
-
-Contents
-========
-
- o STATUS
- o Pin Configuration
- o Serial Console
- o LEDs
- o Using the Halfkey Loader
- o Debugging
- o Teensy-3.1 Configuration settings
- o Configurations
-
-STATUS
-======
-
- 2015-06-11:
- After some extended tinkering with the PLL setup, the Teensy-3.1 is
- fully functional using the basic NSH configuration.
- 2015-06-12:
- Fix LED (need high drive strength). Calibrate delay loop.
-
-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
-
-Debugging
-=========
-
- And, at this point, I don't know how to debug the board. There is no
- way to connect a JTAG SWD debugger, at least not without cutting leads
- to the MINI54TAN device:
-
- See:
http://mcuoneclipse.com/2014/08/09/hacking-the-teensy-v3-1-for-swd-debugging/
-
-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 boards/ subdirectory and
- hence, the board that supports the particular chip or SoC.
-
- CONFIG_ARCH_BOARD="teensy-3.x"
-
- CONFIG_ARCH_BOARD_name - For use in C code
-
- CONFIG_ARCH_BOARD_TEENSY_3X=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
-
- Individual subsystems can be enabled:
-
- To be provided
-
-Configurations
-==============
-
- Common Configuration Information
- --------------------------------
- Each Teensy-3.x configurations are maintained in sub-directories and
- can be selected as follow:
-
- tools/configure.sh teensy-3.x:<subdir>
- make oldconfig
-
- Before building, make sure that your PATH environment variable includes
- 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.x\<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
- see additional README.txt files in the NuttX tools repository.
-
- 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://developer.arm.com/open-source/gnu-toolchain/gnu-rm
-
- 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_ARM_TOOLCHAIN_GNU_EABI=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
- see additional README.txt files in the NuttX tools repository.
-
- b. Execute 'make menuconfig' in nuttx/ in order to start the
- reconfiguration process.
-
- 2. By default, this configuration uses the ARM EABI 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_ARM_TOOLCHAIN_GNU_EABI=y : GNU EABI toolchain for Windows
-
- Support
- for builtin applications is enabled, but in the base configuration
- no builtin applications are selected (see NOTES below).
diff --git a/Documentation/platforms/arm/kinetis/boards/teensy-3.x/index.rst
b/Documentation/platforms/arm/kinetis/boards/teensy-3.x/index.rst
index a2c4d8890c9..e1ae7fb2a6f 100644
--- a/Documentation/platforms/arm/kinetis/boards/teensy-3.x/index.rst
+++ b/Documentation/platforms/arm/kinetis/boards/teensy-3.x/index.rst
@@ -4,6 +4,253 @@ teensy-3.x
.. tags:: arch:arm, chip:kinetis, vendor:nxp
-.. include:: README.txt
- :literal:
+The Teensy 3.1 and 3.2 are compact, breadboard-friendly development boards
+designed by PJRC (Paul Stoffregen), powered by the NXP (formerly Freescale)
+Kinetis MK20DX256VLH7 ARM Cortex-M4 microcontroller.
+This board configuration also supports the earlier Teensy 3.0 board (which
+features the Kinetis MK20DX128VLH5 microcontroller).
+
+.. note::
+ The initial port of NuttX to the Teensy 3.1 was contributed by Jakob
+ Odersky (`jodersky <https://github.com/jodersky>`_).
+
+Hardware Overview
+=================
+
+Comparison: Teensy 3.0 vs. Teensy 3.1 / 3.2
+-------------------------------------------
+
+The Teensy 3.1 and 3.2 share identical pinouts and schematics with the Teensy
+3.0, but feature a significantly enhanced MCU:
+
+============= ===================== =====================
=====================================
+Feature Teensy 3.0 Teensy 3.1 / 3.2 Teensy 3.0
Configuration
+============= ===================== =====================
=====================================
+Processor NXP MK20DX128VLH5 NXP MK20DX256VLH7
``CONFIG_ARCH_CHIP_MK20DX128VLH5=y``
+Core ARM Cortex-M4 ARM Cortex-M4 ARM Cortex-M4
+Rated Clock 48 MHz 72 MHz Selected via board
clock header
+Overclockable Up to 96 MHz Up to 96 MHz
``CONFIG_TEENSY_3X_OVERCLOCK=y``
+Flash Memory 128 KB 256 KB Selected via linker
script
+SRAM 16 KB 64 KB
``CONFIG_RAM_SIZE=16384``
+5V Tolerance No (3.3V only) Yes (Digital pins) No (3.3V only)
+Linker Script mk20dx128vlh5.ld mk20dx256vlh7.ld Automatic based on
chip selection
+============= ===================== =====================
=====================================
+
+.. warning::
+ While digital I/O pins on the Teensy 3.1/3.2 are 5V tolerant, the analog
+ inputs (A10, A11, AREF, and the internal ADC reference) are strictly **3.3V
+ maximum**. On the Teensy 3.0, **all** pins are 3.3V only. Exceeding 3.3V on
+ non-tolerant pins will permanently damage the microcontroller.
+
+Key Features (Teensy 3.1 / 3.2)
+-------------------------------
+
+- **Microcontroller**: NXP Kinetis MK20DX256VLH7 (64-pin LQFP)
+ - 32-bit ARM Cortex-M4 running at 72 MHz (overclockable up to 96 MHz)
+ - 256 KB Flash memory, 64 KB SRAM
+ - Hardware CRC and Random Number Generator
+- **Clocking**:
+ - 16 MHz external crystal (XTAL on PTA18/PTA19)
+ - On-chip PLL generating 72 MHz system clock (or 96 MHz when overclocked)
+- **USB Interface**:
+ - Full-Speed (12 Mbps) USB 2.0 Device/Host/OTG port with Micro-B connector
+ - Dedicated USB regulator providing 3.3V (up to 100 mA) to external circuits
+- **Serial Communication**:
+ - 3 UARTs with FIFO and hardware CTS/RTS support
+ - 2 SPI modules with FIFO
+ - 2 I2C modules with SMBus support
+- **Analog & Timers**:
+ - 2 16-bit ADCs with differential mode support
+ - 1 12-bit DAC
+ - 3 FlexTimer modules (FTM) supporting up to 12 PWM channels
+ - Carrier Modulator Transmitter (CMT)
+ - Real-Time Clock (RTC) with external 32.768 kHz crystal footprint
+- **Form Factor & Bootloader**:
+ - 24-pin DIP footprint (0.1" pitch, breadboard friendly)
+ - Onboard Nuvoton Mini54TAN processor running PJRC HalfKay USB bootloader
+ - Pushbutton for entering bootloader mode
+
+Pin Configuration
+=================
+
+Nearly all MCU port pins are routed to the outer header pins or underside pads.
+The dedicated onboard hardware connections are:
+
+======== ==============================================
+Port Pin Board Usage
+======== ==============================================
+PTA0 Mini54TAN / Bootloader communication
+PTA1 Mini54TAN / Bootloader communication
+PTA2 Mini54TAN / Bootloader communication
+PTA3 Mini54TAN / Bootloader communication
+PTA18 16 MHz Crystal (XTAL)
+PTA19 16 MHz Crystal (XTAL)
+PTB1 Mini54TAN / Bootloader communication
+PTB2 Mini54TAN / Bootloader communication
+PTC5 User LED (Orange)
+======== ==============================================
+
+Serial Console
+==============
+
+The Kinetis K20 provides three UART modules with pins exposed on the board
+headers:
+
+============= ======== ============= =====================================
+UART Module Port Pin Board Label PJRC Pinout Description
+============= ======== ============= =====================================
+**UART0_RX** PTB16 Pin 0 RX1 / Touch
+\ PTD6 Pin 21 / A7 RX1 / CS / PWM
+\ PTA1 (Internal) Mini54TAN / Bootloader
+**UART0_TX** PTB17 Pin 1 TX1 / Touch
+\ PTD7 Pin 5 TX1 / PWM
+\ PTA2 (Internal) Mini54TAN / Bootloader
+**UART1_RX** PTC3 Pin 9 RX2 / CS / PWM
+\ PTE1 Pad 26 Pad on underside of board
+**UART1_TX** PTC4 Pin 10 TX2 / CS / PWM
+\ PTE0 Pad 31 Pad on underside of board
+**UART2_RX** PTD2 Pin 7 RX3 / DOUT
+**UART2_TX** PTD3 Pin 8 TX3 / DIN
+============= ======== ============= =====================================
+
+The default serial console in the ``nsh`` configuration is **UART0** on:
+
+- **RX**: Pin 0 (PTB16)
+- **TX**: Pin 1 (PTB17)
+- **Baud rate**: 115200 8N1
+
+Connect a 3.3V USB-to-UART serial adapter (TX to Pin 0, RX to Pin 1, GND to
GND)
+to access the NuttShell prompt.
+
+LEDs
+====
+
+A single orange LED is connected to port pin **PTC5**. The cathode is connected
+to ground, so driving PTC5 high illuminates the LED.
+
+When ``CONFIG_ARCH_LEDS`` is enabled, NuttX indicates system status as
+follows:
+
+==================== ======================= ======
+Symbol Meaning LED
+==================== ======================= ======
+``LED_STARTED`` NuttX has started OFF
+``LED_HEAPALLOCATE`` Heap has been allocated OFF
+``LED_IRQSENABLED`` Interrupts enabled OFF
+``LED_STACKCREATED`` Idle stack created ON
+``LED_INIRQ`` Handling an interrupt No Change
+``LED_SIGNAL`` Inside signal handler No Change
+``LED_ASSERTION`` Assertion failed No Change
+``LED_PANIC`` System has crashed Flashing (2 Hz)
+==================== ======================= ======
+
+When NuttX boots successfully and enters normal idle operation, the LED
+remains solidly **ON**. If a kernel panic occurs, the LED flashes at
+approximately 2 Hz.
+
+Flashing and Debugging
+======================
+
+Using the Teensy Loader
+-----------------------
+
+The Teensy 3.x comes pre-programmed with PJRC's proprietary HalfKay
+bootloader managed by the onboard Mini54TAN chip. The bootloader communicates
+over USB via the `Teensy Loader <https://www.pjrc.com/teensy/loader.html>`_
+application or the command-line tool `teensy_loader_cli
+<https://www.pjrc.com/teensy/loader_cli.html>`_.
+
+NuttX configurations for the Teensy 3.x enable Intel HEX binary generation
+(``CONFIG_INTELHEX_BINARY=y``), which produces ``nuttx.hex`` in the root
+directory after compilation.
+
+Flashing with ``teensy_loader_cli``:
+
+1. Install ``teensy_loader_cli`` on your host system:
+
+ .. code-block:: bash
+
+ # Ubuntu / Debian
+ sudo apt-get install libusb-dev
+ git clone https://github.com/PaulStoffregen/teensy_loader_cli.git
+ cd teensy_loader_cli && make && sudo make install
+
+2. Build NuttX and upload the generated ``nuttx.hex``:
+
+ .. code-block:: bash
+
+ # For Teensy 3.1 / 3.2 (MK20DX256):
+ teensy_loader_cli --mcu=mk20dx256 -w -v nuttx.hex
+
+ # For Teensy 3.0 (MK20DX128):
+ teensy_loader_cli --mcu=mk20dx128 -w -v nuttx.hex
+
+3. Press the pushbutton on the Teensy 3.x board to initiate the programming
+ cycle. Once flashing completes, the board reboots into NuttX automatically.
+
+Hardware Debugging (SWD / JTAG)
+-------------------------------
+
+Standard hardware debugging via SWD is not directly available out of the box
+because the onboard Mini54TAN bootloader chip controls the Reset and SWD
+lines of the K20 microcontroller.
+
+To use an external SWD debugger (such as J-Link, ST-Link, or CMSIS-DAP), the
+hardware traces between the Mini54TAN and the MK20 chip must be severed or
+the Mini54TAN held in permanent reset. For detailed instructions on this
+modification, refer to the `Hacking the Teensy 3.1 for SWD Debugging
+<https://mcuoneclipse.com/2014/08/09/hacking-the-teensy-v3-1-for-swd-debugging/>`_
+guide on MCU on Eclipse.
+
+Supported Configurations
+========================
+
+The board configurations for the Teensy 3.x are located under
+``boards/arm/kinetis/teensy-3.x/configs/``.
+
+nsh
+---
+
+The default NuttShell (NSH) configuration provides an interactive command-line
+interface over the primary serial port.
+
+- **Console**: UART0 (Pin 0 RX, Pin 1 TX) at 115200 8N1
+- **Binary formats**: Raw binary (``nuttx.bin``) and Intel HEX (``nuttx.hex``)
+- **Builtin applications**: Enabled
+
+Building:
+
+.. code-block:: bash
+
+ ./tools/configure.sh teensy-3.x:nsh
+ make -j$(nproc)
+ teensy_loader_cli --mcu=mk20dx256 -w -v nuttx.hex # Use --mcu=mk20dx128
for Teensy 3.0
+
+usbnsh
+------
+
+Configures the NuttShell console to run over the native USB port using the
+USB CDC/ACM class driver (virtual COM port).
+
+- **Console**: USB CDC/ACM (``/dev/ttyACM0`` on Linux, ``COMx`` on Windows)
+- **Driver**: Kinetis Full-Speed USB Device controller
(``CONFIG_KINETIS_USBOTG=y``)
+- **Hardware requirement**: Standard Micro-USB cable connected directly to the
host PC
+
+Building:
+
+.. code-block:: bash
+
+ ./tools/configure.sh teensy-3.x:usbnsh
+ make -j$(nproc)
+ teensy_loader_cli --mcu=mk20dx256 -w -v nuttx.hex # Use --mcu=mk20dx128
for Teensy 3.0
+
+After flashing and rebooting, connect to the USB serial device:
+
+.. code-block:: bash
+
+ # Linux
+ minicom -D /dev/ttyACM0
+
+ # Or using picocom
+ picocom -b 115200 /dev/ttyACM0