Detailed Platform Support

Details. The details, caveats and fine print follow. For even more information see the README files that can be found here.

Linux User Mode Simulation

A user-mode port of NuttX to the x86 Linux/Cygwin platform is available. The purpose of this port is primarily to support OS feature development.

ARM7TDMI

TI TMS320-C5471

(also called C5471 or TMS320DA180 or DA180)

NuttX operates on the ARM7 of this dual core processor. This port uses the Spectrum Digital evaluation board with a GNU arm-nuttx-elf toolchain* under Linux or Cygwin.

NXP LPC214x

Support is provided for the NXP LPC214x family of processors. In particular, support is provided for (1) the mcu123.com lpc214x evaluation board (LPC2148) and (1) the The0.net ZPA213X/4XPA development board (with the The0.net UG-2864AMBAG01 OLED) This port also used the GNU arm-nuttx-elf toolchain* under Linux or Cygwin.

NXP LPC2378

Support is provided for the NXP LPC2378 MCU. In particular, support is provided for the Olimex-LPC2378 development board. This port was contributed by Rommel Marcelo is was first released in NuttX-5.3. This port also used the GNU arm-nuttx-elf toolchain* under Linux or Cygwin.

STMicro STR71x

Support is provided for the STMicro STR71x family of processors. In particular, support is provided for the Olimex STR-P711 evaluation board. This port also used the GNU arm-nuttx-elf toolchain* under Linux or Cygwin.

ARM920T

NXP/Freescale i.MX1

Or MC9328MX1 – This port uses the Freescale MX1ADS development board with a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin.

ARM926EJS

TI TMS320-DM320

(also called DM320)

NuttX operates on the ARM9 of this dual core processor. This port uses the Neuros OSD with a GNU arm-nuttx-elf toolchain* under Linux or Cygwin. The port was performed using the OSD v1.0, development board.

NXP LPC3131

Two boards based on the NXP LPC3131 are supported:

  • First, a port for the NXP LPC3131 on the Embedded Artists EA3131 development board was first released in NuttX-5.1 (but was not functional until NuttX-5.2).

  • A second port to the NXP LPC3131 on the Olimex LPC-H3131 development board was added in NuttX-6.32.

NXP LPC315x

Support for the NXP LPC315x family has been incorporated into the code base as of NuttX-6.4. Support was added for the Embedded Artists EA3152 board in NuttX-6.11.

Other ARMv4

Moxa NP51x0

A port to the Moxa NP51x0 series of 2-port advanced RS-232/422/485 serial device servers was contributed by Anton D. Kachalov in NuttX-7.11. This port includes NSH configuration with support for the Faraday FTMAC100 Ethernet MAC Driver.

ARM1176JZ

Broadcom BCM2708

Very basic support for the Broadcom BCM2708 was released with NuttX-7.23.

Raspberry Pi Zero. This support was provided for the Raspberry Pi Zero which is based on the BCM2835. Basic logic is in place but the port is incomplete and completely untested as of the NuttX-7.23 released. Refer to the NuttX board README file for further information.

Obsoleted:: Support for the Raspberry Pi Zero was never completed. The incomplete port along with all support for the BCM2708 was removed from the repository with the NuttX-7.28 release but can still be be found in the Obsoleted repository.

ARM Cortex-A5

Microchip SAMA5D2

Microchip SAMA5D3

There are ports to two Microchip SAMA5D3 boards:

  • Microchip SAMA5D3x-EK development boards. This is the port of NuttX to the Microchip SAMA5D3x-EK development boards (where x=1,3,4, or 5). These boards feature the Microchip SAMA5D3x microprocessors. Four different SAMA5D3x-EK kits are available

    The each kit consist of an identical base board with different plug-in modules for each CPU. All four boards are supported by NuttX with a simple reconfiguration of the processor type.

    STATUS. Initial support for the SAMA5D3x-EK was released in NuttX-6.29. That initial support was minimal: There are simple test configurations that run out of internal SRAM and extended configurations that run out of the on-board NOR FLASH:

    • A barebones NuttShell (NSH) configuration that can be used as the basis for further application development.

    • A full-loaded NuttShell (NSH) configuration that demonstrates all of the SAMA5D3x features.

    The following support was added in NuttX 6.30:

    • DMA support, and

    • PIO interrupts,

    And drivers for

    • SPI (with DMA support),

    • AT25 Serial Flash,

    • Two Wire Interface (TWI), and

    • HSMCI memory cards.

    NuttX-6.30 also introduces full USB support:

    • High speed device controller driver,

    • OHCI (low- and full-speed) and

    • EHCI (high-speed) host controller driver support.

    With NuttX-6.31, these additional drivers were added:

    • A 10/100Base-T Ethernet (EMAC) driver,

    • A 1000Base-T Ethernet (GMAC) driver,

    • A Real Time Clock (RTC) driver and integrated with the NuttX system time logic

    • /dev/random using the SAMA5D3x True Random Number Generator (TRNG),

    • A Watchdog Timer (WDT) driver,

    • A Timer/Counter (TC) library with interface that make be used by other drivers that need timer support,

    • An ADC driver that can collect multiple samples using the sequencer, can be trigger by a timer/counter, and supports DMA data transfers,

    • A touchscreen driver based on the special features of the SAMA5D3 ADC peripheral, An LCD controller (LCDC) frame buffer driver, and

    • A CAN driver (Testing of the CAN has been delayed because of cabling issues).

    Additional board configurations were added to test and demonstrate these new drivers including new graphics and NxWM configurations.

    These drivers were added in NuttX-6.32:

    • A PWM driver with DMA support

    • An SSC-based I2S driver

    • Support for Programmable clock outputs

    • NAND support including support for the PMECC hardware ECC and for DMA transfers.

    DBGU support was added in NuttX-7.2 (primarily for the SAMA5D3 Xplained board).

    NuttX-7.4 added support for the on-board WM8904 CODEC chip and for Tickless operation.

    Refer to the NuttX board README file for further information.

Microchip SAMA5D3 Xplained development board This is the port of NuttX to the Microchip SAMA5D3 Xplained development board. The board features the Microchip SAMA5D36 microprocessor. See the Microchip Website for additional information about this board.

STATUS. This port is complete as of this writing and ready for general use. The basic port is expected to be simple because of the similarity to the SAMAD3x-EK boards and is available in the NuttX 7.2 release.

Most of the drivers and capabilities of the SAMA5D3x-EK boards can be used with the SAMA5D3 Xplained board. The primary difference between the ports is that the SAMA5D3x-EK supports NOR FLASH and NuttX can be configured to boot directly from NOR FLASH. The SAMA5D3 Xplained board does not have NOR FLASH and, as a consequence NuttX must boot into SDRAM with the help of U-Boot.

Refer to the NuttX board README file for further information.

Microchip SAMA5D4

There is a port in progress on one Microchip SAMA5D4 board:

  • Microchip SAMA5D4-EK/MB development boards This is the port of NuttX to the Microchip SAMA5D4-MB Rev C. development board (which should be compatible with the SAMA5D4-EK). These boards feature the Microchip SAMA5D44 microprocessors with compatibility with most of the SAMA5D3 peripherals.

    STATUS. At the time of the release of NuttX-7.3, the basic port for the SAMA5D4-MB was complete. The board had basic functionality. But full functionality was not available until NuttX-7.4. In NuttX-7.4 support was added for the L2 cache, many security features, XDMAC, HSMCI and Ethernet integrated with XDMAC, the LCDC, TWI, SSC, and most of the existing SAMA5 drivers. Timers were added to support Tickless operation. The TM7000 LCDC with the maXTouch multi-touch controller are also fully support in a special NxWM configuration for that larger display. Support for a graphics media player is included (although there were issues with the WM8904 audio CODEC on my board). An SRAM bootloader was also included. Refer to the NuttX board README file for current status.

Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. All testing has been performed with the CodeSourcery toolchain (GCC version 4.7.3) in the Cygwin environment under Windows.

ARM Cortex-A8

Allwinner A10

These following boards are based on the Allwinner A10 have are supported by NuttX:

  • pcDuino v1. A port of NuttX to the pcDuino v1 board was first released in NuttX-6.33. See http://www.pcduino.com/ for information about pcDuino Lite, v1, and v2 boards. These boards are based around the Allwinner A10 Cortex-A8 CPU. This port was developed on the v1 board, but the others may be compatible:

    Refer to the NuttX board README file for further information.

    STATUS. This port was an experiment was was not completely developed. This configuration builds and runs an NuttShell (NSH), but only if a patch to work around some issues is applied. While not ready for “prime time”, the pcDuino port is functional and could the basis for a more extensive development. There is, at present, no work in progress to extend this port, however.

TI/Sitara AM335x

These following boards are based on the TI/Sitara AM335x are supported by NuttX:

  • Beaglebone Black. A port of NuttX to the Beaglebone Black board was first released in NuttX-7.28. This port was contributed by Petro Karashchenko. This board is based on the TI/Sitara AM3358 Cortex-A8 CPU running 1GHz.

    • NuttX-7.28. This initial port in NuttX-7.28 is very sparse. While not ready for prodcution use, the Beaglebone Black port is functional and will be the basis for a more extensive development. Additional work in progress to extend this port and more capable is anticipated in NuttX-7.29.

    • NuttX-9.0 CAN support was added. Clock Configuration was added.

    • NuttX-7.31. An LCD driver was added in NuttX-7.31.

    Refer to the Beaglebone Black board README file for further, up-to-date information.

ARM Cortex-A9

NXP/Freescale i.MX6

The basic port has been completed for the following i.MX6 board:

  • Sabre-6Quad. This is a port to the NXP/Freescale Sabre-6Quad board. Refer to the NuttX board README file for further information.

    STATUS: The basic, minimal port is code complete and introduced in NuttX-7.15, but had not yet been tested at that time due to the inavailability of hardware. This basic port was verified in the NuttX-7.16 release, however. The port is still minimal and more device drivers are needed to make the port usable.

    Basic support of NuttX running in SMP mode on the i.MX6Q was also accomplished in NuttX-7.16. However, there are still known issues with SMP support on this platform as described in the README file for the board.

ARM Cortex-R4

TI/Hercules TMS570LS04xx

A port is available for the Texas Instruments Hercules TMS570LS04x/03x LaunchPad Evaluation Kit (LAUNCHXL-TMS57004) featuring the Hercules TMS570LS0432PZ chip.

TI/Hercules TMS570LS31xx

Architecture support for the TMS570LS3137ZWT part was added in NuttX 7.25 by Ivan Ucherdzhiev. Ivan also added support for the TI Hercules TMS570LS31x USB Kit.

ARM Cortex-M0/M0+

nuvoTon NUC120

This is a port of NuttX to the nuvoTon NuTiny-SDK-NUC120 that features the NUC120LE3AN MCU.

STATUS. Initial support for the NUC120 was released in NuttX-6.26. This initial support is very minimal: There is a NuttShell (NSH) configuration that might be the basis for an application development. As of this writing, more device drivers are needed to make this a more complete port. Refer to the NuttX board README file for further information.

Memory Usage. For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the NUC120 demonstrates the scalability of NuttX. The NUC120LE2AN comes in a 48-pin package and has 128KB FLASH and 16KB of SRAM. When running the NSH configuration (itself a full up application), there is still more than 90KB of FLASH and 10KB or SRAM available for further application development).

Static memory usage can be shown with size command:

NuttX, the NSH application, and GCC libraries use 34.2KB of FLASH leaving 93.8KB of FLASH (72%) free from additional application development. Static SRAM usage is about 1.2KB (<4%) and leaves 14.8KB (86%) available for heap at runtime. SRAM usage at run-time can be shown with the NSH free command:

You can see that 10.0KB (62%) is available for further application development.

Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package.

NXP/FreeScale KL25Z

There are two board ports for the KL25Z parts:

Freedom KL25Z. This is a port of NuttX to the Freedom KL25Z board that features the MKL25Z128 Cortex-M0+ MCU, 128KB of FLASH and 16KB of SRAM. See the Freescale website for further information about this board.

PJRC Teensy-LC. This is a port of NuttX to the PJRC Teensy-LC board that features the MKL25Z64 Cortex-M0+ MCU, 64KB of FLASH and 8KB of SRAM. The Teensy LC is a DIP style breakout board for the MKL25Z64 and comes with a USB based bootloader. See the Freescale website for further information about this board.

NXP/FreeScale KL26Z

This is a port of NuttX to the Freedom KL25Z board that features the MK26Z128VLH4 Cortex-M0+ MCU, 128KB of FLASH and 16KB of SRAM. See the Freescale website for further information about this board.

