freertos/port: Put critical sections around uxPortCompareSetExtram() to prevent preemption during its execution.

Closes: https://github.com/espressif/esp-idf/issues/4561
This commit is contained in:
Felipe Neves 2020-01-07 10:46:59 -03:00
parent 71b4768df8
commit 9800750f15

View file

@ -443,6 +443,9 @@ static portMUX_TYPE extram_mux = portMUX_INITIALIZER_UNLOCKED;
void uxPortCompareSetExtram(volatile uint32_t *addr, uint32_t compare, uint32_t *set) {
uint32_t prev;
uint32_t oldlevel = portENTER_CRITICAL_NESTED();
#ifdef CONFIG_FREERTOS_PORTMUX_DEBUG
vPortCPUAcquireMutexIntsDisabled(&extram_mux, portMUX_NO_TIMEOUT, __FUNCTION__, __LINE__);
#else
@ -458,6 +461,8 @@ void uxPortCompareSetExtram(volatile uint32_t *addr, uint32_t compare, uint32_t
#else
vPortCPUReleaseMutexIntsDisabled(&extram_mux);
#endif
portEXIT_CRITICAL_NESTED(oldlevel);
}
#endif //defined(CONFIG_SPIRAM)