This MPU Configurator generates C-Code to program the PMSAv7 Memory Protection Unit of Cortex-M0+, M3, M4 and M7 devices. The generator is based on simple Excel functions and does not rely upon any macros or Active-X elements. The generated code is ouput of an Excel sheet and can easily be copied into your project by any editor of your joice. To configure the MPU you just need to include the copy-and-pasted include file and to call the generated inline function MPU_Init() from your project.

The download is provided free of charge.
Please also refere to the copyright and liability warning in the header of the gernerated code.
In the graphical MPU Configuration Sheet some additional hints are provided for convenience to ease the address calculation:
- The Region Base addresses are automatically aligned to their size. The colour of the input Start Address digits change to red in case of non proper alignment.
- The Region Limit Adress is calculated and displayed by adding the choosen size to the aligned Start Address.
- If a region is bigger or equal to 256 bytes and any subregion is disabled the start and limit addresses of the remaining enabled subreaginons are calculated and displayed.

Currently there are two types of ouput code available:
- C-code including comments for the µVision/Keil editor, that allows a simple graphical editing in the project (996 lines of code)
- C-code without these comments for any other development environment (257 lines of code)
Following additional MPU Configurator Versions are planned for near future:
Please leave a note for any proposals or requests.
- Extension for 16 Regions for corresponding Cortex-M7
- PMSAv8 Memory Protection Unit of Cortex-M23, M33, M52, M55 and M85
- Secure and Non-Secure PMSAv8 MPU Configuration
- Task specific MPU Configurations for dynamic MPU switching during scheduling of Real Time Operating Systems