Microchip SAMD20

The port of NuttX to the Microchip SAMD20-Xplained Pro development board. This board features the ATSAMD20J18A MCU (Cortex-M0+ with 256KB of FLASH and 32KB of SRAM).

Microchip SAMD21

There two boards supported for the SAMD21:

  1. The port of NuttX to the Microchip SAMD21-Xplained Pro development board added in NuttX-7.11, and

  2. The port of NuttX to the Arduino-M0 contributed by Alan Carvalho de Assis in NuttX-8.2. The initial release included nsh and usbnsh configurations.

Microchip SAML21

The port of NuttX to the Microchip SAML21-Xplained Pro development board. This board features the ATSAML21J18A MCU (Cortex-M0+ with 256KB of FLASH and 32KB of SRAM).

NXP LPC11xx

Support is provided for the NXP LPC11xx family of processors. In particular, support is provided for LPCXpresso LPC1115 board. This port was contributed by Alan Carvalho de Assis.

NXP S32K11x

Support is provided for the NXP S32K11x family of processors and, in particular, the S32K118EVB development board.

ARM Cortex-M3

TI/Stellaris LM3S6432

This is a port of NuttX to the Stellaris RDK-S2E Reference Design Kit and the MDL-S2E Ethernet to Serial module (contributed by Mike Smith).

TI/Stellaris LM3S6432S2E

This port uses Serial-to-Ethernet Reference Design Kit and has similar support as for the other Stellaris family members. A configuration is available for the NuttShell (NSH) (see NSH). The NSH configuration including networking support with a Telnet NSH console. This port was contributed by Mike Smith.

TI/Stellaris LM3S6918

This port uses the Micromint Eagle-100 development board with a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin.

Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package.

TI/Stellaris LM3S6965

This port uses the Stellaris LM3S6965 Ethernet Evaluation Kit with a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin.

Development Environments: See the Eagle-100 LM3S6918 above.

TI/Stellaris LM3S8962

This port uses the Stellaris EKC-LM3S8962 Ethernet+CAN Evaluation Kit with a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin. Contributed by Larry Arnold.

TI/Stellaris LM3S9B92

Architectural support for the LM3S9B92 was contributed by Lwazi Dube in NuttX 7.28. No board support for boards using the LM3S9B92 are currently available.

TI/Stellaris LM3S9B96

Header file support was contributed by Tiago Maluta for this part. Jose Pablo Rojas V. is used those header file changes to port NuttX to the TI/Stellaris EKK-LM3S9B96. That port was available in the NuttX-6.20 release. Refer to the NuttX board README file for further information.

SiLabs EFM32 Gecko

This is a port for the Silicon Laboratories’ EFM32 Gecko family. Board support is available for the following:

  1. SiLabs EFM32 Gecko Starter Kit (EFM32-G8XX-STK). The Gecko Starter Kit features:

    • EFM32G890F128 MCU with 128 kB flash and 16 kB RAM

    • 32.768 kHz crystal (LXFO) and 32 MHz crystal (HXFO)

    • Advanced Energy Monitoring

    • Touch slider

    • 4x40 LCD

    • 4 User LEDs

    • 2 pushbutton switches

    • Reset button and a switch to disconnect the battery.

    • On-board SEGGER J-Link USB emulator

    • ARM 20 pin JTAG/SWD standard Debug in/out connector

    STATUS. The basic port is verified and available now. This includes on-board LED and button support and a serial console available on LEUART0. A single configuration is available using the NuttShell NSH and the LEUART0 serial console. DMA and USART-based SPI supported are included, but not fully tested.

    Refer to the EFM32 Gecko Starter Kit README.txt file for further information.

  2. Olimex EFM32G880F120-STK. This board features:

    • EFM32G880F128 with 128 kB flash and 16 kB RAM

    • 32.768 kHz crystal (LXFO) and 32 MHz crystal (HXFO)

    • LCD custom display

    • DEBUG connector with ARM 2x10 pin layout for programming/debugging with ARM-JTAG-EW

    • UEXT connector

    • EXT extension connector

    • RS232 connector and driver

    • Four user buttons

    • Buzzer

    STATUS. The board support is complete but untested because of tool-related issues. An OpenOCD compatible, SWD debugger would be required to make further progress in testing.

    Refer to the Olimex EFM32G880F120-STK README.txt for further information.

SiLabs EFM32 Giant Gecko

This is a port for the Silicon Laboratories’ EFM32 Giant Gecko family. This board features the EFM32GG990F1024 MCU with 1 MB flash and 128 kB RAM.

Board support is available for the following:

  • SiLabs EFM32 Giant Gecko Starter Kit t (EFM32GG-STK3700). The Gecko Starter Kit features:

    • EFM32GG990F1024 MCU with 1 MB flash and 128 kB RAM

    • 32.768 kHz crystal (LXFO) and 48 MHz crystal (HXFO)

    • 32 MB NAND flash

    • Advanced Energy Monitoring

    • Touch slider

    • 8x20 LCD

    • 2 user LEDs

    • 2 user buttons

    • USB interface for Host/Device/OTG

    • Ambient light sensor and inductive-capacitive metal sensor

    • EFM32 OPAMP footprint

    • 20 pin expansion header

    • Breakout pads for easy access to I/O pins

    • Power sources (USB and CR2032 battery)

    • Backup Capacitor for RTC mode

    • Integrated Segger J-Link USB debugger/emulator

    STATUS.

    • The basic board support for the Giant Gecko was introduced int the NuttX source tree in NuttX-7.6. A verified configuration was available for the basic NuttShell (NSH) using LEUART0 for the serial console.

    • Development of USB support is in started, but never completed.

    • Reset Management Unit (RMU) was added Pierre-noel Bouteville in NuttX-7.7.

STMicro STM32 L152

(STM32L “EnergyLite” Line). Two boards are supported:

  • STM32L-Discovery. This is a port of NuttX to the STMicro STM32L-Discovery development board. The STM32L-Discovery board is based on the STM32L152RBT6 MCU (128KB FLASH and 16KB of SRAM).

    The STM32L-Discovery and STM32L152C DISCOVERY kits are functionally equivalent. The difference is the internal Flash memory size (STM32L152RBT6 with 128 Kbytes or STM32L152RCT6 with 256 Kbytes). Both boards feature:

    • An ST-LINK/V2 embedded debug tool interface,

    • LCD (24 segments, 4 commons),

    • LEDs,

    • Pushbuttons,

    • A linear touch sensor, and

    • Four touchkeys.

  • Nucleo-L152RE. Board support for the Nucleo-L152RE was contributed by Mateusz Szafoni in NuttX-7.28. Available configurations include NSH, ADC, and PWM.

STATUS. Initial support for the STM32L-Discovery was released in NuttX-6.28. Addition (architecture-only) support for the STM32L152xC family was added in NuttX-7.21. Support for the Nucleo-L152RE was added in NuttX-7.28.

That initial STM32L-Discovery support included a configuration using the NuttShell (NSH) that might be the basis for an application development. A driver for the on-board segment LCD is included as well as an option to drive the segment LCD from an NSH “built-in” command. Refer to the STM32L-Discovery board README file for further information.

Memory Usage.

REVISIT: These numbers are out of date. Current NuttX sizing might be somewhat larger.

For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the STM32L152RBT6 demonstrates the scalability of NuttX. The STM32L152RBT6 comes in a 64-pin package and has 128KB FLASH and 16KB of SRAM.

Static memory usage can be shown with size command:

NuttX, the NSH application, and GCC libraries use 38.7KB of FLASH leaving 89.3B of FLASH (70%) free from additional application development. Static SRAM usage is about 1.2KB (<4%) and leaves 14.8KB (86%) available for heap at runtime.

SRAM usage at run-time can be shown with the NSH free command:

You can see that 9.9KB (62%) of SRAM heap is still available for further application development while NSH is running.

STMicro STM32 L15x/16x

(STM32 L1 “EnergyLite” Medium+ Density Family). Support for the STM32L152 and STM32L162 Medium+ density parts from Jussi Kivilinna and Sami Pelkonen was included in NuttX-7.3, extending the basic STM32L152x support. This is architecture-only support, meaning that support for the boards with these chips is available, but no support for any publicly available boards is included.

STMicro STM32 F0xx

(STM32 F0, ARM Cortex-M0). Support for the STM32 F0 family was contributed by Alan Carvalho de Assis in NuttX-7.21. There are ports to three different boards in this repository:

  • STM32F0-Discovery This board features the STM32 2F051R8 and was used by Alan to produce the initial STM32 F0 port. However, its very limited 8KB SRAM makes this port unsuitable for for usages. Contributed by Alan Carvalho de Assis in NuttX-7.21.

  • Nucleo-F072RB With 16KB of SRAM the STM32 F072RB makes a much more usable platform.

  • Nucleo-F091RC With 32KB of SRAM the STM32 F091RC this board is a great match for NuttX. Contributed by Juha Niskanen in NuttX-7.21.

STMicro STM32 L0xx

(STM32 L0, ARM Cortex-M0). Support for the STM32 FL family was contributed by Mateusz Sfafoni in NuttX-7.28. There are ports to two different STM32 L0 boards in the repository:

B-L072Z-LRWAN1 Contributed byMateusz Sfafoni in NuttX-7.28. Nucleo-L073RZ Contributed byMateusz Sfafoni in NuttX-7.28.

STMicro STM32 G0xx

(STM32 G0, ARM Cortex-M0+). Support for the STM32 FL family was contributed by Mateusz Sfafoni in NuttX-7.28. There are ports to two different STM32 L0 boards in the repository:

  • Nucleo-G071RB Initial support for Nucleo-G071RB was contributed by Mateusz Szafoni in NuttX-7.31. Refer to the board README file for further information.

  • Nucleo-G070RB Contributed by Daniel Pereira Volpato. in NuttX-8.2. Refer to the board README file for further information.

STATUS: Status for the STM32F0xx, STM32L0xx, and STM32G0xx is shown together since these parts share many drivers in common.

NuttX-7.21. In this initial release, the level of support for the STM32 F0 family is minimal. Certainly enough is in place to support a robust NSH configuration. There are also unverified I2C and USB device drivers available in NuttX-7.21.

NuttX-7.28 Added support for GPIO EXTI. From Mateusz Sfafoni.

NuttX-7.29 Added an SPI driver. From Mateusz Sfafoni.

NuttX-7.30 Added ADC and I2C drivers. From Mateusz Szafoni. Add AES and RND drivers for the L0. From Mateusz Szafoni. Add support for HS148 for L0. From Mateusz Szafoni.

NuttX-8.2 Added PWM and TIM drivers for the G0. From Daniel Pereira Volpato.

NuttX-9.0 Added I2C support for F0, L0 and G0.

STMicro STM32 F100x

(STM32 F1 “Value Line”Family).

  • Proprietary Boards Chip support for these STM32 “Value Line” family was contributed by Mike Smith and users have reported that they have successful brought up NuttX on their proprietary boards using this logic.

  • STM32VL-Discovery. In NuttX-6.33, support for the STMicro STM32VL-Discovery board was contributed by Alan Carvalho de Assis. The STM32VL-Discovery board features an STM32F100RB MCU. Refer to the NuttX board README file for further information.

STMicro STM32 F102x

Architecture support (only) for the STM32 F102 family was contributed by the PX4 team in NuttX-7.7.

STMicro STM32 F103C4/C8

(STM32 F1 Low- and Medium-Density Family). There are two ports available for this family:

  • One port is for “STM32 Tiny” development board. This board is available from several vendors on the net, and may be sold under different names. It is based on a STM32 F103C8T6 MCU, and is bundled with a nRF24L01 wireless communication module.

  • The other port is for a generic minimal STM32F103CBT6 “blue” board contributed by Alan Carvalho de Assis. Alan added support for numerous sensors, tone generators, user LEDs, and LCD support in NuttX 7.18.

STATUS:

STMicro STM32 F103x

