Merge branch 'bugfix/mpu_panic' into 'master'

Fix issue with mpu illegal access test

See merge request espressif/esp-idf!8418
This commit is contained in:
Ivan Grokhotkov 2020-04-24 20:54:08 +08:00
commit cd1aba595e
3 changed files with 10 additions and 4 deletions

View File

@ -1,4 +1,4 @@
[mapping:esp_common]
archive: lib_esp_common.a
archive: libesp_common.a
entries:
esp_err (noflash)

View File

@ -3,5 +3,4 @@ archive: libesp_system.a
entries:
panic (noflash)
panic_handler (noflash)
reset_reason (noflash)
system_api:esp_system_abort (noflash)

View File

@ -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;
}