ESP8266 Code Execution
Posted: Fri Jan 06, 2017 10:33 am
Hi All.
So, here’s a newbie question. I’ve been successfully using the Arduino IDE to program a couple of ESP8266 boards (Adafruit Huzzah Feather, Sparkfun ThingDev) as application processors for several months now. Works great, I loving having native WiFi and SPIFFS available to my applications.
Just recently I’ve started wondering exactly how this works. Meaning from where is my application executing? The ESP8266 has no internal EEPROM, so my application is stored in external SPI Flash -- Understood. Upon power-up / reset the application is loaded via SPI into the ESP8266 for execution -- Understood. But where exactly? I don’t see a Code Space RAM in the block diagram. Is it the SRAM? How big is the SRAM is and how large a sketch can it hold? I assume (hope) that there are no instruction fetch operations from the Flash via SPI because that would be SLOW.
I’d appreciate any insight into how it really works.
Thanks.
Greg
So, here’s a newbie question. I’ve been successfully using the Arduino IDE to program a couple of ESP8266 boards (Adafruit Huzzah Feather, Sparkfun ThingDev) as application processors for several months now. Works great, I loving having native WiFi and SPIFFS available to my applications.
Just recently I’ve started wondering exactly how this works. Meaning from where is my application executing? The ESP8266 has no internal EEPROM, so my application is stored in external SPI Flash -- Understood. Upon power-up / reset the application is loaded via SPI into the ESP8266 for execution -- Understood. But where exactly? I don’t see a Code Space RAM in the block diagram. Is it the SRAM? How big is the SRAM is and how large a sketch can it hold? I assume (hope) that there are no instruction fetch operations from the Flash via SPI because that would be SLOW.
I’d appreciate any insight into how it really works.
Thanks.
Greg