(STM32 F1 Family). Support for five board configurations are available. MCU support includes all of the high density and connectivity line families. Board supported is available specifically for: STM32F103ZET6, STM32F103RET6, STM32F103VCT, STM32F103VET6, STM32F103RBT6, and STM32103CBT6. Boards supported include:

  1. STM3210E-EVAL. A port for the STMicro STM3210E-EVAL development board that features the STM32F103ZET6 MCU. Refer to the NuttX board README file for further information.

  2. HY-Mini STM32v board. This board is based on the STM32F103VCT chip. Port contributed by Laurent Latil. Refer to the NuttX board README file.

  3. The M3 Wildfire development board (STM32F103VET6), version 2. See http://firestm32.taobao.com (the current board is version 3). Refer to the NuttX board README file for further information.

  4. LeafLab’s Maple and Maple Mini boards. These boards are based on the STM32F103RBT6 chip for the standard version and on the STM32F103CBT6 for the mini version. See the LeafLabs web site for hardware information; see the NuttX board README file for further information about the NuttX port.

  5. Olimexino-STM32. This port uses the Olimexino STM32 board (STM32F103RBT6). See the http://www.olimex.com for further information. Contributed by David Sidrane.

  6. Nucleo-STM32F103RB. This port uses the STM32F103RBT6. It was contributed by Mateusz Szafoni in NuttX-7.28,

These ports uses a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

STATUS:

  • Basic Support/Drivers. The basic STM32 port was released in NuttX version 0.4.12. The basic port includes boot-up logic, interrupt driven serial console, and system timer interrupts. The 0.4.13 release added support for SPI, serial FLASH, and USB device.; The 4.14 release added support for buttons and SDIO-based MMC/SD and verified DMA support. Verified configurations are available for the NuttShell (NSH) example, the USB serial device class, and the USB mass storage device class example.

  • Additional Drivers. Additional drivers and configurations were added in NuttX 6.13 and later releases for the STM32 F1 and F4. F1 compatible drivers include an Ethernet driver, ADC driver, DAC driver, PWM driver, IWDG, WWDG, and CAN drivers.

  • M3 Wildfire. Support for the Wildfire board was included in version 6.22 of NuttX. The board port is basically functional. Not all features have been verified. Support for FAT file system on an an SD card had been verified. The ENC28J60 network is functional (but required lifting the chip select pin on the W25x16 part). Customizations for the v3 version of the Wildfire board are selectable (but untested).

  • Maple. Support for the Maple boards was contributed by Yiran Liao and first appear in NuttX 6-30.

  • Olimexino-STM32. Contributed by David Sidrane and introduced with NuttX 7.9. Configurations are included for the NuttShell (NSH), a tiny version of the NuttShell, USB composite CDC/ACM + MSC, CAN support, and two tiny, small-footprint NSH configurations.

  • Nucleo-STM32F103RB. Contributed by Mateusz Szafoni and introduced with NuttX 7.28. Configurations are included for the NuttShell (NSH), ADC, and PWM.

Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (RIDE7, CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain or Linux or Cygwin is provided by the NuttX buildroot package.

STMicro STM32 F105x

Architecture support (only) for the STM32 F105R was contribed in NuttX-7.17 by Konstantin Berezenko. There is currently no support for boards using any STM32F105x parts in the source tree.

STMicro STM32 F107x

(STM32 F1 “Connectivity Line” family). Chip support for the STM32 F1 “Connectivity Line” family has been present in NuttX for some time and users have reported that they have successful brought up NuttX on their proprietary boards using this logic.

Olimex STM32-P107 Support for the Olimex STM32-P107 was contributed by Max Holtzberg and first appeared in NuttX-6.21. That port features the STMicro STM32F107VC MCU.

STATUS: A configuration for the NuttShell (NSH) is available and verified. Networking is functional. Support for an external ENCX24J600 network was added in NuttX 6.30.

Shenzhou IV A port of NuttX to the Shenzhou IV development board (See www.armjishu.com) featuring the STMicro STM32F107VCT MCU was added in NuttX-6.22.

STATUS: In progress. The following have been verified: (1) Basic Cortex-M3 port, (2) Ethernet, (3) On-board LEDs. Refer to the NuttX board README file for further information.

ViewTool STM32F103/F107 Support for the Viewtool STM32F103/F107 board was added in NuttX-6.32. That board features the STMicro STM32F107VCT6 MCU. Networking, LCD, and touchscreen support were added in NuttX-6.33.

Three configurations are available:

  1. A standard NuttShell (NSH) configuration that will work with either the STM32F103 or STM32F107 part.

  2. A network-enabled NuttShell (NSH) configuration that will work only with the STM32F107 part.

  3. The configuration that was used to verify the NuttX high-priority, nested interrupt feature.

STATUS: Networking and touchscreen support are well test. But, at present, neither USB nor LCD functionality have been verified. Refer to the Viewtool STM32F103/F107 README file for further information.

Kamami STM32 Butterfly 2 Support for the Kamami STM32 Butterfly 2 was contributed by Michał Łyszczek in NuttX-7.18. That port features the STMicro STM32F107VC MCU.

STATUS: A configuration for the NuttShell (NSH), NSH with networking, and NSH with USB host are available and verified.

STMicro STM32 F205x

(STM32 F2 family). Architecture only support for the STM32F205RG was contributed as an anonymous contribution in NuttX-7.10.

Particle.io Phone. Support for the Particle.io Photon board was contributed by Simon Pirious in NuttX-7.21. The Photon board features the STM32F205RG MCU. The STM32F205RG is a 120 MHz Cortex-M3 operation with 1Mbit Flash memory and 128kbytes. The board port includes support for the on-board Broadcom BCM43362 WiFi and fully usable FullMac network support.

STATUS: In addition to the above-mention WiFI support, the Photon board support includes buttons, LEDS, IWDG, USB OTG HS, and procfs support. Configurations available for nsh, usbnsh, and wlan configurations. See the Photon README file for additional information.

STMicro STM32 F207x

(STM32 F2 family)

  • Support for the STMicro STM3220G-EVAL development board was contributed by Gary Teravskis and first released in NuttX-6.16. This board uses the STM32F207IG.

  • Martin Lederhilger contributed support for the Olimex STM32 P207 board using the STM32F207ZE MCU.

  • Board support for the Nucleo-L152RE was contributed by Mateusz Szafoni in NuttX-7.28. Available configurations include NSH, ADC, and PWM.

Microchip SAM3U

This port uses the Microchip SAM3U-EK development board that features the SAM3U4E MCU. This port uses a GNU arm-nuttx-elf or arm-nuttx-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for inux or Cygwin is provided by the NuttX buildroot package.

Microchip SAM3X

There are two SAM3X boards supported:

  1. The Arduino Due development board that features the ATSAM3X8E MCU running at 84MHz. See the Arduino Due page for more information.

  2. The Mikroelektronika Flip&Click SAM3X development board. This board is an Arduino Due work-alike with additional support for 4 mikroBUS Click boards.

Development Environments: See the Microchip SAM3U discussion above.

NXP LPC176x

NXP LPC1766, LPC1768, and LPC1769. Drivers are available for CAN, DAC, Ethernet, GPIO, GPIO interrupts, I2C, UARTs, SPI, SSP, USB host, and USB device. Additional drivers for the RTC, ADC, DAC, Timers, PWM and MCPWM were contributed by Max (himax) in NuttX-7.3. Verified LPC17xx configurations are available for these boards:

  • The Nucleus 2G board from 2G Engineering (LPC1768),

  • The mbed board from mbed.org (LPC1768, Contributed by Dave Marples), and

  • The LPC1766-STK board from Olimex (LPC1766).

  • The Embedded Artists base board with NXP LPCXpresso LPC1768.

  • Zilogic’s ZKIT-ARM-1769 board.

  • The Micromint Lincoln60 board with an NXP LPC1769.

  • A version of the LPCXPresso LPC1768 board with special support for the U-Blox model evaluation board.

  • Support for the Keil MCB1700 was contributed by Alan Carvalho de Assis in NuttX-7.23.

  • Support for the NXP Semiconductors’ PN5180 NFC Frontend Development Kit was contributed by Michael Jung in NuttX-7.1. This board is based on the NXP LPC1769 MCU.

The Nucleus 2G board, the mbed board, the LPCXpresso, and the MCB1700 all feature the NXP LPC1768 MCU; the Olimex LPC1766-STK board features an LPC1766. All use a GNU arm-nuttx-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

STATUS: The following summarizes the features that has been developed and verified on individual LPC17xx-based boards. These features should, however, be common and available for all LPC17xx-based boards.

  1. Nucleus2G LPC1768

    • Some initial files for the LPC17xx family were released in NuttX 5.6, but

    • The first functional release for the NXP LPC1768/Nucleus2G occurred with NuttX 5.7 with Some additional enhancements through NuttX-5.9. Refer to the NuttX board README file for further information.

    That initial, 5.6, basic release included timer interrupts and a serial console and was verified using the NuttX OS test (apps/examples/ostest). Configurations available include include a verified NuttShell (NSH) configuration (see NSH). The NSH configuration supports the Nucleus2G’s microSD slot and additional configurations are available to exercise the USB serial and USB mass storage devices. However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. (Although they have since been verified on other platforms; this needs to be revisited on the Nucleus2G).

    Obsoleted. Support for the Nucleus2G board was terminated on 2016-04-12. There has not been any activity with the commercial board in a few years and it no longer appears to be available from the 2g-eng.com website. Since the board is commercial and no longer publicly available, it no longer qualifies for inclusion in the open source repositories. A snapshot of the code is still available in the Obsoleted repository and can easily be reconstitued if needed.

  2. mbed LPC1768

    • Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. Refer to the NuttX board README file for further information.

  3. Olimex LPC1766-STK

    • Support for that Olimex-LPC1766-STK board was added to NuttX 5.13.

    • The NuttX-5.14 release extended that support with an Ethernet driver.

    • The NuttX-5.15 release further extended the support with a functional USB device driver and SPI-based micro-SD.

    • The NuttX-5.16 release added a functional USB host controller driver and USB host mass storage class driver.

    • The NuttX-5.17 released added support for low-speed USB devices, interrupt endpoints, and a USB host HID keyboard class driver.

    • Refer to the NuttX board README file for further information.

    Verified configurations are now available for the NuttShell with networking and microSD support(NSH, see NSH), for the NuttX network test, for the THTTPD webserver, for USB serial deive and USB storage devices examples, and for the USB host HID keyboard driver. Support for the USB host mass storage device can optionally be configured for the NSH example. A driver for the Nokia 6100 LCD and an NX graphics configuration for the Olimex LPC1766-STK have been added. However, neither the LCD driver nor the NX configuration have been verified as of the NuttX-5.17 release.

  4. Embedded Artists base board with NXP LPCXpresso LPC1768

    An fully verified board configuration is included in NuttX-6.2. The Code Red toolchain is supported under either Linux or Windows. Verified configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), THTTPD, and USB mass storage device. Refer to the NuttX board README file for further information.

  5. Zilogic’s ZKIT-ARM-1769 board

    Zilogic System’s ARM development Kit, ZKIT-ARM-1769. This board is based on the NXP LPC1769. The initial release was included NuttX-6.26. The NuttX Buildroot toolchain is used by default. Verifed configurations include the “Hello, World!” example application and a THTTPD demonstration. Refer to the NuttX board README file for further information.

  6. Micromint Lincoln60 board with an NXP LPC1769

    This board configuration was contributed and made available in NuttX-6.20. As contributed board support, I am unsure of what all has been verfied and what has not. See the Microment website and the NuttX board README file for further information about the Lincoln board.

  7. U-Blox Modem Evaluation (LPCXpresso LPC1768)

    This board configuration was contributed by Vladimir Komendantskiy and made available in NuttX-7.15. This is a variant of the LPCXpresso LPC1768 board support with special provisions for the U-Blox Model Evaluation board. See the NuttX board README file for further information about this port.

  8. Keil MCB1700 (LPC1768)

    This board configuration was contributed by Alan Carvalho de Assis in NuttX-7.23.

  9. PN5180 NFC Frontend Development Kit

    This board configuration was contributed by Michael Jung in NuttX-7.31.

Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery devkitARM or Code Red), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package.

NXP LPC178x

The port of NuttX to the WaveShare Open1788 is a collaborative effort between Rommel Marcelo and myself (with Rommel being the leading contributor and I claiming only a support role). You can get more information at the Open1788 board from the WaveShare website.

ON Semiconductor LC823450

(Dual core ARM Cortex-M3). In NuttX-7.22, Masayuki Ishikawa contributed support for both the LC823450 architecture and for ON Semiconductor’s LC823450XGEVK board:

The LC823450XGEVK is an audio processing system Evaluation Board Kit used to demonstrate the LC823450. This part can record and playback, and offers High-Resolution 32-bit & 192 kHz audio processing capability. It is possible to cover most of the functions necessary for a portable audio with only this LSI as follows. It has Dual CPU and DSP with High processing capability, and internal 1656K-Byte SRAM, which make it possible to implement large scale program. And it has integrated analog functions (low-power Class D HP amplifier, PLL, ADC etc.) so that PCB space and cost is reduced, and it has various interface (USB, SD, SPI, UART, etc.) to make extensibility high. Also it is provided with various function including SBC/AAC codec by DSP and UART and ASRC (Asynchronous Sample Rate Converter) for Bluetooth® audio. It is very small chip size in spite of the multi-funciton as described above and it realizes the low power consumption. Therefore, it is applicable to portable audio markets such as Wireless headsets and will show high performance.

