This is an agreement between Micro Digital, Inc. (“MDI”) located at 2900 Bristol Street, Suite G204, Costa Mesa, California, USA and “Licensee” as follows:

For commercial licensing, please email
First Name
Last Name

Licensee wishes to use eheap Software.

Therefore the parties agree as follows:
1. Software provided to Licensee shall be used only for non-commercial projects. Licensee agrees that a license fee is due if Software is used in a commercial product.

2. Licensee agrees that Software shall not be used to produce a product serving the same or similar purpose as Software and offered in competition with Software for commercial products, even if distributed free of charge.

3. Licensee agrees that Software, copyrights, and all other proprietary rights remain the property of MDI and that this Agreement transfers no Product ownership to Licensee.

4. Licensee agrees to not remove any legal notices from Software.
5. Software is provided without warranty of any kind. Licensee must assume the entire risk of using Software. This includes any and all damage to persons and property, even as the result of one or more defects in Software.

6. The terms and conditions stated herein are declared to be severable. If any paragraph, provision, or clause in this Agreement shall be found or held to be invalid or unenforceable in any jurisdiction in which this Agreement is being performed, the remainder of this Agreement shall be valid and enforceable.

7. This Agreement shall be governed by the laws of the State of California.

I (Licensee) accept and agree to the above terms and conditions.




  You are here: Home > Downloads > eheap
  smxMPU™ — smx® for ARM Cortex-M MPU

smxMPU is a version of the smx RTOS kernel that supports the ARM Cortex‑M Memory Protection Unit. The Cortex-M MPU is difficult to use. The primary goal of smxMPU is to make using the MPU as easy as possible, while offering as much protection as possible. A key idea of our approach is to allow progressively increasing the security of a system. See the following links for details.

We continue to enhance the implementation and documentation of smxMPU.
Please check here periodically for updated information.

smxMPU Press Release

smxMPU Manual (PDF) [Rev 1/11/17] 251K

smxMPU Part 1:  Security and the Cortex-M MPU
smxMPU Part 2:  MPU Multitasking
smxMPU Part 3:  Defining MPU Regions

A word from the developer:

Although other RTOSes offer MPU support, little is said about it, suggesting that little was done. I have put a lot of thought into how to make the MPU usable, and I have implemented what is likely the best solution.

Also, there is little documentation from ARM. I am writing a series of blogs to explain more about the MPU and how to use it. These will be linked above, as they are published.

While you are here, I encourage you to learn more about SMX RTOS using the links below.

Ralph Moore
smx Architect


smx Kernel

SMX RTOS Products Page

SMX Learning Kits are free, fully functional releases of the smx kernel for non-commercial use in personal and class projects, proofs of concept, and prototypes. They are available for several low-cost boards that are popular in the DIY / Maker community.

SMX Evaluation Kits are available for a much larger number of evaluation boards and include SMX middleware. They require registration, and a sales person will be in contact. Evaluation Kits are intended to allow developers to work with SMX in order to decide whether to purchase a license for their projects.


SMX Modules