@@ -35,15 +35,19 @@ extern "C" {
35
35
#if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4
36
36
#include " esp32/rom/spi_flash.h"
37
37
#include " soc/efuse_reg.h"
38
+ #define ESP_FLASH_IMAGE_BASE 0x1000 // Flash offset containing flash size and spi mode
38
39
#elif CONFIG_IDF_TARGET_ESP32S2
39
40
#include " esp32s2/rom/spi_flash.h"
41
+ #define ESP_FLASH_IMAGE_BASE 0x1000
40
42
#elif CONFIG_IDF_TARGET_ESP32C3
41
43
#include " esp32c3/rom/spi_flash.h"
44
+ #define ESP_FLASH_IMAGE_BASE 0x0000 // Esp32c3 is located at 0x0000
42
45
#else
43
46
#error Target CONFIG_IDF_TARGET is not supported
44
47
#endif
45
48
#else // ESP32 Before IDF 4.0
46
49
#include " rom/spi_flash.h"
50
+ #define ESP_FLASH_IMAGE_BASE 0x1000
47
51
#endif
48
52
49
53
/* *
@@ -289,7 +293,7 @@ const char * EspClass::getSdkVersion(void)
289
293
uint32_t EspClass::getFlashChipSize (void )
290
294
{
291
295
esp_image_header_t fhdr;
292
- if (flashRead (0x1000 , (uint32_t *)&fhdr, sizeof (esp_image_header_t )) && fhdr.magic != ESP_IMAGE_HEADER_MAGIC) {
296
+ if (flashRead (ESP_FLASH_IMAGE_BASE , (uint32_t *)&fhdr, sizeof (esp_image_header_t )) && fhdr.magic != ESP_IMAGE_HEADER_MAGIC) {
293
297
return 0 ;
294
298
}
295
299
return magicFlashChipSize (fhdr.spi_size );
@@ -298,7 +302,7 @@ uint32_t EspClass::getFlashChipSize(void)
298
302
uint32_t EspClass::getFlashChipSpeed (void )
299
303
{
300
304
esp_image_header_t fhdr;
301
- if (flashRead (0x1000 , (uint32_t *)&fhdr, sizeof (esp_image_header_t )) && fhdr.magic != ESP_IMAGE_HEADER_MAGIC) {
305
+ if (flashRead (ESP_FLASH_IMAGE_BASE , (uint32_t *)&fhdr, sizeof (esp_image_header_t )) && fhdr.magic != ESP_IMAGE_HEADER_MAGIC) {
302
306
return 0 ;
303
307
}
304
308
return magicFlashChipSpeed (fhdr.spi_speed );
@@ -307,7 +311,7 @@ uint32_t EspClass::getFlashChipSpeed(void)
307
311
FlashMode_t EspClass::getFlashChipMode (void )
308
312
{
309
313
esp_image_header_t fhdr;
310
- if (flashRead (0x1000 , (uint32_t *)&fhdr, sizeof (esp_image_header_t )) && fhdr.magic != ESP_IMAGE_HEADER_MAGIC) {
314
+ if (flashRead (ESP_FLASH_IMAGE_BASE , (uint32_t *)&fhdr, sizeof (esp_image_header_t )) && fhdr.magic != ESP_IMAGE_HEADER_MAGIC) {
311
315
return FM_UNKNOWN;
312
316
}
313
317
return magicFlashChipMode (fhdr.spi_mode );
0 commit comments