aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Granberg <[email protected]>2023-02-08 17:57:37 +0200
committerLucas Granberg <[email protected]>2023-02-08 17:57:37 +0200
commitbab4277a8620e9a5e2347ff919d677e9c87528c9 (patch)
treee9fe4b4c00c378c9d2fb1de9b4b9f4149dcca1fe
parentda6b1e8399cf977698e4a630f0862f698cba2b83 (diff)
hack for STM32WL, rcc reset in case of seed error
The STM32WL series has a more complicated rng device that gets stuck when there is a seed error.
-rw-r--r--embassy-stm32/src/rng.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/embassy-stm32/src/rng.rs b/embassy-stm32/src/rng.rs
index c487b759f..abc625835 100644
--- a/embassy-stm32/src/rng.rs
+++ b/embassy-stm32/src/rng.rs
@@ -32,6 +32,11 @@ impl<'d, T: Instance> Rng<'d, T> {
32 } 32 }
33 33
34 pub fn reset(&mut self) { 34 pub fn reset(&mut self) {
35 //stm32wl gets stuck if there is a seed error
36 #[cfg(stm32wl)]
37 if unsafe { T::regs().sr().read().seis()} {
38 T::reset();
39 }
35 unsafe { 40 unsafe {
36 T::regs().cr().modify(|reg| { 41 T::regs().cr().modify(|reg| {
37 reg.set_rngen(true); 42 reg.set_rngen(true);