.. _flash_memory_mapped:

Espressif ESP32 Flash Memory-Mapped
###################################

Overview
********

ESP32 features memory hardware which allows regions of flash memory to be mapped into instruction
and data address spaces. This mapping works only for read operations. It is not possible to modify
contents of flash memory by writing to a mapped memory region.

Mapping happens in 64 KB pages. Memory mapping hardware can map flash into the data address space
and the instruction address space. See the technical reference manual for more details and
limitations about memory mapping hardware. For more information, check `_ESP32 Flash Memory-Mapping`.

Supported SoCs
**************

All ESP32 SoCs support flash memory-mapped feature.

Building and Running
********************

Make sure you have your board connected over USB port.

.. code-block:: console

   west build -b esp32s3_devkitm samples/boards/esp32/flash_memory_mapped
   west flash

Sample Output
=============

To check the output of this sample, run ``west espressif monitor`` or any other serial
console program (e.g., minicom, putty, screen, etc).
This example uses ``west espressif monitor``, which automatically detects the serial
port at ``/dev/ttyUSB0``:

.. code-block:: console

   $ west espressif monitor

The sample code erases the scratch area defined in DTS file and writes a 32-bytes data buffer in it.
Next, it prints that region content using flash API read and also using memory-mapped pointer.
Both readings should return the same value. Important to notice that writing using memory-mapped pointer
is not allowed.


.. code-block:: console

  *** Booting Zephyr OS build v3.5.0-rc3-10-g3118724fa268 ***
  [00:00:00.255,000] <inf> flash_memory_mapped: memory-mapped pointer address: 0x3c040000
  [00:00:01.122,000] <inf> flash_memory_mapped: flash read using memory-mapped pointer
                                                ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff |........ ........
                                                ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff |........ ........
  [00:00:01.122,000] <inf> flash_memory_mapped: writing 32-bytes data using flash API
  [00:00:01.122,000] <inf> flash_memory_mapped: flash read using flash API
                                                00 01 02 03 04 05 06 07  08 09 0a 0b 0c 0d 0e 0f |........ ........
                                                10 11 12 13 14 15 16 17  18 19 1a 1b 1c 1d 1e 1f |........ ........
  [00:00:01.122,000] <inf> flash_memory_mapped: flash read using memory-mapped pointer
                                                00 01 02 03 04 05 06 07  08 09 0a 0b 0c 0d 0e 0f |........ ........
                                                10 11 12 13 14 15 16 17  18 19 1a 1b 1c 1d 1e 1f |........ ........

.. _ESP32 Flash Memory-Mapping:
   https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/spi_flash/index.html#memory-mapping-api
