Test more instructions

master
D4VID 8 months ago
parent 9403ff92a9
commit b072aacf12

@ -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();
}
}
}

Loading…
Cancel
Save