Further information about the LC823450XGEVK is available on from the the ON Semiconductor website as are LC823450 related technical documents. Refer to the NuttX board README file for details of the NuttX port.

This port is intended to test LC823450 features including SMP. Supported peripherals include UART, TIMER, RTC, GPIO, DMA, I2C, SPI, LCD, eMMC, and USB device. ADC, Watchdog, IPC2, and I2S support was added by Masayuki Ishikawa in NuttX-7.23. Bluetooth, SPI, and PROTECTED build support were added by Masayuki Ishikawa in NuttX-7.26. Support for for SPI flash boot was added in NuttX-7.28.

Maxim Integrated MAX32660

Architectural upport for the MAX32660 was added (along with partial support for other members of the MAX326xx family) in NuttX 7.28.

MAX32660-EVSYS. Basic support for the Maxim Integrated MAC3X660 EVSYS was included in the NuttX-7.28 release. A basic NSH configuration is available and is fully functional. Includes unverified support for an SPI0-based SD card.

STATUS:

` <#>`__ (ARM Cortex-M3)

ARM Cortex-M4

Infineon XMC45xx

An initial but still incomplete port to the XMC4500 Relax board was released with NuttX-7.21 (although it was not really ready for prime time). Basic NSH functionality was a serial console was added by Alan Carvahlo de Assis in NuttX-7.23. Alan also added an SPI driver in NuttX-7.25.

This initial porting effort uses the Infineon XMC4500 Relax v1 board as described on the manufacturer’s website. The current status of the board is available in the board README file

Nordic Semiconductor NRF52xxx

Initial architecture support of the NRF52 including UART, Timer, and GPIOs was contributed by Janne Rosberg in NuttX-7.25. Janne also contributed board support for the NRF52-PCA10040 development board at that time.

The NRF52 was generalized by Hanya Zou in NuttX-7.28 for any similar board based on the NRF52832 MCU. Support was specifically included for the Adafruit NRF52 Feather board.

Available drivers include:

  • NuttX-7.25. UART, Timer, and GPIOs from Janne Rosberg and a watchdog timer driver was added by Levin Li.

  • NuttX-7.25. Flash PROGMEM support was added by Alan Carvalho de Assis.

  • NuttX-7.29. Support for the 52804 family and an RNG drivers was added by Levin Li.

NXP/FreeScale Kinetis K20

Used by Teensy-3.x. Architecture support (only) was added in NuttX-7.10. This support was taken from PX4 and is the work of Jakob Odersky. Support was added for the PJRC Teensy-3.1 board in NuttX-7.11. Backward compatible support for the Teensy-3.0 is included.

NXP/FreeScale Kinetis K28F

Use by Freedom-K28F. Architecture support for the Kinetis K28F along with board support for the Freedom-K28F was added in NuttX-7.15. The Freedom-K28F board is based on the Kinetis MK28FN2M0VMI15 MCU (ARM Cortex-M4 at150 MHz, 1 MB SRAM, 2 MB flash, HS and FS USB, 169 MAPBGA package). More information is available from the NXP website.

NXP/FreeScale Kinetis K40

This port uses the Freescale Kinetis KwikStik K40. Refer to the Freescale web site for further information about this board. The Kwikstik is used with the FreeScale Tower System (mostly just to provide a simple UART connection)

NXP/FreeScale Kinetis K60

This port uses the Freescale Kinetis TWR-K60N512 tower system. Refer to the Freescale web site for further information about this board. The TWR-K60N51 includes with the FreeScale Tower System which provides (among other things) a DBP UART connection.

MK60N512VLL100. Architecture support for the MK60N512VLL100 was contributed by Andrew Webster in NuttX-7.14.

NXP/FreeScale Kinetis K64

Support for the Kinetis K64 family and specifically for the NXP/Freescale Freedom K64F board was added in NuttX 7.17. Initial release includes two NSH configurations with support for on-board LEDs, buttons, and Ethernet with the on-board KSZ8081 PHY. SDHC supported has been integrated, but not verified. Refer to the NuttX board README file for further information.

MK64FN1M0VMD12. Architecture support for the _MK64FN1M0VMD12 was contributed by Maciej Skrzypek in NuttX-7.20.

NXP/Freescale Kinetis TWR-K64F120M. Support for the Freescale Kinetis TWR-K64F120M was contributed in NuttX-7.20 by Maciej Skrzypek. Refer to the Freescale web site for further information about this board. The board may be complemented by TWR-SER which includes (among other things), an RS232 and Ethernet connections. Refer to the NuttX board README file for further information.

Driver Status.

  • NuttX-6.8. Ethernet and SD card (SDHC) drivers also exist: The SDHC driver is partially integrated in to the NSH configuration but has some outstanding issues. Additional work remaining includes: (1) integrate th SDHC drivers, and (2) develop support for USB host and device. NOTE: Most of these remaining tasks are the same as the pending K40 tasks described above.

  • NuttX-7.14. The Ethernet driver became stable in NuttX-7.14 thanks to the efforts of Andrew Webster.

  • NuttX-7.17. Ethernet support was extended and verified on the Freedom K64F. A Kinetis USB device controller driver and PWM support was contributed by kfazz.

NXP/FreeScale Kinetis K66

Support for the Kinetis K64 family and specifically for the NXP/Freescale Freedom K66F board was contributed by David Sidrane in NuttX 7.20. Refer to the NuttX board README file for further information.

Driver Status.

  • Most K6x drivers are compatible with the K66.

  • NuttX-7.20. David Sidrane also contributed support for a serial driver on the K66’s LPUART.

  • NuttX-7.22. David Sidrane contributed improvements to the USB and I2C device drivers, RTC alarm functionality, and new SPI driver.

  • NuttX-7.26. David Sidrane contributed DMA support to the Kinetis K6x family.

Sony CXD56xx

(6 x ARM Cortex-M4)

Support for the CXD56xx was introduced by Nobuto Kobayashi in NuttX-7.30.

Sony Spresence. Spresense is a compact development board based on Sony’s power-efficient multicore microcontroller CXD5602. Basic support for the Sony Spresense board was included in the contribution of Nobuto Kobayashi in NuttX-7.30. NOTE: That was an initial, bare bones basic Spresense port sufficient for running a NuttShell (NSH) and should not be confused with the full Spresence SDK offered from Sony. Since then there has been much development of the NuttX CXD56xx port.

Features:

  • Integrated GPS: Embedded GNSS with support for GPS, QZSS.

  • Hi-res audio output and multi mic inputs” Advanced 192kHz/24 bit audio codec and amplifier for audio output, and support for up to 8 mic input channels.

  • Multicore microcontroller: Spresense is powered by Sony’s CXD5602 microcontroller (ARM® Cortex®-M4F × 6 cores), with a clock speed of 156 MHz.

Driver Status:

NuttX-3.31. In this release, many new architectural features, peripheral drivers, and board configurations were contributed primarily through the work of Alin Jerpelea. These new architectural features include: Inter-core communications, power management, and clock management. New drivers include: GPIO, PMIC, USB, SDHC, SPI, I2C, DMA, RTC, PWM, Timers, Watchdog Timer, UID, SCU, ADC, eMMC, Camera CISIF, GNSS, and others.

NuttX-8.1. Alin Jerpelea brought in ten (external) sensor drivers that integrate through the CXD56xx’s SCU.

NuttX-8.2. Masayuki Ishikawa implemented SMP operation of the CX56Dxx parts. Alin Jerpelea: Added support for the Altair LTE modem support, enabled support for accelerated format converter, rotation and so on using the CXD5602 image processing accelerator, added ISX012 camera support, added audio and board audio control implementation, added an audio_tone_generator, added optional initialization of GNSS and GEOFENCE at boot if the drivers are enabled, added an lcd examples configuration.

STMicro STM32 F302x

(STM32 F3 family). Architecture (only) support for the STM32 F302 was contributed in NuttX-7.10 by Ben Dyer (via the PX4 team and David Sidrane).

Support for the Nucleo-F302R8 board was added by raiden00pl in NuttX-7.27. Refer to the NuttX board README file for further information.

STMicro STM32 F303x

(STM32 F3 family)

  • STM32F3-Discovery. This port uses the STMicro STM32F3-Discovery board featuring the STM32F303VCT6 MCU (STM32 F3 family). Refer to the STMicro web site for further information about this board.

  • STMicro ST Nucleo F303RE board. The basic port for the Nucleo F303RE was contributed by Paul Alexander Patience and first released in NuttX-7.12. Refer to the NuttX board README file for further information.

  • STMicro ST Nucleo F303ZE board. Support for the Nucleo-F303ZE board was added by Mateusz Szafoni in NuttX-7.27. Refer to the NuttX board README file for further information.

STMicro STM32 F334

(STM32 F3 family, ARM Cortex-M4)

Support for the STMicro STM32F334-Disco board was contributed by Mateusz Szafoni in NuttX-7.22 and for the Nucleo-STM32F334R8 was contributed in an earlier release.

STMicro STM32 F372/F373

(ARM Cortex-M4)

Basic architecture support for the STM32F372/F373 was contributed by Marten Svanfeldt in NuttX 7.9. There are no STM32F*72 boards currently supported, however.

STMicro STM32 F4x1

(STM32 F4 family).

Nucleo F401RE. This port uses the STMicro Nucleo F401RE board featuring the STM32F401RE MCU. Refer to the STMicro web site for further information about this board.

Nucleo F411RE. This port uses the STMicro Nucleo F411RE board featuring the STM32F411RE MCU. Refer to the STMicro web site for further information about this board.

STATUS:

  • NuttX-7.2 The basic port for STMicro Nucleo F401RE board was contributed by Frank Bennett.

  • NuttX-7.6 The basic port for STMicro Nucleo F401RE board was added by Serg Podtynnyi.

  • NuttX-7.25 Architecture support (only) for STMicro STM32F401xB and STM32F401xC pars was added.

  • Refer to the NuttX board README file for further information.

STMicro STM32410

(STM32 F4 family)

Architecture-only support was contributed to NuttX-7.21 by Gwenhael Goavec-Merou.

STMicro STM32 F405x/407x

(STM32 F4 family).

STMicro STM3240G-EVAL. This port uses the STMicro STM3240G-EVAL board featuring the STM32F407IGH6 MCU. Refer to the STMicro web site for further information about this board.

STATUS:

  • NuttX-6.12 The basic port is complete and first appeared in NuttX-6.12. The initial port passes the NuttX OS test and includes a validated configuration for the NuttShell (NSH, see NSH) as well as several other configurations.

  • NuttX-6.13-6.16 Additional drivers and configurations were added in NuttX 6.13-6.16. Drivers include an Ethernet driver, ADC driver, DAC driver, PWM driver, CAN driver, F4 RTC driver, Quadrature Encoder, DMA, SDIO with DMA (these should all be compatible with the STM32 F2 family and many should also be compatible with the STM32 F1 family as well).

  • NuttX-6.16 The NuttX 6.16 release also includes and logic for saving/restoring F4 FPU registers in context switches. Networking intensions include support for Telnet NSH sessions and new configurations for DHPCD and the networking test (nettest).

  • NuttX-6.17 The USB OTG device controller driver, and LCD driver and a function I2C driver were added in NuttX 6.17.

  • NuttX-6.18 STM32 IWDG and WWDG watchdog timer drivers were added in NuttX 6.18 (should be compatible with F1 and F2). An LCD driver and a touchscreen driver for the STM3240G-EVAL based on the STMPE811 I/O expander were also added in NuttX 6.18.

  • NuttX-6.21 A USB OTG host controller driver was added in NuttX 6.21.

  • NuttX-7.3 Support for the Olimex STM32 H405 board was added in NuttX-7.3.

  • NuttX-7.14 Support for the Olimex STM32 H407 board was added in NuttX-7.14.

  • NuttX-7.17 Support for the Olimex STM32 E407 board was added in NuttX-7.17.

  • NuttX-7.19 Support for the Olimex STM32 P407 board was added in NuttX-7.19.

  • NuttX-7.21 Support for the MikroElektronika Clicker2 for STM32 (STM32 P405) board was added in NuttX-7.21.

  • NuttX-7.29 Support for the OmnibusF4 architecture (STM32 P405) board was added in NuttX-7.29.

