Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By Kunal Gupta
#87048 1) In the functional block diagram of the esp8266 the yellow colour FLASH block ...it is the external Spi flash/ programmable ROM ????.
2) Also in the CPU topic in the datasheet it is written that CPU is interfaced with
• Programmable RAM/ROM interfaces (iBus), which can be connected with memory
controller, and can also be used to visit flash.
• Data RAM interface (dBus), which can connected with memory controller.
hoping to get the reply as early

Now here if i see the block diagram so is my data RAM and programmable RAM both are same that is SRAM or they are different ??? If different then where are they in the block diagram

3) when we download firmware in the esp8266 different address are given for downloading the binary files in THE FLASH MEMORY of the esp8266.
As we know CPU interracts with only RAM OR Processor register ...so after downloading the firmware in the Flash memory which is external spi flash the data is send to SRAM or processor register?????
User avatar
By btidey
#87061 1. Yes. The ESP8266 has no internal Flash memory. There is some internal ROM used for system code. All application code is stored in the external flash memory chip. The size of this is dependent on the actual module (typically 4MByte).

2. The chip does have internal SRAM. 32kB is used as an instruction cache so that code read from the Flash memory can be executed much faster after an initial load. It is possible to make some code permanently resident in the cache for things like ISR. 80kB of SRAM on the chip is available for application use (e.g. stack / heap). In principle, it is possible to add SPI RAM chips on for more data storage but this tends to be used more on ESP32 modules rather than ESP8266.

3. When downloading new code it will be written to the external flash memory. The system code in PROM supports this process.

See also https://github.com/esp8266/esp8266-wiki/wiki/Memory-Map