Table of Contents

The ARMv6-M Port

This port includes support for all devices using one of the following cores:

Port Features

The core supports the following features:

Preemption Modes

This port uses an highest priority exception for preemption handling, there are two possible choices.

Preemption Using NMI

This mode uses a software-triggered NMI for preemption, this solution has the advantage of freeing the whole IRQ priority range for applications because NMI has priority -1.

Preemption Using PendSV

By setting CORTEX_ALTERNATE_SWITCH to TRUE in chconf.h PendSV is used instead of NMI. PendSV is placed to priority level zero which becomes reserved. This is a fallback in case NMI is used for other things.

WFI Instruction Support

Setting CORTEX_ENABLE_WFI_IDLE to TRUE in chconf.h inserts a WFI instruction in the system idle tool. This can be used for advanced power management.