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