Porting Mynewt to a new CPU Architecture

A new CPU architecture typically requires the following:

  • A new compiler
  • New architecture-specific code for the OS
  • Helper libraries to help others porting to the same architecture

These are discussed below:

Create A New Compiler

NOTE: Newt does not automatically install the compilers require to build all platforms. Its up to the user using their local machines package manager to install the compilers. The step described here just registers the compiler with newt.

Create a new directory (named after the compiler you are adding). Copy the pkg.yml file from another compiler.

Edit the pkg.yml file and change the configuration attributes to match your compiler. Most are self-explanatory paths to different compiler and linker tools. There are a few configuration attributes worth noting.

Configuration Attributes Description
pkg.keywords Specific keywords to help others search for this using newt
compiler.flags.default default compiler flags for this architecture
compiler.flags.optimized additional flags when the newt tool builds an optimized image
compiler.flags.debug additional flags when the newt tool builds a debug image

Implement Architecture-specific OS code

There are several architecture-specific code functions that are required when implementing a new architecture. You can find examples in the sim architecture within Mynewt.

When porting to a new CPU architecture, use the existing architectures as samples when writing your implementation.

Please contact the Mynewt development list for help and advice portingto new MCU.