summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/library/uctypes.rst20
1 files changed, 18 insertions, 2 deletions
diff --git a/docs/library/uctypes.rst b/docs/library/uctypes.rst
index d7ebc7b7d..e83c56b3e 100644
--- a/docs/library/uctypes.rst
+++ b/docs/library/uctypes.rst
@@ -98,8 +98,8 @@ Module contents
.. class:: struct(descriptor, layout_type)
- Create a "foreign data structure" object based on its descriptor (encoded
- as a dictionary) and layout type.
+ Create a "foreign data structure" class based on its descriptor (encoded
+ as a dictionary) and layout type (see below).
.. data:: LITTLE_ENDIAN
@@ -140,6 +140,22 @@ Module contents
so it can be both written too, and you will access current value
at the given memory address.
+Structure classes and instantiating structure objects
+-----------------------------------------------------
+
+Given structure descriptor and layout type, you can instantiate a
+"structure class" using uctypes.struct() factory function. From it,
+you can instantiate a specific structure instance at a given
+memory address. Memory address usually comes from following sources:
+
+* Predefined address, when accessing hardware registers on a baremetal
+port. Lookup these addresses in datasheet for a particular MCU/SoC.
+* As return value from a call to some FFI (Foreign Function Interface)
+function.
+* From uctypes.addressof(), when you want to pass arguments to FFI
+function, or alternatively, to access some data for I/O (for example,
+data read from file or network socket).
+
Structure objects
-----------------