Help in understanding the address mapping
Posted: Fri Oct 14, 2016 4:48 pm
I am studying the ESP32 Technical Reference Manual but unfortunately I'm getting stuck. Specifically, I am studying the system address memory mapping and trying to relate concepts such as RAM, flash, ROM, RTC fast memory, RTC slow memory, data bus and instruction bus to the address maps. When I look at the diagrams, I see multiple arrows from distinct address ranges point to the same components.
I fully believe that the problem in comprehension exists between my ears. I'd love to use this thread as a discussion on this whole conceptual area (address mapping) and start piecing together the understanding of the distinct parts. Can anyone help?
As an example of some of my questions ... if we look at table 4 in the ESP32 Technical Reference we see a table that shows we can access flash at addresses
0x3F40 0000 to 0x3F7F FFFF - 4MBytes - read only
0x400C 2000 to 0x40BF FFFF - ~11MB - read only
How do these relate to each other? If I want to place some "reference data" in flash using esptool.py, how does the Flash address used in esptool.py relate to these addresses? If I want to write flash data from within an ESP32 app, what APIs should I use and what target address ranges should I use?
I fully believe that the problem in comprehension exists between my ears. I'd love to use this thread as a discussion on this whole conceptual area (address mapping) and start piecing together the understanding of the distinct parts. Can anyone help?
As an example of some of my questions ... if we look at table 4 in the ESP32 Technical Reference we see a table that shows we can access flash at addresses
0x3F40 0000 to 0x3F7F FFFF - 4MBytes - read only
0x400C 2000 to 0x40BF FFFF - ~11MB - read only
How do these relate to each other? If I want to place some "reference data" in flash using esptool.py, how does the Flash address used in esptool.py relate to these addresses? If I want to write flash data from within an ESP32 app, what APIs should I use and what target address ranges should I use?