From af02ef481498441289a6decfe3baf7f3878f7871 Mon Sep 17 00:00:00 2001 From: Felipe Balbi Date: Thu, 11 Dec 2025 09:44:35 -0800 Subject: trng: Add dedicated constructors without configuration These three constructors guarantee TRNG will work for the requested amount of entropy samples. --- examples/mcxa/src/bin/trng.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'examples') diff --git a/examples/mcxa/src/bin/trng.rs b/examples/mcxa/src/bin/trng.rs index 95b4d0a88..bdd1f1041 100644 --- a/examples/mcxa/src/bin/trng.rs +++ b/examples/mcxa/src/bin/trng.rs @@ -21,8 +21,26 @@ async fn main(_spawner: Spawner) { defmt::info!("TRNG example"); + let mut trng = Trng::new_128(p.TRNG0.reborrow()); + let rand = trng.blocking_next_u32(); + defmt::info!("128-bit {}", rand); + + drop(trng); + + let mut trng = Trng::new_256(p.TRNG0.reborrow()); + let rand = trng.blocking_next_u32(); + defmt::info!("256-bit {}", rand); + + drop(trng); + + let mut trng = Trng::new_512(p.TRNG0.reborrow()); + let rand = trng.blocking_next_u32(); + defmt::info!("512-bit {}", rand); + + drop(trng); + let config = trng::Config::default(); - let mut trng = Trng::new(p.TRNG0.reborrow(), config); + let mut trng = Trng::new_with_custom_config(p.TRNG0.reborrow(), config); defmt::info!("========== BLOCKING =========="); @@ -57,7 +75,7 @@ async fn main(_spawner: Spawner) { defmt::info!("========== ASYNC =========="); - let mut trng = AsyncTrng::new(p.TRNG0.reborrow(), Irqs, config); + let mut trng = AsyncTrng::new_with_custom_config(p.TRNG0.reborrow(), Irqs, config); defmt::info!("Generate 10 u32"); for _ in 0..10 { -- cgit