master
D4VID 8 months ago
parent 6582fbebca
commit 4b78e5bab9

@ -4,8 +4,8 @@ build:
cargo build --release
extract: build
riscv32-elf-objcopy -O binary --only-section=.text target/riscv32i-unknown-none-elf/release/lw-riscv text.bin
riscv32-elf-objcopy -O binary --only-section=.rodata target/riscv32i-unknown-none-elf/release/lw-riscv rodata.bin
riscv32-elf-objcopy -O binary --only-section=.text target/riscv32i-unknown-none-elf/release/lw-riscv ~/text.bin
riscv32-elf-objcopy -O binary --only-section=.rodata target/riscv32i-unknown-none-elf/release/lw-riscv ~/rodata.bin
size: extract
cargo size --release -- -A

@ -6,20 +6,39 @@ use riscv_rt::entry;
#[panic_handler]
fn panic_handler(_info: &PanicInfo) -> ! {
unsafe {
OUTPUT.write_volatile(0xDEADC0DE);
}
loop {}
}
#[used]
static TEXT: &str = "lmao YEET";
const OUTPUT: *mut u32 = 0x2000_0000 as *mut u32;
const BTNS: *mut u8 = 0x2000_0008 as *mut u8;
#[entry]
fn main() -> ! {
let output = 0x2000_0000 as *mut u32;
let mut n: u32 = 6814;
let mut value: u32 = 1;
let mut btnA_prev = false;
let mut btnB_prev = false;
loop {
let btns_value;
unsafe {
btns_value = BTNS.read_volatile();
}
let btnA = (btns_value & 0b00000001) > 0;
let btnB = (btns_value & 0b00000010) > 0;
if btnA && !btnA_prev {
value >>= 1;
} else if btnB && !btnB_prev {
value <<= 1;
}
if value == 0 {
panic!();
}
unsafe {
output.write_volatile(n);
OUTPUT.write_volatile(value);
}
n += 1;
btnA_prev = btnA;
btnB_prev = btnB;
}
}

Loading…
Cancel
Save