Discuss here different C compiler set ups, and compiling executables for the ESP8266

User avatar
By cnlohr
#1151 So, I've noticed the linker scripts that come with the 0.9.1 SDK all vary slightly in the memory section. Does anyone know what's up with this? Which one is correct?

Also, perhaps we should have a standard linker script?

eagle.app.v6.app1.ld
Code: Select all  irom0_0_seg :                          org = 0x40211000, len = 0x2B000


eagle.app.v6.app2.ld
Code: Select all  irom0_0_seg :                         org = 0x40251000, len = 0x2B000


eagle.app.v6.ld
Code: Select all  irom0_0_seg :                          org = 0x40240000, len = 0x32000


This goes hand-in-hand with why do we need long calls?
User avatar
By Squonk
#1152 No, please take a look at my post:
viewtopic.php?f=5&t=9&p=889&sid=aa8de357b2a1c3e8db597f40012134e9#p889

Basically, the newer SDK provide an OTA (Over The Air) update capability. In order to recover when the procedure does not succeed, the Flash now contains a leading bootloader, and 2 user applications, doing ping-pong flashing/running betwwen the 2. Each user application contains a flash section and an irom0 section.
User avatar
By cnlohr
#1154 So, to do cloud updating, we have to do their little dance and use app1 or app2 - if we don't care about that and just want to do serial flashing, we can use the first script?

*EDIT* Good grief, if I ever get this crazy chip figured out, it'll keep my youtube channel pumping out videos for the next 5 years.
User avatar
By wififofum
#1155 It is flexible where you can put the ROM section in flash (aside from the config sections) which is very nice. You can organize flash how you want.