diff options
| author | Lucas Granberg <[email protected]> | 2023-02-08 17:57:37 +0200 |
|---|---|---|
| committer | Lucas Granberg <[email protected]> | 2023-02-08 17:57:37 +0200 |
| commit | bab4277a8620e9a5e2347ff919d677e9c87528c9 (patch) | |
| tree | e9fe4b4c00c378c9d2fb1de9b4b9f4149dcca1fe | |
| parent | da6b1e8399cf977698e4a630f0862f698cba2b83 (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.rs | 5 |
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); |
