| 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. |