aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorckrenslehner <[email protected]>2024-10-25 19:22:20 +0200
committerGitHub <[email protected]>2024-10-25 19:22:20 +0200
commit6545dfee6d370cd37701fbbbf85d46c1a8e34521 (patch)
treee696e416d36ca57fa8e4f575a8b398af2b592267
parent8803128707b8bd9fc9dcea392a62dfd42aa822d2 (diff)
Update overview.adoc
-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]