From 4571fb219fa261144876042fe8afc894450b5ae1 Mon Sep 17 00:00:00 2001 From: Renz Bagaporo Date: Tue, 21 Apr 2020 18:12:44 +0800 Subject: [PATCH] soc: change region in mpu test Previously, the test uses region 3 for the illegal access test (0x60000000 - 0x7fffffff). This caused issues with there being peripherals located in that memory range. Change to use region 4 (0x8000000 - 0x9fffffff) instead). --- components/soc/test/test_mpu.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/components/soc/test/test_mpu.c b/components/soc/test/test_mpu.c index 579cd0c70..d3dc8eca2 100644 --- a/components/soc/test/test_mpu.c +++ b/components/soc/test/test_mpu.c @@ -11,17 +11,24 @@ volatile static int RTC_NOINIT_ATTR access = 0; static void trigger_illegal_access(void) { access = 0; - intptr_t addr = 0x60000000; + intptr_t addr = 0x80000000; // MPU region 4 volatile int __attribute__((unused)) val = 0; + // Marked as an illegal access region at startup in ESP32, ESP32S2. + // Make accessible temporarily. + mpu_hal_set_region_access(4, MPU_REGION_RW); + val = *((int*) addr); ++access; TEST_ASSERT_EQUAL(1, access); printf("Sucessfully accessed location %p\r\n", (void*)addr); - mpu_hal_set_region_access(3, MPU_REGION_ILLEGAL); // 0x60000000 + // Make access to region illegal again. + mpu_hal_set_region_access(4, MPU_REGION_ILLEGAL); ++access; + // Since access to region is illegal, this should fail (causing a reset), and the increment + // to access count is not performed. val = *((int*) addr); ++access; }