summaryrefslogtreecommitdiff
path: root/docs/reference/concurrency.rst
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-11-19 11:32:44 +0700
committerhathach <[email protected]>2025-11-19 11:32:44 +0700
commitfd3161087d76c84fb21e8e2f2d30a81d6b11bfba (patch)
tree527172cad87c76062490e4ecc9277e21d3691224 /docs/reference/concurrency.rst
parentbe4b38c54dc4e23af322ae04eda1f30e5ced0289 (diff)
parentd46f71bdde8b3160b0efaf83598d6b4cf596f787 (diff)
Merge branch 'refs/heads/master' into dwc2_ep0
# Conflicts: # examples/device/dfu/src/usb_descriptors.c # examples/device/dfu_runtime/src/usb_descriptors.c # src/device/usbd_control.c # src/portable/synopsys/dwc2/dcd_dwc2.c
Diffstat (limited to 'docs/reference/concurrency.rst')
-rw-r--r--docs/reference/concurrency.rst10
1 files changed, 5 insertions, 5 deletions
diff --git a/docs/reference/concurrency.rst b/docs/reference/concurrency.rst
index 776fa4b6d..99e7e7b70 100644
--- a/docs/reference/concurrency.rst
+++ b/docs/reference/concurrency.rst
@@ -3,17 +3,17 @@ Concurrency
***********
The TinyUSB library is designed to operate on single-core MCUs with multi-threaded applications in mind. Interaction with interrupts is especially important to pay attention to.
-It is compatible with optionally using a RTOS.
+It is compatible with optionally using an RTOS.
General
-------
-When writing code, keep in mind that the OS (if using a RTOS) may swap out your code at any time. Also, your code can be preempted by an interrupt at any time.
+When writing code, keep in mind that the OS (if using an RTOS) may swap out your code at any time. Also, your code can be preempted by an interrupt at any time.
Application Code
----------------
-The USB core does not execute application callbacks while in an interrupt context. Calls to application code are from within the USB core task context. Note that the application core will call class drivers from within their own task.
+The USB core does not execute application callbacks while in an interrupt context. Calls to application code are from within the USB core task context. Note that the application core will call class drivers from within its own task.
Class Drivers
-------------
@@ -38,5 +38,5 @@ Much of the processing of the USB stack is done in an interrupt context, and car
In particular:
-* Ensure that all memory-mapped registers (including packet memory) are marked as volatile. GCC's optimizer will even combine memory access (like two 16-bit to be a 32-bit) if you don't mark the pointers as volatile. On some architectures, this can use macros like _I , _O , or _IO.
-* All defined global variables are marked as ``static``.
+* Ensure that all memory-mapped registers (including packet memory) are marked as volatile. GCC's optimizer will even combine memory accesses (like two 16-bit to be a 32-bit) if you don't mark the pointers as volatile. On some architectures, this can use macros like _I , _O , or _IO.
+* All defined global variables are marked as ``static``.