Refer to the STM3240G-EVAL board README file for further information.

STMicro STM32F4-Discovery. This port uses the STMicro STM32F4-Discovery board featuring the STM32F407VGT6 MCU. The STM32F407VGT6 is a 168MHz Cortex-M4 operation with 1Mbit Flash memory and 128kbytes. The board features:

  • On-board ST-LINK/V2 for programming and debugging,

  • LIS302DL, ST MEMS motion sensor, 3-axis digital output accelerometer,

  • MP45DT02, ST MEMS audio sensor, omni-directional digital microphone,

  • CS43L22, audio DAC with integrated class D speaker driver,

  • Eight LEDs and two push-buttons,

  • USB OTG FS with micro-AB connector, and

  • Easy access to most MCU pins.

Support for the STM3F4DIS-BB base board was added in NuttX-7.5. This includes support for the serial communications via the on-board DB-9 connector, Networking, and the microSD card slot.

Refer to the STMicro web site for further information about this board and to

MikroElektronika Mikromedia for STM32F4. This is another board supported by NuttX that uses the same STM32F407VGT6 MCU as does the STM32F4-Discovery board. This board, however, has very different on-board peripherals than does the STM32F4-Discovery:

  • TFT display with touch panel,

  • VS1053 stereo audio codec with headphone jack,

  • SD card slot,

  • Serial FLASH memory,

  • USB OTG FS with micro-AB connector, and

  • Battery connect and batter charger circuit.

See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port.

Olimex STM32 H405. Support for the Olimex STM32 H405 development board was contributed by Martin Lederhilger and appeared in NuttX-7.3. See the NuttX board README file for further information about the NuttX port.

Olimex STM32 H407. Support for the Olimex STM32 H407 development board was contributed by Neil Hancock and appeared in NuttX-7.14. See the NuttX board README file for further information about the NuttX port.

Olimex STM32 E407. Support for the Olimex STM32 E407 development board was contributed by Mateusz Szafoni and appeared in NuttX-7.17. Networking configurations were added in NuttX-7.18. See the NuttX board README file for further information about the NuttX port.

Olimex STM32 P407. Support for the Olimex STM32 P407 development board appeared in NuttX-7.19. See the NuttX board README file for further information about the NuttX port.

MikroElektronika Clicker2 for STM32. This is yet another board supported by NuttX that uses the same STM32F407VGT6 MCU as does the STM32F4-Discovery board. This board has been used primarily with the MRF24J40 Click board for the development of IEEE 802.15.4 MAC and 6LoWPAN support.

See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port.

OmnibusF4. Initial support for the OmnibusF4 family of flight management units was contributed by Bill Gatliff in NuttX-7.29. “OmnibusF4” is not a product name per se, but rather a design specification that many product vendors adhere to. The specification defines the major components, and how those components are wired into the microcontroller. Airbot is one such vendor. They publish a schematic. Other software that supports the OmnibusF4 family include Betaflight, iNAV, and many others. PX4 recently added support as well, also based on NuttX. No code from those resources is included in this port. The OmnibusF4 specification mandates the InvenSense MPU6000 which is included in NuttX-7.29 along with a driver for the MAX7546 OSD.

STMicro STM32 F427/F437

General architectural support was provided for the F427/437 family in NuttX 6.27. Specific support includes the STM32F427I, STM32F427Z, and STM32F427V chips. This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publicly available boards is included. This support was contributed by Mike Smith.

The F427/437 port adds (1) additional SPI ports, (2) additional UART ports, (3) analog and digital noise filters on the I2C ports, (4) up to 2MB of flash, (5) an additional lower-power mode for the internal voltage regulator, (6) a new prescaling option for timer clock, (7) a larger FSMSC write FIFO, and (8) additional crypto modes (F437 only).

Axlotoi. In NuttX-7.31, Jason Harris contributed support for the Axloti board. That is the board for the Axoloti open source synthesizer board featuring the STM32F427IGH6 MCU The STM32F427IGH6 has a 180MHz Cortex-M4 core with 1MiB Flash memory and 256KiB of SRAM The Axloti board features:

  • ADAU1961 24-bit 96 kHz stereo CODEC

  • 1/4” in/out jacks for analog audio signals

  • 3.5 mm jack for analog audio signals

  • 8 MiB of SDRAM (Alliance Memory AS4C4M16SA)

  • Serial MIDI in/out ports

  • SD Card slot

  • Two user LEDs and one (GPIO) push-button

  • USB OTG FS with Micro-AB connector (USB device mode operation)

  • USB OTG HS with Type-A connector (USB host mode operation)

  • Easy access to most IO pins

Refer to Axloti website for further information about this board.

STMicro STM32 F429

Support for STMicro STM32F429I-Discovery development board featuring the STM32F429ZIT6 MCU was contributed in NuttX-6.32 by Ken Pettit. The STM32F429ZIT6 is a 180MHz Cortex-M4 operation with 2Mbit Flash memory and 256kbytes.

STATUS:

  • The initial release included support from either OTG FS or OTG HS in FS mode.

  • The F429 port adds support for the STM32F439 LCD and OTG HS (in FS mode).

  • In Nutt-7.6, Brennan Ashton added support for concurrent OTG FS and OTG HS (still in FS mode) and Marco Krahl added support for an SPI-based LCD .

  • In Nutt-7.7, Marco Krahl included support for a framebuffer based driver using the LTDC and DMA2D. Marcos’s implementation included extensions to support more advance LTDC functions through an auxiliary interface.

  • Support for the uVision GCC IDE added for theSTM32F429I-Discovery board in NuttX 7.16. From Kha Vo.

Refer to the STM32F429I-Discovery board README file for further information.

STMicro STM32 F433

Architecture-only support for the STM32 F433 family was contributed by Alan Carvalho de Assis in NuttX-7.22 (meaning that the parts are supported, but there is no example board supported in the system). This support was contributed by David Sidrane and made available in NuttX-7.11.

STMicro STM32 F446

Architecture-only support is available for the STM32 F446 family (meaning that the parts are supported, but there is no example board supported in the system). This support was contributed by David Sidrane and made available in NuttX-7.11.

STMicro STM32 F46xx

Architecture-only support is available for the STM32 F46xx family (meaning that the parts are supported, but there is no example board supported in the system). This support was contributed by Paul Alexander Patienc and made available in NuttX-7.15.

STMicro STM32 G474x

One board is supported in this family:

  • B-G474E-DPOW1 Discovery Kit. Initial board support for the STMicro B-G474E-DPOW1 board from ST Micro was added in NuttX-9.1. See the STMicro website and the board README file for further information.

Status:

NuttX-9.1. Initial support for booting NuttX to a functional NSH prompt on this board.

STMicro STM32 G431x

One board is supported in this family:

  • Nucleo-G431RB. Initial board support for the Nucleo-G431RB was added in NuttX-10.0. Refer to the NuttX board README file for further information.

  • B-G431B-ESC1. Initial board support for the B-G431B-ESC1 was added in NuttX-10.0. Refer to the NuttX board README file for further information.

STMicro STM32 L475

One board in supported in this family:

  • B-L475E-IOT01A Discovery Kit. Board support for the STMicro B-L475E-IOT01A board from ST Micro was contributed by Simon Piriou in NuttX-7.22. See the STMicro website and the board README file for further information.

    This board STMicro is powered by STM32L475VG Cortex-M4 and targets IoT nodes with a choice of connectivity options including WiFi, Bluetooth LE, NFC, and sub-GHZ RF at 868 or 915 MHz, as well as a long list of various environmental sensors.

Status:

NuttX-7.22. The initial board support was released. Since this board is highly compatible with the related, more mature STM32 L4 parts, it is expected that there is a high degree of compatibility and with those part.

This board has been used extensive to develop NuttX PktRadio support for the onboard Spirit1 radio (SPSGRF-915) radio. 6LoWPAN radio communications are fully supported in point-to-point and in star topologies.

Simon Pirou also contributed support for the on-board Macronix QuadSPI FLASH in NuttX 7.22.

STMicro STM32 L476

Three boards are supported in this family:

  • Nucleo-L476RG. Board support for the STMicro NucleoL476RG board from ST Micro was contributed by Sebastien Lorquet in NuttX-7.15. See the STMicro website and the board README file for further information.

  • STM32L476VG Discovery. Board support for the STMicro STM32L476VG Discovery board from ST Micro was contributed by Dave in NuttX-7.15. See the STMicro website and the board README file for further information.

  • STM32L476 MDK. Very basic support for NuttX on the Motorola Moto Z MDK was contributed by Jim Wylder in NuttX 7.18. A simple NSH configuration is available for the STM32L476 chip. See the board README file for further information.

Status:

NuttX-7.15. Only the first initial release of support for this family is present. It includes these basics:

  • RCC, clocking, Interrupts, System timer

  • UART, USART, Serial Console

  • GPIO, DMA, I2C, RNG, SPI

NuttX-7.16. Additional drivers were contributed:

  • QSPI with DMA and memory mapped support. From Dave (ziggurat29).

  • CAN contributed by Sebastien Lorquet.

  • I2C made functional by Dave (ziggurat29).

NuttX-7.17. Additional drivers/features were contributed:

  • Support for tickless mode.

  • CAN driver enhancements.

NuttX-7.18. Additional drivers were contributed:

  • Oneshot timer driver.

  • Quadrature encode contributed by Sebastien Lorquet.

NuttX-7.20. Additional drivers were added:

  • Serial Audio Interface (SAI).

  • Power Management.

  • LPTIM.

  • Comparator (COMP).

NuttX-7.21. Additional drivers were added:

  • Internal Watchdog (IWDG).

NuttX-7.22.

  • DAC and ADC drivers were contributed by Juha Niskanen.

NuttX-7.30.

  • Added USB FS device driver, CRS and HSI38 support from Juha Niskanen.

NuttX-8.2.

Add DMA support for STM32L4+ series. From Jussi Kivilinna.

Add support for LPTIM timers on the STM32L4 as PWM outputs. From Matias N.

Enable OTGFS for STM32L4+ series. The OTGFS peripheral on stm32l4x6 and stm32l4rxxx reference manual is exactly the same. From Jussi Kivilinna.

STMicro STM32 L4x2

Architecture support for STM32 L4x2 family was contributed by Juha Niskanen in NuttX-7.21. Support was extended for the STM32L412 and STM32L422 chips in NuttX-7.27. Two boards are currently supported.

  • Nucleo-L432KC. Board support for the STMicro Nucleo-L432KC board from ST Micro was contributed by JSebastien Lorquet in NuttX-7.21. See the STMicro website and the board README file for further information.

  • Nucleo-L452RE. Board support for the STMicro Nucleo-L452RE board from ST Micro was contributed by Juha Niskanen in NuttX-7.21. See the STMicro website and the board README file for further information.

See also the status above for the STM32 L476 most of which also applies to these parts.

STMicro STM32 L496

Architecture support for STM32 L496 was contributed by Juha Niskanen along with board support for the Nucleo-L496ZG in NuttX-7.21:

  • Nucleo-L496ZG. Board support for the STMicro Nucleo-L496ZG board from ST Micro was contributed by Juha Niskanen in NuttX-7.21. See the STMicro website and the board README file for further information. See also the status above for the STM32 L476 most of which also applies to this part.

STMicro STM32 L4Rx

Architecture support for STM32 L4+ family was contributed by Juha Niskanen along with board support for the STM32L4R9I-Discovery in NuttX-7.26. Additional support for the STM32L4R5ZI part was added by Jussi in NuttX-8.2.

  • STM32L4R9I-Discovery. Board support for the STMicro STM32L4R9I-Discovery board from ST Micro was contributed by Juha Niskanen in NuttX-7.26. That development board uses the STM32L4R9AI part. See the STMicro website and the board README file for further information. See also the status above for the opther STM32 L4 parts, most of which also applies to this part.

NXP LPC40xx

The LPC40xx family is very similar to the LPC17xx family except that it features a Cortex-M4F versus the LPC17xx’s Cortex-M3. Architectural support for the LPC40xx family was built on top of the existing LPC17xx by jjlange in NuttX-7.31. With that architectural support came support for two boards also contributed by jjlange:

LX CPU. Pavel Pisa add support for the PiKRON LX CPU board. This board may be configured to use either the LPC4088 or the LPC1788.

Driver Status.

NXP LPC43xx

Several board ports are available for this higher end, NXP Cortex-M4F part:

