| .. _mpu_test: |
| |
| Memory Protection Unit (MPU) TEST |
| ################################# |
| |
| Overview |
| ******** |
| This test provides a set options to check the correct MPU configuration |
| against the following security issues: |
| |
| * Read at an address that is reserved in the memory map. |
| * Write into the boot Flash/ROM. |
| * Run code located in SRAM. |
| |
| If the MPU configuration is correct each option selected ends up in an MPU |
| fault. |
| |
| Building and Running |
| ******************** |
| |
| This project can be built and executed as follows: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/mpu/mpu_test |
| :board: v2m_beetle |
| :goals: build flash |
| :compact: |
| |
| To build the single thread version, use the supplied configuration file for |
| single thread: :file:`prj_single.conf`: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/mpu/mpu_test |
| :board: v2m_beetle |
| :conf: prj_single.conf |
| :goals: run |
| :compact: |
| |
| To build a version that allows writes to the flash device, edit |
| ``prj.conf``, and follow the directions in the comments to enable the |
| proper configs. |
| |
| Sample Output |
| ============= |
| |
| .. code-block:: console |
| |
| uart:~$ mpu read |
| ***** BUS FAULT ***** |
| Precise data bus error |
| BFAR Address: 0x24000000 |
| ***** Hardware exception ***** |
| Current thread ID = 0x20000400 |
| Faulting instruction address = 0x80004a8 |
| Fatal fault in thread 0x20000400! Aborting. |