You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.1 KiB

#![no_std]
#![no_main]
use core::{fmt::Write, panic::PanicInfo, ptr::{read_volatile, write_volatile}};
use lwcpu::{NumberDisplay, Screen, ScreenMode, TextDisplay, SCREEN_POINTER};
use riscv_rt::entry;
#[panic_handler]
fn panic_handler(_info: &PanicInfo) -> ! {
NumberDisplay::display_number(0xDEADC0DE);
let mut text = TextDisplay{};
let _ = write!(text, "Panic: {} {}", _info.message(), 1234);
loop {}
}
const HELLO_WORLD: &str = " Hello world!";
#[entry]
fn main() -> ! {
NumberDisplay::display_number(0);
Screen::init(ScreenMode::Buffered);
let mut text = TextDisplay{};
text.init();
for i in 0..32 {
Screen::set_line(i, 1 << i);
}
Screen::display();
Screen::clear();
Screen::display();
Screen::change_mode(ScreenMode::AlwaysDisplay);
unsafe {
write_volatile(SCREEN_POINTER, 0x001166ff);
write_volatile(SCREEN_POINTER.offset(1), 0xAAAAAAAA);
let ptr = SCREEN_POINTER as *mut u8;
let b = read_volatile(ptr.offset(1));
write_volatile(ptr.offset(5), b);
}
loop {
let _ = text.write_str(HELLO_WORLD);
panic!("Lmao")
}
}