diff --git a/src/main.rs b/src/main.rs index b41be53..6a7755f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,10 @@ #![no_std] #![no_main] -use core::{panic::PanicInfo, ptr::write_volatile}; -use riscv::asm::nop; +use core::{ + panic::PanicInfo, + ptr::{read_volatile, write_volatile}, +}; use riscv_rt::entry; #[panic_handler] @@ -10,15 +12,30 @@ fn panic_handler(_info: &PanicInfo) -> ! { loop {} } +static INIT_VALUE: u32 = 0b11011011; +static INIT_VALUE_2: i32 = -0x50000000; +#[used] +static TEXT: &str = "lmao YEET"; + #[entry] fn main() -> ! { - const MEM_ADDR: *mut u32 = 0x1000_0004 as *mut u32; + const MEM_ADDR: *mut u32 = 0x8000_0004 as *mut u32; + const MEM_ADDR_2: *mut i32 = 0x8000_0008 as *mut i32; loop { - for i in 0..100 { - unsafe { - write_volatile(MEM_ADDR, 0b01101100+i); + unsafe { + write_volatile(MEM_ADDR, INIT_VALUE); + for _ in 0..32 { + let mut value = read_volatile(MEM_ADDR); + value <<= 1; + write_volatile(MEM_ADDR, value); + } + + write_volatile(MEM_ADDR_2, INIT_VALUE_2); + for _ in 0..32 { + let mut value = read_volatile(MEM_ADDR_2); + value >>= 1; + write_volatile(MEM_ADDR_2, value); } - nop(); } } }