NXG Technologies LPC4330-Xplorer. This NuttX port is for the LPC4330-Xplorer board from NGX Technologies featuring the NXP LPC4330FET100 MCU. See the NXG website for further information about this board.

  • STATUS: Refer to the NuttX board README file for more detailed information about this port.

  • NuttX-6.20 The basic LPC4330-Xplorer port is complete. The basic NuttShell (NSH) configuration is present and fully verified. This includes verified support for: SYSTICK system time, pin and GPIO configuration, and a serial console.

NXP/Embest LPC4357-EVB. This NuttX port is for the LPC4357-EVB from NXP/Embest featuring the NXP LPC4357FET256 MCU. The LPC4357 differs from the LPC4330 primarily in that it includes 1024KiB of on-chip NOR FLASH. See the NXP website for more detailed information about the LPC4357 and the LPC4357-EVB.

  • STATUS: Refer to the NuttX board README file for more detailed information about this port.

  • NuttX-7.6. The basic port is was contributed by Toby Duckworth. This port leverages from the LPC4330-Xplorer port (and, as of this writing, still requires some clean up of the technical discussion in some files). The basic NuttShell (NSH) configuration is present and has been verified. Support is generally the same as for the LPC4330-Xplorer as discussed above.

NXP LPC4370-Link2. This is the NuttX port to the NXP LPC4370-Link2 development board featuring the NXP LPC4370FET100 MCU.

  • STATUS: Refer to the NuttX board README file for more detailed information about this port.

  • NuttX-7.12 The NXP LPC4370-Link2 port is was contributed by Lok Tep and first released in NuttX-7.12.

WaveShare LPC4337-WS. This is the NuttX port to the WaveShare LPC4337-WS development board featuring the NXP LPC4337JBD144 MCU.

  • STATUS: Refer to the NuttX board README file for more detailed information about this port.

  • NuttX-7.14 The NXP WaveShare LPC4337-WS port is was contributed by Lok Tep and first released in NuttX-7.14.

  • NuttX-7.16 Support for the LPC4337JET100 chip was contribed by Alexander Vasiljev. Alexander also contributed an LPC43xx AES driver available in NuttX-7.16.

Driver Status.

  • NuttX-6.20 Several drivers have been copied from the related GPDMA, I2C, SPI, and SSP. The registers for these blocks are the same in both the LPC43xx and the LPC17xx and they should integrate into the LPC43xx very easily by simply adapting the clocking and pin configuration logic.

    Other LPC17xx drivers were not brought into the LPC43xx port because these peripherals have been completely redesigned: CAN, Ethernet, USB device, and USB host.

    So then there is no support for the following LPC43xx peripherals: SD/MMC, EMC, USB0,USB1, Ethernet, LCD, SCT, Timers 0-3, MCPWM, QEI, Alarm timer, WWDT, RTC, Event monitor, and CAN.

    Some of these can be leveraged from other MCUs that appear to support the same peripheral IP:

    • The LPC43xx USB0 peripheral appears to be the same as the USB OTG peripheral for the LPC31xx. The LPC31xx USB0 device-side driver has been copied from the LPC31xx port but also integration into the LPC43xx (clocking and pin configuration). It should be possible to complete porting of this LPC31xx driver with a small porting effort.

    • The Ethernet block looks to be based on the same IP as the STM32 Ethernet and, as a result, it should be possible to leverage the NuttX STM32 Ethernet driver with a little more effort.

  • NuttX-6.21 Added support for a SPIFI block driver and for RS-485 option to the serial driver.

  • NuttX-7.17 EMC support was extended to include support SDRAM by Vytautas Lukenska.

  • NuttX-7.23 A CAN driver was contributed by Alexander Vasiljev in NuttX-7.23.

  • NuttX-7.24 RTC and Windowed Watchdog Timer (WWDT) drivers were leveraged from the LPC17 and contributed by Gintaras Drukteinis. Leveraged the LPC54xx SD/MMC to the LPC43xx. There are still remaining issues with the SD/MMC driver and it is not yet functional.

NXP LPC54xx

A port to the LPCXpresso-LPC54628 was added in NuttX-7.24. Initial configurations include: A basic NSH configuration (nsh), a networking configuration (netnsh), and three graphics configurations (nxwm, fb, and lvgl).

LPC4508. The port was verified on an LPC5408 by a NuttX user with relevant changes incorporated in NuttX-7.26.

Driver Status.

  • NuttX-7.24 The initial release for the LPC54xx in NuttX included the following drivers: UARTs, SysTick, SD/MMC, DMA, GPIO, GPIO interrupts, LEDs and buttons, LCD, WWDT, RTC, RNG, Ethernet, and SPI. The SPI driver is untested and there are known issues with the SD/MMC driver, however.

  • NuttX-7.29 Configurations were added to verify the “Per-Window Framebuffer” feature also added in NuttX-7.29.

Refer to the LPCXpresso-LPC54628 board README file for more detailed information about this port.

NXP S32K14x

Support for the S32K14x family was added in NuttX-8.1. Two boards are supported

  • S32K146EVB. A port to the S32K146EVB was included in NuttX-8.1. The initial release supports two full-featured NSH configurations. Refer to the S32K146EVB board README file for more detailed information about this port.

  • S32K148EVB. A port to the S32K148EVB was also provided in NuttX-8.1. The initial release supports two full-featured NSH configurations. Refer to the S32K148EVB board README file for more detailed information about this port.

Both boards featured two NSH configurations: One for execution out of FLASH and a safe version that executes out of SRAM and, hence, cannot lock up the system because of a bad FLASH image.

Driver Status.

  • NuttX-8.1 The initial release for the S32K14x boards in NuttX included the following verfied drivers: Basic boot up logic, clock configuration, LPUART console, Systick timer, and GPIO controls. Additional complete-but-unverified drivers were also included: GPIO interrupts, eDMA, LPSPI, LPI2C, and Ethernet (S32K148 only).

TI/Stellaris LM4F120x

This port uses the TI Stellaris LM4F120 LaunchPad. Jose Pablo Carballo and I are doing this port.

TI/Tiva TM4C123G

This port uses the Tiva C Series TM4C123G LaunchPad Evaluation Kit (EK-TM4C123GXL).

TI Tiva TM4C123H. Architectural support for the Tiva TM4C123AH6PM was contributed in NuttX-8.1 by Nathan Hartman.

STATUS:

  • NuttX-7.1. Initial architectural support for the EK-TM4C123GXL was implemented and was released in NuttX 7.1. Basic board support the EK-TM4C123GXL was also included in that release but was not fully tested. This basic board support included a configuration for the NuttShell NSH).

  • NuttX-7.2. The fully verified port to the EK-TM4C123GXL was provided in NuttX-7.2.

  • NuttX-7.7. An I2C driver was added in NuttX-7.7.

  • NuttX-8.1. Along with TM4C123AH6PM support, Nathan Hartman also reinstated and extended the Tiva Quadrature Encoder driver.

TI/Tiva TM4C1294

This port uses the TI Tiva C Series TM4C1294 Connected LaunchPad (EK-TM4C1294XL).

STATUS:

  • Support for the EK-TM4C1294XL was contributed by Frank Sautter and was released in NuttX 7.9. This basic board support included a configuration for the NuttShell NSH) and a configuration for testing IPv6. See drivers for the TI Tiva TM4C129X.

  • FLASH and EEPROM drivers from Shirshak Sengupta were included in NuttX-7.25.

Refer to the EK-TM4C1294XL board README file for more detailed information about this port.

TI/Tiva TM4C129X

This port uses the TI Tiva C Series TM4C129X Connected Development Kit (DK-TM4C129X).

STATUS:

  • A mature port to the DK-TM4C129X was implemented and was released in NuttX 7.7.

  • At the initial release, verified drivers were available for Ethernet interface, I2C, and timers as well as board LEDs and push buttons. Other Tiva/Stellaris drivers should port to the TM4C129X without major difficulty.

  • This board supports included two configurations for the NuttShell (NSH). Both are networked enabled: One configured to support IPv4 and one configured to supported IPv6. Instructions are included in the board README file for configuring both IPv4 and IPv6 simultaneously.

  • Tiva PWM and Quadrature Encoder drivers were contributed to NuttX in 7.18 by Young.

Refer to the DK-TM4C129X board README file for more detailed information about this port.

Microchip SAM4L

This port uses the Microchip SAM4L Xplained Pro development board. This board features the ATSAM4LC4C MCU running at 48MHz with 256KB of FLASH and 32KB of internal SRAM.

STATUS: As of this writing, the basic port is code complete and a fully verified configuration exists for the NuttShell NSH). The first fully functional SAM4L Xplained Pro port was released in NuttX-6.28. Support for the SAM4L Xplained modules was added in NuttX-6.29:

  • Support for the SPI-based SD card on the I/O1 module.

  • Driver for the LED1 segment LCD module.

  • Support for the UG-2832HSWEG04 OLED on the SAM4L Xplained Pro’s OLED1 module

Refer to the NuttX board README file for further information.

Memory Usage. The ATSAM4LC4C comes in a 100-pin package and has 256KB FLASH and 32KB of SRAM. Below is the current memory usage for the NSH configuration (June 9, 2013). This is not a minimal implementation, but a full-featured NSH configuration.

Static memory usage can be shown with size command:

NuttX, the NSH application, and GCC libraries use 42.6KB of FLASH leaving 213.4B of FLASH (83.4%) free from additional application development. Static SRAM usage is about 2.3KB (<7%) and leaves 29.7KB (92.7%) available for heap at runtime.

SRAM usage at run-time can be shown with the NSH free command. This runtime memory usage includes the static memory usage plus all dynamic memory allocation for things like stacks and I/O buffers:

You can see that 22.8KB (71.1%) of the SRAM heap is still available for further application development while NSH is running.

Microchip SAM4CM

General architectural support was provided for SAM4CM family in NuttX 7.3 This was architecture-only support, meaning that support for the boards with these chips is available, but no support for any publicly available boards was included. The SAM4CM port should be compatible with most of the SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on hardware as of this writing. This support was contributed in part by Max Neklyudov.

Microchip SAM4CMP-DB. Support for the SAM4CMP-DB board was contributed to NuttX by Masayuki Ishikawa in NuttX-7.19. The SAM4CM is a dual-CPU part and SMP was included for the ARMv7-M and SAM3/4 families. The SAM4CMP-DB board support includes an NSH configuration that operates in an SMP configuration. Refer to the NuttX board README file for further information.

Microchip SAM4E

General architectural support was provided for the SAM4E family in NuttX 6.32. This was architecture-only support, meaning that support for the boards with these chips is available, but no support for any publicly available boards was included. This support was contributed in part by Mitko.

Microchip SAM4E-EK. Board support was added for the SAM4E-EK development board in NuttX 7.1. A fully functional NuttShell (NSH) configuration is available (see NSH). That NSH configuration includes networking support and support for an AT25 Serial FLASH file system.

Microchip SAM4S

There are ports to two Microchip SAM4S board:

  • There is a port the Microchip SAM4S Xplained development board. This board features the ATSAM4S16 MCU running at 120MHz with 1MB of FLASH and 128KB of internal SRAM.

  • There is also a port to the Microchip SAM4S Xplained Pro development board. This board features the ATSAM4S32C MCU running at 120MHz with 2MB of FLASH and 160KB of internal SRAM.

Microchip SAM4E. General architectural support was provided for the SAM4E family in NuttX 6.32. This was architecture-only support, meaning that support for the boards with these chips is available, but no support for any publicly available boards was included. This support was contributed in part by Mitko.

Microchip SAM4E-EK. Board support was added for the SAM4E-EK development board in NuttX 7.1. A fully functional NuttShell (NSH) configuration is available (see NSH). That NSH configuration includes networking support and support for an AT25 Serial FLASH file system.

Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU Cortex-M3 or 4 toolchain, 3) Cygwin/MSYS with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package.

ARM Cortex-M7

Microchip SAMV71

This port uses Microchip SAM V71 Xplained Ultra Evaluation Kit (SAMV71-XULT). This board features the ATSAMV71Q21 Cortex-M7 microcontroller. Refer to the Microchip web site for further information about this board.

STATUS: The basic port is complete and there are several different, verified configurations available. All configurations use the NuttShell (NSH) and a serial console. The first release of the SAMV71-XULT port was available in NuttX-7.9. Support for the connect maXTouch Xplained Pro LCD as added in NuttX-7.10.

