Home > Products > MPU-Plus

MPU-Plus®  ARM Cortex-M MPU Support

MPU-Plus® adds support for the ARM Cortex‑M Memory Protection Unit to SMX®, making it a Secure RTOS.

The MPU is the main means of hardware memory protection available for most Cortex-M processors that exist today. These processors are in widespread use in small- to medium-size embedded systems. Therefore it is important to use the MPU effectively in order to achieve the reliability, security, and safety that modern embedded systems require.

The purpose of MPU-Plus is to enhance the security of multitasking systems based upon the SMX RTOS. Setting up an MPU for a bare metal application is easy — just initialize the MPU once on power up. For a multitasking system, much more is needed. The main things MPU-Plus does to achieve better security are:

  • Allow defining different MPU images for each task and to handle MPU switching during task switches.
  • Provide a Supervisor Call (SVC) API to allow unprivileged code to call system services, as well as to limit which services can be called from such code.
  • Allow allocation of protected blocks and messages.
  • Run the SMX RTOS and system code in privileged mode and middleware and application code in unprivileged mode.
  • Allow tasks to be privileged or unprivileged.
  • Individually protect task stacks.
  • Map multiple I/O regions for a task in addition to code and data regions on MPUs which commonly have only 8 slots.
  • Use subregions on v7 MPU to mitigate memory waste caused by region size and alignment requirements.
  • Enhance smxAware debugger plugin to show MPU regions for each task in very readable form and regions in memory map graph.

Use of an MPU adds another dimension to software development that is different than the thought process used to write functional, correct code, and it will feel foreign to even an experienced developer who has not used an MPU before. Also, the Cortex-M v7 MPU has limitations that make it difficult to use. The primary goal of MPU-Plus is to make using the MPU as easy as possible, while offering as much protection as possible.

  • Adds strong security to existing and new products.
  • Per-task or task group isolation.
  • Supports privileged ptasks and unprivileged utasks.
  • SVC RTOS API for utasks with restricted services.
  • Direct RTOS API for ptasks with unrestricted services.
  • Dynamic regions for blocks and messages.
  • Debugger plugin displays for MPU.
  • Supports incrementally improving security.
  • Simple to use and effective protection.

We have put considerable effort into supporting the MPU well. The following article gives a good introduction and shows some of the depth of support.


For more information, please register or email sales@smxrtos.com.
Indicate your interest in MPU-Plus. Full documentation will be supplied under NDA to qualified prospects.

SMX RTOS Products Page

     back to top
  Register for More Info

SMX Modules