Confusion On Memory For Programming?

mrmonteith
Posts: 4
Joined: Mon Jan 22, 2018 8:11 pm

Confusion On Memory For Programming?

Postby mrmonteith » Fri Feb 09, 2018 2:37 pm

I looked around and I get confused on what memory is used for what. I've been programming using the Arduino IDE and have programmed the ESP8266 and ESP32 devices. Of course the specs for each development board is a bit different. But assuming the ESP-WROOM-32 specs. It talks about ROM, on-chip SRAM, fast and slow memory, external flash and SRAM.

Other than relying on board selection to assume what memory is on the board I have no idea if it's right or not. I don't know if there is some way to sort this out as to what can be used as Arduino programming space and what can only be used a pure data if there is a difference. Let's just use the ESP-WROOM-32.

I did try to look around to find some code I could run that might tell me how much memory is available. But again I assume all they're doing is taking what the board definitions say it's supposed to have and basically just calculating how much space code and data space is used and subtracting from that.

So, how much space is there on the WROOM-32 for my Arduino code? I know I saw somewhere the specs on how much the bootloader takes up. Is the board definitions good enough to rely on or is there code that could validate how much memory is installed?

I've been looking at this device:
ESP32 Development Board 32 or 12KB Flash
and wondering if all that memory is really available for program space or some portion of it only for like data logging only?

It's not a critical issue but just hoping to find something that might help me keep all the memory types and how they are used straight maybe.

Thanks
Michael

User avatar
kolban
Posts: 1683
Joined: Mon Nov 16, 2015 4:43 pm
Location: Texas, USA

Re: Confusion On Memory For Programming?

Postby kolban » Mon Feb 12, 2018 3:34 am

Here is the data sheet for the WROOM:

https://www.espressif.com/sites/default ... eet_en.pdf

At the highest level, you have 4MBytes of flash and 512KBytes of RAM. Without doing anything special, you should assume about 3MBytes of flash for your application binaries and anywhere from 100K - 200K of RAM for your run-time needs. The amount of RAM available is a function of your usage of WiFi/BLE/Other subsystems.
Free book on ESP32 available here: https://leanpub.com/kolban-ESP32

mrmonteith
Posts: 4
Joined: Mon Jan 22, 2018 8:11 pm

Re: Confusion On Memory For Programming?

Postby mrmonteith » Mon Feb 12, 2018 3:01 pm

Thanks so much. It was getting a little confusing when they were talking about other types of memory and how it can be used. Guess it will take some time. I'm interested to see how this device from Analoglamb works with 128mb of Flash. I may end up building my own boards.txt entry if they don't have that information. We shall see.

Meanwhile I'll look over your book.

Thank again
Michael

Who is online

Users browsing this forum: No registered users and 52 guests