aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-12-19 00:05:54 +0100
committerDario Nieuwenhuis <[email protected]>2023-12-19 00:10:36 +0100
commit49534cd4056f20bdf5fa6058b0865afc5fcf38ee (patch)
treec70844cbd6201ea4ded266d53fc6ebd79931659a
parent138318f6118322af199888bcbd53ef49114f89bd (diff)
stm32: more docs.
-rw-r--r--embassy-nrf/src/lib.rs6
-rw-r--r--embassy-stm32/src/adc/mod.rs3
-rw-r--r--embassy-stm32/src/can/mod.rs1
-rw-r--r--embassy-stm32/src/crc/mod.rs1
-rw-r--r--embassy-stm32/src/dac/mod.rs2
-rw-r--r--embassy-stm32/src/dcmi.rs1
-rw-r--r--embassy-stm32/src/eth/mod.rs1
-rw-r--r--embassy-stm32/src/exti.rs1
-rw-r--r--embassy-stm32/src/flash/mod.rs1
-rw-r--r--embassy-stm32/src/fmc.rs1
-rw-r--r--embassy-stm32/src/hrtim/mod.rs2
-rw-r--r--embassy-stm32/src/i2c/mod.rs1
-rw-r--r--embassy-stm32/src/i2s.rs1
-rw-r--r--embassy-stm32/src/lib.rs24
-rw-r--r--embassy-stm32/src/qspi/mod.rs2
-rw-r--r--embassy-stm32/src/rng.rs1
-rw-r--r--embassy-stm32/src/rtc/mod.rs4
-rw-r--r--embassy-stm32/src/sdmmc/mod.rs1
-rw-r--r--embassy-stm32/src/spi/mod.rs1
-rw-r--r--embassy-stm32/src/uid.rs2
-rw-r--r--embassy-stm32/src/usart/mod.rs1
-rw-r--r--embassy-stm32/src/usb_otg/mod.rs2
-rw-r--r--embassy-stm32/src/wdg/mod.rs1
23 files changed, 55 insertions, 6 deletions
diff --git a/embassy-nrf/src/lib.rs b/embassy-nrf/src/lib.rs
index 9093ad919..e3458e2de 100644
--- a/embassy-nrf/src/lib.rs
+++ b/embassy-nrf/src/lib.rs
@@ -354,7 +354,11 @@ unsafe fn uicr_write_masked(address: *mut u32, value: u32, mask: u32) -> WriteRe
354 WriteResult::Written 354 WriteResult::Written
355} 355}
356 356
357/// Initialize peripherals with the provided configuration. This should only be called once at startup. 357/// Initialize the `embassy-nrf` HAL with the provided configuration.
358///
359/// This returns the peripheral singletons that can be used for creating drivers.
360///
361/// This should only be called once at startup, otherwise it panics.
358pub fn init(config: config::Config) -> Peripherals { 362pub fn init(config: config::Config) -> Peripherals {
359 // Do this first, so that it panics if user is calling `init` a second time 363 // Do this first, so that it panics if user is calling `init` a second time
360 // before doing anything important. 364 // before doing anything important.
diff --git a/embassy-stm32/src/adc/mod.rs b/embassy-stm32/src/adc/mod.rs
index ff523ca3b..e4dd35c34 100644
--- a/embassy-stm32/src/adc/mod.rs
+++ b/embassy-stm32/src/adc/mod.rs
@@ -1,4 +1,5 @@
1//! Analog to Digital (ADC) converter driver. 1//! Analog to Digital Converter (ADC)
2
2#![macro_use] 3#![macro_use]
3#![allow(missing_docs)] // TODO 4#![allow(missing_docs)] // TODO
4 5
diff --git a/embassy-stm32/src/can/mod.rs b/embassy-stm32/src/can/mod.rs
index 425f9ac2e..915edb3a6 100644
--- a/embassy-stm32/src/can/mod.rs
+++ b/embassy-stm32/src/can/mod.rs
@@ -1,3 +1,4 @@
1//! Controller Area Network (CAN)
1#![macro_use] 2#![macro_use]
2 3
3#[cfg_attr(can_bxcan, path = "bxcan.rs")] 4#[cfg_attr(can_bxcan, path = "bxcan.rs")]
diff --git a/embassy-stm32/src/crc/mod.rs b/embassy-stm32/src/crc/mod.rs
index 63f7ad9ba..29523b92d 100644
--- a/embassy-stm32/src/crc/mod.rs
+++ b/embassy-stm32/src/crc/mod.rs
@@ -1,3 +1,4 @@
1//! Cyclic Redundancy Check (CRC)
1#[cfg_attr(crc_v1, path = "v1.rs")] 2#[cfg_attr(crc_v1, path = "v1.rs")]
2#[cfg_attr(crc_v2, path = "v2v3.rs")] 3#[cfg_attr(crc_v2, path = "v2v3.rs")]
3#[cfg_attr(crc_v3, path = "v2v3.rs")] 4#[cfg_attr(crc_v3, path = "v2v3.rs")]
diff --git a/embassy-stm32/src/dac/mod.rs b/embassy-stm32/src/dac/mod.rs
index 9c670195d..31dedf06e 100644
--- a/embassy-stm32/src/dac/mod.rs
+++ b/embassy-stm32/src/dac/mod.rs
@@ -1,4 +1,4 @@
1//! Provide access to the STM32 digital-to-analog converter (DAC). 1//! Digital to Analog Converter (DAC)
2#![macro_use] 2#![macro_use]
3 3
4use core::marker::PhantomData; 4use core::marker::PhantomData;
diff --git a/embassy-stm32/src/dcmi.rs b/embassy-stm32/src/dcmi.rs
index 139d8fd1b..4d02284b2 100644
--- a/embassy-stm32/src/dcmi.rs
+++ b/embassy-stm32/src/dcmi.rs
@@ -1,3 +1,4 @@
1//! Digital Camera Interface (DCMI)
1use core::future::poll_fn; 2use core::future::poll_fn;
2use core::marker::PhantomData; 3use core::marker::PhantomData;
3use core::task::Poll; 4use core::task::Poll;
diff --git a/embassy-stm32/src/eth/mod.rs b/embassy-stm32/src/eth/mod.rs
index dbf91eedc..448405507 100644
--- a/embassy-stm32/src/eth/mod.rs
+++ b/embassy-stm32/src/eth/mod.rs
@@ -1,3 +1,4 @@
1//! Ethernet (ETH)
1#![macro_use] 2#![macro_use]
2 3
3#[cfg_attr(any(eth_v1a, eth_v1b, eth_v1c), path = "v1/mod.rs")] 4#[cfg_attr(any(eth_v1a, eth_v1b, eth_v1c), path = "v1/mod.rs")]
diff --git a/embassy-stm32/src/exti.rs b/embassy-stm32/src/exti.rs
index 371be913e..f83bae3ff 100644
--- a/embassy-stm32/src/exti.rs
+++ b/embassy-stm32/src/exti.rs
@@ -1,3 +1,4 @@
1//! External Interrupts (EXTI)
1use core::convert::Infallible; 2use core::convert::Infallible;
2use core::future::Future; 3use core::future::Future;
3use core::marker::PhantomData; 4use core::marker::PhantomData;
diff --git a/embassy-stm32/src/flash/mod.rs b/embassy-stm32/src/flash/mod.rs
index 6b6b4d41c..cbf5c25b2 100644
--- a/embassy-stm32/src/flash/mod.rs
+++ b/embassy-stm32/src/flash/mod.rs
@@ -1,3 +1,4 @@
1//! Flash memory (FLASH)
1use embedded_storage::nor_flash::{NorFlashError, NorFlashErrorKind}; 2use embedded_storage::nor_flash::{NorFlashError, NorFlashErrorKind};
2 3
3#[cfg(flash_f4)] 4#[cfg(flash_f4)]
diff --git a/embassy-stm32/src/fmc.rs b/embassy-stm32/src/fmc.rs
index 23ac82f63..873c8a70c 100644
--- a/embassy-stm32/src/fmc.rs
+++ b/embassy-stm32/src/fmc.rs
@@ -1,3 +1,4 @@
1//! Flexible Memory Controller (FMC) / Flexible Static Memory Controller (FSMC)
1use core::marker::PhantomData; 2use core::marker::PhantomData;
2 3
3use embassy_hal_internal::into_ref; 4use embassy_hal_internal::into_ref;
diff --git a/embassy-stm32/src/hrtim/mod.rs b/embassy-stm32/src/hrtim/mod.rs
index 17096d48c..6539326b4 100644
--- a/embassy-stm32/src/hrtim/mod.rs
+++ b/embassy-stm32/src/hrtim/mod.rs
@@ -1,3 +1,5 @@
1//! High Resolution Timer (HRTIM)
2
1mod traits; 3mod traits;
2 4
3use core::marker::PhantomData; 5use core::marker::PhantomData;
diff --git a/embassy-stm32/src/i2c/mod.rs b/embassy-stm32/src/i2c/mod.rs
index 0af291e9c..9b0b35eca 100644
--- a/embassy-stm32/src/i2c/mod.rs
+++ b/embassy-stm32/src/i2c/mod.rs
@@ -1,3 +1,4 @@
1//! Inter-Integrated-Circuit (I2C)
1#![macro_use] 2#![macro_use]
2 3
3#[cfg_attr(i2c_v1, path = "v1.rs")] 4#[cfg_attr(i2c_v1, path = "v1.rs")]
diff --git a/embassy-stm32/src/i2s.rs b/embassy-stm32/src/i2s.rs
index 372c86db3..1f85c0bc5 100644
--- a/embassy-stm32/src/i2s.rs
+++ b/embassy-stm32/src/i2s.rs
@@ -1,3 +1,4 @@
1//! Inter-IC Sound (I2S)
1use embassy_hal_internal::into_ref; 2use embassy_hal_internal::into_ref;
2 3
3use crate::gpio::sealed::{AFType, Pin as _}; 4use crate::gpio::sealed::{AFType, Pin as _};
diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs
index 5d9b4e6a0..fd691a732 100644
--- a/embassy-stm32/src/lib.rs
+++ b/embassy-stm32/src/lib.rs
@@ -149,15 +149,33 @@ use crate::interrupt::Priority;
149pub use crate::pac::NVIC_PRIO_BITS; 149pub use crate::pac::NVIC_PRIO_BITS;
150use crate::rcc::sealed::RccPeripheral; 150use crate::rcc::sealed::RccPeripheral;
151 151
152/// `embassy-stm32` global configuration.
152#[non_exhaustive] 153#[non_exhaustive]
153pub struct Config { 154pub struct Config {
155 /// RCC config.
154 pub rcc: rcc::Config, 156 pub rcc: rcc::Config,
157
158 /// Enable debug during sleep.
159 ///
160 /// May incrase power consumption. Defaults to true.
155 #[cfg(dbgmcu)] 161 #[cfg(dbgmcu)]
156 pub enable_debug_during_sleep: bool, 162 pub enable_debug_during_sleep: bool,
163
164 /// BDMA interrupt priority.
165 ///
166 /// Defaults to P0 (highest).
157 #[cfg(bdma)] 167 #[cfg(bdma)]
158 pub bdma_interrupt_priority: Priority, 168 pub bdma_interrupt_priority: Priority,
169
170 /// DMA interrupt priority.
171 ///
172 /// Defaults to P0 (highest).
159 #[cfg(dma)] 173 #[cfg(dma)]
160 pub dma_interrupt_priority: Priority, 174 pub dma_interrupt_priority: Priority,
175
176 /// GPDMA interrupt priority.
177 ///
178 /// Defaults to P0 (highest).
161 #[cfg(gpdma)] 179 #[cfg(gpdma)]
162 pub gpdma_interrupt_priority: Priority, 180 pub gpdma_interrupt_priority: Priority,
163} 181}
@@ -178,7 +196,11 @@ impl Default for Config {
178 } 196 }
179} 197}
180 198
181/// Initialize embassy. 199/// Initialize the `embassy-stm32` HAL with the provided configuration.
200///
201/// This returns the peripheral singletons that can be used for creating drivers.
202///
203/// This should only be called once at startup, otherwise it panics.
182pub fn init(config: Config) -> Peripherals { 204pub fn init(config: Config) -> Peripherals {
183 critical_section::with(|cs| { 205 critical_section::with(|cs| {
184 let p = Peripherals::take_with_cs(cs); 206 let p = Peripherals::take_with_cs(cs);
diff --git a/embassy-stm32/src/qspi/mod.rs b/embassy-stm32/src/qspi/mod.rs
index bac91f300..9ea0a726c 100644
--- a/embassy-stm32/src/qspi/mod.rs
+++ b/embassy-stm32/src/qspi/mod.rs
@@ -1,3 +1,5 @@
1//! Quad Serial Peripheral Interface (QSPI)
2
1#![macro_use] 3#![macro_use]
2 4
3pub mod enums; 5pub mod enums;
diff --git a/embassy-stm32/src/rng.rs b/embassy-stm32/src/rng.rs
index b2196b0d5..6ee89a922 100644
--- a/embassy-stm32/src/rng.rs
+++ b/embassy-stm32/src/rng.rs
@@ -1,3 +1,4 @@
1//! Random Number Generator (RNG)
1#![macro_use] 2#![macro_use]
2 3
3use core::future::poll_fn; 4use core::future::poll_fn;
diff --git a/embassy-stm32/src/rtc/mod.rs b/embassy-stm32/src/rtc/mod.rs
index fa359cdae..11b252139 100644
--- a/embassy-stm32/src/rtc/mod.rs
+++ b/embassy-stm32/src/rtc/mod.rs
@@ -1,4 +1,4 @@
1//! RTC peripheral abstraction 1//! Real Time Clock (RTC)
2mod datetime; 2mod datetime;
3 3
4#[cfg(feature = "low-power")] 4#[cfg(feature = "low-power")]
@@ -163,7 +163,7 @@ impl RtcTimeProvider {
163 } 163 }
164} 164}
165 165
166/// RTC Abstraction 166/// RTC driver.
167pub struct Rtc { 167pub struct Rtc {
168 #[cfg(feature = "low-power")] 168 #[cfg(feature = "low-power")]
169 stop_time: Mutex<CriticalSectionRawMutex, Cell<Option<RtcInstant>>>, 169 stop_time: Mutex<CriticalSectionRawMutex, Cell<Option<RtcInstant>>>,
diff --git a/embassy-stm32/src/sdmmc/mod.rs b/embassy-stm32/src/sdmmc/mod.rs
index 27a12062c..6099b9f43 100644
--- a/embassy-stm32/src/sdmmc/mod.rs
+++ b/embassy-stm32/src/sdmmc/mod.rs
@@ -1,3 +1,4 @@
1//! Secure Digital / MultiMedia Card (SDMMC)
1#![macro_use] 2#![macro_use]
2 3
3use core::default::Default; 4use core::default::Default;
diff --git a/embassy-stm32/src/spi/mod.rs b/embassy-stm32/src/spi/mod.rs
index 92599c75e..5a1ad3e91 100644
--- a/embassy-stm32/src/spi/mod.rs
+++ b/embassy-stm32/src/spi/mod.rs
@@ -1,3 +1,4 @@
1//! Serial Peripheral Interface (SPI)
1#![macro_use] 2#![macro_use]
2 3
3use core::ptr; 4use core::ptr;
diff --git a/embassy-stm32/src/uid.rs b/embassy-stm32/src/uid.rs
index 6dcfcb96e..aa13586f8 100644
--- a/embassy-stm32/src/uid.rs
+++ b/embassy-stm32/src/uid.rs
@@ -1,3 +1,5 @@
1//! Unique ID (UID)
2
1/// Get this device's unique 96-bit ID. 3/// Get this device's unique 96-bit ID.
2pub fn uid() -> &'static [u8; 12] { 4pub fn uid() -> &'static [u8; 12] {
3 unsafe { &*crate::pac::UID.uid(0).as_ptr().cast::<[u8; 12]>() } 5 unsafe { &*crate::pac::UID.uid(0).as_ptr().cast::<[u8; 12]>() }
diff --git a/embassy-stm32/src/usart/mod.rs b/embassy-stm32/src/usart/mod.rs
index dfa1f3a6a..e2e3bd3eb 100644
--- a/embassy-stm32/src/usart/mod.rs
+++ b/embassy-stm32/src/usart/mod.rs
@@ -1,3 +1,4 @@
1//! Universal Synchronous/Asynchronous Receiver Transmitter (USART, UART, LPUART)
1#![macro_use] 2#![macro_use]
2 3
3use core::future::poll_fn; 4use core::future::poll_fn;
diff --git a/embassy-stm32/src/usb_otg/mod.rs b/embassy-stm32/src/usb_otg/mod.rs
index be54a3d10..1abd031dd 100644
--- a/embassy-stm32/src/usb_otg/mod.rs
+++ b/embassy-stm32/src/usb_otg/mod.rs
@@ -1,3 +1,5 @@
1//! USB On The Go (OTG)
2
1use crate::rcc::RccPeripheral; 3use crate::rcc::RccPeripheral;
2use crate::{interrupt, peripherals}; 4use crate::{interrupt, peripherals};
3 5
diff --git a/embassy-stm32/src/wdg/mod.rs b/embassy-stm32/src/wdg/mod.rs
index c7c2694e0..5751a9ff3 100644
--- a/embassy-stm32/src/wdg/mod.rs
+++ b/embassy-stm32/src/wdg/mod.rs
@@ -1,3 +1,4 @@
1//! Watchdog Timer (IWDG, WWDG)
1use core::marker::PhantomData; 2use core::marker::PhantomData;
2 3
3use embassy_hal_internal::{into_ref, Peripheral}; 4use embassy_hal_internal::{into_ref, Peripheral};