So you're a Noob? Post your questions here until you graduate! Don't be shy.

User avatar
By ankitmcgill
#70724 I'm having some issues understanding the flash map of esp8266 and hoping someone can clarify my doubts.

On my ESP8266 12E (4MB flash), I am using the default eagle.app.v6.ld provided by the NON OTA SDK(2.0). From within my code a call to system_get_flash_size_map() returns FLASH_SIZE_32M_MAP_512_512.

What I don't get is, when it's a NON OTA SDK why are there 2 flash banks specified by the map (512 + 512)? Looking at the linker file, I see I can increase the size of the irom0.text section to get bigger space for my code, as long as I stay within the limits (1MB).

Assuming I do the above, the call to the SDK function still returns 512_512. How does the SDK know what flash map I am using?

Through google, I found various references which stated that the flash map/size information in stored in byte 3 of eagle_flash.bin along with the flash mode. In this case, how do I specify the flash map during compilation? I checked mine, which was 0 corresponding to 512KB.

Lastly, I also read that I can specify the flash during burning time using the --flash_size option in esptool.py. When I tried to use 32m-c1 for that, the function system_get_flash_size_map() returns null.

Hoping someone can answer these for me