diff --git a/components/esp_psram/system_layer/esp_psram.c b/components/esp_psram/system_layer/esp_psram.c index f7a09c42814..926631e97c0 100644 --- a/components/esp_psram/system_layer/esp_psram.c +++ b/components/esp_psram/system_layer/esp_psram.c @@ -461,6 +461,10 @@ esp_err_t esp_psram_chip_init(void) esp_err_t esp_psram_init(void) { + if (s_psram_ctx.is_initialised) { + return ESP_ERR_INVALID_STATE; + } + esp_err_t ret = ESP_FAIL; if (!s_psram_ctx.is_chip_initialised) { diff --git a/components/esp_psram/test_apps/psram/main/test_psram_no_boot_init.c b/components/esp_psram/test_apps/psram/main/test_psram_no_boot_init.c index f1026863bd0..8ce79836912 100644 --- a/components/esp_psram/test_apps/psram/main/test_psram_no_boot_init.c +++ b/components/esp_psram/test_apps/psram/main/test_psram_no_boot_init.c @@ -17,6 +17,7 @@ TEST_CASE("test psram no boot init", "[psram_no_boot_init]") #endif /* CONFIG_SPIRAM_PRE_CONFIGURE_MEMORY_PROTECTION */ TEST_ESP_OK(esp_psram_init()); + TEST_ESP_ERR(ESP_ERR_INVALID_STATE, esp_psram_init()); #if CONFIG_SPIRAM_PRE_CONFIGURE_MEMORY_PROTECTION size_t final_psram_heap = esp_psram_get_heap_size_to_protect();