aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32h7/src/bin
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/stm32h7/src/bin
parentd6c5c1772cf2c6099ab08675afc0fead2e50fffb (diff)
stm32/rng: use bind_interrupts!.
Diffstat (limited to 'examples/stm32h7/src/bin')
-rw-r--r--examples/stm32h7/src/bin/eth.rs6
-rw-r--r--examples/stm32h7/src/bin/eth_client.rs6
-rw-r--r--examples/stm32h7/src/bin/rng.rs7
3 files changed, 14 insertions, 5 deletions
diff --git a/examples/stm32h7/src/bin/eth.rs b/examples/stm32h7/src/bin/eth.rs
index cfafcaed1..c93be9f00 100644
--- a/examples/stm32h7/src/bin/eth.rs
+++ b/examples/stm32h7/src/bin/eth.rs
@@ -11,14 +11,16 @@ use embassy_stm32::eth::{Ethernet, PacketQueue};
11use embassy_stm32::peripherals::ETH; 11use embassy_stm32::peripherals::ETH;
12use embassy_stm32::rng::Rng; 12use embassy_stm32::rng::Rng;
13use embassy_stm32::time::mhz; 13use embassy_stm32::time::mhz;
14use embassy_stm32::{bind_interrupts, eth, Config}; 14use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config};
15use embassy_time::{Duration, Timer}; 15use embassy_time::{Duration, Timer};
16use embedded_io::asynch::Write; 16use embedded_io::asynch::Write;
17use rand_core::RngCore; 17use rand_core::RngCore;
18use static_cell::make_static; 18use static_cell::make_static;
19use {defmt_rtt as _, panic_probe as _}; 19use {defmt_rtt as _, panic_probe as _};
20
20bind_interrupts!(struct Irqs { 21bind_interrupts!(struct Irqs {
21 ETH => eth::InterruptHandler; 22 ETH => eth::InterruptHandler;
23 RNG => rng::InterruptHandler<peripherals::RNG>;
22}); 24});
23 25
24type Device = Ethernet<'static, ETH, GenericSMI>; 26type Device = Ethernet<'static, ETH, GenericSMI>;
@@ -38,7 +40,7 @@ async fn main(spawner: Spawner) -> ! {
38 info!("Hello World!"); 40 info!("Hello World!");
39 41
40 // Generate random seed. 42 // Generate random seed.
41 let mut rng = Rng::new(p.RNG); 43 let mut rng = Rng::new(p.RNG, Irqs);
42 let mut seed = [0; 8]; 44 let mut seed = [0; 8];
43 rng.fill_bytes(&mut seed); 45 rng.fill_bytes(&mut seed);
44 let seed = u64::from_le_bytes(seed); 46 let seed = u64::from_le_bytes(seed);
diff --git a/examples/stm32h7/src/bin/eth_client.rs b/examples/stm32h7/src/bin/eth_client.rs
index 4ed737578..78005e91f 100644
--- a/examples/stm32h7/src/bin/eth_client.rs
+++ b/examples/stm32h7/src/bin/eth_client.rs
@@ -11,15 +11,17 @@ use embassy_stm32::eth::{Ethernet, PacketQueue};
11use embassy_stm32::peripherals::ETH; 11use embassy_stm32::peripherals::ETH;
12use embassy_stm32::rng::Rng; 12use embassy_stm32::rng::Rng;
13use embassy_stm32::time::mhz; 13use embassy_stm32::time::mhz;
14use embassy_stm32::{bind_interrupts, eth, Config}; 14use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config};
15use embassy_time::{Duration, Timer}; 15use embassy_time::{Duration, Timer};
16use embedded_io::asynch::Write; 16use embedded_io::asynch::Write;
17use embedded_nal_async::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpConnect}; 17use embedded_nal_async::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpConnect};
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>;
@@ -39,7 +41,7 @@ async fn main(spawner: Spawner) -> ! {
39 info!("Hello World!"); 41 info!("Hello World!");
40 42
41 // Generate random seed. 43 // Generate random seed.
42 let mut rng = Rng::new(p.RNG); 44 let mut rng = Rng::new(p.RNG, Irqs);
43 let mut seed = [0; 8]; 45 let mut seed = [0; 8];
44 rng.fill_bytes(&mut seed); 46 rng.fill_bytes(&mut seed);
45 let seed = u64::from_le_bytes(seed); 47 let seed = u64::from_le_bytes(seed);
diff --git a/examples/stm32h7/src/bin/rng.rs b/examples/stm32h7/src/bin/rng.rs
index af9be0b62..7c8c50eca 100644
--- a/examples/stm32h7/src/bin/rng.rs
+++ b/examples/stm32h7/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);