Ver código fonte

bugfix(psram): make sure the psram_io struct is initialized and make unknown psram package version more obvious

chenjianqiang 6 anos atrás
pai
commit
43561a40d2
2 arquivos alterados com 5 adições e 2 exclusões
  1. 1 1
      components/esp32/Kconfig
  2. 4 1
      components/esp32/spiram_psram.c

+ 1 - 1
components/esp32/Kconfig

@@ -300,7 +300,7 @@ menu "ESP32-specific"
 
         config SPIRAM_SPIWP_SD3_PIN
             int "SPI PSRAM WP(SD3) Pin when customising pins via eFuse (read help)"
-            depends on ESPTOOLPY_FLASHMODE_DIO || ESPTOOLPY_FLASHMODE_DOUT
+            depends on FLASHMODE_DIO || FLASHMODE_DOUT
             range 0 33
             default 7
             help

+ 4 - 1
components/esp32/spiram_psram.c

@@ -616,7 +616,7 @@ psram_size_t psram_get_size()
  */
 esp_err_t IRAM_ATTR psram_enable(psram_cache_mode_t mode, psram_vaddr_mode_t vaddrmode)   //psram init
 {
-    psram_io_t psram_io;
+    psram_io_t psram_io = {0};
     uint32_t chip_ver = REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_PKG);
     uint32_t pkg_ver = chip_ver & 0x7;
     if (pkg_ver == EFUSE_RD_CHIP_VER_PKG_ESP32D2WDQ5) {
@@ -642,6 +642,9 @@ esp_err_t IRAM_ATTR psram_enable(psram_cache_mode_t mode, psram_vaddr_mode_t vad
         ESP_EARLY_LOGI(TAG, "This chip is ESP32-D0WD");
         psram_io.psram_clk_io = D0WD_PSRAM_CLK_IO;
         psram_io.psram_cs_io  = D0WD_PSRAM_CS_IO;
+    } else {
+        ESP_EARLY_LOGE(TAG, "Not a valid or known package id: %d", pkg_ver);
+        abort();
     }
 
     const uint32_t spiconfig = ets_efuse_get_spiconfig();