Additional drivers, with status as of 2015-04-03, include:

  • PIO configuration, including PIO interrupts,

  • On-board LEDs and buttons,

  • DMA,

  • SDRAM (not yet functional),

  • UART/USART-based serial drivers, including the NuttShell serial console,

  • High Speed Memory Card Interface (HSMCI) with support for the on board SD card slot,

  • SPI (not fully tested),

  • TWIHS/I2C, with the support for the on-board serial EEPROM,

  • SSC/I2S (not fully tested),

  • Ethernet MAC,

  • USB device controller driver (complete, partially functional, but not well tested).

  • On-board AT24 I2C EEPROM.

  • On-board WM8904 Audio CODEC with CS2100-CP Fractional-N Multiplier (not yet tested).

  • Support for the (optional) maXTouch Xplained Pro LCD module.

Additional Drivers added in NuttX-7.11 include:

  • MCAN CAN device driver (fully verified in loopback mode only).

  • SPI slave driver.

Additional Drivers added in NuttX-7.13 include:

  • MPU and protected build mode support.

  • Timer/Counter driver, one-shot timer, free-running timer support.

  • Tickless mode of operation.

  • QuadSPI driver.

  • Support for programming on-chip FLASH.

And in NuttX-7.14:

  • TRNG driver,

  • WDT driver, and

  • RSWDT driver.

Refer to the NuttX board README file for further information.

Microchip SAME70

This port uses Microchip SAM E70 Xplained Evaluation Kit (ATSAME70-XPLD). This board is essentially a lower cost version of the SAMV71-XULT board featuring the ATSAME70Q21 Cortex-M7 microcontroller. See the Microchip SAMV71 for supported features. Also refer to the NuttX board README file for further information.

Microchip SAMD5x/E5x

The port of NuttX to Adafruit Metro M4 development board was released with NuttX-7/26. This board is essentially a advanced version of the Adafruit Metro board based on the SAMD21, but upgraded to the SAMD51, specifically the SAMD51J19. See the Adafruit web page for additional information about the board.

A fully-function, basic NuttShell (NSH) configuration was was available in this initial NuttX-7.26 release. That initial port verifies clock configuration boot-up logic, SysTick timer, and SERCOM USART for the serial console. The NSH configuration also includes use of the Cortex-M Cache Controller (CMCC) which give the SAMD51’s Cortex-M4 a performance boost.

Because of the similarity in peripherals, several drivers were brought in from the SAML21 port. Most have not been verified as of the NuttX-7.26 release. These unverfied drivers include: SPI, I2C, DMA, USB. Also refer to the NuttX board README file for further information about the current state of the port.

NuttX-9.0 added basic support for Microchip SAME54 Xplained Pro board. An ethernet driver was also added to the SAME5x family.

STMicro STM32 F72x/F73x

Support for the F72x/F73x family was provided by Bob Feretich in NuttX-7.23. A single board is supported in this family:

STATUS: See below for STM32 F7 driver availability.

STMicro STM32 F745/F746

Three boards are supported for this MCU:

  1. STM32F746G Discovery. One port uses the STMicro STM32F746G-DISCO development board featuring the STM32F746NGH6 MCU. The STM32F746NGH6 is a 216MHz Cortex-M7 operation with 1024Kb Flash. The first release of the STM32F746G_DISCO port was available in NuttX-7.11. Refer to the STMicro web site for further information about this board.

  2. Nucleo-144 board with STM32F746ZG. A basic port for the Nucleo-144 board with the STM32F746ZG MCU was contributed in NuttX-7.16 by Kconstantin Berezenko.

STM32 F7 Driver Status:

  • NuttX-7.11. Serial driver and Ethernet driver support, along with DMA support, were available in this initial release. The STM32 F7 peripherals are very similar to some members of the STM32 F4 and additional drivers can easily be ported the F7 as discussed in this Wiki page: Porting Drivers to the STM32 F7

  • NuttX-7.17. David Sidrane contributed PWR, RTC, BBSRAM, and DBGMCU support. Lok Tep contribed SPI, I2c, ADC, SDMMC, and USB device driver support.

  • NuttX-7.22. Titus von Boxberg also contributed LTDC support for the onboard LCD in NuttX-7.22.

  • NuttX-7.29. In NuttX-7.29, Valmantas Paliksa added a timer lowerhalf driver for STM32F7, ITM syslog support, a CAN driver with support for three bxCAN interfaces, and STM32F7 Quad SPI support. Support for DMA and USB OTG was added by Mateusz Szafoni in NuttX-7.29.

  • NuttX-7.30. From Eduard Niesner contributed a PWM driver. Added UID access from Valmantas Paliksa. USB High speed driver was added for STM32F7 series by Ramtin Amin.

  • NuttX-9.0. Added serial DMA support.

STMicro STM32 F756

Architecture-only support is available for the STM32 F756 family (meaning that the parts are supported, but there is no example board supported in the system). This support was made available in NuttX-7.11. See above for STM32 F7 driver availability.

STMicro STM32 F76xx/F77xx

Architecture support for the STM32 F76xx and F77xx families was contributed by David Sidrane in NuttX 7.17. Support is available for two boards from this family:

  • Nucleo-F767ZI. This is a member of the Nucleo-144 board family. Support for this board was also contributed by David Sidrane in NuttX-7.17. See the board README.txt file for further information.

  • STM32F76I-DISCO. Support for the STM32F76I-DISCO was contributed by Titus von Boxberg in NuttX-7.22. The STMicro STM32F769I-DISCO development board features the STM32F769NIH6 MCU. The STM32F769NIH6 is a 216MHz Cortex-M7 operating with 2048K Flash memory and 512Kb SRAM. The board features:

    • On-board ST-LINK/V2 for programming and debugging,

    • Mbed-enabled (mbed.org)

    • 4-inch 800x472 color LCD-TFT with capacitive touch screen

    • SAI audio codec

    • Audio line in and line out jack

    • Two ST MEMS microphones

    • SPDIF RCA input connector

    • Two pushbuttons (user and reset)

    • 512-Mbit Quad-SPI Flash memory

    • 128-Mbit SDRAM

    • Connector for microSD card

    • RF-EEPROM daughterboard connector

    • USB OTG HS with Micro-AB connectors

    • Ethernet connector compliant with IEEE-802.3-2002 and PoE

    Refer to the http://www.st.com website for further information about this board (search keyword: stm32f769i-disco). See also the board README.txt file for further information.

STATUS: See above for STM32 F7 driver availability.

STMicro STM32 H7x3

Architecture support for the STM32 H7x3 was added through efforts of several people in NuttX-7.26. Support is available for one board from this family:

  • Nucleo-H743ZI. This is a member of the Nucleo-144 board family. Support for this board was added in NuttX-7.26. See the board README.txt file for further information.

    The basic NSH configuration is fully, thanks to the bring-up efforts of Mateusz Szafoni. This port is still a work in progress and additional drivers are being ported from the F7 family.

  • STMicro STM32H747I-DISCO. Support for this board was added in NuttX-9.0. See the board README.txt file for further information.

    This port is still a work in progress.

NuttX-7.30. Added support for Ethernet, SDMMC, and Timer drivers. All from Jukka Laitinen.

NuttX-8.1. Added support for BBSRAM, DTCM, RTC, and UID. All from David Sidrane.

NuttX-8.2. Added support for SDMMC and FLASH progmem. From David Sidrane.

NuttX-9.0. Added QSPI support for the STM32H7.

NXP/Freescale i.MX RT

The initial port to the IMXRT1050-EVKB featuring the MIMXRT1052DVL6A Crossover MCU was included initially in NuttX-7.25. The initial port was the joint effort of Janne Rosberg, Ivan Ucherdzhiev, and myself. Ivan gets credit for the bulk of the bring-up work and for the Hyper FLASH boot logic.

Another port, this one for the IMXRT1060-EVKB featuring the MIMXRT1062DVL6A Crossover MCU, was added by David Sidrane in NuttX-7.27.

STATUS:

  • The basic IMXRT1050-EVK port is complete and verified configurations are available. Refer to the NuttX board README file for further information.

  • The basic IMXRT1060-EVK port was complete but un-verified as of NuttX-7.27 but has been fully verified since NuttX-7.27 Refer to the NuttX board README file for more current status information.

  • Architecture-only support for the IMXRT1020 family was contributed in NuttX-7.30 by Dave Marples.

  • The basic IMXRT1020-EVK port was complete with verified configurations in NuttX-8.2. This is again the work of Dave Marples. The initial release includes nsh, netnsh, and usdhc configurations. Refer to the NuttX board README file for further information.

  • The basic Teensy-4.x port is complete. Refer to the NuttX board README file for further information.

i.MX RT Driver Status:

  • NuttX-7.25. The initial release in NuttX-7.25 includes UART, Timer, GPIO, DMA, and Ethernet support (Ethernet support was contributed by Jake Choy).

  • NuttX-7.26. NuttX-7.26 added RTC, SNVS, and Serial TERMIOS support.

  • NuttX-7.27. NuttX-7.27 added LPI2C (from Ivan Ucherdzhiev) and SD card support via USDHC (from Dave Marples).

  • NuttX-7.28. GPIO support Input daisy selection was added in NuttX-7.28 by David Sidrane

  • NuttX-7.29. XBAR and OCOTP support was added in NuttX-7.28 by David Sidrane. LCD Framebuffer support was added by Johannes.

  • NuttX-7.31. USB EHCI Host and USDHC drivers were added in NuttX-7.31 by Dave Marples.

  • NuttX-8.2. An LCD drivers was added in NuttX-8.2 by Fabio Balzano.

    NuttX-9.0. Added USB Device support.

Development Environments: The same basic development environment is recommended for the Cortex-M7 as for the Cortex-M4. It would be wise to use the latest GNU toolchains for this part because as of this writing (2015-02-09), support for the Cortex-M7 is a very new GCC feature.

Microchip AVR

AVR ATMega

AVR ATMega128

This port of NuttX to the Amber Web Server from SoC Robotics is partially completed. The Amber Web Server is based on an Microchip ATMega128.

AVR ATMega1284P

LowPowerLab MoteinoMEGA. This port of NuttX to the MoteinoMEGA from LowPowerLab. The MoteinoMEGA is based on an Microchip ATMega1284P. See the LowPowerlab website and the board README file for further information.

AVR ATMega2560

Extension of the AVR architecture to support the ATMega2560 and specifi support for the Arduion MEGA2560 board were contributed by Dimitry Kloper and first released in NuttX-7.14.

AVR AT90USB64x and AT90USB6128x

Micropendous 3 AT90USB64x and AT90USB6128x. This port of NuttX to the Opendous Micropendous 3 board. The Micropendous3 is 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: 64K of FLASH and 4K of SRAM.

PJRC Teensy++ 2.0 AT90USB1286. This is a port of NuttX to the PJRC Teensy++ 2.0 board. This board was developed by PJRC. The Teensy++ 2.0 is based on an Microchip AT90USB1286 MCU.

AVR-Specific Issues. The basic AVR port is solid. The biggest issue for using AVR is its tiny SRAM memory and its Harvard architecture. Because of the Harvard architecture, constant data that resides to flash is inaccessible using “normal” memory reads and writes (only SRAM data can be accessed “normally”). Special AVR instructions are available for accessing data in FLASH, but these have not been integrated into the normal, general purpose OS.

Most NuttX test applications are console-oriented with lots of strings used for printf() and debug output. These strings are all stored in SRAM now due to these data accessing issues and even the smallest console-oriented applications can quickly fill a 4-8K memory. So, in order for the AVR port to be useful, one of two things would need to be done:

  1. Don’t use console applications that required lots of strings. The basic AVR port is solid and your typical deeply embedded application should work fine. Or,

  2. Create a special version of printf that knows how to access strings that reside in FLASH (or EEPROM).

Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. All testing, however, has been performed using the NuttX DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. As a result, that toolchain is recommended.

Microchip AVR32

AV32DEV1. This port uses the www.mcuzone.com AVRDEV1 board based on the Microchip AT32UC3B0256 MCU. This port requires a special GNU avr32 toolchain available from atmel.com website. This is a windows native toolchain and so can be used only under Cygwin on Windows.

STATUS: This port is has completed all basic development, but there is more that needs to be done. All code is complete for the basic NuttX port including header files for all AT32UC3* peripherals. The untested AVR32 code was present in the 5.12 release of NuttX. Since then, the basic RTOS port has solidified:

  • The port successfully passes the NuttX OS test (apps/examples/ostest).

  • A NuttShell (NSH) configuration is in place (see NSH). Testing of that configuration has been postponed (because it got bumped by the Olimex LPC1766-STK port). Current Status: I think I have a hardware problem with my serial port setup. There is a good chance that the NSH port is complete and functional, but I am not yet able to demonstrate that. At present, I get nothing coming in the serial RXD line (probably because the pins are configured wrong or I have the MAX232 connected wrong).

