soc: fix backtraces containing ROM functions

esp_ptr_executable would return false for pointers to ROM, which would
interrupt the backtrace. This makes ROM ranges recognized as
executable.
pull/4345/head^2
Ivan Grokhotkov 2019-11-15 14:59:14 +01:00
rodzic 97c8b90083
commit d9534b3d6a
3 zmienionych plików z 4 dodań i 1 usunięć

Wyświetl plik

@ -240,7 +240,7 @@
#define SOC_IROM_LOW 0x400D0000
#define SOC_IROM_HIGH 0x40400000
#define SOC_IROM_MASK_LOW 0x40000000
#define SOC_IROM_MASK_HIGH 0x40070000
#define SOC_IROM_MASK_HIGH 0x40064F00
#define SOC_CACHE_PRO_LOW 0x40070000
#define SOC_CACHE_PRO_HIGH 0x40078000
#define SOC_CACHE_APP_LOW 0x40078000

Wyświetl plik

@ -184,6 +184,8 @@
#define SOC_DROM_HIGH 0x3F400000
#define SOC_IROM_LOW 0x40080000
#define SOC_IROM_HIGH 0x40c00000
#define SOC_IROM_MASK_LOW 0x40000000
#define SOC_IROM_MASK_HIGH 0x4001A100
#define SOC_IRAM_LOW 0x40020000
#define SOC_IRAM_HIGH 0x40070000
#define SOC_DRAM_LOW 0x3FFB0000

Wyświetl plik

@ -155,6 +155,7 @@ inline static bool IRAM_ATTR esp_ptr_executable(const void *p)
intptr_t ip = (intptr_t) p;
return (ip >= SOC_IROM_LOW && ip < SOC_IROM_HIGH)
|| (ip >= SOC_IRAM_LOW && ip < SOC_IRAM_HIGH)
|| (ip >= SOC_IROM_MASK_LOW && ip < SOC_IROM_MASK_HIGH)
|| (ip >= SOC_RTC_IRAM_LOW && ip < SOC_RTC_IRAM_HIGH);
}