system: fix brownout ISR triggering assert on single-core configs.

ISR handler was incorrectly calling stall other cpu even on single core systems

Closes https://github.com/espressif/esp-idf/issues/9456
This commit is contained in:
Marius Vikhammer
2022-08-01 10:36:19 +08:00
parent c0e096d5b2
commit 0f555b2a1d

View File

@@ -41,8 +41,14 @@ IRAM_ATTR static void rtc_brownout_isr_handler(void *arg)
* cleared manually. * cleared manually.
*/ */
brownout_hal_intr_clear(); brownout_hal_intr_clear();
// Stop the other core. // Stop the other core.
esp_cpu_stall(!esp_cpu_get_core_id()); #if !CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE
const uint32_t core_id = esp_cpu_get_core_id();
const uint32_t other_core_id = (core_id == 0) ? 1 : 0;
esp_cpu_stall(other_core_id);
#endif
esp_reset_reason_set_hint(ESP_RST_BROWNOUT); esp_reset_reason_set_hint(ESP_RST_BROWNOUT);
#if CONFIG_SPI_FLASH_BROWNOUT_RESET #if CONFIG_SPI_FLASH_BROWNOUT_RESET
if (spi_flash_brownout_need_reset()) { if (spi_flash_brownout_need_reset()) {