summaryrefslogtreecommitdiffstatshomepage
path: root/docs/library/zephyr.FlashArea.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/library/zephyr.FlashArea.rst')
-rw-r--r--docs/library/zephyr.FlashArea.rst40
1 files changed, 40 insertions, 0 deletions
diff --git a/docs/library/zephyr.FlashArea.rst b/docs/library/zephyr.FlashArea.rst
new file mode 100644
index 0000000000..306347d449
--- /dev/null
+++ b/docs/library/zephyr.FlashArea.rst
@@ -0,0 +1,40 @@
+.. currentmodule:: zephyr
+.. _zephyr.FlashArea:
+
+class FlashArea -- access to built-in flash storage
+===================================================
+
+Uses `Zephyr flash map API <https://docs.zephyrproject.org/latest/reference/storage/flash_map/flash_map.html#flash-map>`_.
+
+This class allows access to device flash partition data.
+Flash area structs consist of a globally unique ID number, the name of the flash device the partition is in,
+the start offset (expressed in relation to the flash memory beginning address per partition),
+and the size of the partition that the device represents. For fixed flash partitions, data from the device
+tree is used; however, fixed flash partitioning is not enforced in MicroPython because MCUBoot is not enabled.
+
+Constructors
+------------
+
+.. class:: FlashArea(id, block_size)
+
+ Gets an object for accessing flash memory at partition specified by ``id`` and with block size of ``block_size``.
+
+ ``id`` values are integers correlating to fixed flash partitions defined in the devicetree.
+ A commonly used partition is the designated flash storage area defined as ``FlashArea.STORAGE`` if
+ ``FLASH_AREA_LABEL_EXISTS(storage)`` returns true at boot.
+ Zephyr devicetree fixed flash partitions are ``boot_partition``, ``slot0_partition``, ``slot1_partition``, and
+ ``scratch_partition``. Because MCUBoot is not enabled by default for MicroPython, these fixed partitions can be accessed by
+ ID integer values 1, 2, 3, and 4, respectively.
+
+Methods
+-------
+
+.. method:: FlashArea.readblocks(block_num, buf)
+ FlashArea.readblocks(block_num, buf, offset)
+.. method:: FlashArea.writeblocks(block_num, buf)
+ FlashArea.writeblocks(block_num, buf, offset)
+.. method:: FlashArea.ioctl(cmd, arg)
+
+ These methods implement the simple and extended
+ :ref:`block protocol <block-device-interface>` defined by
+ :class:`uos.AbstractBlockDev`.