#![no_main]
#![no_std]
extern crate panic_semihosting;
use cortex_m::asm;
use cortex_m_rt::entry;
use cortex_m_semihosting::dbg;
use hal::traits::rand_core::RngCore;
use lpc55_hal as hal;
#[entry]
fn main() -> ! {
let mut dp = hal::raw::Peripherals::take().unwrap();
let mut cp = hal::raw::CorePeripherals::take().unwrap();
cp.DWT.enable_cycle_counter();
let before = hal::get_cycle_count();
asm::nop();
asm::nop();
asm::nop();
let after = hal::get_cycle_count();
dbg!(after - before);
let mut syscon = hal::Syscon::from(dp.SYSCON);
dbg!(hal::get_cycle_count());
dbg!(syscon.is_clock_enabled(&dp.RNG)); syscon.disable_clock(&mut dp.RNG);
dbg!(syscon.is_clock_enabled(&dp.RNG));
syscon.enable_clock(&mut dp.RNG);
dbg!(syscon.is_clock_enabled(&dp.RNG));
dbg!(dp.RNG.random_number.read().bits());
let mut rng = hal::Rng::from(dp.RNG).enabled(&mut syscon);
let mut random_bytes = [0u8; 5];
rng.fill_bytes(&mut random_bytes);
dbg!(random_bytes);
dbg!(rng.module_id());
loop {
asm::wfi();
}
}