#![no_std] #![no_main] extern crate alloc; use core::{arch::asm, fmt::Write}; use nalgebra::SVector; use pim_os::{pim::vector::F16x1, uart::Uart0}; #[cfg(feature = "X1")] const ROWS: usize = 256; #[cfg(feature = "X2")] const ROWS: usize = 512; #[cfg(feature = "X3")] const ROWS: usize = 1024; #[cfg(feature = "X4")] const ROWS: usize = 2048; #[no_mangle] pub extern "C" fn main() { let a = SVector::::zeros(); let b = SVector::::zeros(); for element in a.iter() { unsafe { asm!("dc civac, {val}", val = in(reg) element) } } for element in b.iter() { unsafe { asm!("dc civac, {val}", val = in(reg) element) } } pim_os::m5op::exit(0); for _ in 0..10 { let c = a + b; core::hint::black_box(c); } pim_os::m5op::exit(0); writeln!(Uart0, "Done").unwrap(); }