mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-26 21:16:28 +00:00
These changes were obtained by running a script created by Ulf Magnusson <Ulf.Magnusson@nordicsemi.no> for the following specification: 1. Read the contents of all dts_fixup.h files in Zephyr 2. Check the left-hand side of the #define macros (i.e. the X in #define X Y) 3. Check if that name is also the name of a Kconfig option 3.a If it is, then do nothing 3.b If it is not, then replace CONFIG_ with DT_ or add DT_ if it has neither of these two prefixes 4. Replace the use of the changed #define in the code itself (.c, .h, .ld) Additionally, some tweaks had to be added to this script to catch some of the macros used in the code in a parameterized form, e.g.: - CONFIG_GPIO_STM32_GPIO##__SUFFIX##_BASE_ADDRESS - CONFIG_UART_##idx##_TX_PIN - I2C_SBCON_##_num##_BASE_ADDR and to prevent adding DT_ prefix to the following symbols: - FLASH_START - FLASH_SIZE - SRAM_START - SRAM_SIZE - _ROM_ADDR - _ROM_SIZE - _RAM_ADDR - _RAM_SIZE which are surprisingly also defined in some dts_fixup.h files. Finally, some manual corrections had to be done as well: - name##_IRQ -> DT_##name##_IRQ in uart_stm32.c Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no> |
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
prj_single.conf | ||
prj.conf | ||
README.rst | ||
sample.yaml |
.. _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: Reset the board and you should be able to see on the corresponding Serial Port the following message: .. code-block:: console ***** BOOTING ZEPHYR OS v1.7.99 - BUILD: Mar 9 2017 13:01:59 ***** *** MPU test options *** 1 - Read a reserved address in the memory map 2 - Write in to boot FLASH/ROM 3 - Run code located in RAM Select an option: 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 ***** BOOTING ZEPHYR OS v1.7.99 - BUILD: May 12 2017 09:47:02 ***** shell> select mpu_test mpu_test> read ***** BUS FAULT ***** Executing thread ID (thread): 0x200003b8 Faulting instruction address: 0x290 Precise data bus error Address: 0x24000000 Fatal fault in thread 0x200003b8! Aborting.