The basic, port was be released in NuttX-5.13. A complete port will include drivers for additional AVR32 UC3 devices – like SPI and USB — and will be available in a later release, time permitting. Refer to the NuttX board README file for further information.

Misoc

Misoc LM32 Architectural Support. Architectural support for the Misoc LM32 was contributed by Ramtin Amin in NuttX 7.19

Minerva. Architectural support for the Misoc Minoerva was contributed by Ramtin Amin in NuttX 7.29.

Drivers. Driver support is basic in these initial releases: Serial, Timer, and Ethernet. “Board” support is a available for developing with Misoc LM32 under Qemu or on your custom FPGA.

OpenRISC mor1kx

OpenRISC mor1kx Architectural Support. Architectural support for the OpenRISC mor1kx was developed by Matt Thompson Amin and released in NuttX 7.25. Currently only an mor1kx Qemu simulation is available for testing.

Freescale M68HCS12

MC9S12NE64. Support for the MC9S12NE64 MCU and two boards are included:

  • The Freescale DEMO9S12NE64 Evaluation Board, and

  • The Future Electronics Group NE64 /PoE Badge board.

Both use a GNU arm-nuttx-elf toolchain* under Linux or Cygwin. The NuttX buildroot provides a properly patched GCC 3.4.4 toolchain that is highly optimized for the m9s12x family.

Intel 80x86

QEMU/Bifferboard i486. This port uses the QEMU i486 and the native Linux, Cygwin, MinGW the GCC toolchain under Linux or Cygwin.

STATUS: The basic port was code-complete in NuttX-5.19 and verified in NuttX-6.0. The port was verified using the OS and NuttShell (NSH) examples under QEMU. The port is reported to be functional on the Bifferboard as well. In NuttX 7.1, Lizhuoyi contributed additional keyboard and VGA drivers. This is a great, stable starting point for anyone interested in fleshing out the x86 port! Refer to the NuttX README file for further information.

QEMU/Intel64 An x86_64 flat address port was ported in NuttX-9.0. It consists of the following feautres:

    • Runs in x86_64 long mode.

    • Configurable SSE/AVX support.

    • IRQs are managed by LAPIC(X2APIC) and IOAPIC.

    • Used TSC_DEADLINE or APIC timer for systick.

    • Pages are now maps the kernel at 4GB~, but changeable.

This kernel with ostest have been tested with

  • Qemu/KVM on a Xeon 2630v4 machine.

  • Bochs with broadwell_ult emulation.

Microchip PIC32MX

(MIPS M4K architecture)

Microchip PIC32MX2xx

A port is in progress from the DTX1-4000L “Mirtoo” module from Dimitech. This module uses Microchip PIC32MX250F128D and the Dimitech DTX1-4000L EV-kit1 V2. See the Dimitech website for further information.

Microchip PIC32MX4xx

PIC32MX440F512H. This port uses the “Advanced USB Storage Demo Board,” Model DB-DP11215, from Sure Electronics. This board features the Microchip PIC32MX440F512H.

PIC32MX460F512L. There one two board ports using this chip:

  • PIC32MX Board from PCB Logic Design Co. This port is for the PIC32MX board from PCB Logic Design Co. and used the PIC32MX460F512L. The board is a very simple – little more than a carrier for the PIC32 MCU plus voltage regulation, debug interface, and an OTG connector.

  • UBW32 Board from Sparkfun This is the port to the Sparkfun UBW32 board. This port uses the original v2.5 board which is based on the Microchip PIC32MX460F512L. This older version has been replaced with this newer board. See also the UBW32 web site.

Microchip PIC32MX7xx

PIC32MX795F512L. There one two board ports using this chip:

  • Microchip PIC32 Ethernet Starter Kit. This port uses the Microchip PIC32 Ethernet Starter Kit (DM320004) with the Expansion I/O board. See the Microchip website for further information.

  • Mikroelektronika PIC32MX7 Mulitmedia Board (MMB). A port has been completed for the Mikroelektronika PIC32MX7 Multimedia Board (MMB). See http://www.mikroe.com/ for further information about this board.

Development Environment: These ports uses either:

  1. The LITE version of the PIC32MX toolchain available for download from the Microchip website, or

  2. The Pinguino MIPS ELF toolchain available from the Pinguino website.

  3. The MIPS SDE toolchain available from the Mentor Graphics website.

Microchip PIC32MZEC

PIC32MZEC Family (MIPS microAptiv). A port is in available for the PIC32MZ Embedded Connectivity (EC) Starter Kit. There are two configurations of the Microchip PIC32MZ EC Starter Kit:

  1. The PIC32MZ Embedded Connectivity Starter Kit based on the PIC32MZ2048ECH144-I/PH chip (DM320006), and

  2. The PIC32MZ Embedded Connectivity Starter Kit based on the PIC32MZ2048ECM144-I/PH w/Crypto Engine (DM320006-C).

See the Microchip website for further information.

This was a collaborative effort between Kristopher Tate, David Sidrane and myself. The basic port is functional and a NuttShell (NSH) configuration is available.

Microchip PIC32MZEF

(MIPS M5150 architecture).

A port is in available for the MikroElectronika Flip&Click PIC32MZ development board based on the PIC32MZ2048EFH100 MCU. This board configuration was added in NuttX-7.24 and is, for the most part, compatible with the PIC32MZEC family.

STATUS:

NuttX-7.9. The first official release was in NuttX-7.9. Many drivers port simply from the PIC32MX; others require more extensive efforts. Driver status as of (2015-03-29) is provided below:

  • I/O ports include I/O port interrupts

  • UART serial driver that provides the NSH console,

  • Timer,

  • I2C (untested),

  • SPI (untested),

  • On-board buttons and LEDs,

  • Ethernet (code complete, but not yet functional),

NuttX-7.29. Abdelatif Guettouche contributed additional timer support including: Timer lower half driver, free-running, and one-shot timers.

NuttX-7.31. Abdelatif Guettouche contributed DMA support.

NuttX-9.0. Cache operations were implemented.

Refer to the NuttX board README file for further information.

Development Environment: Same as for the PIC32MZ.

Renesas/Hitachi SuperH

SH-1 SH7032. This port uses the Hitachi SH-1 Low-Cost Evaluation Board (SH1_LCEVB1), US7032EVB, with a GNU ELF toolchain* under Linux or Cygwin.

Renesas M16C/26

Renesas M16C/26 Microcontroller. This port uses the Renesas SKP16C26 Starter kit and the GNU M32C toolchain. The development environment is either Linux or Cygwin under WinXP.

STATUS: Initial source files released in nuttx-0.4.2. At this point, the port has not been integrated; the target cannot be built because the GNU m16c-nuttx-elf-ld link fails with the following message:

Where the reference line is:

No workaround is known at this time. This is a show stopper for M16C. Refer to the NuttX board README file for further information.

Renesas RX65N

Support for the Renesas RX65N family was released in NuttX with a contribution from Anjana. Two boards are supported in this initial release:

  • RSK RX65N-2MB.

  • GR-Rose.

STATUS

  • NuttX-8.2

  • NuttX-9.0 RTC driver for the RX65N was added.

RISC-V

RISC-V Architectural Support. Basic support for the RISC-V architecture was contributed by Ken Pettit in NuttX-7.19.

Sipeed Maix bit

Initial support for the Sipeed Maix bit board was added in NuttX-9.0.

LiteX on ARTY A7

Support for the Digilent ARTY_A7 board along with CPU VexRiscV SOC were added in NuttX-9.0.

ESP32 (Dual Xtensa LX6)

Xtensa LX6 ESP32

Basic architectural support for Xtensa LX6 processors and the port for the Espressif ESP32 were added in NuttX-7.19. The basic ESP32 port is function in both single CPU and dual CPU SMP configurations.

Espressif ESP32 DevkitC V4 Board The NuttX release includes support for Espressif ESP32 DevkitC V4 board. There is an NSH configuration for each CPU configuration and an OS test configuration for verification of the port.

STATUS. ESP32 support in NuttX-7.19 is functional, but very preliminary. There is little yet in the way of device driver support. Outstanding issues include missing clock configuration logic, missing partition tables to support correct configuration from FLASH, and some serial driver pin configuration issues. The configuration is usable despite these limitations. Refer to the NuttX board README file for further information.

Release NuttX-10.0.0 brought a bunch of additions to the ESP32 port. This includes: I2C, SPI, RTC, PM, Timers, Watchdog Timer and Ethernet.

Zilog ZNEO Z16F

Zilog z16f2800100zcog development kit. This port use the Zilog z16f2800100zcog development kit and the Zilog ZDS-II Windows command line tools. The development environment is either Windows native or Cygwin under Windows.

STATUS: The initial release of support for the z16f was made available in NuttX version 0.3.7. A working NuttShell (NSH) configuration as added in NuttX-6.33 (although a patch is required to work around an issue with a ZDS-II 5.0.1 tool problem). An ESPI driver was added in NuttX-7.2. Refer to the NuttX board README file for further information.

Zilog eZ80 Acclaim!

Zilog eZ80Acclaim! Microcontroller. There are four eZ80Acclaim! ports:

  • The ZiLOG ez80f0910200kitg development kit.

  • The ZiLOG ez80f0910200zcog-d development kit.

  • The MakerLisp CPU board.

  • The Z20x DIY computing system.

All three boards are based on the eZ80F091 part and all use the Zilog ZDS-II Windows command line tools. The development environment is either Windows native or Cygwin or MSYS2 under Windows.

It is also possible to compile using clang and the GNU binutils toolchain. You must have a variant of clang that supports the eZ80, and an install of binutils built with Z80 support.

clang with eZ80 support is available as part of the Texas Instruments CE 85+ unofficial toolchain <https://ce-programming.github.io/toolchain/> and requires a further patch <https://github.com/codebje/ez80-toolchain/tree/master/clang> to support GNU assembler syntax.

GNU binutils supports the Z80 family. It will require compilation with appropriate configuration to enable support.

C intrinsics are also required. Some may be found in the Zilog ZDS-II distribution, requiring some modification to build with the GNU assembler. Additional intrinsics for 64-bit support must be supplied.

Zilog Z8Encore!

Zilog Z8Encore! Microcontroller. This port uses the either:

  • Zilog z8encore000zco development kit, Z8F6403 part, or

  • Zilog z8f64200100kit development kit, Z8F6423 part

and the Zilog ZDS-II Windows command line tools. The development environment is either Windows native or Cygwin under Windows.

STATUS: This release has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation as of nuttx-0.3.9. Refer to the NuttX board README files for the z8encore000zco and for thez8f64200100kit for further information.

Zilog Z180

P112. The P112 is a hobbyist single board computer based on a 16MHz Z80182 with up to 1MB of memory, serial, parallel and diskette IO, and realtime clock, in a 3.5-inch drive form factor. The P112 computer originated as a commercial product of “D-X Designs Pty Ltd”[ of Australia.

Dave Brooks was successfully funded through Kickstarter for and another run of P112 boards in November of 2012. In addition Terry Gulczynski makes additional P112 derivative hobbyist home brew computers.

STATUS: Most of the NuttX is in port for both the Z80182 and for the P112 board. Boards from Kickstarter project will not be available, however, until the third quarter of 2013. So it will be some time before this port is verified on hardware. Refer to the NuttX board README file for further information.

Zilog Z80

Z80 Instruction Set Simulator. This port uses the SDCC toolchain under Linux or Cygwin (verified using version 2.6.0). This port has been verified using only a Z80 instruction simulator called z80sim.

STATUS: This port is complete and stable to the extent that it can be tested using an instruction set simulator. Refer to the NuttX board README file for further information.

XTRS: TRS-80 Model I/III/4/4P Emulator for Unix. A very similar Z80 port is available for XTRS, the TRS-80 Model I/III/4/4P Emulator for Unix. That port also uses the SDCC toolchain under Linux or Cygwin (verified using version 2.6.0).

STATUS: Basically the same as for the Z80 instruction set simulator. This port was contributed by Jacques Pelletier. Refer to the NuttX board README file for further information.

NOTE: This port was removed from the NuttX source tree on 2017-11-24. It was removed because (1) it is unfinished, unverified, and unsupported, and (2) the TRS-80 simulation is a sub-optimal platform.i That platform includes a 16-bit ROM image and only a 48Kb RAM space for NuttX. The removed board support is still available in the Obsoleted repository if anyone would ever like to resurrect it.

* A highly modified buildroot is available that may be used to build a NuttX-compatible ELF toolchain under Linux or Cygwin. Configurations are available in that buildroot to support ARM, Cortex-M3, avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.