aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32h5/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-07-31 01:41:12 +0200
committerDario Nieuwenhuis <[email protected]>2023-07-31 01:41:12 +0200
commit4999b045df4e5956733b0341795714a9214c12d3 (patch)
tree84c40ec27c89bb4dedea30cdafbaad484bfda3cb /examples/stm32h5/src
parentd6c5c1772cf2c6099ab08675afc0fead2e50fffb (diff)
stm32/rng: use bind_interrupts!.
Diffstat (limited to 'examples/stm32h5/src')
-rw-r--r--examples/stm32h5/src/bin/eth.rs6
-rw-r--r--examples/stm32h5/src/bin/rng.rs7
2 files changed, 10 insertions, 3 deletions
diff --git a/examples/stm32h5/src/bin/eth.rs b/examples/stm32h5/src/bin/eth.rs
index 0bff85ed8..2aa2ab62b 100644
--- a/examples/stm32h5/src/bin/eth.rs
+++ b/examples/stm32h5/src/bin/eth.rs
@@ -12,14 +12,16 @@ use embassy_stm32::peripherals::ETH;
12use embassy_stm32::rcc::{AHBPrescaler, APBPrescaler, Hse, HseMode, Pll, PllSource, Sysclk, VoltageScale}; 12use embassy_stm32::rcc::{AHBPrescaler, APBPrescaler, Hse, HseMode, Pll, PllSource, Sysclk, VoltageScale};
13use embassy_stm32::rng::Rng; 13use embassy_stm32::rng::Rng;
14use embassy_stm32::time::Hertz; 14use embassy_stm32::time::Hertz;
15use embassy_stm32::{bind_interrupts, eth, Config}; 15use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config};
16use embassy_time::{Duration, Timer}; 16use embassy_time::{Duration, Timer};
17use embedded_io::asynch::Write; 17use embedded_io::asynch::Write;
18use rand_core::RngCore; 18use rand_core::RngCore;
19use static_cell::make_static; 19use static_cell::make_static;
20use {defmt_rtt as _, panic_probe as _}; 20use {defmt_rtt as _, panic_probe as _};
21
21bind_interrupts!(struct Irqs { 22bind_interrupts!(struct Irqs {
22 ETH => eth::InterruptHandler; 23 ETH => eth::InterruptHandler;
24 RNG => rng::InterruptHandler<peripherals::RNG>;
23}); 25});
24 26
25type Device = Ethernet<'static, ETH, GenericSMI>; 27type Device = Ethernet<'static, ETH, GenericSMI>;
@@ -56,7 +58,7 @@ async fn main(spawner: Spawner) -> ! {
56 info!("Hello World!"); 58 info!("Hello World!");
57 59
58 // Generate random seed. 60 // Generate random seed.
59 let mut rng = Rng::new(p.RNG); 61 let mut rng = Rng::new(p.RNG, Irqs);
60 let mut seed = [0; 8]; 62 let mut seed = [0; 8];
61 rng.fill_bytes(&mut seed); 63 rng.fill_bytes(&mut seed);
62 let seed = u64::from_le_bytes(seed); 64 let seed = u64::from_le_bytes(seed);
diff --git a/examples/stm32h5/src/bin/rng.rs b/examples/stm32h5/src/bin/rng.rs
index af9be0b62..7c8c50eca 100644
--- a/examples/stm32h5/src/bin/rng.rs
+++ b/examples/stm32h5/src/bin/rng.rs
@@ -5,14 +5,19 @@
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::rng::Rng; 7use embassy_stm32::rng::Rng;
8use embassy_stm32::{bind_interrupts, peripherals, rng};
8use {defmt_rtt as _, panic_probe as _}; 9use {defmt_rtt as _, panic_probe as _};
9 10
11bind_interrupts!(struct Irqs {
12 RNG => rng::InterruptHandler<peripherals::RNG>;
13});
14
10#[embassy_executor::main] 15#[embassy_executor::main]
11async fn main(_spawner: Spawner) { 16async fn main(_spawner: Spawner) {
12 let p = embassy_stm32::init(Default::default()); 17 let p = embassy_stm32::init(Default::default());
13 info!("Hello World!"); 18 info!("Hello World!");
14 19
15 let mut rng = Rng::new(p.RNG); 20 let mut rng = Rng::new(p.RNG, Irqs);
16 21
17 let mut buf = [0u8; 16]; 22 let mut buf = [0u8; 16];
18 unwrap!(rng.async_fill_bytes(&mut buf).await); 23 unwrap!(rng.async_fill_bytes(&mut buf).await);