aboutsummaryrefslogtreecommitdiff
path: root/docs/pages
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-10-25 19:36:23 +0200
committerGitHub <[email protected]>2024-10-25 19:36:23 +0200
commita916633ffc1a6b58400667006e4d8eba456fd158 (patch)
treee696e416d36ca57fa8e4f575a8b398af2b592267 /docs/pages
parent8803128707b8bd9fc9dcea392a62dfd42aa822d2 (diff)
parent6545dfee6d370cd37701fbbbf85d46c1a8e34521 (diff)
Merge pull request #3461 from Krensi/patch-1
Change "bits" to "bytes" in DMA description
Diffstat (limited to 'docs/pages')
-rw-r--r--docs/pages/overview.adoc4
1 files changed, 2 insertions, 2 deletions
diff --git a/docs/pages/overview.adoc b/docs/pages/overview.adoc
index 2ebc85f6d..8f97d937f 100644
--- a/docs/pages/overview.adoc
+++ b/docs/pages/overview.adoc
@@ -52,7 +52,7 @@ link:https://github.com/embassy-rs/embassy/tree/main/embassy-boot[embassy-boot]
52 52
53== What is DMA? 53== What is DMA?
54 54
55For most I/O in embedded devices, the peripheral doesn't directly support the transmission of multiple bits at once, with CAN being a notable exception. Instead, the MCU must write each byte, one at a time, and then wait until the peripheral is ready to send the next. For high I/O rates, this can pose a problem if the MCU must devote an increasing portion of its time handling each byte. The solution to this problem is to use the Direct Memory Access controller. 55For most I/O in embedded devices, the peripheral doesn't directly support the transmission of multiple bytes at once, with CAN being a notable exception. Instead, the MCU must write each byte, one at a time, and then wait until the peripheral is ready to send the next. For high I/O rates, this can pose a problem if the MCU must devote an increasing portion of its time handling each byte. The solution to this problem is to use the Direct Memory Access controller.
56 56
57The Direct Memory Access controller (DMA) is a controller that is present in MCUs that Embassy supports, including stm32 and nrf. The DMA allows the MCU to set up a transfer, either send or receive, and then wait for the transfer to complete. With DMA, once started, no MCU intervention is required until the transfer is complete, meaning that the MCU can perform other computation, or set up other I/O while the transfer is in progress. For high I/O rates, DMA can cut the time that the MCU spends handling I/O by over half. However, because DMA is more complex to set-up, it is less widely used in the embedded community. Embassy aims to change that by making DMA the first choice rather than the last. Using Embassy, there's no additional tuning required once I/O rates increase because your application is already set-up to handle them. 57The Direct Memory Access controller (DMA) is a controller that is present in MCUs that Embassy supports, including stm32 and nrf. The DMA allows the MCU to set up a transfer, either send or receive, and then wait for the transfer to complete. With DMA, once started, no MCU intervention is required until the transfer is complete, meaning that the MCU can perform other computation, or set up other I/O while the transfer is in progress. For high I/O rates, DMA can cut the time that the MCU spends handling I/O by over half. However, because DMA is more complex to set-up, it is less widely used in the embedded community. Embassy aims to change that by making DMA the first choice rather than the last. Using Embassy, there's no additional tuning required once I/O rates increase because your application is already set-up to handle them.
58 58
@@ -80,4 +80,4 @@ For more reading material on async Rust and Embassy:
80 80
81Videos: 81Videos:
82 82
83* link:https://www.youtube.com/watch?v=wni5h5vIPhU[From Zero to Async in Embedded Rust] \ No newline at end of file 83* link:https://www.youtube.com/watch?v=wni5h5vIPhU[From Zero to Async in Embedded Rust]